Philips Hue-Status auslesen

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

Moderator: Co-Administratoren

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 » 12.10.2016, 16:02

das passt nicht mehr:

Code: Alles auswählen

string findthis = "{\"state\": {\"on\":true";
Phillips hat mit einen Update die Ausgabe verändert. Das Leerzeichen wurde entfernt.

Richtig sollte:

Code: Alles auswählen

string findthis = "{\"state\":{\"on\":true";
Bin mir derzeit aber nicht 100% sicher.

RicoA
Beiträge: 23
Registriert: 17.01.2016, 19:14

Re: Philips Hue-Status auslesen

Beitrag von RicoA » 12.10.2016, 16:41

Hallo Cash,
Cash hat geschrieben: Bin mir derzeit aber nicht 100% sicher.
Die Antwort war aber 100% richtig. Wenn nur alle Probleme so einfach zu lösen wären.

Viiiiielen Dank für die schnelle Hilfe.

Jetzt muss ich es nur noch schaffen, meinen Funk-Schaltkontakt zum Laufen zu bekommen.

Bis bald,
Rico

Shadowcat
Beiträge: 28
Registriert: 23.08.2014, 21:27

Re: Philips Hue-Status auslesen

Beitrag von Shadowcat » 29.11.2016, 09:48

Moin Moin,
wie andybau am 21.12.2014 und am 1.1.2015 schon anmerkte, wäre eine Step by Step- Anleitung nicht schlecht.
Ich habe mir am WE auch schon die Rübe zermartert, wie ich das zum Laufen kriege. Mir fehlt einfach der Faden, an dem ich mich lang hangeln kann.

Vielen Dank für eure Mithilfe ...

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 » 29.11.2016, 13:31

Wie weit bist Du denn?

Hast Du in der Hue Bridge schon Deinen User? Kannst Du den Status Deiner Lampen schon per http-Befehl im Browser abrufen? Hast Du schon cuxd installiert? Hast Du schon die tcl Scripte auf der ccu?

Es gibt hier unzählige Threads zum Thema Hue mit dessen Hilfe man es eigentlich schafft. Das schwierigste fand ich persönlich auf der Hue den Testuser anzulegen aber dazu gibt es ja bei Philips eine passende Anleitung.

Der derzeit vermutlich einfachste Weg könnte aber dieser hier werden:

http://homematic-forum.de/forum/viewtop ... &start=150

Dazu braucht man allerdings einen Raspi. Und derzeit halt noch im Anfangsstatium mit div. mögö. Fehlern.

Shadowcat
Beiträge: 28
Registriert: 23.08.2014, 21:27

Re: Philips Hue-Status auslesen

Beitrag von Shadowcat » 29.11.2016, 14:39

Meinen User?
Status auslesen über http funktioniert, denke ich.
Status:

Code: Alles auswählen

