Wenn Probleme gibt einfach melden, eine Anleitung kann ich jetzt auf die Schnelle keine schreiben.
Erst mal HA-Bridge installieren und in Betrieb nehmen.
Dann in IP-Symcon ein Skript z.B. HA-Brige Interface erstellen, dass Dir die Daten aus der HA-Bridge entgegen nimmt. Unter Kerninstanzen -> Webhook einen neuen Webhook anlegen der auf das Skript HA-Brige Interface zeigt z.B. /hook/habridge
Ein Skript sind in groben Zügen so aus
<?
if(isset($_GET["state"]) && isset($_GET["light"]))
{
IPS_LogMessage("WebHook HA-Bridge", print_r($_GET, true));
$state = $_GET["state"];
switch ($_GET["light"]) {
case "RGB1":
if($state == "on")
{
SetValue(29407 /*[Geräte\HA-Bridge\HA Status]*/, true);
}
else
{
SetValue(29407 /*[Geräte\HA-Bridge\HA Status]*/, false);
}
break;
case "RGB2":
if($state == "on")
{
I2GRGB_Set_Status(29056, true); // Objekt ID ergänzen
}
else
{
I2GRGB_Set_Status(29056, false); // Objekt ID ergänzen
}
break;
case "RGB3":
if($state == "on")
{
I2GRGB_Set_Status(29056, true); // Objekt ID ergänzen
}
else
{
I2GRGB_Set_Status(29056, false); // Objekt ID ergänzen
}
break;
case "RGB4":
if($state == "on")
{
I2GRGB_Set_Status(29056, true); // Objekt ID ergänzen
}
else
{
I2GRGB_Set_Status(29056, false); // Objekt ID ergänzen
}
break;
case "Arbeitszimmer":
if($state == "on")
{
HM_WriteValueBoolean(21790 /*[Geräte\Homematic\Räume\Büro\Arbeitszimmer Licht]*/, "STATE", true); // Objekt ID ergänzen
}
else
{
HM_WriteValueBoolean(21790 /*[Geräte\Homematic\Räume\Büro\Arbeitszimmer Licht]*/, "STATE", false); // Objekt ID ergänzen
}
break;
case "Beamer":
if($state == "on") {
HM_WriteValueBoolean(50719 /*[Geräte\Homematic\Räume\Wohnzimmer\Beamer Schaltaktor]*/, "STATE", true); // Objekt ID ergänzen
}
else
{
HM_WriteValueBoolean(50719 /*[Geräte\Homematic\Räume\Wohnzimmer\Beamer Schaltaktor]*/, "STATE", false); // Objekt ID ergänzen
}
break;
case "Subwoofer":
if($state == "on")
{
HM_WriteValueBoolean(14559 /*[Geräte\Homematic\Räume\Wohnzimmer\Subwoofer Schaltaktor]*/, "STATE", true); // Objekt ID ergänzen
}
else
{
HM_WriteValueBoolean(14559 /*[Geräte\Homematic\Räume\Wohnzimmer\Subwoofer Schaltaktor]*/, "STATE", false); // Objekt ID ergänzen
}
break;
case "Couch":
if($state == "on")
{
IPS_RunScript(48657 /*[Geräte\Homematic\Homematic Scripte\Erdgeschoss\Wohnzimmer\Deckenlampe Couch\Deckenlampe Couch Licht an]*/);
}
else
{
IPS_RunScript(30712 /*[Geräte\Homematic\Homematic Scripte\Erdgeschoss\Wohnzimmer\Deckenlampe Couch\Deckenlampe Couch Licht aus]*/);
}
break;
case "Esstisch":
if($state == "on")
{
IPS_RunScript(56100 /*[Geräte\Homematic\Homematic Scripte\Erdgeschoss\Wohnzimmer\Deckenlampe Esstisch\Deckenlampe Esstisch Licht an]*/);
}
else
{
IPS_RunScript(42299 /*[Geräte\Homematic\Homematic Scripte\Erdgeschoss\Wohnzimmer\Deckenlampe Esstisch\Deckenlampe Esstisch Licht aus]*/);
}
break;
case "Fonzo":
if($state == "on")
{
HM_WriteValueBoolean(21790 /*[Geräte\Homematic\Räume\Büro\Arbeitszimmer Licht]*/, "STATE", true); // Objekt ID ergänzen
}
else
{
HM_WriteValueBoolean(21790 /*[Geräte\Homematic\Räume\Büro\Arbeitszimmer Licht]*/, "STATE", false); // Objekt ID ergänzen
}
break;
}
}
elseif(isset($_GET["intensity"]) && isset($_GET["light"]))
{
$intensity = $_GET["intensity"];
switch ($_GET["light"]) {
case "RGB1":
$intensity = $intensity/100;
SetValue(26592 /*[Geräte\HA-Bridge\HA RGB Intensity]*/, $intensity);
break;
case "RGB2":
// Befehl zur Hellligkeit einstellen
break;
case "RGB3":
// Befehl zur Hellligkeit einstellen
break;
case "RGB4":
// Befehl zur Hellligkeit einstellen
break;
case "Couch":
//SetValue(35921 /*[Geräte\HA-Bridge\Intensity]*/, $intensity);
$intensity = $intensity/100;
HM_WriteValueFloat(19602 /*[Geräte\Homematic\Räume\Wohnzimmer\Deckenlampe Couch:4]*/, "LEVEL", $intensity); //Gerät auf x% dimmen
if($intensity > 0)
{
SetValueBoolean(25149 /*[Geräte\Homematic\Räume\Wohnzimmer\Deckenlampe Couch\Zustand]*/, true);
}
else
{
SetValueBoolean(25149 /*[Geräte\Homematic\Räume\Wohnzimmer\Deckenlampe Couch\Zustand]*/, false);
}
break;
case "Esstisch":
//SetValue(35921 /*[Geräte\HA-Bridge\Intensity]*/, $intensity);
$intensity = $intensity/100;
HM_WriteValueFloat(29883 /*[Geräte\Homematic\Räume\Wohnzimmer\Deckenlampe Esstisch:4]*/, "LEVEL", $intensity); //Gerät auf x% dimmen
if($intensity > 0)
{
SetValueBoolean(52454 /*[Geräte\Homematic\Räume\Wohnzimmer\Deckenlampe Esstisch\Zustand]*/, true);
}
else
{
SetValueBoolean(52454 /*[Geräte\Homematic\Räume\Wohnzimmer\Deckenlampe Esstisch\Zustand]*/, false);
}
break;
}
}
elseif(isset($_GET["color"]) && isset($_GET["light"]))
{
$color = $_GET["color"];
SetValue(53466 /*[Geräte\HA-Bridge\Color Test]*/, $color);
}
elseif(isset($_GET["state"]) && isset($_GET["colorred"]) && isset($_GET["colorgreen"]) && isset($_GET["colorblue"]) && isset($_GET["light"]))
{
$state = $_GET["state"];
$R = $_GET["colorred"];
$G = $_GET["colorgreen"];
$B = $_GET["colorblue"];
switch ($_GET["light"]) {
case "RGB1":
if($state == "on")
{
I2GRGB_Set_Status(29056, true); // Objekt ID ergänzen
// Befehl für Farbe
I2GRGB_Set_RGB(12345, $R, $G, $B); // 12345 Ist die Objekt ID der Instanz
}
else
{
I2GRGB_Set_Status(29056, false); // Objekt ID ergänzen
}
break;
case "RGB2":
if($state == "on")
{
I2GRGB_Set_Status(29056, true); // Objekt ID ergänzen
// Befehl für Farbe
I2GRGB_Set_RGB(12345, $R, $G, $B); // 12345 Ist die Objekt ID der Instanz
}
else
{
I2GRGB_Set_Status(29056, false); // Objekt ID ergänzen
}
break;
case "RGB3":
if($state == "on")
{
I2GRGB_Set_Status(29056, true); // Objekt ID ergänzen
// Befehl für Farbe
I2GRGB_Set_RGB(12345, $R, $G, $B); // 12345 Ist die Objekt ID der Instanz
}
else
{
I2GRGB_Set_Status(29056, false); // Objekt ID ergänzen
}
break;
case "RGB4":
if($state == "on")
{
I2GRGB_Set_Status(29056, true); // Objekt ID ergänzen
// Befehl für Farbe
I2GRGB_Set_RGB(12345, $R, $G, $B); // 12345 Ist die Objekt ID der Instanz
}
else
{
I2GRGB_Set_Status(29056, false); // Objekt ID ergänzen
}
break;
}
}
else
{
echo "Das Skript kann nur durch einen Webhook aufgerufen werden";
}
// I2GRGB_Set_RGB(Int $R, Int $G, Int $B)
// I2GRGB_Set_Status(Bool $value)
// list($r, $g, $b) = $this->Hex2RGB($Value);
// $this->Set_RGB($r, $g, $b);
function Hex2RGB($Hex)
{
$r = (($Hex >> 16) & 0xFF);
$g = (($Hex >> 8) & 0xFF);
$b = (($Hex >> 0) & 0xFF);
return array($r, $g, $b);
}
?>
In der HA-Bridge must Du dann eine URL eintragen bei einem Befehl. Der befehl wird dann aufgerufen und damit IP-Symcon getriggert.
z.B.
http://192.168.1.20:3777/hook/habridge?light=RGB1&colorred=255&colorgreen=255&colorblue=255&state=on
Die Variablen in dem Skript bzw. Geräte must Du logischerweise für Dich anpassen, ich weis ja nicht was Du konkret schalten willst. Ansonsten fragen falls es Probleme gibt.
Was Du zusätzlich beachten must ist der Logitech Hub kann nur eine Hue Bridge erkennen, d.h. es funktioniert nicht mit HA-Bridge und Hue-Bridge.
Um das zu lösen must Du die Geräte der HUE-Bridge in der HA-bridge alle einlesen und auf Passtrough stellen. Dann nimmst du die Hue-Bridge kurz vom Ntz und die HA-Bridge ins Netz und lässt den Harmony Hub nach der HA Bridge suchen und koppelst die HA-Bridge an den Logitech Hub. Dann kannst Du die Hue-Bridge wieder in Betrieb nhemen. Jetzt sollte alles was vom Logitech Hub gesendet wird immer an die HA-Bridge gesendet werden und von dort an die HUE-Bridge durchgereicht werden. So kannst Du also alles schalten die geräte der HA Bridge und der Hue Bridge.
Alternative zu Passtrough in der HA-Bridge ist es einfach alles was in der HA-Bridge ankommt an IP-Symcon durchzuleiten und dann die Hue Lampen aus IP-symcon zu schalten.