Moin Zusammen,
hier kommt mein kleiner HUE Handler. Bitte erwartet nicht zuviel. Ich habe ihn vor langer Zeit begonnen und dann lange nix dran gemacht. Seht es eher als anregung.
Ich habe auch nur EIN/AUS und STATUS umgesetzt. Mir ging es darum, die HUE’s per KNX Taster EIN bzw AUS zuschalten und den STATUS am Schalter per LED angezeigt zu bekommen.
In den Skripten werden auch LOG-Messages ausgegeben. Wer diese nicht möchte muss den entsprechenden Teil auskommentieren.
Was noch sehr WICHTIG ist: Ihr müsst meine Bezeichnungen nutzen (WICHTIG) oder diese im Skript ebenfalls anpassen. Das sind:
KNX-Instanz mit Namen: EIN-AUS_STATUS
KNX-Instanz mit Namen: EIN-AUS
Integer Variable mit Namen: HUE_ID
Integer Variable mit Namen: KNX_STATUS_ID
Nun fehlen nur noch die 2 Skripte und ein paar Ereignisse. Thats it…
Der Rest ist eigentlich alles an den Screenshots zu erkennen. Sollten Fragen sein gerne schreiben.
Grüße,
Peter
Hier noch die zwei Skripte:
KNX-HUE_SWITCH ( schaltet die HUE’s vom Bus )
<?
# Diese Skript schaltet die HUE-Beleuchtung EIN, sofern die Instanz per WF oder per BUS geändert wird.
# Sollte die KNX-Status-Instanz bereits TRUE sein, wird nix an HUE gesendet.
ips_sleep(250); // Mit dem Wert kann etwas gespielt werden. Ich hatte bei kleineren Werten ab und zu probleme.
$state = $_IPS['VALUE'];
$parentID = IPS_GetParent($_IPS['VARIABLE']); // ParentID der Trigger-Variablen
$name_parent = IPS_GetObject($parentID);
$name_parent = $name_parent['ObjectName'];
$dummyparentID = IPS_GetParent($parentID); // Dummy-Instanz der ParentID
$name_dummy = IPS_GetObject($dummyparentID);
$name_dummy = $name_dummy['ObjectName'];
$knx_status_instanceID = IPS_GetInstanceIDByName("EIN-AUS_STATUS",$dummyparentID); // Holt die InstanzID vom KNX-Status
$knx_status_variableID = IPS_GetChildrenIDs($knx_status_instanceID); // Holt die VariablenID der KNX-Status-Instanz
$knx_status = GetValue($knx_status_variableID['0']); // Holt den Werf vom KNX-Status aus der Variablen
$hue_lamp_varID = IPS_GetVariableIDByName("HUE_ID",$parentID);
$hue_lampID = GetValue($hue_lamp_varID);
switch ($_IPS['VALUE'])
{
case 0: $state_word = "Vom BUS ausgeschaltet";
break;
case 1: $state_word = "Vom BUS eingeschaltet";
break;
}
If ($knx_status != $state)
{
IPS_LogMessage("KNX-HUE HANDLER:", " $name_dummy / ".$state_word);
HUE_SetState($hue_lampID, $state);
return;
}
else
{
#IPS_LogMessage("HUE HANDLER:", " $name_parent / Keine Aktion!");
return;
}
?>
KNX-HUE STATUS ( sendet den Status auf den Bus )
<?
switch ($_IPS['VALUE'])
{
case 0: $status = "KNX Status: AUS";
break;
case 1: $status = "KNX Status: EIN";
break;
}
$parentID = IPS_GetParent($_IPS['VARIABLE']);
$name_parent = IPS_GetObject($parentID);
$name_parent = $name_parent['ObjectName'];
$knx_statusID = IPS_GetVariableIDByName("KNX_STATUS_ID",$parentID);
$knx_status_value = GetValue($knx_statusID);
EIB_Switch($knx_status_value, $_IPS['VALUE']);
IPS_LogMessage("KNX-HUE HANDLER:", " HUE $name_parent / ".$status);
?>