Hello,
Been trying to get my Nanoleaf panels linked in to OH, but the binding seems to fail when the Rhythm module is attached. Please see log trace below (serial/auth key XXXX’d out).
2020-03-01 15:30:27.164 [DEBUG] [al.handler.NanoleafControllerHandler] - Run update job
2020-03-01 15:30:27.164 [DEBUG] [al.handler.NanoleafControllerHandler] - Update channels for controller nanoleaf:controller:5d62aece
2020-03-01 15:30:27.164 [TRACE] [nding.nanoleaf.internal.OpenAPIUtils] - RequestBuilder: Sending Request gizmohub.jnet.local:16021 /api/v1/XXXXXX/
2020-03-01 15:30:27.165 [TRACE] [nding.nanoleaf.internal.OpenAPIUtils] - Sending Request http://gizmohub.jnet.local:16021/api/v1/XXXXXXX/ no query parameters
2020-03-01 15:30:27.165 [TRACE] [nding.nanoleaf.internal.OpenAPIUtils] - Request method:GET uri:http://gizmohub.jnet.local:16021/api/XXXXXXX/ params{}
2020-03-01 15:30:27.196 [TRACE] [nding.nanoleaf.internal.OpenAPIUtils] - API response from Nanoleaf controller: {"name":"Nanoleaf-DFD8","serialNo":"XXXXXX","manufacturer":"Nanoleaf","firmwareVersion":"3.0.8","model":"NL22","state":{"on":{"value":true},"brightness":{"value":100,"max":100,"min":0},"hue":{"value":0,"max":360,"min":0},"sat":{"value":0,"max":100,"min":0},"ct":{"value":4000,"max":6500,"min":1200},"colorMode":"effect"},"effects":{"select":"Color Burst","effectsList":["Color Burst","Fireworks","Flames","Forest","Inner Peace","Meteor Shower","Nemo","Northern Lights","Paint Splatter","Pulse Pop Beats","Rhythmic Northern Lights","Ripple","Romantic","Snowfall","Sound Bar","Streaking Notes"]},"panelLayout":{"layout":{"numPanels":10,"sideLength":150,"positionData":[{"panelId":85,"x":0,"y":173,"o":180,"shapeType":0},{"panelId":111,"x":149,"y":259,"o":120,"shapeType":0},{"panelId":42,"x":299,"y":259,"o":120,"shapeType":0},{"panelId":132,"x":149,"y":173,"o":300,"shapeType":0},{"panelId":116,"x":-74,"y":43,"o":60,"shapeType":0},{"panelId":124,"x":224,"y":303,"o":180,"shapeType":0},{"panelId":88,"x":374,"y":303,"o":60,"shapeType":0},{"panelId":109,"x":-74,"y":129,"o":0,"shapeType":0},{"panelId":138,"x":74,"y":129,"o":0,"shapeType":0}]},"globalOrientation":{"value":0,"max":360,"min":0}},"rhythm":{"rhythmConnected":true,"rhythmActive":false,"rhythmId":436,"hardwareVersion":"2.0","firmwareVersion":"2.4.2","auxAvailable":false,"rhythmMode":0,"rhythmPos":{"x":-149,"y":0,"o":240}}}
2020-03-01 15:30:27.196 [DEBUG] [nding.nanoleaf.internal.OpenAPIUtils] - API response code: 200
2020-03-01 15:30:27.198 [DEBUG] [al.handler.NanoleafControllerHandler] - Set to device type lightPanels
2020-03-01 15:30:27.199 [TRACE] [al.handler.NanoleafControllerHandler] - Configuration property: key deviceType value lightPanels
2020-03-01 15:30:27.199 [TRACE] [al.handler.NanoleafControllerHandler] - Configuration property: key address value gizmohub.jnet.local
2020-03-01 15:30:27.199 [TRACE] [al.handler.NanoleafControllerHandler] - Configuration property: key port value 16021
2020-03-01 15:30:27.199 [TRACE] [al.handler.NanoleafControllerHandler] - Configuration property: key refreshInterval value 60
2020-03-01 15:30:27.200 [TRACE] [al.handler.NanoleafControllerHandler] - Configuration property: key authToken value XXXXXX
2020-03-01 15:30:27.200 [DEBUG] [al.handler.NanoleafControllerHandler] - Thing property: key serialNumber value XXXXXX
2020-03-01 15:30:27.200 [DEBUG] [al.handler.NanoleafControllerHandler] - Thing property: key firmwareVersion value 3.0.8
2020-03-01 15:30:27.200 [DEBUG] [al.handler.NanoleafControllerHandler] - Thing property: key modelId value
2020-03-01 15:30:27.200 [DEBUG] [al.handler.NanoleafControllerHandler] - Thing property: key vendor value
2020-03-01 15:30:27.201 [WARN ] [al.handler.NanoleafControllerHandler] - Update job failed
java.lang.IndexOutOfBoundsException: Index: 9, Size: 9
at java.util.ArrayList.rangeCheck(ArrayList.java:657) ~[?:1.8.0_242]
at java.util.ArrayList.get(ArrayList.java:433) ~[?:1.8.0_242]
at org.openhab.binding.nanoleaf.internal.model.Layout.getLayoutView(Layout.java:78) ~[?:?]
at org.openhab.binding.nanoleaf.internal.handler.NanoleafControllerHandler.updateFromControllerInfo(NanoleafControllerHandler.java:650) ~[?:?]
at org.openhab.binding.nanoleaf.internal.handler.NanoleafControllerHandler.runUpdate(NanoleafControllerHandler.java:351) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_242]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:1.8.0_242]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_242]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:1.8.0_242]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_242]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_242]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]
When I unplug the Rhythm module, the binding generally works, although somewhat unreliably. It seems to choke a lot when selecting various effects.
The only Thing I have defined is the controller itself. I have a few Items linked to state channels for control.
This is pretty frustrating, and completely breaks OpenHAB integration. Any suggestions would be greatly appreciated!