itk-logo

 

Homematic-Programmierung


Dieses Kapitel beschäftigt sich mit den Möglichkeiten der CCU-Weboberfläche (Web UI), bestimmtes Verhalten der Homematic-Installation zu beeinflussen. Was ich hier beschreibe, nennt ELV anders:

  • Direkte Geräteverknüpfungen können zwar über die CCU (Zentrale) eingestellt und verwaltet werden, laufen aber ohne direkten Einfluss der Zentrale ab. Die miteinander verknüpften Homematic-Einheiten kommunizieren direkt miteinander. Die hier eingestellten Funktionen sind recht stabil, weil sie nur auf die beiden betroffenen Homematic-Einheiten brauchen. Die Homematic-Einheiten brauchen die Verbindung zur Zentrale nur in folgenden Fällen:
    • Zum Einstellen der Verbindungen. Grundsätzlich ließen sich diese direkten Geräteverbindungen auch durch Anlernen der einen Einheit an der anderen verwirklichen. Wenn man dann aber eine der Einheiten an der Zentrale anlernt und die zweite keine Verbindung zur Zentrale aufbauen kann, dann kracht's: Die eine Einheit übergibt die Verbindungsdaten an die Zentrale, die zweite erfährt aber nichts davon. Im Endeffekt kann es passieren, dass die direkt verbundenen Geräte ihre Verbindung verlieren.
    • Zum Abfragen der Zustände und zum direkten Betätigen von Aktoren. So kann man einen Fensterkontakt direkt mit einem Thermostaten verbinden, um beim Lüften die Solltemperatur im Raum abzusenken. Gleichzeitig kennt die Zentrale den Zustand des Fensterkontaktes. Mit dieser Information kann man eine Anzeige alle Fenster sind zu steuern oder gleich eine Alarmanlage verwirklichen.
  • Zentralenverknüpfungen lassen sich im Web UI ohne ernsthafte Programmierkenntnisse zusammenklicken. Sie sind bedeutend vielseitiger als direkte Geräteverknüpfungen. Sie laufen aber nur ab, wenn mehrere Bedingungen erfüllt sind:
    • Die eingebundenen Homematic-Einheiten müssen funktionieren.
    • Jede einzelne dieser Einheiten muss eine stabile Verbindung zur Zentrale haben.
    • Die Zentrale muss funktionieren; ihr Rechner darf nicht abgestürzt sein oder gerade neu booten.
    • Die Zentrale muss die Zustände aller beteiligten Einheiten kennen. Viele Einheiten senden ihre Zustände aber aus Stromspargründen nur in größeren Abständen (Stunden bis Tage). Nach einem Neustart nimmt die Zentrale beispielsweise an, dass alle Fensterkontakte geschlossen sind. Dem muss aber nicht so sein.

Der Menüpunkt Zentralenverknüpfung heißt zusätzlich auch Programmerstellung. Aber das war schon fast alles, was man dazu in der Bedienoberfläche findet. Zwar gibt es für das Homematic-System auch noch Unterlagen über die Programmierung. Aber damit kommt bestenfalls der klar, der schon mit Visual Basic oder ähnlichen objektorientierten Programmiersprachen gearbeitet hat. Offensichtlich gibt es auch keine Entwicklerumgebung, so dass die eigentliche Programmierung nur was für Masochisten ist.

Direkte Geräteverknüpfungen erstellen

Vor dem Kauf der entsprechenden Einheiten kann man nur hoffen, dass man die gewünschte Funktion auch so verwirklichen kann. Denn ich wüsste nicht, wo man die exakten Möglichkeiten nachlesen kann – das sind nur ein paar der vielen Löcher in der Homematic-Dokumentation. Die existierenden Einstellmöglichkeiten findet man erst, wenn man die Einheiten an der Zentrale angelernt hat und das entsprechende Verknüpfungsmenü öffnet. Dabei kann es gut passieren, dass eine unverständlich bezeichnete Option auftaucht, die nirgendwo erklärt ist. Sporadisch gibt es dafür mal eine Hilfefunktion. Aber das ist eher die Ausnahme denn die Regel.

