NEWS
Adapter: milight
-
Hallo ioBroker Gemeinde,
erstmal einen riesigen Dank für das umfangreiche Entwickeln in diesem tollen Projekt.
Ich bin begeistert und will auch einen Beitrag leisten, auch wenn das durchfräsen durch bestehenden Code nicht so einfach ist, wenn man die Ideen und Konzepte nicht kennt.
Nachdem ich nun auch widgets erstellt habe, möchte ich euch nun meine erstellten Adapter vorstellen:
****MOD eric2905:
DIe anderen Adapter wurden in jeweils eigene Threads gepackt****
ioBroker.milight (derzeitig in Überarbeitung durch Bluefox)
- Zur Steuerung von preisgünstigeren milight, easybulb Lampen
- Da die benutzte nodejs-Bibliothek funktioniert endlich in meinem Setup (da vorher immer nach 30s das Licht ohne Befehl ausging und ein reboot notwendig der box wurde)
- Es muß im admin die IP-adresse und der Port der milight-box eingegeben werden
- In io_package.json sind die 4 möglichen Gruppen zu definieren
- Automatisch wird immer die GroupAll angelegt, egal wieviele Gruppen definiert sind
- im adapter enthalten sind 2 widgets, die auf milight abgestimmt sind
- Vorteil von von milight ist der günstige Preis und die mögliche Bedienung mit einer Fernbedienung, allerdings hat milight nur begrenzte Farben und leider sind keine Statusabfragen möglich
****MOD eric2905:
DIe anderen Adapter wurden in jeweils eigene Threads gepackt****
Ich hoffe ich erfülle alle Randbedingungen für eine offizielle Aufnahme in den ioBroker admin Bereich und würde mich freuen wenn es passiert.
Es gibt noch jede Menge zu tun, aber ein Grundstein ist gelegt. Ich hoffe es kommen keine gravierenden Fehler bei der Benutzung in anderen Umgebungen. Ich habe unter node 4.5 und 4.7 getestet.
Die folgenden Dinge würde ich gern angehen und bräuchte Hilfe:
-
zyklisches Aufrufen einer Statusabfrage im Adapter um bei lifx, fritzdect auch Zustandsänderungen außerhalb von ioBroker mitzubekommen, da bräuchte ich ein Konstrukt/Idee, wie man da vorgehen kann
-
Benutzung von Prototypen/meta.roles, hier hab ich mir mal hm-rpc und cul angeschaut, bin aber nicht klar gekommen.
Ich hoffe auf Anregungen/Vorschläge/Verbesserungswünsche.
Gruß
Klaus
-
-
Hallo Klaus,
herzlich Willkommen. Nutze deinen Milight-Adapter schon seit 1 Jahre sehr sehr zuverlässig.
Gruß Marco
-
die umfangreichen Änderungen von bluefox sind in github nun enthalten.
beim testen bin ich auf eine Frage zum Adapterdesign gestoßen.
Warum ist es sinnvoll bei einer Reaktion auf eine Statusänderung vom vis-Adapter den Status nochmals zu schreiben/speichern?
Die Zeile adapter.setForeignState() sorgt hier dafür.
Dann schließt sich die nächste Frage an. Warum wird nicht adapter.setState() benutzt, man ist ja immerhin im eigenen Adapter?
Klaus
-
so, der Adapter liegt jetzt auch auf npm.
Ich habe lediglich eine ältere v4 Bridge und kann die v6 Protokolle nicht testen.
Bei meinem Setup schaltet sich die Lampe nach geraumer Zeit aus. In der Vorgängerversion war es zum Glück weg gewesen (hier dachte ich die Ursache war die überarbeitete milight-Bibliothek). Die ist immer noch die gleiche, aber etwas muß wohl anders sein. :?
Evtl. hängt es ja an der etwas älteren box, denn:
Hallo Klaus,
herzlich Willkommen. Nutze deinen Milight-Adapter schon seit 1 Jahre sehr sehr zuverlässig.
Gruß Marco `
es ging wohl schon besser, als ich noch Probleme hatte.
Bin gespannt, welche Rückmeldungen es zum jetzigen Stand gibt.
Gruß
Klaus
-
Hi
verwendet jemand von euch das in kombination mit Alexa / Amazon Echo?
Ich kann meine lichter ein und ausschalten.
Ich kann meine lichter dimmen.
jedoch wenn ich meine Lichter in einer Gruppe mit Dimmen und Ein/Aus konfiguriere, dann macht er erst den ein aus befehl und dimmt dann.
Also wenn ich sage "Alexa schalte Wohnwand aus" geht das Licht aus und gleich darauf auf Minimum gedimmt.
Bekomme dazu auch angehängten Fehler im Log.
Screenshot von meiner Config, wenn beides gesetzt ist ebenfalls.
Kennt das Phänomen jemand?
und danke @foxthefox für den coolen "plugin"
2007_gruppe.png
2007_gruppe-2.png -
Hi
verwendet jemand von euch das in kombination mit Alexa / Amazon Echo?
Ich kann meine lichter ein und ausschalten.
Ich kann meine lichter dimmen.
jedoch wenn ich meine Lichter in einer Gruppe mit Dimmen und Ein/Aus konfiguriere, dann macht er erst den ein aus befehl und dimmt dann.
Also wenn ich sage "Alexa schalte Wohnwand aus" geht das Licht aus und gleich darauf auf Minimum gedimmt.
Bekomme dazu auch angehängten Fehler im Log.
Screenshot von meiner Config, wenn beides gesetzt ist ebenfalls.
Kennt das Phänomen jemand?
und danke @foxthefox für den coolen "plugin" `
Bitte cloud updaten (vom git) -
Hallo,
erst Mal, danke für die Adapter.
Ich habe eine Milight Wifi Bridge und GU5.3 12V Lampen dazu.
Diese lassen sich per Fernbedienung und Milight App v3 steuern.
Bei den Einstellungen steht der Port 8899 drin.
Die Lampen lassen sich weder über v5 noch v6 steuern "Command unknown".
Wie finde ich heraus welche API ich verwenden muss?
-
cloud updaten? habs gestern erst installiert, aber ok probier ich gleich
stell auf RGBW und lass /Dimmer weg - geht bei mir sonst auch nicht
muss auch v5 und nicht v6 sein - geht sonst auch nicht
und 8899 wie in der app, nicht den vorgegebenen port - ja richtig, geht sonst auch nicht
Dimmer weg? ja dimmer weg - dimmen geht trotzdem
-
v5 bezieht sich auf das Protokoll und auch die v4 enthält die gleichen Befehle
v6 ist das neueste Protokoll und es dürfte wahrscheinlich nur auf den aller neuesten milightbox laufen.
v5/v4 hat Port 8899 (v3 hätte Port 50000, ist aber nicht im Adapter programmiert)
v6 hat Port 5987
RGBW ist die Einstellung für die normalen farbigen Lampen
RGBWW ist die Einstellung für die farbigen Lampen mit integrierten weißen LED, oder nur weiße Lampen
dimmen geht in allen Einstellungen, wichtig ist die passende Lampenparametrierung
Gruß
Klaus
-
Danke für die Auskunft
Bin noch neu mit ioBroker
Kann ich die Befehle direkt via commandline / ssh auch testen?
Hab die Alexa in Kombination mit Cloud eventuell in verdacht?
Die ZoneAll funktioniert bei mir z.B. auch nicht - alex sagt zwar OK aber nichts passiert.
edit - ok habs in den objekten gefunden.. wenn ich dort klicke funkt alles einwandfrei
Wenn ich das allOn / allOff in einer der Zonen teste, gehen auch alle lichter an / aus - während keiner der ZoneAll befehle bei mir geht.
im ioBroker.admin steht 0.4.2 bei cloud - selbe version wie auch online im git?
git pull oder so gibts ja nicht dafür, oder? ihr macht einfach npm install / npm update ?
hab hier deinen cloud update beitrag durchgelesen, das readme auf git und den faq aber da nichts konkretes gefunden… anyhow 0.4.2 läuft
edit
--- debug sagt:
beim ausschalten einer einzelnen lampe die dim + on/off hat:
milight.0 2017-01-30 20:56:03.085 debug inMem message milight.0.* milight.0.zone2.brightness2
milight.0 2017-01-30 20:56:02.866 debug inMem message milight.0.* milight.0.zone2.state
milight.0 2017-01-30 20:56:02.787 debug milight.0 Send to zone 2 "brightness2": undefined
milight.0 2017-01-30 20:56:02.784 debug inMem message milight.0.* milight.0.zone2.brightness2
cloud.0 2017-01-30 20:56:02.741 debug cloud.0 Set "milight.0.zone2.state" to false
cloud.0 2017-01-30 20:56:02.741 debug cloud.0 ALEXA OFF: Wand
beim ausschalten der zone all
milight.0 2017-01-30 21:00:46.677 debug inMem message milight.0.* milight.0.zoneAll.state
milight.0 2017-01-30 21:00:46.563 error milight.0 Unknown command: brightness
milight.0 2017-01-30 21:00:46.562 debug inMem message milight.0.* milight.0.zoneAll.brightness
milight.0 2017-01-30 21:00:46.562 debug milight.0 Send to zone 0 OFF
milight.0 2017-01-30 21:00:46.560 debug inMem message milight.0.* milight.0.zoneAll.state
cloud.0 2017-01-30 21:00:46.516 debug cloud.0 Set "milight.0.zoneAll.state" to false
cloud.0 2017-01-30 21:00:46.498 debug cloud.0 ALEXA OFF: Wohnzimmer
-
Es sieht mir ganz danach aus, daß es eine Komplikation mit den Variablendefinitionen gibt.
Für die RGBW Lampe werden 2 Werte für die Helligkeit definiert, "brightness" und "brightness2".
Beim letzten Feinschliff vorm Hochladen auf npm hab ich mich entschlossen die Variable "brightness2" für die v5 zu verwenden. Hier wird der erweiterte Helligkeitsbereich verwendet.
D.h. falls zur Zeit in der Benutzung durch vis oder andere Adapter die Variable brightness verwendet wird, so bitte mal diese konsistent auf brightness2 setzen/verwenden.
Daran dürfte es evtl. liegen.
Gruß
Klaus
-
nö daran liegts nicht
ich hab schon mit beiden getestet
hab auch sonst außer milight sonst noch nichts konfiguriert
wie gesagt wenn nur brightness oder nur state gewählt ist, dann funktioniert der befehl via alexa einwandfrei
alsbald ich jedoch 2 befehle kombiniere, wird erst der eine, dann der andere befehl wiedergegeben.
jetzt über das objekte menü im iobroker konnte ich den eintrag auch sauber steuern. (händisch)
ps: im case select von den zonen lässt du die zoneall unkonfiguriert, da dann später sowieso default zieht?
ich habs bei mir mal umgerschrieben und gesetzt, aber hat leider auch keine besserung gebracht betreffend steuerung von allen lampen
edit hab mal nen farbwechsler hinzugefügt.. bäm war´s auch schon blau lol
wird in der reihenfolge, wie es im SmartGeräte Tab aufscheint abgearbeitet. Hab nun ein AllOn + AllOff konfiguriert.
Schalt ich das licht dort ein, gehts an und gleich wieder aus.
Liegt somit def. nicht am Brightness oder Brightness2
-
ps: im case select von den zonen lässt du die zoneall unkonfiguriert, da dann später sowieso default zieht?ich habs bei mir mal umgerschrieben und gesetzt, aber hat leider auch keine besserung gebracht betreffend steuerung von allen lampen `
Ich muss ehrlich gestehen, dass ich die ZoneAll nicht ausgetestet habe. Zone=0 sollte für ZoneAll stehen, da muss ich morgen mal drüberschauen.
->also 0 ist auf jeden Fall für ZoneAll ->alle 4 Zonen werden ausgeschaltet
Wenn du ohnehin schon am umschreiben bist, könntest du in der v5 nach dp===state die Zeile für light.sendCommands
if (dp === 'state') { if (state.val === 'true' || state.val === true || state.val === 1 || state.val === 'on' || state.val === 'ON') { adapter.log.debug('Send to zone ' + zone + ' ON'); light.sendCommands(zones[zone].on(zone), zones[zone].brightness(100), zones[zone].whiteMode(zone)).then(function ()
in
if (dp === 'state') { if (state.val === 'true' || state.val === true || state.val === 1 || state.val === 'on' || state.val === 'ON') { adapter.log.debug('Send to zone ' + zone + ' ON'); light.sendCommands(zones[zone].on(zone)).then(function ()
umschreiben/testen.
Bei der Anweisung wird nicht nur Eingeschaltet, sondern auch die Helligkeit auf 100% gesetzt und weiß vorgewählt. Ein ON reicht auch aus, wobei dann der letzte Helligkeitswert von der Lampe selbst gemerkt wurde.
Kann ja sein, daß es hier mit den alexa brightness und dem ON brightness ein Mischmasch gibt. Und ein Brightness auf Zone=0/All ist nicht möglich.
Gruß
Klaus
-
Hi
Ok habs probiert, ändert nichts
Ich habe noch zusätzlich folgendes erstellt:
"Probe" - da nur den Dimmer gebunden, dann iobroker erkennt auch hier ein/aus gleichzeitig ohne state - somit wäre der state überflüssig meinte ich
Allerdings habe ich im testing gemerkt, dass das nicht zuverlässig klappt.
"Test" - da hab ich wie zuvor den dimmer und state gebunden
codezeile wie beschrieben umgeändert, adapter gestoppt, neu geladen gestartet..
hab dann das selbe phänomen.
Bei beiden wenn ich ausschalten sage, wird auf minimum gedimmt.
Bei Probe der nur dimmer ist, gehts auf minimum
Bei Test, der ein/aus(state) und dimmer hat, geht erst das licht aus, dann wieder an und er dimmt auf minimum.
Licht einschalten ist noch immer 100%
jedoch nicht durch milight bedingt sondern durch cloud:
milight.0 2017-01-31 10:21:59.282 debug inMem message milight.0.* milight.0.zone2.brightness
milight.0 2017-01-31 10:21:59.053 debug inMem message milight.0.* milight.0.zone2.state
milight.0 2017-01-31 10:21:58.976 debug milight.0 Send to zone 2 "brightness": 100
milight.0 2017-01-31 10:21:58.974 debug inMem message milight.0.* milight.0.zone2.brightness
cloud.0 2017-01-31 10:21:58.944 debug cloud.0 Set "milight.0.zone2.brightness" to 100
cloud.0 2017-01-31 10:21:58.942 debug cloud.0 Use stored ON value for "milight.0.zone2.brightness": 100
cloud.0 2017-01-31 10:21:58.925 debug cloud.0 Set "milight.0.zone2.state" to true
cloud.0 2017-01-31 10:21:58.925 debug cloud.0 ALEXA ON: test
keine ahnung wo cloud das her hat, denn mein letzter Befehl war, dass Test auf 60% gedimmt werden soll?
OFF level for switches ist bei mir auf 0 gestellt (in cloud)
habe dann den dimmer aus der Test Gruppe entfernt.
Dann ging auch die gespeicherte % brightness.. im debug sieht man auch nichts von cloud dann
Keine Ahnung ob das nun Zufall war.
Kanns ja leider nicht testen, denn ich hab ja keinen Dimmer mehr lol
milight.0 2017-01-31 09:27:38.800 debug Send to zone 2 ON
inMem 2017-01-31 09:27:38.797 debug message milight.0.* milight.0.zone2.state val=true, ack=false, ts=1485854858791, q=0, from=system.adapter.cloud.0, lc=1485854858791
cloud.0 2017-01-31 09:27:38.787 debug Set "milight.0.zone2.state" to true
cloud.0 2017-01-31 09:27:38.771 debug ALEXA ON: milight_0_zone2_state
aber wenn ich nun händisch mit der App dimme und dann mit Alexa einschalte wird der gedimmte Wert beibehalten.
Die Codeänderung funkt somit, falls dass vorher dadurch bedingt war und nicht durch cloud
-
Hallo,
hab den Dimmer weggelassen, nur RGBW. Funktioniert leider nicht.
Auf meinen Lampen steht RGB+CCT. Habe in der API leider keine Commands für diese Lampen gefunden oder übersehen.
Bei Domoticz steht, dass diese Lampen nur von v6 unterstützt werden, bei mir gehen sie aber über Fernbedienung und Bridge (Port 8899) +App.
Vlt. noch jemand irgendeinen Rat?
-
Von welchen Adaptern, die ich bitte genau wo und wie finde, reden wir?
Habe in letzter Zeit viel mit milight verbracht. Egal ob selbstgeschriebene UDP Packete oder Bibliotheken - milight ist 'ne Diva.
Beste Erfolge gab's mit npm install milight. Und dann mit eigenen JavaSkripten in IoBroker.
Zwar ist die Doku unausreichend, da einige Befehle nicht beschrieben sind, dafür aber gut funktionieren.
Der in iobroker angebotenen milight-Adapter ging gar nicht. War auch quasi keine Doku dazu da.
Jetzt sieht dieser so bei mir aus:
Ist das der, von dem ihr hier sprecht?
BTW: iobrocker Wifi Light machte seit Update auf js-controller 0.15.3 nur rote Einträge im Log. Habe ich entfernt.
Fitti
-
ja, es geht um iobroker.milight mit Version 0.1.0
Ich habe den Adapter vor einem Jahr angefangen und Bluefox hat ihn umfangreich für Protokoll v6 fit gemacht und damit auch neu strukturiert.
Da ich nur "alte" Lampen und Box habe, konnte ich nur die v5 Anteile testen. Bei mir zeigte sich allerdings ein altbekanntes Problem wieder. Steuert man die Lampen per iobroker dann schaltet sich diese nach einer kurzen Zeit aus.
Mit der neuen Version der Bibliothek 0.0.9 war dies Geschichte, mit der gleichen Bibliothek und jetziger Version des Adapters, kam das Problem wieder. Ich bin noch auf der Suche, was das verursachen könnte, aber mir gehen die Ideen aus.
Doku ist immer zu knapp :shock:
Gruß
Klaus
-
also bei mir ging der nach den ersten gehversuchen auf anhieb
ich hab auch alte lampen und ein altes kästchen.
schalte meine lampen nur noch via alexa ein und aus.
aber meine gehen nicht nach einer bestimmten zeit aus.
dafür spielt er bei mir halt alle befehle nacheinander ab
hab noch immer keine lösung dafür
hab überlegt eventuell den raspby neu aufzusetzen.
vielleicht ging ja wo was schief
-
Bei mir zeigte sich allerdings ein altbekanntes Problem wieder. Steuert man die Lampen per iobroker dann schaltet sich diese nach einer kurzen Zeit aus.
Mit der neuen Version der Bibliothek 0.0.9 war dies Geschichte, mit der gleichen Bibliothek und jetziger Version des Adapters, kam das Problem wieder. Ich bin noch auf der Suche, was das verursachen könnte, aber mir gehen die Ideen aus.
Doku ist immer zu knapp :shock:
Gruß
Klaus `
Ich habe ähnliche Probleme per direkter Steuerung aus JavaSkript (also ohne Modul oder Blbiothek) und direkt gesendeten UDP Paketen. Deswegen sage ich ja, milight ist eine Diva.Ich habe dann mal den Netzwerk-Datenstrom getraced, als ich mit einer recht gut funktionierenden Windows Anwendung die Lampen eingeschaltet habe. Da stellte ich fest, dass die Daten doch etwas anders als in der API angegeben gesendet werden. Irgendein Byte war da zusätzlich.
Habe auch Port 8889 als V5.
Dann fand ich aber das npm Paket 'milight' - das funktioniert super. Also sagen wir mal zu 99%.
Nimm doch das als Fork und mache ein Paket draus.
-
Hallo zusammen,
Ich habe gerade erst angefangen mich mit dem ioBroker zu befassen also seid bitte gnädig was meine Anfängerfragen angeht
Ich habe den Adapter installiert, bin allerdings etwas überrascht von der Anzahl der Variablen.
Gibt es irgendwo eine Übersicht welche Variable für was zuständig und wie ihr Wertebereich ist?