NEWS
Test Adapter nanoleaf-lightpanels v1.3.x GitHub/latest
-
@daniel_2k sagte in Test Adapter nanoleaf-lightpanels v1.2.x GitHub/latest:
Du kannst auch via Geräte erkennen im Adapter das Gerät suchen.
Das hat bei mir nicht funktioniert.
-
@ofbeqnpolkkl6mby5e13
Ja, bei mir findet er die jetzt nach dem Update auch net mehr und der Adapter verliert auch die Verbindung, weil kein ssdp:alive mehr ankommt.
Muss ich mal debuggen und schauen, ob die sich jetzt etwas anders melden. -
@daniel_2k
6.2.1 (2021-10-08)Added support for Nanoleaf Canvas Control Squares to becomes Cloud Gateways for Nanoleaf Essentials
https://helpdesk.nanoleaf.me/hc/en-us/articles/360014639693-Canvas-Firmware-Release-Notes
-
@daniel_2k sagte in Test Adapter nanoleaf-lightpanels v1.2.x GitHub/latest:
Ja, bei mir findet er die jetzt nach dem Update auch net mehr und der Adapter verliert auch die Verbindung, weil kein ssdp:alive mehr ankommt.
Kann ich bestätigen.
-
@ofbeqnpolkkl6mby5e13
Also das mit dem keep alive über SSDP ist offenbar ein Bug in der Firmware.
Das Problem ist, dass die Location, die im ssdp:alive vom Gerät gesendet wird, leer ist:2021-11-13 15:05:05.719 - debug: nanoleaf-lightpanels.2 (8320) ssdp:alive NOTIFY received { "host": "239.255.255.250:1900", "nt": "nanoleaf:nl29", "nts": "ssdp:alive", "usn": "uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "location": "http://:16021", "cache-control": "max-age = 60", "nl-deviceid": "XX:XX:XX:XX:XX:XX", "nl-devicename": "Canvas 22D6" } 2021-11-13 15:05:05.720 - debug: nanoleaf-lightpanels.2 (8320) Invalid location 'http://:16021' received from device.
Da fehlt die Adresse bei location.
Kann das jemand mal bei sich nachschauen, ob da auch die IP fehlt?
Einfach den Adapter auf debug stellen, dann sieht man die ssdp-Infos im Protokoll inkl. Fehlermeldung. -
@ofbeqnpolkkl6mby5e13
Beim M-SEARCH zum Suchen der Geräte ist die Location ebenfalls falsch, daher werden die auch nicht gefunden.
Ich reporte das mal bei nanoleaf.Edit:
Das Problem ist bekannt und tritt auch bei den Shapes auf. Da kann ich erstmal nix machen, da muss eine neue FW released werden.
Also bis auf weiteres im Adapter "Polling anstatt SSDP Notify Messages für Keep-Alive verwenden" aktivieren. -
@daniel_2k sagte in Test Adapter nanoleaf-lightpanels v1.2.x GitHub/latest:
Kann das jemand mal bei sich nachschauen, ob da auch die IP fehlt?
nanoleaf-lightpanels.0 2021-11-13 15:16:32.571 debug Invalid location 'http://:16021' received from device. nanoleaf-lightpanels.0 2021-11-13 15:16:32.569 debug ssdp:alive NOTIFY received: {"host":"239.255.255.250:1900","nt":"nanoleaf:nl29","nts":"ssdp:alive","usn":"uuid:***","location":"http://:16021","cache-control":"max-age = 60","nl-deviceid":"***","nl-devicename":"Canvas ***"}
-
@ofbeqnpolkkl6mby5e13
OK Danke, passt. Betätigt das und passt mit dem was im nanoleaf-Forum für die Shapes gemeldet ist. -
@daniel_2k
Danke für deine Arbeit! -
@daniel_2k
Ich glaube davon, dass du jemals das Polling aus dem Adapter entfernen kannst, kannst du dich endgültig verabschieden... -
@daniel_2k
Hi! Könnte man diese fehlerhafte (Location-) Meldung nicht abfangen und bevor sie im Adapter weiterverarbeitet wird die IP einsetzen, die im Adapter hinterlegt ist? -
@badsnoopy667
Nein, geht leider nicht, weil ich ja wissen muss, von welchem Gerät das ssdp:alive kommt, falls man mehrere hat. Und die UUID habe ich zu der Zeit noch nicht. Die wird erst beim ersten Paket gemerkt und alle künftigen Pakete werden dann nur gegen die UUID geprüft.
Ich bekomme ja die reinen Nutzdaten der SSDP-Pakete von der Library. Den Absender sehe ich da nur in der Location. Zumindest war mir so, müsste ich noch mal reinschauen, ob da neben der Location noch ein IP-Feld im Objekt ist. Aber wenn nicht, keine Chance. -
@daniel_2k
Ja, an den Fall, dass man mehrere Nanoleafs haben könnte habe ich natürlich nicht gedacht!
Habe heute die Elements (Holz) bekommen. Die werden vom Adapter noch nicht als solche erkannt, sondern als fallback auf Canvas gestellt.
Wenn ich Dir irgendwie helfen kann um die Elements in den Adapter zu integrieren sag mal Bescheid! -
@badsnoopy667
Ja, gerne.
Du könntest mal ein GET auf folgenden Endpoint machen und mir die Response schicken, dann kann ich die Elements hinzufügen:http://<IP-des-Geräts>:16021/api/v1/<Auth-Token>
-
@daniel_2k Hab ich das so korrekt gemacht?
{"name":"Elements 19B3","serialNo":"S21240E7241","manufacturer":"Nanoleaf","firmwareVersion":"6.1.2","hardwareVersion":"1.1-0","model":"NL52","discovery":{},"effects":{"effectsList":["Bloom","Calming Waterfall","Clouds","Ember","Fireflies","Glimmer","Sahara Night","Splash","Sunbeam","Test Highlight 1","Test Organic 1","Warm Waves","Warm Waves Slow"],"select":"Ember"},"firmwareUpgrade":{},"panelLayout":{"globalOrientation":{"value":242,"max":360,"min":0},"layout":{"numPanels":79,"sideLength":67,"positionData":[{"panelId":57920,"x":207,"y":398,"o":360,"shapeType":15},{"panelId":53250,"x":181,"y":355,"o":300,"shapeType":15},{"panelId":16579,"x":131,"y":355,"o":240,"shapeType":15},{"panelId":45443,"x":106,"y":398,"o":180,"shapeType":15},{"panelId":8514,"x":131,"y":442,"o":120,"shapeType":15},{"panelId":54535,"x":181,"y":442,"o":60,"shapeType":15},{"panelId":63893,"x":207,"y":456,"o":540,"shapeType":15},{"panelId":26964,"x":232,"y":500,"o":480,"shapeType":15},{"panelId":38932,"x":282,"y":500,"o":420,"shapeType":15},{"panelId":2261,"x":307,"y":456,"o":360,"shapeType":15},{"panelId":6325,"x":282,"y":413,"o":300,"shapeType":15},{"panelId":34932,"x":232,"y":413,"o":240,"shapeType":15},{"panelId":2490,"x":332,"y":471,"o":600,"shapeType":15},{"panelId":39291,"x":307,"y":514,"o":540,"shapeType":15},{"panelId":27966,"x":332,"y":558,"o":480,"shapeType":15},{"panelId":65023,"x":382,"y":558,"o":420,"shapeType":15},{"panelId":3263,"x":408,"y":514,"o":360,"shapeType":15},{"panelId":40062,"x":382,"y":471,"o":300,"shapeType":15},{"panelId":32437,"x":483,"y":616,"o":780,"shapeType":15},{"panelId":61044,"x":508,"y":572,"o":720,"shapeType":15},{"panelId":7988,"x":483,"y":529,"o":660,"shapeType":15},{"panelId":36853,"x":433,"y":529,"o":600,"shapeType":15},{"panelId":48567,"x":408,"y":572,"o":540,"shapeType":15},{"panelId":11638,"x":433,"y":616,"o":480,"shapeType":15},{"panelId":57030,"x":483,"y":413,"o":660,"shapeType":15},{"panelId":60548,"x":433,"y":413,"o":600,"shapeType":15},{"panelId":31813,"x":408,"y":456,"o":540,"shapeType":15},{"panelId":36101,"x":433,"y":500,"o":480,"shapeType":15},{"panelId":7620,"x":483,"y":500,"o":420,"shapeType":15},{"panelId":64917,"x":508,"y":456,"o":360,"shapeType":15},{"panelId":65381,"x":307,"y":340,"o":720,"shapeType":15},{"panelId":28580,"x":282,"y":297,"o":660,"shapeType":15},{"panelId":32708,"x":232,"y":297,"o":600,"shapeType":15},{"panelId":61189,"x":207,"y":340,"o":540,"shapeType":15},{"panelId":7749,"x":232,"y":384,"o":480,"shapeType":15},{"panelId":36484,"x":282,"y":384,"o":420,"shapeType":15},{"panelId":21311,"x":382,"y":239,"o":1020,"shapeType":15},{"panelId":50174,"x":332,"y":239,"o":960,"shapeType":15},{"panelId":12990,"x":307,"y":282,"o":900,"shapeType":15},{"panelId":41599,"x":332,"y":326,"o":840,"shapeType":15},{"panelId":36925,"x":382,"y":326,"o":780,"shapeType":15},{"panelId":252,"x":408,"y":282,"o":720,"shapeType":15},{"panelId":643,"x":483,"y":268,"o":1140,"shapeType":15},{"panelId":62403,"x":508,"y":224,"o":1080,"shapeType":15},{"panelId":25346,"x":483,"y":181,"o":1020,"shapeType":15},{"panelId":29538,"x":433,"y":181,"o":960,"shapeType":15},{"panelId":58275,"x":408,"y":224,"o":900,"shapeType":15},{"panelId":4835,"x":433,"y":268,"o":840,"shapeType":15},{"panelId":63429,"x":382,"y":123,"o":1020,"shapeType":15},{"panelId":1669,"x":332,"y":123,"o":960,"shapeType":15},{"panelId":38468,"x":307,"y":166,"o":900,"shapeType":15},{"panelId":41990,"x":332,"y":210,"o":840,"shapeType":15},{"panelId":13511,"x":382,"y":210,"o":780,"shapeType":15},{"panelId":50567,"x":408,"y":166,"o":720,"shapeType":15},{"panelId":41500,"x":332,"y":94,"o":1200,"shapeType":15},{"panelId":22105,"x":382,"y":94,"o":1140,"shapeType":15},{"panelId":50840,"x":408,"y":50,"o":1080,"shapeType":15},{"panelId":14296,"x":382,"y":7,"o":1020,"shapeType":15},{"panelId":42777,"x":332,"y":7,"o":960,"shapeType":15},{"panelId":38235,"x":307,"y":50,"o":900,"shapeType":15},{"panelId":28003,"x":282,"y":181,"o":1020,"shapeType":15},{"panelId":39971,"x":232,"y":181,"o":960,"shapeType":15},{"panelId":3298,"x":207,"y":224,"o":900,"shapeType":15},{"panelId":13482,"x":232,"y":268,"o":840,"shapeType":15},{"panelId":42091,"x":282,"y":268,"o":780,"shapeType":15},{"panelId":21803,"x":307,"y":224,"o":720,"shapeType":15},{"panelId":45996,"x":282,"y":65,"o":1020,"shapeType":15},{"panelId":17132,"x":232,"y":65,"o":960,"shapeType":15},{"panelId":53805,"x":207,"y":108,"o":900,"shapeType":15},{"panelId":9832,"x":232,"y":152,"o":840,"shapeType":15},{"panelId":46761,"x":282,"y":152,"o":780,"shapeType":15},{"panelId":18409,"x":307,"y":108,"o":720,"shapeType":15},{"panelId":24169,"x":181,"y":7,"o":1020,"shapeType":15},{"panelId":52904,"x":131,"y":7,"o":960,"shapeType":15},{"panelId":64746,"x":106,"y":50,"o":900,"shapeType":15},{"panelId":27691,"x":131,"y":94,"o":840,"shapeType":15},{"panelId":40299,"x":181,"y":94,"o":780,"shapeType":15},{"panelId":3498,"x":207,"y":50,"o":720,"shapeType":15},{"panelId":0,"x":97,"y":432,"o":60,"shapeType":12}]}},"qkihnokomhartlnp":{},"schedules":{},"state":{"brightness":{"value":100,"max":100,"min":0},"colorMode":"effect","ct":{"value":2500,"max":4000,"min":1500},"hue":{"value":0,"max":360,"min":0},"on":{"value":true},"sat":{"value":0,"max":100,"min":0}}}
-
@badsnoopy667 sagte in Test Adapter nanoleaf-lightpanels v1.2.x GitHub/latest:
Hab ich das so korrekt gemacht?
-
@daniel_2k said in Test Adapter nanoleaf-lightpanels v1.2.x GitHub/latest:
http://<IP-des-Geräts>:16021/api/v1/<Auth-Token>
Hab' auch gerade vor ein Paar Minuten festgestellt, dass die Elements offensichtlich nicht zu 100% unterstützt werden. Hier die Antwort:
{"name":"Elements 1692","serialNo":"S21240E6358","manufacturer":"Nanoleaf","firmwareVersion":"5.2.4","hardwareVersion":"1.1-0","model":"NL52","discovery":{},"effects":{"effectsList":["Bloom","Calming Waterfall","Clouds","Ember","Fireflies","Glimmer","Sahara Night","Splash","Sunbeam","Warm Waves"],"select":"Sahara Night"},"firmwareUpgrade":{},"panelLayout":{"globalOrientation":{"value":0,"max":360,"min":0},"layout":{"numPanels":7,"sideLength":0,"positionData":[{"panelId":4765,"x":182,"y":84,"o":360,"shapeType":15},{"panelId":8415,"x":156,"y":41,"o":300,"shapeType":15},{"panelId":45086,"x":106,"y":41,"o":240,"shapeType":15},{"panelId":16734,"x":81,"y":84,"o":180,"shapeType":15},{"panelId":53663,"x":106,"y":128,"o":120,"shapeType":15},{"panelId":59863,"x":156,"y":128,"o":60,"shapeType":15},{"panelId":0,"x":190,"y":50,"o":240,"shapeType":12}]}},"schedules":{},"state":{"brightness":{"value":100,"max":100,"min":0},"colorMode":"effect","ct":{"value":4000,"max":4000,"min":1500},"hue":{"value":0,"max":360,"min":0},"on":{"value":false},"sat":{"value":0,"max":100,"min":0}}}
-
@badsnoopy667 Ich frage mich nur gerade, warum meine Firmwareversion älter ist, obwohl wir die selbe Hardware Version haben. Ich hatte gerade erst ein Firmware Update vorgenommen.
Edit: Das Firmwareupdate wird offensichtlich in Stufen durchgeführt. Jetzt wird mir plötzlich die 6.0.5 angeboten.
Edit: Bin jetzt auch auf 6.1.2 -
@chiroptera , @badsnoopy667
Ich habe Version 1.3.0 auf Github zum Testen bereitgestellt.
Elements und Lines sollten jetzt als solche erkannt werden.
Wenn noch was auffällt, einfach melden.Wegen der alive-Erkennung: ich nutze als Fallback (weil ja die Location wegen dem Firmware-Bug nicht korrekt gefült ist) die IP-Adresse des SSDP-Pakets als Fallback. So sollte die Erkennung wieder funktionieren.
-
@daniel_2k
Vielen Dank für die schnelle Umsetzung! Ich hab den Adapter jetzt auf 1.3.0 gezogen und werde das mal ausprobieren. Mit 1.2.1 hat er zuletzt einfach gar keine Verbindung zu den Elements mehr bekommen, das sieht jetzt (nach 15 Minuten) schon besser aus. Auch ein/ausschalten über "state" ging bisher, auch nachdem die Panels eine Zeit lang aus waren. Wenn das so bleibt, kann ich auf meinen Homekit-Kurbefehl-Workaround zum schalten der Panels bald verzichten! Danke dafür!Update: Ja sehr geil! Man kann ja sogar die Wisch- und Touchgesten an den Panels auslesen. Hab erstmal die Rollladensteuerung vom Wohnzimmer auf die Wischgesten gelegt... einfach weil's geht.