NEWS
Nanoleaf Light Panels (Aurora) Adapter
-
Ja, das ist ein Fehler im Color-Picker. Immer wenn die VIS aufgerufen wird, setzt das Widget den State und damit schaltet sich der Controller ein.
Ich habe das auch schon gemeldet, aber bisher ist es noch nicht gefixt worden.
Am besten einen anderen Color-Picker nutzen (z.B. den Philips HUE-Picker oder den RGB Spectrum Picker). -
Servus zusammen,
bin frisch mit dem iobroker-Virus infiziert und versuche mich mit folgendem:
Ich wĂŒrde gerne meine Nanoleaf Canvas mit einem Aqara Cube steuern. Mit Blockly habe ich es geschafft, dass die Canvas mit dem Fallen-Befehl an bzw. ausgehen. Mit links/rechts kann ich die Helligkeit regeln.Mit Shake wĂŒrde ich gerne die nĂ€chste Szene wechseln. Geht das? Wenn ja, wie kriegt ein AnfĂ€nger das hin?
-
So wirklich einfach ist das nicht zu machen. Da es keine Funktion im Adapter dafĂŒr gibt, muss man das selbst bauen.
In Blockly wirst du das nicht direkt hinbekommen.
Aber man kann eine JS-Funktion in Blockly bauen, die folgendes tut:var currentEffect = getState('nanoleaf-lightpanels.0.LightPanels.effect'/*Current effect*/).val; var effectStates = getObject('nanoleaf-lightpanels.0.LightPanels.effect'/*Current effect*/).common.states; var keys = Object.keys(effectStates); var nextIndex = keys.indexOf(currentEffect) + 1; if (nextIndex >= keys.length) nextIndex = 0; setState('nanoleaf-lightpanels.0.LightPanels.effect'/*Current effect*/, keys[nextIndex]);AnschlieĂend kannst du den Funktionsbaustein einfach z.B. in einem Trigger aufrufen. Die Funktion rolliert dann durch alle Effekte durch (fĂ€ngt beim Letzten dann wieder von vorne an):

