Seite 1 von 3

Philips Hue-Status auslesen

Verfasst: 03.04.2014, 22:14
von Nine
Hallo zusammen

Die Philips Hue-Lampen mittels HM zu schalten funktioniert bei mir recht gut. Leider erhält HM mit dem aktuell im Umlauf befindlichen hue-scripten keine Rückmeldung über den Zustand der Lampen (weshalb man nicht kontrollieren kann, ob alle Lampen den Einschalt-Befehl erhalten und ausgeführt haben).

Da man alle Lampen via URL abfragen kann (z.B. http://192.168.1.20/api/newdeveloper/lights/7) und als Rückmeldung ein JSON mit diversen Infos erhält:

Code: Alles auswählen

{
  "state": {
    "on": false,
    "bri": 1,
    "hue": 14884,
    "sat": 235,
    "xy": [0.5099, 0.4315],
    "ct": 463,
    "alert": "none",
    "effect": "none",
    "colormode": "xy",
    "reachable": true
  },
  "type": "Extended color light",
  "name": "Hue Lamp 5",
  "modelid": "LCT001",
  "swversion": "66009663",
  "pointsymbol": {
    "1": "none",
    "2": "none",
    "3": "none",
    "4": "none",
    "5": "none",
    "6": "none",
    "7": "none",
    "8": "none"
  }
}
wären alle Infos, die ich benötige eigentlich vorhanden.

Wie kann ich auf diese Infos aus einem HM-Script (oder alternativ aus einem TCL) zugreifen? :roll:

Mittels dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null 'URL'"); kriege ich ja leider keine Rückmeldung...

Gruss, Nine

Re: Philips Hue-Status auslesen

Verfasst: 16.04.2014, 21:48
von Christian61
Hallo,
vielleicht hilft es, bei mir geht's mit dem Script... ( ist nicht von mir )
mit CUXD und curl
Objektname und IP Adresse anpassen...
die Systemvariable Hue1 muss angelegt sein... oder alternativ im Script weglassen und an dieser Stelle eigenen Code einfügen

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.123.4.567/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("Hue1").State(true);
}
else
{
  dom.GetObject("Hue1").State(false);
}


Re: Philips Hue-Status auslesen

Verfasst: 17.04.2014, 06:58
von Nine
Ahh super, funktionier prima!

Danke :!:

Re: Philips Hue-Status auslesen

Verfasst: 26.08.2014, 23:35
von Juljo
Jemand ein Tipp wie ich das auf der CCU1 einbinde?

Code funktioniert so nicht...

Danke
Juljo

Re: Philips Hue-Status auslesen

Verfasst: 21.12.2014, 09:28
von andybau
Hallo.... würde ein wenig Hilfe benötigen dieses Script einzubinden.
Meine Hue's kann ich bereits mit Homematic steuern.... dass habe ich mit den hier im Forum erhältlichen Scripten / Anleitungen hinbekommen.

Nun würde ich sehr gerne auch den Status abfragen können und angezeigt bekommen.

Könnte ich kleine Step by Step Anleitung/Beschreibung bekommen?

Re: Philips Hue-Status auslesen

Verfasst: 01.01.2015, 13:52
von andybau
Frohes neues Jahr wünsche ich

ich habs noch nicht geschafft es ans Laufen zu bringen.
Alles wie beschrieben ausgeführt, aber der Status der Systemvariable Hue1 ändert sich nicht

Re: Philips Hue-Status auslesen

Verfasst: 25.03.2015, 19:13
von Juljo
Geht das Skript nur mit der CCU2?

Re: Philips Hue-Status auslesen

Verfasst: 03.09.2015, 14:19
von helmi74
In welchem Zeitintervall rufst du das Script denn auf? Oder wie startest du es??

Re: Philips Hue-Status auslesen

Verfasst: 20.02.2016, 18:25
von leerzeichen
Weiss jemand wie man die vorhandenen Informationen
"bri": 1,
"hue": 14884,
"sat": 235,
suchen und dann z.B. in einer resp. jeweils einer Systemvariable speichern kann?

Ich schalte meine HUEs nach 20 Minuten aus, wenn der Bewegungsmelder keine Bewegungen mehr erkennt, möchte allerdings verhinden, dass sie ausgeschalten werden, wenn eine bestimmte Farbe eingestellt ist.

Wäre super wenn jemand eine Lösung für die Frage hätte :)

@helmi74
Ich aktualisiere den Status EIN/AUS alle 3 Minuten und habe bis anhin noch keine Probleme damit gehabt.
Welches Intervall verwendest du?

Re: Philips Hue-Status auslesen

Verfasst: 12.10.2016, 15:06
von RicoA
Hallo Gemeinde,

ich möchte diesen Thread gerne noch einmal aufgreifen:

Bei mir ist obiges Skript in Benutzung. Die Abfrage des Status klappt aber nicht.
Das angesprochene Licht wird eingeschaltet, wenn in der if-Abfrage ein ">=" steht. Es kann aber nur abgeschaltet werden, wenn dort "<=" steht. Die Ansprache der Lampe funktioniert also. Aber die Abfrage meldet nicht den aktuellen Status zurück.

Hier mein Code:

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/zmJsjdFwBzV1UHTB0HdxPpqGBeDeg254dMdjekLU/lights/2
 
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/zmJsjdFwBzV1UHTB0HdxPpqGBeDeg254dMdjekLU/lights/2");
 
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("CUxD.CUX2801001:1.CMD_EXEC").State("/bin/tclsh /usr/local/addons/hue/ol_off.tcl");
}
else
{
  dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/bin/tclsh /usr/local/addons/hue/ol_on.tcl");
}
Hat einer von Euch eine Idee, was ich falsch mache?

Bis bald,
Rico