Moin…
… ich mach dann mal den Startschuss was die hue Led’s von Phillips angeht.
Was wird benötigt?
- Die IP-Adresse der hue-Bridge. Die zu bekommen sollte jeder alleine schaffen!
- Diese paar Zeilen im Skript zum erstellen eines Users und einer Device um einen API-Key zu bekommen.
Los geht’s…
Neues Skript erstellen und Skript aus diesem Post einfügen.
Benutzername eingeben (Name eigentlich egal… er wird später nicht mehr benötigt, da aus dem Namen ein „KEY“ generiert wird.
Devicenamen eingeben unter der „IPS“ in der Bridge registriert werden soll. Der Name wird später nicht mehr benötig, hilft aber beim wiederfinden des KEYS auf der Übersichtsseite der Bridge.
Skript ausführen und innerhalb 10 Sek. den Button auf der Bridge drücken!!
Nach den 10 Sekunden sollte folgende Rückmeldung kommen:
{"success":{"username":"e1229bab1c271d1f1796cb0c52ab9933"}}
Achtung: Der Key oben ist nur ein Beispiel!!
Euren KEY kopieren, notieren oder merken! ( WICHTIG!! ).
Sollte irgendwas mit ‚error‘ als Rückmeldung kommen, einfach noch einmal probieren!
Nächster Step: API-KEY prüfen.
Im Browser folgendes einfügen um den Key zu checken:
http://IP der BRIDGE/api/DEIN KEY/ und enter…
Dann solltet Ihr eine Antwort mit diversen Daten Eurer Bridge etc. bekommen.
D.h. der Key funzt und der Spass kann beginnen !!
Das hier ist ein 1. Wurf der Funktioniert! Es ist nicht das schönste Skript, aber darauf kann aufgebaut werden.
<?
/*
PhilIPS hue LED User und Device Registierung
Ersteller: peterchrisben
Datum: 08.02.2013
Version: 0.1
*/
$bridge_ip = 'xxx.xxx.xxx.xxx'; // Hier die IP der Bridge eintragen
$username = 'HansiHinterseher'; // Hier einen Benutzername eintragen...
$devicename = 'PhilIPShue'; // ... oder IPS API etc.
function setUsername($username)
{
// Hash username if not already in hash format
if (!preg_match('/[a-f0-9]{32}/i', $username)) {
$username = md5($username);
}
return $username;
}
$json_url = 'http://'.$bridge_ip.'/api';
// $json_string = '{"transitiontime":10,"xy":['.(rand(1,900)/1000).','.(rand(1,900)/1000).'],"bri":'.rand(1,255).',"ct":'.rand(1,400).'}';
// $json_string = '{"on":false}';
//$json_string = '{"on":true, "bri": 150}';
$json_string = '{"username": "'.setUsername($username).'", "devicetype": "IPS API"}';
$ch = curl_init( $json_url );
// Configuring curl options
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST', // -X
CURLOPT_HTTPHEADER => array('Content-type: application/json') ,
CURLOPT_POSTFIELDS => $json_string
);
sleep(10);
// Setting curl options
curl_setopt_array( $ch, $options );
// Getting results
$result = curl_exec($ch);
print $result."
";
?>