07-05-2017, 12:47:54
Hallo,
hier mal eine Zusammenfassung wie man HUE Szenen über HTTP REQUEST aktivieren kann.
Die Zusammenfassung ist aus diesem Thema: http://www.innogy-smarthome-forum.com/th...ise?page=9
und somit etwas übersichtlicher, dort im Beitrag #90 befindet sich auch die php im Anhang.
Der große Vorteil ist: Man muß in Szenarien nicht für jede einzelne Lampe die Einstellungen für Helligkeit, Farbe, Sättigung vornehmen. Sondern kann die HUE Scene direkt abrufen und Änderungen der Szene in der HUE APP werden "übernommen".
Benötigt wird:
1. die HTTP REQUEST APP (über die Hotline installieren lassen)
2. lokalen Webserver mit php Unterstützung
3. php Script "HueSceneRecall.php" - wird auf dem Webserver ausgeführt.
4. Zeit und Lust an der Bastelei
Zuerst muß man sich einen HUE API_KEY generieren.
Das geht über die lokale API Seite auf der HUE Bridge über diesen
Link http://IP der Bridge/debug/clip eine Beschreibung findet Ihr hier: https://developers.meethue.com/documenta...ng-started
Nun kann man, mit dem API_KEY über API Seite der Bridge unter dem Link http://IP der Bridge/debug/clip
dort mit dem GET-Befehl http://IP der Bridge/api/eigener API Key/scenes sich alle Szenen aufgelistet lassen.
Die Szenen selber haben in der Auflistung neben dem Klarnamen eine etwas kryptische Bezeichnung, im folgenden als Beispiel: "d2GrHbaaaWhwEhY"
Über den PUT-Befehl http://IP der Bridge/api/eigener API Key/groups/d2GrHbaaaWhwEhY/action
mit dem Message-Body
{
"scene": "d2GrHbaaaWhwEhY"
}
Das Script in Zeile 3 und 4 entsprechend der eigenen Daten ändern (Bridge IP und API Key)
$bridge_ip = "10.1.1.1"
$api_key = "1234567890123456789012345678901234567890";
Nun das das php Script auf dem Webserver ablegen.
Ein "HTTP REQUEST Gerät" zB mit dem Namen "HUE Szenen" mit der URL: http://IP des Webservers/HueSceneRecall.php , Methode GET anlegen evtl mit dem Parameter "scene=VOIHnJOUeJyPkAH" zum Abruf der Liebligngsscene.
Bindet man nun dieses HTTP Gerät in Szenarien als Aktion ein, kann der Parameter auf die gewünschte Scene geändert werden.
Ich habe mir einfache Szenarien ( WENN Bedienoberfläche DANN HTTP Anfrage GET mit Parameter der gewünschten HUE Scene senden) angelegt mit denen die HUE Szenen direkt abrufen kann und natürlich "intelligente" Szenarien.
Dank nochmal an CooperCologne für die Beschreibung, die Links und die Scripterstellung!
Gruß aus Wesel!
Hier der php Code der Scriptdatei HueSceneRecall.php
hier mal eine Zusammenfassung wie man HUE Szenen über HTTP REQUEST aktivieren kann.
Die Zusammenfassung ist aus diesem Thema: http://www.innogy-smarthome-forum.com/th...ise?page=9
und somit etwas übersichtlicher, dort im Beitrag #90 befindet sich auch die php im Anhang.
Der große Vorteil ist: Man muß in Szenarien nicht für jede einzelne Lampe die Einstellungen für Helligkeit, Farbe, Sättigung vornehmen. Sondern kann die HUE Scene direkt abrufen und Änderungen der Szene in der HUE APP werden "übernommen".
Benötigt wird:
1. die HTTP REQUEST APP (über die Hotline installieren lassen)
2. lokalen Webserver mit php Unterstützung
3. php Script "HueSceneRecall.php" - wird auf dem Webserver ausgeführt.
4. Zeit und Lust an der Bastelei
Zuerst muß man sich einen HUE API_KEY generieren.
Das geht über die lokale API Seite auf der HUE Bridge über diesen
Link http://IP der Bridge/debug/clip eine Beschreibung findet Ihr hier: https://developers.meethue.com/documenta...ng-started
Nun kann man, mit dem API_KEY über API Seite der Bridge unter dem Link http://IP der Bridge/debug/clip
dort mit dem GET-Befehl http://IP der Bridge/api/eigener API Key/scenes sich alle Szenen aufgelistet lassen.
Die Szenen selber haben in der Auflistung neben dem Klarnamen eine etwas kryptische Bezeichnung, im folgenden als Beispiel: "d2GrHbaaaWhwEhY"
Über den PUT-Befehl http://IP der Bridge/api/eigener API Key/groups/d2GrHbaaaWhwEhY/action
mit dem Message-Body
{
"scene": "d2GrHbaaaWhwEhY"
}
Das Script in Zeile 3 und 4 entsprechend der eigenen Daten ändern (Bridge IP und API Key)
$bridge_ip = "10.1.1.1"
$api_key = "1234567890123456789012345678901234567890";
Nun das das php Script auf dem Webserver ablegen.
Ein "HTTP REQUEST Gerät" zB mit dem Namen "HUE Szenen" mit der URL: http://IP des Webservers/HueSceneRecall.php , Methode GET anlegen evtl mit dem Parameter "scene=VOIHnJOUeJyPkAH" zum Abruf der Liebligngsscene.
Bindet man nun dieses HTTP Gerät in Szenarien als Aktion ein, kann der Parameter auf die gewünschte Scene geändert werden.
Ich habe mir einfache Szenarien ( WENN Bedienoberfläche DANN HTTP Anfrage GET mit Parameter der gewünschten HUE Scene senden) angelegt mit denen die HUE Szenen direkt abrufen kann und natürlich "intelligente" Szenarien.
Dank nochmal an CooperCologne für die Beschreibung, die Links und die Scripterstellung!
Gruß aus Wesel!
Hier der php Code der Scriptdatei HueSceneRecall.php
PHP-Code:
<?php
$bridge_ip = "10.1.1.1";
$api_key = "1234567890123456789012345678901234567890";
if(!isset($_REQUEST['scene']) || $_REQUEST['scene']=='')
{ exit(); }
else
{ $scene = $_REQUEST['scene']; }
$url="http://" . $bridge_ip . "/api/" . $api_key . "/groups/" . $scene . "/action";
$datastr = json_encode(array("scene" => $scene));
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, $datastr);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($datastr)));
curl_setopt($curl, CURLOPT_URL, $url);
curl_exec($curl);
curl_close($curl);
?>
(06-05-2017, 11:21:40)smarthomeuser62 schrieb: Hallo, ist es möglich eine HUE Scene per http request zu aktivieren? Kann auch über ein php Script sein. In der Innogy UI ist es ja sehr aufwendig eine HUE Scene in einem Szenario als Aktion nachzubilden, zumindest wenn 5 Lampen in der Scene enthalten sind und diese noch unterschiedliche Einstellungen für Farbe, Sättigung und Helligkeit haben. Ginge ja noch, wenn man die aktuellen Werte der aktiven Scene sehen bzw "übernehmen" könnte. Wäre doch nett wenn man eine, in der HUE APP angelegte, Scene direkt abrufen könnte.
Jemand das schon realisiert oder einen Lösungsansatz?
Gruß aus Wesel!
(06-05-2017, 13:05:29)CooperCologne schrieb: Das ist machbar, ich habe es aber leider selber noch nicht weiter verfolgt. Die Szenen werden grundsätzlich auf der Bridge gespeichert.
Über die Seite: http://IP der Bridge/debug/clip.html kann man lokal Befehle austesten. So bekommt man dort mit dem GET-Befehl http://IP der Bridge/api/eigener API Key/scenes alle Szenen aufgelistet.
Die Szenen selber haben in der Auflistung neben dem Klarnamen eine etwas kryptische Bezeichnung, im folgenden als Beispiel: "d2GrHbaaaWhwEhY"
Über den PUT-Befehl http://IP der Bridge/api/eigener API Key/groups/d2GrHbaaaWhwEhY/action
mit dem Message-Body
{
"scene": "d2GrHbaaaWhwEhY"
}
kann man diese dann wieder aufrufen.
Theoretisch könnte man also alle Szenen per PHP z.B. in ein Array einlesen und per curl von der Bridge abrufen.
(06-05-2017, 13:15:32)CooperCologne schrieb: Auf die Schnelle ganz simpler PHP Code könnte so aussehen, ist aber nicht besonders flexibel...
PHP-Code:<?php
$url="http://BridgeIP/api/API-Key/groups/Scene-ID/action";
$datastr = json_encode(array("scene" => "Scene-ID"));
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, $datastr);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($datastr)));
curl_setopt($curl, CURLOPT_URL, $url);
curl_exec($curl);
curl_close($curl);
?>
Bridge IP, API-Key und Scene-ID wären zu ersetzen durch die eigenen Daten.
(06-05-2017, 17:05:32)smarthomeuser62 schrieb: Danke Dir CooperCologne! Es funktioniert!
Mein größtes Problem war, was ist der "API_Key" und wie bekommt man ihn?
Auf dieser Seite bin ich fündig geworden: https://developers.meethue.com/documenta...ng-started
Da ich der PHP Programmierung nicht mächtig bin, werde ich für jede wichtige Szene ein Script und ein HTTP-Gerät anlegen. Die nächste Ausbaustufe wäre ja ein php Script welches mit unterschiedlichen Parametern unterschiedliche Scenen abruft. Dann wäre das Handling einfacher.
Kann jemand so ein Script "teilen"?
Gruß aus Wesel!
(06-05-2017, 17:08:47)CooperCologne schrieb: Sorry, ich dachte das Developer Portal wäre bekannt
Spar dir das mit dem Anlegen von zig Geräten, ich bastel dir das gerade, dauert keine 10 Minuten.
(06-05-2017, 17:26:29)CooperCologne schrieb: So, anbei das erweiterte Script. In Zeile 3 und 4 entsprechend die Daten ändern (Bridge IP und API Key).
Das Script dann als HTTP Gerät einbinden und die URL zum Script hinterlegen. Beim Einbinden in Szenarien das ganze als Get Anfrage deklarieren und unter Parameter scene=scenecode (den kryptischen Szenennamen) angeben. Fertig!
1 Zentrale, 9 Heizkörperthermostate, 20 Zwischenstecker, 1 Fernbedienung, 10 Fenstersensoren, 4 Rauchmelder, 6 innen 1 außen Bewegungungsmelder, 6 UP Schalter, 1 Raumthermostat, 4 Wandsender, 2 Zwischenstecker dimmbar, Email/SMS/Astro/WOL/Ifttt/Netatmo/8 Hue, Power Control, 1 Funkrouter; unbenutzt:2 Zentralen Basic, 1 Zentrale Vollversion