HomeMatic WebUI
Inhaltsverzeichnis
die Logik der WebUI Programme
Merksätze zur WebUI-Logik
- Es wird immer das ganze Programm ausgeführt, also von oben nach unten jeder Dann-Teil, wenn der jeweilige Wenn-Teil zutrifft. Die Bezeichnung "Sonst..." oder "Sonst Wenn..." ist falsch, es müsste heißen "Sonst..." und "Außerdem Wenn..." (so korrekt?)
- Auslösen bei Änderung oder Aktualisierung achtet nicht auf die Bedingung sondern legt zunächst nur fest, wann das Programm gestartet werden soll. "bei offen auslösen auf Änderung" bedeutet nicht: "bei öffnen", sondern immer wenn sich der Zustand ändert!
Wann werden Programme gestartet ?
- Allgemein
- nach dem Start oder Neustart der Zentrale
- Geräte
- bei "Änderung auslösen": Immer wenn sich der Zustand des Sensors ändert
- bei "Aktualisierung auslösen": Immer wenn sich der Sensor meldet.
- Bei Fensterkontakten ist das mindestens einmal am Tag und bei Zustandsänderung, bei Sabotagemeldung, bei Batterie leer, ...
- Bei Bewegungsmeldern alle paar Minuten und bei Bewegung erkannt
- Bei Messsensoren entsprechend öfter
- bei "nur prüfen": nie
- Zeitmodul
- Zeitintervall: alle x Sekunden/Minuten/Stunden
- zu Zeitpunkt auslösen: zum entsprechendem Zeitpunkt (Achtung, eine entsprechende wenn Bedingung in einem Programm ist nur wahr, wenn das Programm durch dieses Zeitmodul ausgelöst wurde. Bei Auslösung durch ein anderes Ereignis, zum Beispiel Zentrale startet neu, ist dieses immer falsch)
- in Zeitspanne auslösen: am Anfang und am Ende der Zeitspanne (Falls das Programm durch ein anderes Ereignis ausgelöst wurde, ist eine entsprechende wenn Bedingung innerhalb dieses Zeitraumes immer wahr, ansonsten falsch)
- Astrofunktion tagsüber/nachts: Das Programm wird bei Sonnenaufgang und Sonnenuntergang (also zweimal am Tag) gestartet, jedoch ist die Wenn Bedingung nur wahr bei Eintritt in Tag/Nacht. Wird das Programm durch ein anderes Ereignis ausgelöst, ist die Bedingung entsprechend tagsüber/nachts wahr
- ganztags: ??? (Wird das Programm durch ein anderes Ereignis ausgelöst, ist die Bedingung immer wahr)
Beispiele
Was tut dieses beispielhafte Programm?
Bedingung: Wenn... Geräteauswahl Fenster bei offen auslösen auf Änderung ODER Geräteauswahl Lampe bei Schaltzustand: ein auslösen auf Änderung Aktivität: Dann... Systemzustand Wohnmodus bei Wach
Das Programm liest sich zunächst so, als würde der Wohnmodus beim Öffnen des Fensters oder beim Einschalten der Lampe auf Wach gesetzt. Dies ist zwar richtig, aber nicht die ganze Wahrheit. Warum verdeutlicht die folgende fiktive Schreibweise (fiktiv, weil das WebUI das so nicht darstellt, aber eigentlich so meint):
Ausführung: Immer wenn... Geräteauswahl Fenster wird Geändert ODER Geräteauswahl Lampe wird Geändert Bedingung: ...dann prüfe ob... Geräteauswahl Fenster bei offen ODER Geräteauswahl Lampe bei Schaltzustand: ein Aktivität: Wenn Bedingung wahr, dann... Systemzustand Wohnmodus bei Wach
Hier wird der Unterschied deutlich: Das Programm wird auch dann ausgeführt, wenn die Lampe bereits eingeschaltet ist und das Fenster geschlossen wird, oder wenn das Fenster offen ist und die Lampe ausgeschaltet wird!
Das "Auslösen auf Änderung/Aktualisierung" bezieht sich immer nur auf das Gerät, nicht auf die dort angegebene Bedingung!
Rezepte
Rezepte sind kleine Schnipsel oder Hinweise, wie bestimmte Probleme gelöst werden können.
Eine variable Umschalten (Toggeln)
Bedingung: Wenn... 'Geräteauswahl' 'z.B. Taste einer Fernbedienung' bei 'Tastendruck kurz' und 'Systemzustand' Systemvariable bei 'wahr' 'nur prüfen' + + 'oder' ------------------------------------------------------------------- Aktivität: 'Dann' [X] Vor dem Ausführen alle laufenden Verzögerungen für diese Aktivitäten beenden (z.B. Retriggern). 'Systemzustand' Systemvariable 'sofort' 'nicht wahr' + ------------------------------------------------------------------- Aktivität: 'Sonst...' [X] Vor dem Ausführen alle laufenden Verzögerungen für diese Aktivitäten beenden (z.B. Retriggern). 'Systemzustand' Systemvariable 'sofort' 'wahr' +