Hallo allerseits,
da ich schon lange diese HomeMatic Statusanzeige HM-OU-LED16 herumliegen habe, aber mich geweigert habe, die LED über Programme in der CCU2 zu steuern, wurde es Zeit selbst eine Lösung zu finden. Und wie ihr gleich sehen werdet, ist das gar nicht so schwer
Es gibt sicher noch andere Wege, aber wenn man meinen Aufbau nachstellt, dann braucht man in seinen Skripten nur die „LED“-Variable zu setzen/verändern um das Statusdisplay richtig mit IPS verwenden zu können.
Wenn ihr das nachbaut, könnt ihr mit nur einem Skript jede LED vom Display einzeln durch ein IPS-Skript steuern. Jede LED kennt 4 Zustände (aus, rot, grün, orange).
Hier ein Foto, wie es dann aussehen könnte (die LED kommen, dank Handy-Cam, nicht so gut rüber, ist live besser erkennbar mit den Farben):
Über das HomeMatic WebInterface kann man unter „Einstellungen > Geräte > HM-OU-LED16“ auch noch einstellen, wie lange das Display eingeschaltet bleiben soll, nachdem ein LED-Status verändert wurde (0 = immer an). Zusätzlich kann die Helligkeit der LED von 0-15 eingestellt werden.
Die HomeMatic Instanzen für jede LED müssen angelegt sein (Name ist unwichtig), dann muss pro Instanz eine Integer Variable „LED“ angelegt werden, damit es wie folgt aussieht:
Dann legt ihr ein Variablenprofil „HM.OU.LED16“ an, welches ihr den 16 selbst angelegten „LED“ Variablen zuweist, welches wie folgt aussieht:
Dann benötigt ihr dieses Skript, welches ihr irgendwo hinlegen könnt (ich habe es zu meinen selbst geschriebenen Funktionen gelegt):
<?
$Parent = IPS_GetParent($_IPS['VARIABLE']);
@HM_WriteValueString($Parent ,"LED_STATUS", $_IPS['VALUE']);
?>
In diesem Skript legt ihr 16 ausgelöste Ereignisse an, welche die 16 selbst angelegten „LED“ Variablen auf Veränderung überwachen. Das sieht dann so auszugsweise so aus:
Hier ein Beispiel wie man die 16 einzelnen LED jetzt ansteuern kann (Beispiel an LED01):
<?
$LED01id = 54988 /*[Hardware\HomeMatic\Wand-Display\DISPLAY01 (Flur unten)\LED01\LED]*/;
// SetValue($LED01id, 0); // LED Status = AUS
SetValue($LED01id, 1); // LED Status = rot
// SetValue($LED01id, 2); // LED Status = grün
// SetValue($LED01id, 3); // LED Status = orange
?>
FERTIG
Im Anhang findet ihr auch noch eine Beschriftungsvorlage für WORD.
Viel Spaß damit
Grüße,
Chris