-
Danke schon mal. Das mit dem Erstellen hat soweit gepasst.
Leider erhalte ich Fehler. Muss ich hier noch was anpassen? Sind die Bezeichnungen fĂŒr die Canvas richtig? Habe bspw. LightPanels.effect nicht. Bei mir heiĂt das Canvas.effect. Ist effectStates das gleiche wie effectsList?
UPDATE: hab LightPanels ersetzt durch Canvas. LĂ€uft!!!
-
Danke schon mal. Das mit dem Erstellen hat soweit gepasst.
Leider erhalte ich Fehler. Muss ich hier noch was anpassen? Sind die Bezeichnungen fĂŒr die Canvas richtig? Habe bspw. LightPanels.effect nicht. Bei mir heiĂt das Canvas.effect. Ist effectStates das gleiche wie effectsList?
UPDATE: hab LightPanels ersetzt durch Canvas. LĂ€uft!!!
-
Hmm, da unterscheidet sich der Canvas-Controller offenbar auch, denn bei den Light Panels geht das.
Wenn du es ĂŒber Curl macht, musst du "Solid" oder "Dynamic" senden (die Sternchen * sind wichtig).
Aber das macht der Adapter ja (sieht man ja im Log). Du könntest noch Shuffle versuchen, aber ich vermute, wenn das Solid und Dynamic nicht geht, wird das auch nicht funktionieren.
Dann werde ich diese beiden Pseudo-Effekte fĂŒr die Canvas entfernen.
@daniel_2k
Ich brĂ€uchte mal euere Hilfe :-) Irgendwie komme ich mit dem Adapter nicht so ganz klar. Ich habe die Auroras. Habe bereits ein Blockly erstellt mit umstellen der einzelenen Szenen aber seit Heute bringt er im LOGIch steuere die Nanoleafs als erstes mit Power State "true" an, anschlieĂend mit Effect Dynamic oder Solid und dann der jeweilige Effekt von der Effect Liste. Manchmal gehts manchmal nicht. Heute will er gar nicht mehr. Mache ich da was falsch oder gibts mit den Aurora auch Probleme?
-
das Problem sind die Umlaute in den Effekt-Namen. Das Problem hatte schon mal ein User.
Ich habe mir das jetzt noch mal ganz genau angeschaut. Es war nicht einfach zu finden, aber ich weiĂ jetzt wo das Problem liegt.
Die Umlaute im Effekt-Name fĂŒhren bei UTF-8-Zeichenkodierung dazu, dass diese in 2 Bytes kodiert werden und nicht in einem Byte. Die Content-LĂ€nge des Requests wird dann falsch berechnet. Damit ist das, was der Controller dann empfĂ€ngt MĂŒll (daher auch der HTTP-Status-Code 422 Unprocessable Entity). Das ist in der Aurora-API schon nicht berĂŒcksichtigt. Ist aber an sich kein Problem, da das Ding noch andere Probleme hat, habe ich davon einen Fork gemacht. Ich werde dafĂŒr ein Bugfix machen.
Wird vermutlich aber erst am Wochenende.Noch was: was meinst du mit "Ich habe die Auroras"? Es gibt derzeit nanoleaf LightPanels (hieĂ mal nanoleaf Aurora) und die Canvas. Was hast du davon? Das die Pseudo-Effekte "Solid" und "Dynamic" nicht gehen, verstehe ich nicht ganz.
Aber teile mir mal genau mit, was fĂŒr ein Device du hat (im Objekt-Explorer unter deinem Adapter-Namespace unter info gibt's die Datenpunkte "model" und "name"). -
das Problem sind die Umlaute in den Effekt-Namen. Das Problem hatte schon mal ein User.
Ich habe mir das jetzt noch mal ganz genau angeschaut. Es war nicht einfach zu finden, aber ich weiĂ jetzt wo das Problem liegt.
Die Umlaute im Effekt-Name fĂŒhren bei UTF-8-Zeichenkodierung dazu, dass diese in 2 Bytes kodiert werden und nicht in einem Byte. Die Content-LĂ€nge des Requests wird dann falsch berechnet. Damit ist das, was der Controller dann empfĂ€ngt MĂŒll (daher auch der HTTP-Status-Code 422 Unprocessable Entity). Das ist in der Aurora-API schon nicht berĂŒcksichtigt. Ist aber an sich kein Problem, da das Ding noch andere Probleme hat, habe ich davon einen Fork gemacht. Ich werde dafĂŒr ein Bugfix machen.
Wird vermutlich aber erst am Wochenende.Noch was: was meinst du mit "Ich habe die Auroras"? Es gibt derzeit nanoleaf LightPanels (hieĂ mal nanoleaf Aurora) und die Canvas. Was hast du davon? Das die Pseudo-Effekte "Solid" und "Dynamic" nicht gehen, verstehe ich nicht ganz.
Aber teile mir mal genau mit, was fĂŒr ein Device du hat (im Objekt-Explorer unter deinem Adapter-Namespace unter info gibt's die Datenpunkte "model" und "name").@daniel_2k
Habe die Light Panels Modell NL22 đ
Danke fĂŒr die Info, wenns dir nichts ausmacht warte ich auf das Update ansonsten kann ichâs auch umbennen. wenn man es weiĂ ist ja nicht so wild đ
Die restliche Anfrage bezog sich eigentlich nur ob ich die Schaltreihenfolge richtig mache. Also > Ein > Dynamic bzw Solid und dann den Effect. Da meckert der Adapter im LOG auch manchmal Bad Request (glaub ich wars) -
hm... eins mach ich minimum falsch. im LOG kommt noch immer
OpenAPI: Error while setting effect "Dynamic", HTTP status 40
-
hm... eins mach ich minimum falsch. im LOG kommt noch immer
OpenAPI: Error while setting effect "Dynamic", HTTP status 40
@Stormbringer
Du musst beim Setzen eines Effekts keine Reihenfolge einhalten oder mehrer Schritten durchfĂŒhren.
Voriges setzen von Dynamic oder Solid ist unnötig. Du kannst den gewĂŒnschten Effekt direkt setzen.
Selbst ein voriges Einschalten ist nicht notwendig, da sich die Light Panels automatisch einschalten sobald man einen Effekt setzt. -
hm... eins mach ich minimum falsch. im LOG kommt noch immer
OpenAPI: Error while setting effect "Dynamic", HTTP status 40
@Stormbringer
Zu dem Bad Request beim Setzen von Solid und Dynamic: offenbar hat sich mit einer Firmware-Version etwas geĂ€ndert. Solid und Dynamic konnte man frĂŒher setzen. Das wurde offenbar jetzt analog den Canvas verĂ€ndert.
Ich werde in der nÀchsten Version des Adapters diese beiden Pseudo-States entfernen. -
@Stormbringer
Du musst beim Setzen eines Effekts keine Reihenfolge einhalten oder mehrer Schritten durchfĂŒhren.
Voriges setzen von Dynamic oder Solid ist unnötig. Du kannst den gewĂŒnschten Effekt direkt setzen.
Selbst ein voriges Einschalten ist nicht notwendig, da sich die Light Panels automatisch einschalten sobald man einen Effekt setzt.@daniel_2k
Super Daniel, hast mir viel weitergeholfen. Vielen lieben Dank!
Finds immer wieder witzig... So wie der kostenlose/freiwillige Support bei ioBroker funktioniert (sowohl bei Kompetenz als auch bei Freundlichkeit), könnten sich viele Firmen etwas runter schneiden ;D Auch wenns Smarthome technisch eh nie einer rankommen wĂŒrden :joy: -
@daniel_2k
Super Daniel, hast mir viel weitergeholfen. Vielen lieben Dank!
Finds immer wieder witzig... So wie der kostenlose/freiwillige Support bei ioBroker funktioniert (sowohl bei Kompetenz als auch bei Freundlichkeit), könnten sich viele Firmen etwas runter schneiden ;D Auch wenns Smarthome technisch eh nie einer rankommen wĂŒrden :joy:@Stormbringer
Ja, da hast du vollkommen Recht.
Neue Version ist online (latest) .
Sollte nun funktionieren. -
@Stormbringer
Ja, da hast du vollkommen Recht.
Neue Version ist online (latest) .
Sollte nun funktionieren.@daniel_2k
Super Danke fĂŒr die tolle Arbeit. -
So wirklich einfach ist das nicht zu machen. Da es keine Funktion im Adapter dafĂŒr gibt, muss man das selbst bauen.
In Blockly wirst du das nicht direkt hinbekommen.
Aber man kann eine JS-Funktion in Blockly bauen, die folgendes tut:var currentEffect = getState('nanoleaf-lightpanels.0.LightPanels.effect'/*Current effect*/).val; var effectStates = getObject('nanoleaf-lightpanels.0.LightPanels.effect'/*Current effect*/).common.states; var keys = Object.keys(effectStates); var nextIndex = keys.indexOf(currentEffect) + 1; if (nextIndex >= keys.length) nextIndex = 0; setState('nanoleaf-lightpanels.0.LightPanels.effect'/*Current effect*/, keys[nextIndex]);AnschlieĂend kannst du den Funktionsbaustein einfach z.B. in einem Trigger aufrufen. Die Funktion rolliert dann durch alle Effekte durch (fĂ€ngt beim Letzten dann wieder von vorne an):

@daniel_2k sagte in Nanoleaf Light Panels (Aurora) Adapter - suche Tester:
So wirklich einfach ist das nicht zu machen. Da es keine Funktion im Adapter dafĂŒr gibt, muss man das selbst bauen.
In Blockly wirst du das nicht direkt hinbekommen.
Aber man kann eine JS-Funktion in Blockly bauen, die folgendes tut:var currentEffect = getState('nanoleaf-lightpanels.0.LightPanels.effect'/*Current effect*/).val; var effectStates = getObject('nanoleaf-lightpanels.0.LightPanels.effect'/*Current effect*/).common.states; var keys = Object.keys(effectStates); var nextIndex = keys.indexOf(currentEffect) + 1; if (nextIndex >= keys.length) nextIndex = 0; setState('nanoleaf-lightpanels.0.LightPanels.effect'/*Current effect*/, keys[nextIndex]);AnschlieĂend kannst du den Funktionsbaustein einfach z.B. in einem Trigger aufrufen. Die Funktion rolliert dann durch alle Effekte durch (fĂ€ngt beim Letzten dann wieder von vorne an):

Benutze den Skript jetzt auch fĂŒr nen Ikea Taster. Der lĂ€uft auch super in Blockly, danke. Aber könnte man den mit JS so umschreiben, dass er in einer Version nur Rhythmusszenen durchblĂ€ttert und einer anderen nur die normalen bewegten durchskipt?
-
@daniel_2k sagte in Nanoleaf Light Panels (Aurora) Adapter - suche Tester:
So wirklich einfach ist das nicht zu machen. Da es keine Funktion im Adapter dafĂŒr gibt, muss man das selbst bauen.
In Blockly wirst du das nicht direkt hinbekommen.
Aber man kann eine JS-Funktion in Blockly bauen, die folgendes tut:var currentEffect = getState('nanoleaf-lightpanels.0.LightPanels.effect'/*Current effect*/).val; var effectStates = getObject('nanoleaf-lightpanels.0.LightPanels.effect'/*Current effect*/).common.states; var keys = Object.keys(effectStates); var nextIndex = keys.indexOf(currentEffect) + 1; if (nextIndex >= keys.length) nextIndex = 0; setState('nanoleaf-lightpanels.0.LightPanels.effect'/*Current effect*/, keys[nextIndex]);AnschlieĂend kannst du den Funktionsbaustein einfach z.B. in einem Trigger aufrufen. Die Funktion rolliert dann durch alle Effekte durch (fĂ€ngt beim Letzten dann wieder von vorne an):

Benutze den Skript jetzt auch fĂŒr nen Ikea Taster. Der lĂ€uft auch super in Blockly, danke. Aber könnte man den mit JS so umschreiben, dass er in einer Version nur Rhythmusszenen durchblĂ€ttert und einer anderen nur die normalen bewegten durchskipt?
@Stormbringer
Hallo Stormbringer,das geht leider nicht. FĂŒr den Adapter sind alle Effekte gleich, egal ob statische, dynamische oder Rythm-Szenen. Diese Informationen wird ĂŒber die API leider nicht ĂŒbertragen. Der Adapter bekommt nur eine Liste mit den Effekt-/Szenenamen.
So kannst du leider nur durch alle wechseln.GrĂŒĂe Daniel
-
@Stormbringer
Hallo Stormbringer,das geht leider nicht. FĂŒr den Adapter sind alle Effekte gleich, egal ob statische, dynamische oder Rythm-Szenen. Diese Informationen wird ĂŒber die API leider nicht ĂŒbertragen. Der Adapter bekommt nur eine Liste mit den Effekt-/Szenenamen.
So kannst du leider nur durch alle wechseln.GrĂŒĂe Daniel
@daniel_2k Schade, kann man nichts machen. Trotzdem danke fĂŒr die Info :o)