{"state":{"on":false,"bri":1,"hue":30000,"sat":0,"effect":"none","xy":[0.4350,0.4050],"alert":"lselect","colormode":"hs","reachable":true},"type":"Color light","name":"Iris","modelid":"LLC010","manufacturername":"Philips","uniqueid":"00:17:89:07:10:17:cb:8b-1b","swversion":"5.23.1.13452"}
CUxD (aktuell v. 1.8a) läuft seit Jahren und die Hue`s werden auch über CCU 2- Schaltaktoren bzw.. pocket control HM geschaltet.
Für die Statusmeldung werden da extra Scripte bzw.. tcl auf der CCU benötigt? Wenn ja, dann welche und wohin!?

Mein Raspi fungiert als Homebridge und Server, welcher für die verschiedenen Sprachmitteilungen der Sonos verantwortlich ist. Hat damit wohl schon reichlich zu tun.
Dieses Projekt wäre für PC HM noch ein nettes Featcher. Mittlerweile nutze ich von unterwegs meistens die Home.app bzw. Siri auf dem iPhone und zu Haus Neo.

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 » 29.11.2016, 15:11

Was genau willst du denn dann? Was meinst Du mit Status?

Nur an oder aus oder auch die anderen Paramter?

Hier mal ein kleiner Anfang als Code Schnipsel. Ich frage hier die Lampen 2 und 6 ab.

Code: Alles auswählen

! Version 1.3 vom 02.11.2016


! +++ Definition von Variablen +++	
var v;
string tmpB =  ':{\"state\":{';
string tmpD;
string tmpK;

              
! HUE Status abrufen
dom.GetObject("CUxD.CUX2801001:16.CMD_SETS").State("extra/curl -f http://IP-Adresse/api/User-ID/lights");
dom.GetObject("CUxD.CUX2801001:16.CMD_QUERY_RET").State(1);
var v = dom.GetObject("CUxD.CUX2801001:16.CMD_RETS").State();

! Separieren der einzelnen XML pro Light
string tmpK = v.StrValueByIndex(tmpB, 02);
string tmpD = v.StrValueByIndex(tmpB, 06);

if(tmpK.Substr(15, 5) == "false") {boolean tmpK = false;} else {boolean tmpK = true;} ! Lampe 2 (Iris1)
if(tmpD.Substr(15, 5) == "false") {boolean tmpD = false;} else {boolean tmpD = true;} ! Lampe 6 (Wohnzimmer Gartenlicht)


! Licht einschalten

if(!tmpD){dom.GetObject("CUxD.CUX2801001:16.CMD_EXEC").State("/usr/local/addons/hue/hue.tcl 6 true 156 252 9259 10 ");
          }



mittels:

Code: Alles auswählen

tmpK.Substr(15, 5)
kannst Du z. B. den Status abfragen. Du musst also einfach etwas zählen und erweitern. Ich selbe schalte zwar meine Hue Lampen automatisiert per Homemtaic aber alles weitere läuft über die Hue App bzw meistens über Sprache oder schalter.

fini
Beiträge: 34
Registriert: 28.11.2016, 09:00

Re: Philips Hue-Status auslesen

Beitrag von fini » 16.12.2016, 10:30

moin,

wie und wo muss ich was anlegen bzw. eintragen um status zu erhalten.

1, systemvariabel angelegt
Name: Hue1
Variablentyp: Logikwert?

2. wie führe ich das script aus, über programme?
wenn ja, was muss ich da einstellen?

also ich habe schon eine systemvariabel angelegt und das scipt von seite1 in programm eingetragen
und von hand ausgeführt. die systemvariabel gibt aber nur false aus obwohl die lampe an ist.

vielleicht kann ja einer mal ein schritt für schritt anleitung hier schreiben?

fini

Accuracy
Beiträge: 746
Registriert: 22.05.2013, 16:37
Hat sich bedankt: 1 Mal

Re: Philips Hue-Status auslesen

Beitrag von Accuracy » 02.01.2017, 14:16

Hi Cash,
danke für das Script.
Da ich nicht so der HM Script Experte bin ein paar Nachfragen:

Was ist die Bedeutung hinter den Namen der Variablen D bzw. K in tmpD bzw. tmpK.
Was macht die Variable v?

Ich habe den String: http://192.168.1.45/api/API/lights in meinem Browser direkt mal abgefeuert und bekommen alles zurück geliefert.
Ich habe die Lampen 9 & 10 einmal geschaltet und sehe, dass sich der Status tatsächlich von False auf True ändert:
"10":{"state":{"on":true

Was mir nicht gelungen ist, den Status per Script Executor und einem WriteLine Statement auszugeben z.B. via:
WriteLine(tmpD);

hier bekomme ich immer TRUE zurück - auch wenn die Lampe ausgeschalten ist.
(Wie gesagt ich habe 10 Lampen im Einsatz.)

Kannst Du mir noch einmal etwas unter die Arme greifen?

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 » 07.01.2017, 09:57

Hallo zusammen,

ich verfolge den Thread schon länger mit Interesse und habe das Skript zum Auslesen des Status nun bei mir integriert. Vielen Dank an dieser Stelle an cash für seine Vorarbeit!

Jedoch habe ich ein Problem:
Ich schalte meine Hue-Lampe eigentlich immer über einen Homematic 103029 Funk-Schaltaktor für Markenschalter (1fach). Das bedeutet, dass wenn ich die Lampe über den Schalter ausschalte, ist die Lampe zwar aus (klar), der Status "true" aber immer noch an der Bridge anliegt.
Schalte ich die Lampe über den Hue-Dimmer-Schalter, wechselt der Status immer brav von "true" auf "fale" (je nach Schaltzustand).

Jetzt habe ich gesehen, dass ich als Status auch "reachable" verwenden kann. Hier ändert sich der Status beim Betätigen des Lichtschalters von "true" auf "false".

Lampe ein:

Code: Alles auswählen

{"state":{"on":true,"bri":254,"alert":"none","reachable":true},"type":"Dimmable light","name":"Hue white lamp 1","modelid":"LWB006","manufacturername":"Philips","uniqueid":"00:17:88:01:10:50:cf:02-0b","swversion":"5.38.1.15095"}
Lampe aus:

Code: Alles auswählen

{"state":{"on":true,"bri":254,"alert":"none","reachable":false},"type":"Dimmable light","name":"Hue white lamp 1","modelid":"LWB006","manufacturername":"Philips","uniqueid":"00:17:88:01:10:50:cf:02-0b","swversion":"5.38.1.15095"}
Jetzt dachte ich mir, dass es ja einfach wäre, anstatt auf "on" jetzt auf "reachable" zu prüfen. Das resultiert nun aber immer in einem "false". Egal, ob die Lampe an oder aus ist.
Anbei mein Skript:

Code: Alles auswählen

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.51/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\":{\"reachable\":true";
    if ( v.Find(findthis) >= 0 )
    {
       dom.GetObject("SV_Hue EG").State(true);
       WriteLine("True"); 
   }
    else
    {
      dom.GetObject("SV_Hue EG").State(false);
      WriteLine("False");
    }
Wieso erhalte ich bei leuchtender Lampe nicht den Status / die Ausgabe "true"?
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 » 07.01.2017, 10:43

Mahlzeit,

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. Den bri Wert musst Du nicht unbedingt setzen. Das hat den Effekt, das die Lampe beim nächsten Ein schalten auf die gleiche Helligkeit geht auf der sie vor dem Ausschalten war.

Der Datenpunkt reachable hat nichts damit zu tun. Der gibt an, ob die Bridge die Lampe via ZigBee erreichen kann.

Antworten

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