NEWS
Hue adapter
-
Mit alle Datenpunkte meinte ich nur die Farben usw., die gibt es bei Lux nämlich sonst nicht.
Mit dem nur schreiben hast du recht. Allerdings kann man dann keine klassischen an/aus buttons nutzen sondern müsste einen Knopf für Gruppe an und einen für Gruppe aus bauen, da ja kein aktueller Status definiert ist.
-
Ich hatte gestern Abend noch gesehen, dass sich beim hue Adapter etwas getan hat Version: 0.3.0
Direkt installiert… Mit der Version habe ich aber leider folgendes Problem:
Ich setze über ein Script die hue Standardwerte, die eine Lampe auch hat, wenn man Sie über einen Schalter einschaltet.
`setState(hueLichter[i] + ".hue", 14922); setState(hueLichter[i] + ".sat", 144); setState(hueLichter[i] + ".effect", "none"); setState(hueLichter[i] + ".alert", "none"); if(isTimeInRange('23:00:00', '05:00:00')) { // Nachts mit verringerter Helligkeit setState(hueLichter[i] + ".bri", 100); } else { setState(hueLichter[i] + ".bri", 254); // Tagsüber mit voller Helligkeit }` Mit der neuen hue Adapter Version 0.3.0 bekommen damit die Lampen nicht Ihre Standardeinschaltfarbe, sondern werden rosa. Im Log sieht das wie folgt aus (Mehrfacheinträge, wg. mehrere Lampen entfernt): `~~[code]~~hue-0 2015-07-26 07:44:00 error error: Api Error: Internal error, 404 hue-0 2015-07-26 07:44:00 error error: Api Error: Internal error, 404 hue-0 2015-07-26 07:44:00 error error: Api Error: Internal error, 404 hue-0 2015-07-26 07:43:59 info final lightState: {"bri":254,"on":true} hue-0 2015-07-26 07:43:59 info final lightState: {"bri":254,"on":true,"alert":"none"} hue-0 2015-07-26 07:43:59 info final lightState: {"bri":254,"on":true,"effect":"none"} hue-0 2015-07-26 07:43:59 info final lightState: {"bri":254,"on":true,"hue":14922,"sat":144,"colormode":"hs"} hue-0 2015-07-26 07:43:59 info final lightState: {"bri":254,"on":true} hm-rpc-0 2015-07-26 07:43:59 info setValue ["GEQ0132484:1","STATE",true] BOOL javascript-0 2015-07-26 07:43:59 info script.js.LOGIK_Gästebad: hue Standard gesetzt [/code]` Info: Dann hatte ich noch die alten Objekte mit den Leerzeichen im Namen. Die wurden bei der Deinstallation des alten Adapters nicht gelöscht. Diese Objekte habe ich dann alle händisch gelöscht. [EDIT]: der 404 kommt nicht bei jeder Änderung. Dann noch ein paar gesammelte Fehlermeldungen aus dem Log, wenn der Adapter ein paar Minuten läuft (Meldungen dazwischen gelöscht): `~~[code]~~hue-0 2015-07-26 08:06:44 error error: Api Error: Internal error, 404 hue-0 2015-07-26 08:05:26 error error: Api Error: invalid/missing parameters in body hue-0 2015-07-26 08:05:25 error error: Api Error: invalid/missing parameters in body hue-0 2015-07-26 08:05:24 error Cannot get result for lightStatus13 hue-0 2015-07-26 08:05:24 error Error: ETIMEDOUT hue-0 2015-07-26 08:05:22 error error: Error: read ECONNRESET hue-0 2015-07-26 08:05:12 error error: Api Error: invalid/missing parameters in body hue-0 2015-07-26 08:05:11 error error: Error: read ECONNRESET [/code]`[/i][/i][/i][/i][/i][/i]
-
gehen die Lampen normalerweise nicht in den ct Modus mit 2700k (ct=369) ? Ich checke das später nochmal.
Dass die alten nicht gelöscht werden ist mir auch aufgefallen, da habe ich noch nichts verändert, das hat aber nichts mit den Leerzeichen zu tun sondern ist ganz allgemein ein Problem bei dem Adapter.
-
Ich habe das so verstanden, dass man drei Möglichkeiten hat die Lampen anzusteuern:
Mit folgenden Standardwerten:
1.) XY: [0.4595,0.4105]
2.) CT: 369
3.) hue: 14922 & sat: 144
Aus der hue API habe ich folgendes entnommen. Es macht immer nur Sinn die Datenpunkte einer der Varianten zu setzen.
Werden mehrere Datenpunkte bei einem Kommando vermischt (was ja in ioBroker nicht funktionieren würde, da diese nacheinander abgearbeitet werden), ist die Priorität:
1.) XY -> 2.) CT -> 3.) hue, sat
Ich hatte mich in meinem Script für Variante 3.) (auch für die Anpassungen im weiterem Verlauf des Scriptes) entschieden, da mir 1.) zu kompliziert ist und 2.) nicht die Farbanpassungen zulässt.
-
Noch ein Nachtrag. Vielleicht hilft es ja.
Vor dem Update stand beim Datenpunkt "colormode" immer "ct". Seit dem Update steht dort "hs".
Ich bin immer noch total begeistert, dass sich bei dem Adapter was tut. Hatte das Thema hue in Verbindung mit ioBroker schon fast aufgegeben gehabt. Danke dafür noch einmal !
[EDIT] Wenn ich einfach mal einen Wunsch platzieren darf. Beim Log wäre es schön, wenn die Lampennummer bei der Info "final lightState:" noch mit angezeigt würde. ich schalte mehrere Lampen auf einmal und habe dann zigmal einen identischen Logeintrag. Schön wäre auch, wenn man die Ausgabe über ein Flag im Webadmin steuern kann. Das Log ist sonst recht schnell mit Statusmeldungen geflutet
-
habe den Fehler gefunden, beim ändern von sat wurde hue auch auf den sat wert geändert.
-
Super!! Danke, danke
Kann ich das über npm updaten?
-
` > ````
hue-0 2015-07-26 08:06:44 error error: Api Error: Internal error, 404
hue-0 2015-07-26 08:05:26 error error: Api Error: invalid/missing parameters in body
hue-0 2015-07-26 08:05:25 error error: Api Error: invalid/missing parameters in body
hue-0 2015-07-26 08:05:24 error Cannot get result for lightStatus13
hue-0 2015-07-26 08:05:24 error Error: ETIMEDOUT
hue-0 2015-07-26 08:05:22 error error: Error: read ECONNRESET
hue-0 2015-07-26 08:05:12 error error: Api Error: invalid/missing parameters in body
hue-0 2015-07-26 08:05:11 error error: Error: read ECONNRESET```` `
Das sieht für mich so aus als wäre die Verbindung zur Bridge nicht stabil, ich hatte zumindest bisher keinen dieser Fehler. Ich werde mal meine Logs beobachten. -
Super!! Danke, danke
Kann ich das über npm updaten? `
Die kannst wieder von hier updaten:
https://github.com/Pmant/ioBroker.hue/
Ich warte mal ab ob bei dir alles geht jetzt, dann mache ich später einen Pull request für die neue Version.
-
Die kannst wieder von hier updaten:
https://github.com/Pmant/ioBroker.hue/
Ich warte mal ab ob bei dir alles geht jetzt, dann mache ich später einen Pull request für die neue Version. `
Sieht gut aus
hue/sat funktioniert wieder trotz immer wieder auftauchenden 404er :mrgreen:
-
Eine Sache ist mir noch aufgefallen. Leider bekomme ich sie nicht reproduziert.
Ich hatte folgende Werte gesetzt:
`setState(gruppe[i] + ".hue", 14922); setState(gruppe[i] + ".sat", 144); setState(gruppe[i] + ".effect", "none"); setState(gruppe[i] + ".alert", "none");` Die Lampe ging vom Zustand aus immer an und dann direktt wieder aus. Siehe erste Zeile vom Log: `~~[code]~~hue-0 2015-07-26 14:22:54 info final lightState: {"bri":0,"on":false,"alert":"none"} hue-0 2015-07-26 14:22:54 info final lightState: {"bri":254,"on":true,"effect":"none"} hue-0 2015-07-26 14:22:54 info final lightState: {"bri":254,"on":true,"hue":14922,"sat":144,"colormode":"hs"} hue-0 2015-07-26 14:22:54 info final lightState: {"bri":254,"on":true,"hue":14922,"sat":144,"colormode":"hs"} javascript-0 2015-07-26 14:22:54 info script.js.FUNKTIONEN_hue: registered 0 subscriptions and 0 schedules [/code]` Dann habe ich" effek ct" und "alert" auskommentiert und die Lampe blieb an. Dann wieder hinzugenommen... und die Lampe bleibt weiterhin an. :? Ich denke, dass es da noch einen Bug gibt. Ich kann ihn allerdings nicht mehr greifen.[/i][/i][/i][/i]
-
Das hatte ich auch noch nicht, ich nutze effect und alert allerdings auch nicht.
EDIT:
ich glaube ich habe den Fehler gefunden, der müsste auftreten, wenn man effect auf none setzt während die Lampe aus ist.
habe die Änderung auf github gepusht.
-
Danke! Du bist ja schneller als die Feuerwehr.
-
Ich sehe noch keinen Pullrequest
-
Hier bin ich noch auf einen Fehler gestossen. Der Auslöser dürfte ggf. bei mir gelegen haben. Aber vielleicht kann man das im Adapter abfangen.
host-iobroker 2015-07-26 16:58:02 error instance system.adapter.hue.0 terminated with code 6 (uncaught exception) hue-0 2015-07-26 16:58:02 info terminating TypeError: 2015-07-26 16:58:01 error at Decoder.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:134:20) TypeError: 2015-07-26 16:58:01 error at Decoder. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15) TypeError: 2015-07-26 16:58:01 error at Manager.ondecoded (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:301:8) TypeError: 2015-07-26 16:58:01 error at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:134:20) TypeError: 2015-07-26 16:58:01 error at Manager. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15) TypeError: 2015-07-26 16:58:01 error at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:220:12) TypeError: 2015-07-26 16:58:01 error at Socket.onack (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:295:6) TypeError: 2015-07-26 16:58:01 error at Socket. (/opt/iobroker/node_modules/iobroker.js-controller/lib/statesInMemClient.js:151:27) TypeError: 2015-07-26 16:58:01 error at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2331:60 TypeError: 2015-07-26 16:58:01 error at /opt/iobroker/node_modules/iobroker.hue/hue.js:108:28 TypeError: 2015-07-26 16:58:01 error Object 0.2126,0.0799 has no method 'split' uncaught 2015-07-26 16:58:01 error exception: Object 0.2126,0.0799 has no method 'split'
-
Der Fehler liegt schon im Adapter denk ich, das direkte ändern von xy funktioniert noch nicht richtig. Das muss ich mir die Tage nochmal in ruhe angucken. Im Moment versuche ich vis wieder ans laufen zu bekommen
-
Eine Anmerkung noch.
Du hattest eingestellt, dass bei Änderung der Farbe die Lampe auch auf "on" und voller Helligkeit geschaltet wird.
Die Idee ist gut
Und ein zweischneidiges Schwert…
Wenn eine Lampe z.B. im Zustand blau ausgeschaltet wurde, kann man so die neue Farbe (z.B. weiß) nicht vorher setzen und dann erst einschalten. Zu mindestens bei mir im Test verhielt sich das wie folgt:
-
Lampe im Zustand blau ausgeschaltet
-
Lampenfarbe auf weiß gesetzt
-
Lampe geht an, blitz kurz mit der alten Farbe blau auf und geht dann auf weiß
Ist nur ein Schönheitsfehler...
Könnte man nicht einen zusätzlichen Datenpunkt aufmachen, an dem man "ganze Kommandos" schicken kann, wie z.b.:
{"hue":14000, "sat":170, "on":"true", "bri":200}
Die dann in einem Kommando vom Adapter an die Bridge übergeben werden.
Die hue Schnittstelle verarbeitet das doch genau so, oder?
Am Beispiel für ein Kommando an eine Gruppe:
Address http://<bridge ip/address="">/api/<username>/groups/0/action Body {"on":true,"bri":255,"sat":255,"hue":0} Method PUT</username></bridge>
-
-
Der Adapter nutzt die hue-node-api. Was im Log am Ende als final ausgegeben wird ist genau das, was in einem Schritt an die node-api übergeben wird. Wie genau diese das an Hue weiterleitet kann ich nicht sagen, das müsste man mal sniffen. Auf jeden Fall lässt die node-api nicht zu, dass man Farben überhaupt ändert während eine Lampe aus ist, deswegen habe ich es so umgesetzt, dass dann immer on=true mit übergeben wird.
Du könntest natürlich in deinem Skript und beim ausschalten auf weiß wechseln. Hast du mal geguckt wie es ist wenn man von der offiziellen Hue App von Blau auf aus auf weiß schaltet?
-
Ob da jetzt was blitzt oder nicht, stört mich persönlich nicht unbedingt.
Das zu klären finde ich schon interessant
Der Adapter nutzt die hue-node-api. Was im Log am Ende als final ausgegeben wird ist genau das, was in einem Schritt an die node-api übergeben wird. Wie genau diese das an Hue weiterleitet kann ich nicht sagen, das müsste man mal sniffen. Auf jeden Fall lässt die node-api nicht zu, dass man Farben überhaupt ändert während eine Lampe aus ist, deswegen habe ich es so umgesetzt, dass dann immer on=true mit übergeben wird.
Du könntest natürlich in deinem Skript und beim ausschalten auf weiß wechseln. Hast du mal geguckt wie es ist wenn man von der offiziellen Hue App von Blau auf aus auf weiß schaltet? `
Wenn ich in der hue App am iPad eine Szene ausschalte und eine nächste Szene einschalte, dann wird auf diese Szene schnell aufgeblendet, ohne dass da etwas aufblitzt.
Der Adapter nutzt die hue-node-api. Was im Log am Ende als final ausgegeben wird ist genau das, was in einem Schritt an die node-api übergeben wird. `
Das verstehe ich nicht.
Ich kann in ioBroker immer nur einen Datenpunkt nacheinander ändern. D.h., für ein Kommando, z.B: hue:14000, sat:100, bri:100 muss der Adapter statt nur einem Kommando, drei Kommandos schicken, in der Reihenfolge, wie Sie über die geänderten Datenpunkte beim Adapter ankommen.
Die Bridge selbst könnte es in einem Kommando verarbeiten.
Wie die hue-node-api arbeitet weiß ich natürlich nicht. Eine Vermutung wäre, dass Sie Farben ändern in einem Kommando, inkl. "on", zulässt.
Mit der jetzigen Lösung würde folgendes passieren:
-
Lampe ist aus, bri 0
-
ich stelle hue: auf 14000
-
lampe geht an mit bri auf 254 und der bisher eingestellten Saturation
-
ich stelle Sat auf 100
-
ich will eigentlich bri auf 100 haben und ändere den 2. Datenpunkt
-
bri wird auf 100 gesetzt
Wenn man das in eine Kommando schicken könnte, würde die Lampe an gehen, direkt mit der Helligkeit 0 und Sat: 100.
-
Lampe aus
-
Lampe an, mit: hue = 14000, sat = 100, bri = 100
Oder bin ich da auf dem Holzweg?
Die Funktion, wie sie jetzt sind (einzelne Datenpunkte), finde ich ebenfalls richtig wichtig
So kann man z.B. mal eben schnell die Helligkeit unabhängig von den anderen Einstellungen ändern.
-
-
Die Datenpunkte wie sei jetzt sind kommen so direkt von der Hue Api, wo man sie mit einem PUT Befehl allerdings wie du schon richtig schreibst gemeinsam ändern kann. Bei ioBroker kann man in einem Befehl (so weit ich weiß) immer nur einen State gleichzeitig ändern. Das wäre eher eine Frage an Bluefox, ob man evtl. eine zu stateChange ähnliche Funktion implementieren könnte, in der mehrere States gleichzeitig geändert werden können. Das würde immer dann Sinn machen, wenn ein Gerät auch mehrere Änderungen in einem Befehl ändern kann.