NEWS
Xiaomi Yeelight Smart LED (DE)
-
Hallo an alle!
Neulich habe ich meine Lampen Xiaomi Yeelight Smart LED bekommen. Bestellt habe ich die bei Aliexpress für € 12 pro stück. Zu haben sind die im weiß oder RGB (ich habe weiß).
Durch WLAN werden die am Netzwerk Angebunden und über ein App gesteuert. Es braucht kein Gateway, offen für Entwickler und verfügt über eine eigene API.
In dem beigelegtem Bedienungsanleitung ist einen QR-Code zu finden mit dem link zu Apps für Android und iOS, aber ich muss sagen, das diese App nichts wert ist (zumindest für iOS). Habe eine Stunde vergeblich versucht die Lampe mit Netzwerk zu verbinden. Einfach in der Appstore gehen und suchen nach Yeelight, man braucht diese app mit Orangene icon (sehe Bild unten). Damit war das einzurichten und zu konfigurieren kein Problem.
(Werkeinstellungen wiederherstellen geht so: Aus und 1 Sekunde warten, Ein und 3 Sekunden warten << und so 5 mahl. Nach 5-ten mahl sollte die Lampe 3x blinken und sich zurücksetzen. Wegen den nutzlosen app musste ich das auch rausfinden )
Ein paar Bilder aus der App:
Bedienung Ein/Aus.
!
Streich nach oben oder nach unten verändert die Intensität (dabei links erscheint eine Skala mit %).
!
Das Einstellungsmenü . Hier ist es notwendig, in der Entwicklermodus Telnet zu aktivieren.
!
Das ist eigentlich schon alles. Es gibt noch Möglichkeit Szenen einzurichten aber das war für mich uninteressant, ioBroker macht das besser .
Jetzt ist das Ziel mit ioBroker zu verbinden.
1. alte Variante mit Skript
! Das API ist durchaus simpel und sogar ich konnte in wenigen minuten in Terminal die Lampe ein und ausmachen. API kann hier Heruntergeladen werden > http://www.yeelight.com/download/Yeelig … n_Spec.pdf
! Befehle zum steuern über Terminal Ein/Aus:echo -ne '{ "id": 1, "method": "set_power", "params":["on", "smooth", 500]} \r\n' | nc -w1 192.168.2.173 55443 >! echo -ne '{ "id": 1, "method": "set_power", "params":["off", "smooth", 500]} \r\n' | nc -w1 192.168.2.173 55443
! Intensität (vom 0 bis 100), als beispiel 1, 50 und 100%.
echo -ne '{ "id": 1, "method": "set_bright", "params":[1", "smooth", 500]} \r\n' | nc -w1 192.168.2.173 55443 >! echo -ne '{ "id": 1, "method": "set_bright", "params":[50", "smooth", 500]} \r\n' | nc -w1 192.168.2.173 55443 >! echo -ne '{ "id": 1, "method": "set_bright", "params":[100", "smooth", 500]} \r\n' | nc -w1 192.168.2.173 55443
! "Toggle" modus, Wechselt zustand mit jedem ausführung.
`echo -ne '{"id":1,"method":"toggle","params":[]}\r\n' | nc -w1 192.168.2.173 55443[/code]` >! Zur Bedienung über ioBroker habe ich ein Bash-skript benutzt, gefunden bei domoticz forum. Das Skript habe ich in der /opt/iobroker platziert >! Bash-Skript ![513_yeelight.sh.zip](/assets/uploads/files/513_yeelight.sh.zip) >! Befehle sind am Anfang des Skript beschrieben ![513_screenshot_at_feb._18_14-06-44.png](/assets/uploads/files/513_screenshot_at_feb._18_14-06-44.png) >! Habe bei JavaScript eine variable erstellt und mit Blockly angesteuert ![513_screenshot_at_feb._18_14-10-21.png](/assets/uploads/files/513_screenshot_at_feb._18_14-10-21.png) >! Export Blokly ![513_yeelight.xml.zip](/assets/uploads/files/513_yeelight.xml.zip) >! Diese Verfahren ist natürlich nicht elegant, aber funktioniert :) >! **~~[b]~~2\. Neue Variante zum test als ioBroker Adapter[/b]** >! [https://github.com/cahek2202/ioBroker.yeelight](https://github.com/cahek2202/ioBroker.yeelight)
-
Die Yeelight lassen sich faktisch genauso wie der Vacuum oder der Air Purifier aus dem gleichen Haus ansteuern (JSON-Befehle). Interessanter Weise scheint es hier nicht zwingend eine Verschlüsselung auf Port 54321 zu geben, sondern Klartext auf Port 55443.
-
Der Preis ist der Hammer. Habe heute auch 3 Stück bekommen. Allerdings bei Gearbest bestellt.
Danke für deine Arbeit.
Die Orange App die Du gezeigt hast hab ich auch für Android gefunden.
Allerdings gibt es dort nur 2 asiatische Orte/Landschaften/Regionen.
Wie hast Du die Registrierung gemacht?
Als ich zurück geklickt habe, konnte ich Account Daten eingeben bzw einen Accout erstellen.
Habe meine Gmail Daten eingegeben und denen Rechte erlaubt. (Kann man ja hinterher wieder entziehen, wenn die Lampen eingerichtet sind)
Aber anschließend kam irgendwas "The email address you entered is incorrect"
Gibt es einen Tipp?
//Edit//
Man kann sich auch via Browser registrieren:
https://account.xiaomi.com/pass/register
//Edit2//
googlemail.com statt gmail.com geht.
2094_image_1.png -
Der Preis ist der Hammer. Habe heute auch 3 Stück bekommen. Allerdings bei Gearbest bestellt.
Danke für deine Arbeit.
Die Orange App die Du gezeigt hast hab ich auch für Android gefunden.
Allerdings gibt es dort nur 2 asiatische Orte/Landschaften/Regionen.
Wie hast Du die Registrierung gemacht?
Als ich zurück geklickt habe, konnte ich Account Daten eingeben bzw einen Accout erstellen.
Habe meine Gmail Daten eingegeben und denen Rechte erlaubt. (Kann man ja hinterher wieder entziehen, wenn die Lampen eingerichtet sind)
Aber anschließend kam irgendwas "The email address you entered is incorrect"
Gibt es einen Tipp?
//Edit//
Man kann sich auch via Browser registrieren:
https://account.xiaomi.com/pass/register
//Edit2//
googlemail.com statt gmail.com geht. `
Ich habe einfach einen asiatische Ort ausgewählt. Für Registrierung eine neue e-mail Adresse angerichtet..
-
Man ich wäre echt froh wenn die hier supported würden.
Eine Lampe erfolgreich in der App angemeldet.
Die 2te Lampe hängt im Netz, ich kann sie anpingen, aber die App geht auf Timeout.
Lampe hängt ca 3m Neben Router.
Habs aber auch15m versucht. Nichts.
Dann ist mir noch folgendes aufgefallen:
-
Lampen werden sehr heiß (ich hol mach noch das Messgerät)
-
Normaler Ping: 1 bis 2 ms
Alle 22 Pings: 100 bis meistens 400ms
-
-
Man ich wäre echt froh wenn die hier supported würden.
Eine Lampe erfolgreich in der App angemeldet.
Die 2te Lampe hängt im Netz, ich kann sie anpingen, aber die App geht auf Timeout.
Lampe hängt ca 3m Neben Router.
Habs aber auch15m versucht. Nichts.
Dann ist mir noch folgendes aufgefallen:
-
Lampen werden sehr heiß (ich hol mach noch das Messgerät)
-
Normaler Ping: 1 bis 2 ms
Alle 22 Pings: 100 bis meistens 400ms `
Hast du versucht die zu Reseten? Habe oben ein Anleitung dafür.
Was Wärme angeht, bei mir ist eigentlich ok, werde sagen nicht heißer als meine normale LED Lampen
-
-
5x aus / an? ja habe ich.
Danach blinken sie.
Aber es geht nicht weiter.
Wie gesagt im Netzwerk sind sie aber.
Hab sie aus dem DHCP wieder gelöscht. Nichts.
/Edit/
So. 15ter Versuch oder so. Jetzt hats geklappt.
/Edit2/
War ja klar. Nr 3 zickt genauso rum
/Edit3/
Okay bei hilft es dann sie aus der Fritzbox rauszuschmeißen und eine DHCP Reservierung zu setzen.
/Edit4/
Okay die Lichter gehen definitv über die Cloud. Sperrt man der IP/MAC Adresse den Internetzugang, lassen sich die Lampen nichtper per App fernsteuern.
Das schmeckt mir ja gar nicht. Wenn der Cloud Anbieter keine Lust mehr hat oder was ändert, gehen die Lapen derzeit also auch im LAN nichtmehr.
Keine schöne Vorstellung.
Ist das bei dem Staubsauger auch so?
-
Wurde aufgenommen….
https://trello.com/c/Y9lq8umJ/96-adapte ... i-yeelight
...meldet sich einer freiwillig? :lol:
-
/Edit4/
Okay die Lichter gehen definitv über die Cloud. Sperrt man der IP/MAC Adresse den Internetzugang, lassen sich die Lampen nichtper per App fernsteuern.
Das schmeckt mir ja gar nicht. Wenn der Cloud Anbieter keine Lust mehr hat oder was ändert, gehen die Lapen derzeit also auch im LAN nichtmehr.
Keine schöne Vorstellung. `
Moment, per App ist ja klar.. die muss ja auch von draußen erreichbar sein, aber warum sollen die nicht mehr im LAN gehen?
Ich habe gerade versucht, Internet gesperrt, alle Lampen gehen ohne Problemen.
-
Bei mir definitv nicht. Lampen gesperrt, wird deren Status nicht mehr in der App angezeigt.
-
Bei mir definitv nicht. Lampen gesperrt, wird deren Status nicht mehr in der App angezeigt. `
in der App werden die Lampen auch bei mir nicht mehr erreichbar, aber über LAN b.w. über ioBroker kann ich die weiterhin schalten.
-
Übrigens, seit heute ist auch ein Yeelight Skil für Alexa verfügbar
!
![](</s><URL url=)<link_text text="http://image.prntscr.com/image/2fe07a45 ... d42781.png">http://image.prntscr.com/image/2fe07a4524cb4b01b3cddc3acbd42781.png</link_text>" /> -
Hallo,
ich würde gerne zwei Yeelight Lampen (1x weiß, 1x RGB) in ioBroker einbinden. Ich kann der Beschreibung aber nicht ganz folgen.
Also die Lampen sind im Netzwerk und können mit der App auf dem Handy und mit dem Yeelight Skill über Alexa wunderbar angesteuert werden.
Da ich ioBroker auf dem Raspberry habe und im Flur ein altes Tablet, würde ich gerne die Lampen darüber ebenfalls steuern.
Also das Skript habe ich runtergeladen und in das Verzeichnis /opt/iobroker kopiert.
["Habe bei JavaScript eine variable erstellt und mit Blockly angesteuert"]
Da bin ich nach langem hin und her drauf gekommen, dass ich auf "Skripte" klicken muss und ein neues Skript erstellen muss. Dann wollte ich das Schema nachbauen und musste leider feststellen, dass ich kein "Yeelight_Toggle" habe.
Wie muss ich das denn nun (wahrscheinlich unter Objekte) erstellen?
Vielleicht kann mir einer erklären, welche Reihenfolge oder welche Schritte ich da genau gehen muss.
Wenn ich das dann danach hinbekommen habe, könnte ich das ganze ja noch abwandeln um auch die Helligkeit zu regeln. Aber erstmal eins nach dem Anderen!
Ich bedanke mich schonmal im Voraus für die Hilfe!
Gruß
-
Da bin ich nach langem hin und her drauf gekommen, dass ich auf "Skripte" klicken muss und ein neues Skript erstellen muss. Dann wollte ich das Schema nachbauen und musste leider feststellen, dass ich kein "Yeelight_Toggle" habe.
Wie muss ich das denn nun (wahrscheinlich unter Objekte) erstellen? `
Ja, unter Objekte/javascript.0/ muss du eine neue variable erstellen z.b. Yeelight_Toggle
-
Hallo,
ich bins nochmal.
Leider konnte ich bis jetzt mein Vorhaben noch nicht umsetzen. Ich bekomme die Lampe per ioBroker einfach nicht geschaltet.
Also die yeelight.sh funktioniert. Ich kann im Terminal vom Raspberry per SSH die Lampe mit dem Befehl schalten.:
"bash /opt/iobroker/yeelight.sh 192.168.178.34 on"
Ich habe mit Blockly das Modell nachgebaut und auch unter Objekte javascript.0 eine Variable erstellt mit genau dem Namen. Bei mir Flur_licht, die ID lautet dann: javascript.0.Flur_licht.
Muss noch irgendwas besonderes bei der Variable eingestellt werden?
Ich hänge mal ein paar Bilder an, vielleicht findet Jemand einen Fehler.
!
![](</s><URL url=)<link_text text="http://martinjenny.bplaced.de/hochzeit/ ... halter.jpg">http://martinjenny.bplaced.de/hochzeit/images/schalter.jpg</link_text>" />>!![](</s><URL url=)http://martinjenny.bplaced.de/hochzeit/images/java.jpg" />~~>!![](</s><URL url=)<link_text text="http://martinjenny.bplaced.de/hochzeit/ ... lockly.jpg">http://martinjenny.bplaced.de/hochzeit/images/blockly.jpg</link_text>" />~~Vielen Dank.~~~~ -
Muss noch irgendwas besonderes bei der Variable eingestellt werden?
Ich hänge mal ein paar Bilder an, vielleicht findet Jemand einen Fehler.
. `
Sieht eigentlich gut aus…
Gibst was im log?
-
Oh man, ich werde verrückt.
Jetzt habe ich die Log-Seite aufgerufen um einen Screenshot zu machen,
ändere nochmal den Status der Variable in Javascript.0 und auf einmal schalten die Lampen.
Dauert das eine Zeit bis der das alle übernommen hat?
Naja nun gehts. Vielen Dank!
–----------------
Ich habe es nun geschafft in ioBroker auf der VIS einen Schieberegler einzubauen und mit dem die Helligkeit der Yeelight Lampen Stufenlos zu verändern.
Falls Jemand nicht weiß wie das geht und Interesse daran hat, würde ich eine Anleitung/Doku schreiben, wie man das ganze umsetzen kann.
Gruß
desprueht
-
Ich habe es nun geschafft in ioBroker auf der VIS einen Schieberegler einzubauen und mit dem die Helligkeit der Yeelight Lampen Stufenlos zu verändern.
Falls Jemand nicht weiß wie das geht und Interesse daran hat, würde ich eine Anleitung/Doku schreiben, wie man das ganze umsetzen kann.
Gruß
desprueht `
Das wird für viele hilfreich
-
Falls Jemand nicht weiß wie das geht und Interesse daran hat, würde ich eine Anleitung/Doku schreiben, wie man das ganze umsetzen kann.
Gruß
desprueht `
würd ich mir auch gern mal anschauen… -
Ich gehe davon aus, dass Ihr den Beitrag von Alex1808 oben verfolgt habt und die Funktion dort schon gegeben ist.
Bei mir heißt die Variable im Javascript "Flur_dimm". Damit arbeite ich diesen Beitrag über.
Bedeutet Ihr müsst ebenfalls eine Variable dort erstellt haben.
!
Nun geht man oben auf den Bereich "Scripte" und erstellt mit dem Papiersymbol oben ein neues Script. Dieser nennt sich bei mir "Flurdim".!
Dort wird folgender Code eingetragen:(IP Adresse und Variable anpassen)
on({id: "javascript.0.flur_dimm"/*flur_dimm*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; var number = getState("javascript.0.flur_dimm").val; if (getState("javascript.0.flur_dimm").val > 0) { exec('bash /opt/iobroker/yeelight.sh 192.168.178.34 on'); exec('bash /opt/iobroker/yeelight.sh 192.168.178.34 dim '+number); } else { exec('bash /opt/iobroker/yeelight.sh 192.168.178.34 off'); } });
Dieser Code besagt: wenn sich der Status ändert (vom Schieberegler) dann prüfe ob der Wert über 0 ist und wenn ja, dann schalte die IP auf on und anschließend setze "DIM" + den Wert des Schiebereglers. Sonst (also Wert = 0 oder unter 0) schalte die IP auf off. Also hat der Schieberegler den Wert 25, wird dieser in den Code eingesetzt und an die Yeelight Lampen geschickt.
Nun gehen wir in den VIS Editor.
Dort kann man einen Regler oder ähnliches einbauen, welche einen Zahlenwert bei Einstellung verwendet.
Ich habe den "SLIDER HORIZONTAL" verwendet.
!
Nun klickt man auf den Slider um die Eigenschaften zu erhalten. Dort unter Object ID die Variable eintragen. In meinem Fall: "javascript.0.flur_dimm"Min-Wert: 0
Max-Wert: 100
Step: 1
!
Und das wars eigentlich schon. Durch bewegen des Sliders wird in der Variablen "FLUR_DIMM" ein Zahlenwert zwischen 0 und 100 eingetragen und dieser wird per Javascript an die Yeelight Lampe geschickt.Ich hoffe ihr könnt damit was anfangen und es ist nicht zu kompliziert. Bei Fragen versuche ich zu helfen!
Das nächste Ziel muss dann sein, den Status der Lampe auszulesen, damit Änderungen durch Alexa auch auf die VIS Oberfläche anzeigt werden.
desprueht