Grundsätzlich tut eine direkte Geräteverknüpfung nur etwas, wenn ein Ereignis auftritt. Zumindest batteriebetriebene Geräte schalten ihren Empfänger die meiste Zeit ab, um Strom zu sparen:

  • Einheiten mit Mignon-Zellen sind relativ gut erreichbar, also etwa Wandthermostate. Sie liefern alle paar Minuten Ist-Temperatur und Luftfeuchtigkeit. Aber ihre Solltemperatur liefern sie nur, wenn sie (manuell oder durch das eingestellte Temperaturprofil) geändert wird. Nur einmal am Tag oder so übertragen Wandthermostate ihre Solltemperatur, wenn sie immer die gleiche Solltemperatur haben. Offenbar synchronisieren sich Wandthermostat und damit verbundene Stellantriebe. Sie wachen alle paar Minuten gleichzeitig auf.
  • Einheiten, die mit Knopfzellen betrieben werden, sind ohne manuellen Eingriff kaum zu erreichen. Unter bestimmten, mir nicht wirklich nachvollziehbaren Randbedingungen liefern sie in großen Zeitabständen eine Statusmeldung. Sonst melden sich diese Einheiten nur nach Eintreten eines Ereignisses – also beispielsweise beim Öffnen eines Fensters.

Wer also Fensterkontakte und Wandthermostat miteinander verknüpft, wird die Anzeige Fenster offen kurz nach Öffnen eines Fensters entdecken. Es kann aber diverse Minuten dauern, bis die Stellantriebe die Heizung abschalten.

Die Kombination Fensterkontakt-Wandthermostat brachte mich in der Anfangszeit zur Verzweiflung. Ich brauchte über ein Jahr, den folgenden Zusammenhang zu erkennen:

  • Anfangs lernte ich die Geräte direkt aneinander an. Die Funkverbindung innerhalb eines Raums war kein Problem.
  • Anschließend verband ich den Wandthermostaten mit der Zentrale und konnte so auf den Thermostaten zugreifen.
  • Innerhalb einiger Tage ging dann nichts mehr.
  • Mehr zufällig entdeckte ich irgendwann direkte Geräteverknüpfungen, die ich nie angelegt hatte und die auch als nicht funktionsfähig gekennzeichnet waren.
  • Offensichtlich hatte der Wandthermstat seine Verknüfungsdaten an die Zentrale übertragen und sich anschließend in eine entsprechende Betriebsart versetzt.
  • Die Fensterkontakte hat jemand konstruiert, der von Hochfrequenz absolut keine Ahnung hat. Er stopfte die Antenne einfach irgendwie ins Gehäuse, so dass sie extrem schlecht funktioniert. Ergebnis: Eine Verbindung zwischen Fensterkontakt und der Zentrale zwei Räume weiter ist nicht möglich.
  • Die Fensterkontakte erfahren also nichts von der Zentrale und schalten sich auch nicht in die passende Betriebsart um.
  • Offensichtlich versuchen die Geräte nur eine begrenzte Zeit lang, ihre Kommunikationspartner zu erreichen, und schalten sich dann mehr oder weniger ab. Folglich geht nichts mehr!

Zu Beginn meiner zweiten Heizperiode wusste ich mir deshalb nicht anders zu helfen, als alle meine Homematic-Komponenten auf ihre Werkseinstellung zurückzustellen und alle Einstellungen neu zu machen. Ich habe ein ganzes Wochenende lang geflucht und war kurz davor, alle Homematic-Komponenten bei Ebay zu verticken.

Zentralenvernüpfungen erstellen

Für Zentralenverknüpfungen muss man die ganzen Homematic-Komponenten erst mal mit der Zentrale verbinden und kann dann recht einfach die Verknüpfungen zusammenklicken. Auch dabei gilt das bei den direkten Geräteverknüpfungen Geschriebene: Was man genau einstellen kann, erfährt man erst nach Anlernen der Gerätschaften. Auch hier gibt es diverse Optionen, die unverständlich benannt und nicht beschrieben sind.

