Philips Hue-Status auslesen

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

Benutzeravatar
robson
Beiträge: 99
Registriert: 08.06.2016, 19:26
Wohnort: Ruhrpott
Hat sich bedankt: 4 Mal
Danksagung erhalten: 3 Mal

Re: Philips Hue-Status auslesen

Beitrag von robson » 08.01.2017, 14:24

Hi,

danke für deine Antwort.
thkl hat geschrieben:die Hue Lampen haben den Datenpunkt on (true|false) um generell ein oder aus geschalten zu werden.
Dazu kommt dann der Datenpunkt bri (0|254) für die Helligkeit.

Wenn Du also eine Lampe ein schalten möchtest musst Du on auf true und bri auf die gewünschte Helligkeit setzen.
Möchtest Du sie ausschalten dann true auf false.
Das funktioniert ja auch bei mir soweit. Betätige ich aber den Lichtschalter, so wird die Lampe vom Stromkreis getrennt. Das Licht ist aus, die Bridge meldet jedoch noch "on=true".
thkl hat geschrieben:Der Datenpunkt reachable hat nichts damit zu tun. Der gibt an, ob die Bridge die Lampe via ZigBee erreichen kann.
Das ist eigentlich genau das, was ich haben möchte: die Lampe ist aus, kann nicht mehr erreicht werden. Also "reachable=false". Schalte ich die Lampe wieder ein, es liegt also wieder Spannung an, so ist der Status "reachable=true".

Leider funktioniert das oben beschriebene Skript so nicht. Ich habe lediglich Datenpunkt "on" mit "reachable" getauscht. Bei Ausführung wird mir jedes Mal "reachable=false" ausgegeben. Auch wenn die Lampe an ist.
Raspberry Pi 3 RaspberryMatic, Raspberry Pi 3 als HMLGW

Benutzeravatar
thkl
Beiträge: 2765
Registriert: 15.07.2013, 13:32
Wohnort: dickes B
Danksagung erhalten: 5 Mal

Re: Philips Hue-Status auslesen

Beitrag von thkl » 08.01.2017, 14:30

robson hat geschrieben: Leider funktioniert das oben beschriebene Skript so nicht. Ich habe lediglich Datenpunkt "on" mit "reachable" getauscht. Bei Ausführung wird mir jedes Mal "reachable=false" ausgegeben. Auch wenn die Lampe an ist.
Kann auch nicht.

Code: Alles auswählen

 string findthis = "{\"state\":{\"reachable\":true";
tritt ja nicht auf im String

Code: Alles auswählen

 string findthis = "{\"reachable\":false";
könnte funktionieren

Benutzeravatar
robson
Beiträge: 99
Registriert: 08.06.2016, 19:26
Wohnort: Ruhrpott
Hat sich bedankt: 4 Mal
Danksagung erhalten: 3 Mal

Re: Philips Hue-Status auslesen

Beitrag von robson » 08.01.2017, 15:40

thkl hat geschrieben:
robson hat geschrieben: Leider funktioniert das oben beschriebene Skript so nicht. Ich habe lediglich Datenpunkt "on" mit "reachable" getauscht. Bei Ausführung wird mir jedes Mal "reachable=false" ausgegeben. Auch wenn die Lampe an ist.
Kann auch nicht.

Code: Alles auswählen

 string findthis = "{\"state\":{\"reachable\":true";
tritt ja nicht auf im String

Code: Alles auswählen

 string findthis = "{\"reachable\":false";
könnte funktionieren
Aber laut API-Ausgabe, sollte "reachable" doch auch über "state" ansprechbar sein:

Code: Alles auswählen

{"state":{"on":true,"bri":254,"alert":"none","reachable":true}....
Aber auch mit deienm Vorschlag erhalte ich leider immer nur false, obwohl bei erneuter Abfrage über einen Browser "reachable" fleißig von "true" auf "false" und umgekehrt springt.
Raspberry Pi 3 RaspberryMatic, Raspberry Pi 3 als HMLGW

Benutzeravatar
thkl
Beiträge: 2765
Registriert: 15.07.2013, 13:32
Wohnort: dickes B
Danksagung erhalten: 5 Mal

Re: Philips Hue-Status auslesen

Beitrag von thkl » 08.01.2017, 16:51

ops

Code: Alles auswählen

string findthis = "\"reachable\":false";

Benutzeravatar
robson
Beiträge: 99
Registriert: 08.06.2016, 19:26
Wohnort: Ruhrpott
Hat sich bedankt: 4 Mal
Danksagung erhalten: 3 Mal

Re: Philips Hue-Status auslesen

Beitrag von robson » 09.01.2017, 20:27

thkl hat geschrieben:ops

Code: Alles auswählen

string findthis = "\"reachable\":false";
Das scheint zu funktionieren. Danke dir!
Da die Bridge wohl nicht permanent abfragt, ob die Lampen erreichbar sind, ändert sich der Zustand erst nach ein paar Sekunden.
Raspberry Pi 3 RaspberryMatic, Raspberry Pi 3 als HMLGW

tobse
Beiträge: 1
Registriert: 27.08.2017, 00:06

Re: Philips Hue-Status auslesen

Beitrag von tobse » 27.08.2017, 00:13

Hallo Leute,

bei mir will das mit dem Status setzen einfach nicht funktionieren. Ich habe sowohl

Code: Alles auswählen

! Philip Hue API
! 
! LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -f http://192.123.4.567/api/newdeveloper/lights/1

dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -f http://192.168.178.63/api/newdeveloper/lights/1");

dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
var v = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();

string findthis = "{\"state\":{\"on\":true";
if ( v.Find(findthis) >= 0 ) {
   dom.GetObject("Licht.Zustand").State(true);
WriteLine("RICHTIG");
} else {
  dom.GetObject("Licht.Zustand").State(false);
WriteLine("FALSCH");
}
}

