NEWS
Hue adapter
-
Macht das nicht Sinn die Änderungen in den offiziellen Adapter einfließen zu lassen?
Hue ist neben Sonos eine Baustelle, die ich sehr schade finde, da ich derzeit weder hue noch Sonos richtig benutzen kann.
-
Ich habe einen pull request gemacht, bluefox kann sich das ja mal angucken.
Wenn ihr den modifizierten Adapter ausprobieren wollt müsst ihr den vorhanden löschen und dann im iobroker Verzeichnis:
npm install https://github.com/pmant/ioBroker.hue/tarball/master
Die Bridge und die Lampen sollten keine Leerzeichen in den Namen haben, sonst gibt es einen Fehler, den ich noch nicht fixen konnte.
Gruß
Patrick
-
Danke Patrick,
ich kann das zwar inhaltlich nicht beurteilen, aber das ist genau das, was das Projekt braucht:
(weiter-) Entwicklungen von Usern, die mit den Adaptern auch arbeiten.
Damit bleibt BF und SJ mehr Zeit für anderes.
Gruß
Rainer
Gesendet von meinem LIFETAB_S785X mit Tapatalk
-
Ich habe einen pull request gemacht, bluefox kann sich das ja mal angucken.
Wenn ihr den modifizierten Adapter ausprobieren wollt müsst ihr den vorhanden löschen und dann im iobroker Verzeichnis:
npm install https://github.com/pmant/ioBroker.hue/tarball/master
Die Bridge und die Lampen sollten keine Leerzeichen in den Namen haben, sonst gibt es einen Fehler, den ich noch nicht fixen konnte.
Gruß
Patrick `
Danke! Ich werde denn anschauen. BTW: man muss adapter nicht löschen. Einfach "npm install …" schreiben. -
Bitte mit:
cd /opt/iobroker npm install https://github.com/ioBroker/ioBroker.hue/tarball/master --production
Testen und berichten ob es geht. 8-)
-
Ich kann die Weiterentwicklung dieses Adapters gerne testweise übernehmen, ich muss mich allerdings noch etwas in node und speziell in die ioBroker Adapter einarbeiten.
Bevor ich weiter an dem Adapter arbeite würde ich aber gerne eure Meinungen zu ein paar Designentscheidungen hören, das steuern der Hue Lampen ist nämlich in vielen Punkten etwas "speziell".
Grundsätzlich stellt sich die Frage wie man mit Änderungen an Werten umgehen soll, während eine Lampe ausgeschaltet ist. Die node-hue-api lässt solche Änderungen nicht zu, die States in ioBroker werden beim polling dann auch wieder mit den in der Hue Bridge zuletzt hinterlegten überschrieben. Ich sehe folgende Möglichkeiten:
-
Änderungen werden so lange in ioBroker erhalten (ack=false), bis die Lampe eingeschaltet wird (.on = true)
-
Änderungen bewirken immer ein Einschalten der Lampe (aber auf welche Helligkeit dann?). Diese Lösung ist im Moment bei .ct, .bri, und den rgb Werten umgesetzt, nicht jedoch bei Änderungen an .hue und .sat.
-
Änderungen bei ausgeschalteter Lampe sind nicht möglich und werden beim polling wieder überschrieben.
Die zweite und teilweise damit überschneidende Frage ist die nach dem Verhalten von .bri und .on, ich halte es für sinnvoll .on readonly zu machen und die Lampe nur über .bri zu steuern (.bri = 0 => Lampe aus). Das hat den Vorteil, dass dieses Verhalten mit den vorhanden Widgets kompatibel ist, da andere Dimmer auch nur über einen Dimmwert gesteuert werden.
-
-
root@iobroker:/opt/iobroker# npm install https://github.com/ioBroker/ioBroker.hue/tarball/master --production iobroker.hue@0.2.1 node_modules/iobroker.hue └── node-hue-api@1.0.5 (parseUri@1.2.3-2, traits@0.4.0, q@1.0.1, xml2js@0.2.8, request-util@0.1.0) root@iobroker:/opt/iobroker#
Ich habe erst mit dem Kommando oben "drüber installiert". Da sich im Log nichts getan hat und ich auf Anhieb keine Veränderung festgestellt habe, habe ich unter Instanzen den hue Adapter gelöscht und wieder per npm install hinzufügen wollen.
Als Ergebnis taucht unter Instanzen der Adapter nicht auf.
P.S.: Meine Lampennamen haben Leerzeichen. Ist der Fehler noch drin und ich muss vor einem sinnvollen Test alle Lampennamen ändern?
-
Der Fehler mit den Leerzeichen war im alten Adapter auch drin, wenn es da lief, dann wird es heir auch laufen. Bei mir war nach der Installation vom github der Adapter installiert, aber keine Instanz, die konnte ich dann über das kleine + unter Adapter hinzufügen.
-
Der Fehler mit den Leerzeichen war im alten Adapter auch drin, wenn es da lief, dann wird es heir auch laufen. Bei mir war nach der Installation vom github der Adapter installiert, aber keine Instanz, die konnte ich dann über das kleine + unter Adapter hinzufügen. `
Au man… danke... logisch. Einmal neu anlernen bitte :roll:
Habe den Adapter nun hinzugefügt, funktioniert aber leider jetzt gar nicht mehr:
iobroker 2015-07-23 22:47:55 info host.iobroker Restart adapter system.adapter.hue.0 because enabled iobroker 2015-07-23 22:47:55 error host.iobroker instance system.adapter.hue.0 terminated with code 1 () iobroker 2015-07-23 22:47:45 info host.iobroker instance system.adapter.hue.0 started with pid 15652 host-iobroker 2015-07-23 22:47:15 info Restart adapter system.adapter.hue.0 because enabled host-iobroker 2015-07-23 22:47:15 error instance system.adapter.hue.0 terminated with code 1 () hue-0 2015-07-23 22:47:15 error {"code":"ETIMEDOUT"} hue-0 2015-07-23 22:47:05 info starting. Version 0.2.1 in /opt/iobroker/node_modules/iobroker.hue host-iobroker 2015-07-23 22:47:04 info instance system.adapter.hue.0 started with pid 15234 host-iobroker 2015-07-23 22:47:04 info object change system.adapter.hue.0 inMem 2015-07-23 22:46:59 debug message *.logging system.adapter.admin.0.logging val=true, ack=true, ts=1437684419, from=system.adapter.admin.0, lc=1437669483 inMem 2015-07-23 22:46:52 debug message *.logging system.adapter.admin.0.logging val=true, ack=true, ts=1437684413, from=system.adapter.admin.0, lc=1437669483 iobroker 2015-07-23 22:46:44 info exit 0 iobroker 2015-07-23 22:46:44 info object system.adapter.hue.0 created host-iobroker 2015-07-23 22:46:44 info object change system.adapter.hue.0 iobroker 2015-07-23 22:46:44 info object system.adapter.hue.0.alive created iobroker 2015-07-23 22:46:44 info object system.adapter.hue.0.connected created iobroker 2015-07-23 22:46:44 info object system.adapter.hue.0.memHeapUsed created iobroker 2015-07-23 22:46:44 info object system.adapter.hue.0.memHeapTotal created iobroker 2015-07-23 22:46:44 info object system.adapter.hue.0.memRss created iobroker 2015-07-23 22:46:44 info object system.adapter.hue.0.uptime created iobroker 2015-07-23 22:46:44 info create instance hue iobroker 2015-07-23 22:46:44 info add hue
Vorher wurden die Lampen importiert (über 200 Datenpunkte). Es gab aber dauernd Warnungen.
Nun lüppt nichts mehr
IP-Adresse der Bridge und der User standen, trotz der vorherigen Deinstallation des Adapters, noch drin.
-
Diese Fehler (Error: ETIMEDOUT) bekomme ich, wenn die Bridge tatsächlich nicht erreicht werden kann. Ich nehme an, dass irgendwas mit der Config nicht stimmt, bei mir waren nach dem entfernen der npm version auch keine Config oder States mehr vorhanden.
1136_heizungslog.txt
1136_objektstruktur_wohnzimmer.json.txt -
Ich glaube langsam an Geister… :twisted:
Wollte gerade schreiben, dass ich die Bridge per Ping vom ioBroker Server erreiche und dass die externen Apps funktionieren. Stimmt, ist alles richtig. Dann noch einmal in den Adaptereinstellungen und siehe da. "Nun" steht da die falsche IP. Ich könnte schwören, dass da gestern noch die IP der Bridge drin stand... :mrgreen: :oops:
War vielleicht zu spät
Beim Start des Adapters wurden alle Lichter übernommen. Die Leerzeichen waren kein Problem. Sie wurde ausgetauscht gegen Unterstriche. Bluefox?
D.h. Unterstriche sehe ich unter Zustände, Leerzeichen bei den Objektnamen.
22 Hue Lichter werden alle 30 Sekunden gepollt. Prima!
Bei den Objekten fehlen die Werte.
Unter Zustände sehe ich Werte, die verändern sich auch (spätestens nach 30 Sekunden über das Polling).
Einschalten kann ich über Zustände eine Lampe allerdings nicht. Ich habe versucht den Datenpunkt "on" über Zustände auf true zu setzen. Kann man, die Lampe geht aber nicht an.
In den Objekten werden keine Werte angezeigt:
In den Zuständen werden Werte angezeigt. Änderungen dort werden aber nicht übernommen:
Wenn ich hier was ändere, werden nach dem Polling wieder die aktuellen Werte der Lampen eingetragen.Ich sehe in den Zuständen auch weniger Datenpunkte als bei den Objekten je Lampe.
Dafür sind die ganzen Warnungen weg, die ich vorher mit dem Adapter hatte
Eine generelle technische frage. Der Adapter pollt all 30 Sekunden. In anderen Apps werden die Werte in beiden Richtungen sofort angezeigt (meine ich zu mindestens). Pollen die in kürzeren Abständen oder wird dort ein anderes verfahren verwendet.
-
Wollte gerade schreiben, dass ich die Bridge per Ping vom ioBroker Server erreiche und dass die externen Apps funktionieren. Stimmt, ist alles richtig. Dann noch einmal in den Adaptereinstellungen und siehe da. "Nun" steht da die falsche IP. Ich könnte schwören, dass da gestern noch die IP der Bridge drin stand… :mrgreen: :oops:
War vielleicht zu spät `
Wenn ich Instanzen oder Adapter lösche lade ich danach die Adminseite einmal komplett neu, sonst sieht man häufiger alte Objekte. Ich nehme an, dass diese irgendwie lokal gecached werden.` > Beim Start des Adapters wurden alle Lichter übernommen. Die Leerzeichen waren kein Problem. Sie wurde ausgetauscht gegen Unterstriche. Bluefox?
D.h. Unterstriche sehe ich unter Zustände, Leerzeichen bei den Objektnamen.
[…] `
Du hast dann doch auch den Fehler mit den Leerzeichen, ich denke der ist auf die Funktionen setObject und setState zurückzuführen. Ersteres ersetzt die Leerzeichen nicht, letzteres schon. Dadurch hast du dann die Objekte mit Leerzeichen und die States mit Unterstrichen. Ich gucke nachher mal ob ich die Leerzeichen präventiv bei der Erstellung der Objekte ersetzen kann.> Eine generelle technische frage. Der Adapter pollt all 30 Sekunden. In anderen Apps werden die Werte in beiden Richtungen sofort angezeigt (meine ich zu mindestens). Pollen die in kürzeren Abständen oder wird dort ein anderes verfahren verwendet.
Sofort auch nicht, das ist mir aufgefallen als ich in ioBroker Farben geändert habe. Es dauert dann etwas bis es in der App ist, bis zu 10 Sekunden denke ich. Ich habe die Hue Api noch nicht durch, aber ich glaube eine andere Möglichkeit als selber abfragen gibt es nicht.EDIT:
für die Sache mit den Unterstrichen brauche ich erstmal den Rat von Bluefox. Einfach alle Leerzeichen zu ersetzen ist nämlich doof, da beim ändern von Werten ja wieder der Originalname benötigt wird, welcher dann aber nicht mehr zweifelsfrei hergestellt werden kann (wenn der Originalname schon Unterstriche verwendet). Wenn es nicht übertrieben viel Arbeit für dich ist würde ich dir raten erstmal die Bridge und die Lampen umzubenennen.
-
Bitte mit:
cd /opt/iobroker npm install https://github.com/ioBroker/ioBroker.hue/tarball/master --production
Testen und berichten ob es geht. 8-) `
Ok.Ok einfach npm install wird natürlich noch nicht die ganze arbeit machen. So sieht dann komplettes Skript aus:cd /opt/iobroker npm install https://github.com/ioBroker/ioBroker.hue/tarball/master --production iobroker restart hue iobroker upload hue
-
Ich habe mal versucht die Sache mit den Leerzeichen anzugehen. Bei mir Funktioniert es jetzt auch mit Leerzeichen bei Bridge und Lampen. Was nicht funktionieren kann: wenn einer Lampe "a_b" heißt und eine zweite "a b". Das würde dann zu zwei ioBroker Objekten mit gleichem Namen "a_b" führen.
-
super! das probiere ich direkt nach dem Frühstück.
Gesendet von iPhone mit Tapatalk
-
Ich bin begeistert!
Endlich kann ich hue nutzen
In den Objekten werden die Werte angezeigt. In den Zuständen kann ich de Werte verändern und sie greifen sofort.
Im Log habe ich den Level auf Debug stehen. Da habe ich vorher bei jeden Poll alle 30 Sekunden über 300 Werte von hue gesehen. Jetzt erscheinen diese (zum Glück nicht mehr). Sonst hätte ich noch einen Wunsch gehabt … im Webadmin ein Flag, mit dem man für den Adapter den Debug-Level ein-, bzw. ausschalten kann.
Klasse Arbeit! Ich danke Dir!
-
wie es aussieht funktioniert es bei mir!
Besteht die Hoffnung das die Gruppenfunktion noch eingefügt wird?
mfg
Arminhh
-
Das hört sich gut an. Kann ich eine neue Version veröffentlichen?
-
-
hue selbst unterstützt direkt Gruppen.
Man kann über hue de Lampen einzeln oder als Gruppe ansteuern.
http://www.developers.meethue.com/docum … e-concepts
Auszug:
Groups
You can also choose to control all your lights at once. For this you need to address the /groups/0 resource (this is a special group that always contains all lights). For groups we have the “action” resource (similar to the state resource for lights but containing the last values sent to the group rather than a state).
You can modify resources in the “action” resource in the same way as the state resource. So the following turns all lights off:
Address http://<bridge ip/address="">/api/<username>/groups/0/action
Body {"on":false}
Method PUT
And this sets them all to full brightness red.
Address http://<bridge ip/address="">/api/<username>/groups/0/action
Body {"on":true,"bri":255,"sat":255,"hue":0}
Method PUT</username></bridge></username></bridge>