Homematic Systemvariablen – Problemlöser für Programme und besondere Situationen
Jeder HomeMatic User, der sein Smart Home auf einer CCUx oder einer Partnerlösung betreibt, hat sicherlich schon von Systemvariablen gehört oder welche in seiner Programmierung eingesetzt. In diesem Artikel möchte ich beschreiben, wie man mit einer einfachen Systemvariablen ein Problem einfach lösen kann, wo eine Lösung über ein Programm oder Skript deutlich komplizierter wäre. Dabei handelt es sich um ein aktuelles Problem in meiner Anlage und ihr könnt diese Lösung sicherlich auch selbst einsetzten, natürlich auch bei anderen Anwendungen.
Problembeschreibung
Ich nutze in meiner HomeMatic Installation die nachfolgende Lösung, um meine Sonos Lautsprecher beispielsweise durch einen Bewegungsmelder einschalten. Im akuten Fall soll folgendes passieren. Morgens soll der Sonos Lautsprecher in der Küche eingestellt (Lautstärke und Sender) und angeschaltet werden, wenn die erste Person in der Zeit zwischen 5:30 und 7:30 Uhr in die Küche kommt. Das funktioniert soweit zuverlässig und wie gewünscht. Mit einer Ausnahme: Nach dem Wechsel von Sonos S1 auf S2 wird der Lautsprecher bei jedem Durchschreiten der Bewegungsmelderzone neu gestartet. Dies führt dazu, dass er kurz ausgeht, dann wieder einsetzt und den gewünschten Sender abspielt. Bei dem morgendlichen Betrieb in der Küche ist dieses Verhalten sehr störend, weil der Lautsprecher mit Sicherheit dann ausgeht, wenn gerade eine wichtige Nachricht oder das Wetter im Radio kommt
Screenshot Programm alt
Nachfolgend seht ihr das Programm, wie es bisher läuft und mit dem oben beschriebenen Problem behaftet ist. Morgen von Montag bis Freitag in der Zeit zwischen 5:30 und 7:00 Uhr wird bei Bewegung ein Skript ausgelöst. Die detaillierte Ansicht habe ich mit dem AddOn „Programme Drucken“ erstellt.
Systemvariable anlegen
In der WebUI über Startseite>Einstellungen>Systemvariablen habe ich eine Systemvariable vom Typ „Logikwert“ angelegt. Über diese Variable möchte ich dem System mitteilen, wenn der Lautsprecher in der Küche aktiv oder inaktiv ist.
Screenshot Programm neu
In dem modifizierten Programm frage ich nun die soeben erstellte Systemvariable ab und nur wenn diese auf „inaktiv“ steht, wird durch den Bewegungsmelder der Sonos Lautsprecher angeschaltet. Bei ersten Durchlauf am Morgen wird die Systemvariable dann auf „aktiv“ gesetzt und das Programm wird bei allen weiteren Durchläufen nicht mehr ausgeführt. Nach einer definierten Zeit von 125 Minuten wird die Variable wieder auf inaktiv gesetzt. Zu dieser Zeit wird das Programm aufgrund der Zeitdefinition nicht mehr ausgeführt. Damit ist das Problem gelöst und der Lausprecher wird wie gewünscht morgens bei ersten Durchlauf am Bewegungsmelder angeschaltet und danach wir das Programm aufgrund der Systemvariable nicht mehr ausgeführt. Somit ist das Problem mit der Unterbrechung ausgeschaltet.
Fazit
Ich hoffe ich konnte euch mit dieser Beschreibung eine Lösung für ähnliche Probleme oder Anwendungen in eurer Smart Home Installation an die Hand zu geben. Viel Spaß mit dem Ausprobieren.
Hallo, danke für den Tip.
Eine Frage: Was verbirgt sich im Script hinter der IP-Adr. „http://192.168.1.27:5005“
Vielen Dank im Voraus für deine Antwort.
Gruß Peter
Es handelt sich dabei um die IP des Raspberrys auf welchem die API von Sonos unter Port 5005 läuft un erreichbar ist.