als auch

Code: Alles auswählen

! Philip Hue API
! 
! LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -f http://192.123.4.567/api/newdeveloper/lights/1

dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -f http://192.168.178.63/api/newdeveloper/lights/1");

dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
var v = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();

string findthis = "\"reachable\":false";
if ( v.Find(findthis) >= 0 ) {
   dom.GetObject("LichtZustand").State(true);
WriteLine("RICHTIG");
} else {
  dom.GetObject("LichtZustand").State(false);
WriteLine("FALSCH");
}
}

getestet.

Die beiden WriteLine Zeilen sind für mich um zu sehen was passiert.

Beides leider ohne Erfolg, ich bekomme immer false angezeigt. Durch rumfrickeln habe ich rausgefunden, dass der Wert des Zustands der Lampen immer -1 ist.

Wie könnte ich weiter vorgehen?

Vielen Dank 8)

Cash
Beiträge: 1184
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Philips Hue-Status auslesen

Beitrag von Cash » 05.09.2017, 08:19

was passiert denn wenn Du im Browser Hue abfragst?

Code: Alles auswählen

http://IPADRESSE/api/HUE-USER/lights

buggyracer79
Beiträge: 66
Registriert: 06.08.2015, 15:53

Re: Philips Hue-Status auslesen

Beitrag von buggyracer79 » 03.03.2018, 16:07

Hallo,
also irgendwie klappt es nicht....

Code: Alles auswählen

! Philip Hue API
!
! LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -f http://192.168.178.33/api/8XYxPv8RUvRPSW8D3wdYUr6NCJ7-24rur4rRiB4w/lights/22
 
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -f http://192.168.178.33/api/8XYxPv8RUvRPSW8D3wdYUr6NCJ7-24rur4rRiB4w/lights/22");
 
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
var v = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
 
string findthis = "{\"state\":{\"on\":true";
if ( v.Find(findthis) >= 0 )
{
   dom.GetObject("Hue22").State("/bin/tclsh /usr/local/addons/hue/ol_off.tcl");
}
else
{
  dom.GetObject("Hue22").State("/bin/tclsh /usr/local/addons/hue/ol_on.tcl");
}
Die Variable heißt natürlich "Hue22"

Wenn ich

Code: Alles auswählen

http://192.168.178.33/api/8XYxPv8RUvRPSW8D3wdYUr6NCJ7-24rur4rRiB4w/lights/22
eingebe, bekomme ich folgende Antwort:

Code: Alles auswählen

{
	"state": {
		"on": true,
		"bri": 203,
		"ct": 400,
		"alert": "none",
		"colormode": "ct",
		"mode": "homeautomation",
		"reachable": true
	},
	"swupdate": {
		"state": "notupdatable",
		"lastinstall": null
	},
	"type": "Color temperature light",
	"name": "Tischleuchte",
	"modelid": "TRADFRI bulb E14 WS opal 400lm",
	"manufacturername": "IKEA of Sweden",
	"capabilities": {
		"certified": false,
		"streaming": {
			"renderer": false,
			"proxy": false
		}
	},
	"uniqueid": "00:0b:57:ff:fe:b1:1c:0d-01",
	"swversion": "1.2.217"
}
Ausgeführt wird alle 15 Sekunden per Programmbefehl

christian10119
Beiträge: 17
Registriert: 27.11.2018, 17:14
Hat sich bedankt: 4 Mal
Kontaktdaten:

Re: Philips Hue-Status auslesen

Beitrag von christian10119 » 11.12.2018, 16:01

Ist es denn überhaupt möglich, den Schaltzustand der Philips Hue Lampen auszulesen?

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“