Alle Verknüpfungsmöglichkeiten laufen nach dem folgenden (vereinfachten) Schema ab:

  • Die Funktion wird von einem Ereignis ausgelöst. Das kann ein bestimmter Zeitpunkt sein oder die Änderung eines Zustandes bzw. Variablenwertes. Dazu gibt es z.B. die Option auslösen auf Änderung.
  • Eine Reihe von Bedingungen wird geprüft. Dazu kann man Variablenwerte und Gerätezustände abfragen. Der Unterschied zum obigen Punkt ist nur, dass man die Option nur prüfen wählt.
  • Wenn die Bedingungen erfüllt sind, wird eine Funktion ausgelöst.

Wichtig ist, was da nicht geht:

  • Es gibt keine mathematischen Funktionen – abgesehen von Vergleichsoperatoren bei den Bedingungen.
  • Es gibt keine Schleifen – dazu müsste man beispielsweise Schleifenzähler erhöhen können.
  • Es gibt keine Unterprogramm-Aufrufe. Man kann höchstens eine Variable auf einen bestimmten Wert setzen und damit eine andere Zentralenverknüpfung starten.
  • Es gibt kaum Möglichkeiten, etwas zu protokollieren. Man kann nur Gerätezustände oder Variablenwerte so kennzeichnen, dass ihre Werte bei Änderungen im Systemlog auftauchen. Diese Möglichkeit wird man aber nur sparsam nutzen, weil das Log sonst nur ein paar Stunden umfasst und nur recht umständlich durchsucht werden kann. Mal ganz abgesehen davon, dass das Ausgeben des Logs bei der CCU1 mehrere Minuten dauert. Die CCU2 ist da wohl etwas schneller.

Mit Systemvariablen arbeiten

Das Konzept der Zentralenverknüpfungen ist nicht schlecht, stößt aber schnell auf Grenzen. Ein interessanter Weg, komplexere Funktionen zu verwirklichen, eröffnet sich mit Systemvariablen. Dazu ein Beispiel aus meiner Heizungssteuerung:

Protokoll Heizungsschaltung
  • Ohne Kommunikationsmöglichkeit mit der Heizungssteuerung bleibt mir nur, Vor- und Rücklauftemperatur zu messen und mir Algorithmen zu überlegen, wann ich der Heizung die Stromversorgung ein- und ausschalten sollte.
  • Dafür gibt es zwei getrennte Steuergrößen: Der Wärmebedarf des Hauses und die Warmwasserbereitung. Den Wärmebedarf leite ich aus den Stellungen der Stellantriebe ab. Die Warmwasserbereitung passiert zu definierten Zeiten.
  • Wenn die Heizung Warmwasser bereiten soll, muss ich die Stromversorgung einschalten. Dazu schicke ich zu passenden Zeitpunkten unbedingte Einschaltbefehle an den Hutschienen-Aktor – beispielsweise um 5:15 h. Dabei ist es gleichgültig, ob die Stromversorgung schon eingeschaltet war oder nicht.
  • Nach der Warmwasserbereitung müssen aber diverse Bedingungen abgefragt werden, ehe der Hutschienenaktor einen Aus-Befehl erhalten darf:
    • Wenn die Heizung arbeiten soll, darf sie nicht abgeschaltet werden.
    • Es wäre ungeschickt die Heizung abzuschalten, während der Brenner läuft oder sich noch viel Wärme im Kessel befindet.
    Zudem darf die Heizung auch dann nicht abgeschaltet werden, wenn das Haus zwar warm genug ist, aber das Warmwasser gerade aufgeheizt wird und der Kessel deshalb warm ist.

Diese Kombinationen allein mit Zentralenverknüpfungen zu verwirklichen wird beliebig unübersichtlich. Deshalb läuft das mittlerweile so:

  • Zu Beginn der Warmwasserbereitung prüft eine zeitgesteuerte Zentralenverknüpfung, ob überhaupt jemand anwesend ist und schaltet ggf. den Hutschienenaktor ein. Gleichzeitig setzt sie die selbst definierte Systemvariable Warmwasserbereitung auf wahr.
  • Nach der Warmwasserbereitung setzt eine zeitgesteuerte Zentralenverknüpfung die Systemvariable Warmwasserbereitung auf falsch – nicht mehr!
  • Eine Zentralenverknüpfung wird immer dann gestartet, wenn ausgewählte Stellantriebe auf weniger als 10% schließen. Falls zu diesem Zeitpunkt alle diese Stellantriebe so weit zu sind, wird die selbst definierte Systemvariable Heizung muss ein auf falsch gesetzt.
  • Wenn einer dieser Stellantriebe auf mehr als 20% öffnet, wird die Systemvariable Heizung muss ein auf wahr gesetzt. Das passiert meist zu den Zeitpunkten, zu denen die Solltemperatur des entsprechenden Raums zeitgesteuert erhöht wird. Im Winter kann das aber auch z.B. um 3 h passieren, wenn ein Raum von der Tag- unter die Nacht-Solltempemperatur abkühlt.
  • Eine Zentralenverknüpfung startet, wenn die selbst definierte Systemvariable Heizung muss ein auf wahr gesetzt wird. Sie schickt einen Ein-Befehl an den Hutschienenaktor.
  • Immer wenn die Differenztemperatur zwichen Vor- und Rücklauf des Heizungskreislaufs kleiner wird als 2°C, startet eine weitere Zentralenverknüpfung. Die prüft, ob die beiden Systemvariablen Warmwasserbereitung und Heizung muss ein auf falsch stehen. Wenn ja, schickt sie einen Aus-Befehl an den Hutschienen-Aktor.

Auf diesem Weg wird die Heizung nur ausgeschaltet, wenn kein Wärmestau im Kessel entstehen kann und auch sicher keine Wärme gebraucht wird. Zudem wird die Heizung nur eingeschaltet, wenn wenn auch Wärme gebraucht wird. Bei typischem Aprilwetter läuft die Heizung unter der Woche am Morgen für drei Stunden und dann ab 17 h wieder. Die Auslöser sind meist Küche und Bad auf der Nordseite des Hauses. Schien über den Tag die Sonne lange genug ins Wohnzimmer, schaltet die Heizung um 20 h wieder ab – bis zum nächsten Morgen um 5 h. Ergebnis: Die Heizung, und vor allem die Umwälzpumpe des Heizkreislaufs, sind oft nur 6 h am Tag in Betrieb.

TOP
Alexander von Obert * http://www.techwriter.de/beispiel/homemat3.htm
Letzte Änderung: 13.04.14 (Abschnitt 'Mit Systemvariablen arbeiten' hinzugefügt)


Startseite

Hausautomatisierung mit dem Homematic-System

Die Möglichkeiten und Grenzen des Homematic-Funksystems
Leitfaden für den Aufbau einer Homematic-Installation
Homematic - der Zusatznutzen
Energie sparen mit dem Homematic-System
Heizungssteuerung mit Homematic
Die Homematic-"Funkbriefmarke"
Homematic CCU FAQ
Funkeigenschaften der Homematic-Zentrale CCU verbessern
Funkeigenschaften des Homematic-Tür-Fensterkontakt HM-Sec-SC verbessern
Funkeigenschaften des Homematic Fenster-Drehkontakts HM-Sec-RHS verbessern
Der Homematic-Wandthermostat HM-CC-TC
Homematic: Die Stromsparmethoden
Homematic-Bausätze
Energiespartipps Warmwasserbereitung
Homematic-Programmierung
Die Lebensdauer von Homematic-Komponenten
Die wichtigsten Schwachpunkte des Homematic-Systems
Homematic CCU-2
Raspberry Pi als Homematic-Zentrale