Nanoleaf Binding OH3 - Stabilization Update

This is exactly the issue I am having that I described here: [SOLVED] httpClient keeps failing Get-Request after onQueued with Timeout

We basically had the hope it would only appear in my environment but it turns out that it seems to be a more common issue. As you can see in the thread I do have a solution but we are not sure if it is okay to solve it that way (I basically cure the symptom because I tried to find the root cause which seems to be buried very deep somewhere else in a library that I have no access to).

I can provide with a patched version that I am using for 2 weeks now which at least in my environment turned out to be stable.

@Daniel_O @Masssssy tell me if you want to try out that version and I will upload a binding file. Do you know how to install that?

regards
Stefan

You mean like a .jar? Sure, that’s what I did with the snapshot already :slight_smile:

I didn’t notice this behavior at my own installation so far though! Or maybe I just didn’t notice it. I’ll keep an eye on it.

The risk of side effects would be higher in connection with other http bindings, right? That should be a lot? At home I can think of xiamo cloud vacuum robot and weather binding, maybe also sonos. my friend has WLED and shelly (not sure if it’s http?).

what kind of possible side effects could be expected? I don’t fear them, just to know what to look for. if it’s something severe, i’ll just revert back :slight_smile:

I cannot tell you for sure what the sideeffects are or could be but I can try to guess:

The way it works is that

  • each binding that uses http requires a so-called http-client to perform requests which basically is a parallel thread that handles http requests.
  • from what I understood openhab provides such a client thread from a pool (I which basically allows to create a http connection to a binding and the number by default in the whole openhab instance is 64 (parallel threads for the bindings)
  • if more than “64” bindings (or anything else within OH) requires an http client these are most likely shared between the ones that need it (I don’t know the insides but that’s what I think happens).
  • what I can see in my installation that all bridges (controllers) of the nanolead binding get the same client connection thread (I have four nano controllers and all use the same http client instance id)
  • what the fix does is that it checks if a client connection runs into a timeout and then “restarts” the http client connection that was given to the binding (note that afaik there is no way of detecting on the http-client from the outside if there is something wrong).

So what could happen?

My guess is: IF the same client connection was used by a different binding and the other binding is in the midst of running a request when the nanoleaf binding is restarting the http client I think this request would probably fail. However, I would think that if that binding used that same client for its request it would fail with the request anyway similar to why the nanoleaf binding failed towards a timeout.

Does that answer your question?

So just have a lookout for similiar error messages. Got it.

Alright, I tested the snapshot binding that you sent. Removed the thing, stopped OH service, copied the jar and started OH again. Waited a bit and then added the thing again.

At first there was quite some action:

2021-03-22 22:07:22.044 [WARN ] [nding.nanoleaf.internal.OpenAPIUtils] - OpenAPI request failed with timeout

java.util.concurrent.TimeoutException: Total timeout 10000 ms elapsed

	at org.eclipse.jetty.client.HttpDestination$TimeoutTask.onTimeoutExpired(HttpDestination.java:529) ~[?:?]

	at org.eclipse.jetty.io.CyclicTimeout$Wakeup.run(CyclicTimeout.java:282) ~[?:?]

	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]

	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]

	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]

	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]

	at java.lang.Thread.run(Thread.java:834) [?:?]

2021-03-22 22:07:22.050 [WARN ] [nding.nanoleaf.internal.OpenAPIUtils] - restarting httpClient

==> /var/log/openhab/events.log <==

2021-03-22 22:07:23.826 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'wled:wled:8fa7313c45' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): ExecutionException: java.util.concurrent.RejectedExecutionException: HttpClient@1f597c3{STOPPING} is stopped

2021-03-22 22:07:24.058 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'wled:wled:ecfabc5f1455' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): ExecutionException: java.util.concurrent.RejectedExecutionException: HttpClient@1f597c3{STOPPING} is stopped


==> /var/log/openhab/openhab.log <==

2021-03-22 22:07:52.066 [WARN ] [e.jetty.util.thread.QueuedThreadPool] - QueuedThreadPool[OH-httpClient-common]@9fb5c9{STOPPING,10<=0<=40,i=8,r=-1,q=0}[NO_TRY] Couldn't stop Thread[OH-httpClient-common-136,5,main]

2021-03-22 22:07:52.069 [WARN ] [e.jetty.util.thread.QueuedThreadPool] - QueuedThreadPool[OH-httpClient-common]@9fb5c9{STOPPING,10<=0<=40,i=8,r=-1,q=0}[NO_TRY] Couldn't stop Thread[OH-httpClient-common-137,5,main]

2021-03-22 22:07:52.101 [WARN ] [nding.nanoleaf.internal.OpenAPIUtils] - OpenAPI request failed. Couldn't restart httpClient: 

org.openhab.binding.nanoleaf.internal.NanoleafException: Failed to send OpenAPI request: Timeout. Restarted httpclient

	at org.openhab.binding.nanoleaf.internal.OpenAPIUtils.restartHttpClient(OpenAPIUtils.java:149) [bundleFile:?]

	at org.openhab.binding.nanoleaf.internal.OpenAPIUtils.sendOpenAPIRequest(OpenAPIUtils.java:134) [bundleFile:?]

	at org.openhab.binding.nanoleaf.internal.handler.NanoleafControllerHandler.receiveControllerInfo(NanoleafControllerHandler.java:628) [bundleFile:?]

	at org.openhab.binding.nanoleaf.internal.handler.NanoleafControllerHandler.updateFromControllerInfo(NanoleafControllerHandler.java:542) [bundleFile:?]

	at org.openhab.binding.nanoleaf.internal.handler.NanoleafControllerHandler.runUpdate(NanoleafControllerHandler.java:360) [bundleFile:?]

	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]

	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]

	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]

	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]

	at java.lang.Thread.run(Thread.java:834) [?:?]

Caused by: java.util.concurrent.TimeoutException: Total timeout 10000 ms elapsed

	at org.eclipse.jetty.client.HttpDestination$TimeoutTask.onTimeoutExpired(HttpDestination.java:529) ~[?:?]

	at org.eclipse.jetty.io.CyclicTimeout$Wakeup.run(CyclicTimeout.java:282) ~[?:?]

	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]

	at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]

	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]

	... 3 more

2021-03-22 22:07:52.105 [WARN ] [al.handler.NanoleafControllerHandler] - Status update failed for controller nanoleaf:controller:5B4338595BC9 : Failed to send OpenAPI request: Timeout

==> /var/log/openhab/events.log <==

2021-03-22 22:07:52.107 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'nanoleaf:controller:5B4338595BC9' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Kommunikationsfehler. Konfiguration des Controllers prüfen.

2021-03-22 22:07:53.900 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'wled:wled:8fa7313c45' changed from OFFLINE (COMMUNICATION_ERROR): ExecutionException: java.util.concurrent.RejectedExecutionException: HttpClient@1f597c3{STOPPING} is stopped to ONLINE

2021-03-22 22:07:54.148 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'wled:wled:ecfabc5f1455' changed from OFFLINE (COMMUNICATION_ERROR): ExecutionException: java.util.concurrent.RejectedExecutionException: HttpClient@1f597c3{STOPPING} is stopped to ONLINE


2021-03-22 22:08:52.520 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'nanoleaf:controller:5B4338595BC9' changed from OFFLINE (COMMUNICATION_ERROR): Kommunikationsfehler. Konfiguration des Controllers prüfen. to ONLINE

Note how it also killed the WLED binding.

However, after that massacre, no further error messages in that regard.

Then I wanted to try to add an individual panel again.

Wanted to choose which one, but

openhab> openhab:nanoleaf layout nanoleaf:controller:5B4338595BC9
35050

only gave me this one ID back (there should be 9 panels)

I started a scan from the inbox and chose the one that was listed there, and another random one (25198). Create an item for the color channel and add it to the model.

Now, first weird thing … although in the ui, it’s configured like the controller color channel, in the model, it doesn’t have the color selector widget per default? I added it through meta data and then it works … at least in the ui. When choosing a color, this happens:

2021-03-22 22:20:20.362 [INFO ] [al.handler.NanoleafControllerHandler] - Received command 140,100,58 for channel nanoleaf:controller:5B4338595BC9:color

==> /var/log/openhab/events.log <==

2021-03-22 22:20:22.315 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Hexagon_Farbe' received command 140,100,56

2021-03-22 22:20:22.317 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Hexagon_Farbe' predicted to become 140,100,56

2021-03-22 22:20:22.324 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Hexagon_Farbe' changed from 140,100,58 to 140,100,56

==> /var/log/openhab/openhab.log <==

2021-03-22 22:20:22.328 [INFO ] [al.handler.NanoleafControllerHandler] - Received command 140,100,56 for channel nanoleaf:controller:5B4338595BC9:color

==> /var/log/openhab/events.log <==

2021-03-22 22:20:22.526 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Hexagon_Farbe' received command 140,100,39

2021-03-22 22:20:22.529 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Hexagon_Farbe' predicted to become 140,100,39

2021-03-22 22:20:22.537 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Hexagon_Farbe' changed from 140,100,56 to 140,100,39

2021-03-22 22:20:24.679 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:topic:dc7c69f665:0f55b4fd9c' changed from OFFLINE to ONLINE

2021-03-22 22:20:27.684 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'LightPanel25198_Farbe' received command 68,100,100

2021-03-22 22:20:27.686 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'LightPanel25198_Farbe' predicted to become 68,100,100

2021-03-22 22:20:27.689 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'LightPanel25198_Farbe' changed from 66,100,100 to 68,100,100

2021-03-22 22:20:28.110 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'LightPanel25198_Farbe' received command 76,100,100

2021-03-22 22:20:28.112 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'LightPanel25198_Farbe' predicted to become 76,100,100

2021-03-22 22:20:28.118 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'LightPanel25198_Farbe' changed from 68,100,100 to 76,100,100

2021-03-22 22:20:28.904 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'LightPanel25198_Farbe' received command 165,100,100

2021-03-22 22:20:28.907 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'LightPanel25198_Farbe' predicted to become 165,100,100

2021-03-22 22:20:28.914 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'LightPanel25198_Farbe' changed from 76,100,100 to 165,100,100

==> /var/log/openhab/openhab.log <==

2021-03-22 22:20:29.372 [INFO ] [nternal.handler.NanoleafPanelHandler] - sending effect command from panel nanoleaf:lightpanel:5B4338595BC9:25198: {"write":{"command":"display","animType":"static","animName":"","palette":[],"colorType":"","animData":"1 25198 1 221 255 0 0 10","loop":false}}

2021-03-22 22:20:29.397 [WARN ] [nternal.handler.NanoleafPanelHandler] - Handling command 68,100,100 for channelUID nanoleaf:lightpanel:5B4338595BC9:25198:color failed: Nanoleaf did not expect this request. HTTP response code 400

==> /var/log/openhab/events.log <==

2021-03-22 22:20:29.412 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'nanoleaf:lightpanel:5B4338595BC9:25198' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Kommunikationsfehler. Konfiguration des Controllers prüfen.

==> /var/log/openhab/openhab.log <==

2021-03-22 22:20:29.421 [INFO ] [nternal.handler.NanoleafPanelHandler] - sending effect command from panel nanoleaf:lightpanel:5B4338595BC9:25198: {"write":{"command":"display","animType":"static","animName":"","palette":[],"colorType":"","animData":"1 25198 1 186 255 0 0 10","loop":false}}

==> /var/log/openhab/events.log <==

2021-03-22 22:20:29.424 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'nanoleaf:lightpanel:5B4338595BC9:25198' changed from OFFLINE (COMMUNICATION_ERROR): Kommunikationsfehler. Konfiguration des Controllers prüfen. to ONLINE

==> /var/log/openhab/openhab.log <==

2021-03-22 22:20:29.429 [WARN ] [nternal.handler.NanoleafPanelHandler] - Handling command 76,100,100 for channelUID nanoleaf:lightpanel:5B4338595BC9:25198:color failed: Nanoleaf did not expect this request. HTTP response code 400

==> /var/log/openhab/events.log <==

2021-03-22 22:20:29.432 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'nanoleaf:lightpanel:5B4338595BC9:25198' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Kommunikationsfehler. Konfiguration des Controllers prüfen.

==> /var/log/openhab/openhab.log <==

2021-03-22 22:20:29.453 [INFO ] [nternal.handler.NanoleafPanelHandler] - sending effect command from panel nanoleaf:lightpanel:5B4338595BC9:25198: {"write":{"command":"display","animType":"static","animName":"","palette":[],"colorType":"","animData":"1 25198 1 0 255 191 0 10","loop":false}}

==> /var/log/openhab/events.log <==

2021-03-22 22:20:29.457 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'nanoleaf:lightpanel:5B4338595BC9:25198' changed from OFFLINE (COMMUNICATION_ERROR): Kommunikationsfehler. Konfiguration des Controllers prüfen. to ONLINE

==> /var/log/openhab/openhab.log <==

2021-03-22 22:20:29.460 [WARN ] [nternal.handler.NanoleafPanelHandler] - Handling command 165,100,100 for channelUID nanoleaf:lightpanel:5B4338595BC9:25198:color failed: Nanoleaf did not expect this request. HTTP response code 400

==> /var/log/openhab/events.log <==

2021-03-22 22:20:29.463 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'nanoleaf:lightpanel:5B4338595BC9:25198' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Kommunikationsfehler. Konfiguration des Controllers prüfen.

2021-03-22 22:20:53.020 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'nanoleaf:lightpanel:5B4338595BC9:25198' changed from OFFLINE (COMMUNICATION_ERROR): Kommunikationsfehler. Konfiguration des Controllers prüfen. to ONLINE

Maybe the api call needs to be different for the shapes panels?

During startup I saw this:

openhab.log:2021-03-22 22:01:08.505 [INFO ] [al.handler.NanoleafControllerHandle
r] - --------------------------- touch job registering on: http://192.168.178.24
:16021/api/v1/246FT0Xs9QUOof6orghXMqjM5WRdghwb/events?id=4

So I thought, touch should work and I created a rule for both panels to test it:

triggers:
  - id: "1"
    configuration:
      thingUID: nanoleaf:lightpanel:5B4338595BC9:35050
      channelUID: nanoleaf:lightpanel:5B4338595BC9:35050:tap
      event: DOUBLE_PRESSED
    type: core.ChannelEventTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: logInfo("nanoleaf", "u touched me")
    type: script.ScriptAction

But … nothing. I had my buddy open up the nanoleaf app to see the settings there. he had “gestures” disabled, as the old firmware was detecting “ghost” gestures. but usual tap events were activated all the time. we also enabled gestures for testing purposes, but no difference.

there is a menu where you can set up home kit actions for certain panels, we activated them for all the panels, but didn’t bind a double tap action. didn’t change anything though :-/

But the good thing, after the initial error messages regarding the http threads, I didn’t see any further errors in that regard in the log. Not sure what is going on at startup, but afterwards it seems fine?

I would like to announce a major stability improvement on the whole binding and touch functionality itself. Honestly I fought over many weeks and tried to analyse why the binding keeps becoming unresponsive in general and in particular that touch wouldn’t work anymore at some point in time. As this was related to concurrency issues it took me ages to track down the issues (see here as well),

For those who are interested in details:

Basically “touch” is detected by using Server-Side-Events. The problem is that this requires an “infinite running” http request connection to the device as an open channel for the binding to receive these events. Unfortunately this leads to the issue that in case the device is removed from power the connection is gone which CANNOT be detected by openhab, which in turn results into a dead connection that does not receive anything. So I had to change the implementation completely internally.
Another side effect was caused due to the fact that the device needs another normal connection for controlling the panels. Hence it is better to have two separate connections internally that are managed in different ways. Besides that I detected a bug that made the binding interfere between connections of different devices (sigh).

So before I spread the new version that has been really stable with 5 devices in my house I would like to ask volunteers that are running 3.1 to try out the new version and provide feedback to me.

Please pm me, thanks
Stefan

2 Likes

I can announce, that there is another update on its way with 3.2 which is even better AND it does now support SWIPES on the panels.

Have fun,
Stefan

2 Likes

hi Stefan,
i am running lightpanels only but cannot set single colors on a panel directly anymore. it was working fine under 2.5 and i believe even 3.0.
were there any changes? previously i used channel panelcolor and i switched to „color“ as per documentation.
however when i select a color the log reports „error 400, nanoleaf did not expect this request“

my controller and panels are configured using a things file.


Bridge nanoleaf:controller:1627EE307799 @ "Wohnzimmer" [ address="10.194.83.217", port=16021, authToken="xxx", refreshInterval=60 ] {                              
    Thing lightpanel 10 [ id=10 ]                                                               
    Thing lightpanel 11 [ id=11 ]                                                               
    Thing lightpanel 12 [ id=12 ]                                                               
    Thing lightpanel 13 [ id=13 ]                                                               
    Thing lightpanel 14 [ id=14 ]                                                           
…

items


Switch NanoleafPower "Nano Power" (gHaus) { channel="nanoleaf:controller:1627EE307799:color" }  
Dimmer NanoleafBrightness "Nano [%.0f]" { channel="nanoleaf:controller:1627EE307799:color", alexa="PowerController.powerState,BrightnessController.brightness" [category="LIGHT"], homekit="Lighting, Lighting.Brightness"}                                                                     
Color NanoleafColor "Farbe" { channel="nanoleaf:controller:1627EE307799:color" }                
Number NanoleafColorTemp "Farbtemperatur [%.000f]" { channel="nanoleaf:controller:1627EE307799:colorTemperatureAbs" }                                                                           
String NanoleafColorMode "Farbmodus [MAP(nanoleaf.map):%s]" { channel="nanoleaf:controller:1627EE307799:colorMode" }                                                                            
String NanoleafEffect "Effekt" { channel="nanoleaf:controller:1627EE307799:effect" }            
Switch nanoleaf_fortuna "Fortuna - Gameday" {expire="1s,state=OFF"}                             
                                                                                                
                                                                                                
Color NanoleafPower10 "10" { channel="nanoleaf:lightpanel:1627EE307799:10:color" }              
Color NanoleafPower11 "11" { channel="nanoleaf:lightpanel:1627EE307799:11:color" }              
Color NanoleafPower12 "12" { channel="nanoleaf:lightpanel:1627EE307799:12:color" }              
Color NanoleafPower13 "13" { channel="nanoleaf:lightpanel:1627EE307799:13:color" }              
Color NanoleafPower14 "14" { channel="nanoleaf:lightpanel:1627EE307799:14:color" }              
Color NanoleafPower15 "15" { channel="nanoleaf:lightpanel:1627EE307799:15:color" }      
…

Which version are you using?

open the openhab console (see Binding Readme)

openhab> bundle:list | grep "Nano"
365 │ Active │  80 │ 3.2.0.M4              │ openHAB Add-ons :: Bundles :: Nanoleaf Binding

You should be on 3.2.0.M4 because it received a lot of improvements and has been stable without any issues with multiple devices in my house.

Ah, alright. Still on m1 3.2.0.
Let me try to update

I had the same issue when I installed my canvas panels two weeks ago. The panel thing went offline after sending a color to a single panel. I had to disable the controller thing and reanable it in order to get it working again (touch triggers etc).

I tried out the 3.2 snapshot and ever since it’s working much much better.
Even though after updating a rules file the first few touch triggers would not be received by OH…

But still very good work @stefan.hoehn!
Much appreciated :slight_smile:

1 Like

Touch is sometimes tricky. I had many conversations with nanoleaf about that. They recommend using the whole hand but even that doesn’t work all the time but at least mostly.

After upgrading to 3.2.0m4 and editing my rules for oh3 it is accepting single colors.

Christmas calendar is working again on my panels.

Thanks!

Hi Nanoleaf people, Hardware questions - I’m wanting to run these in my campervan and power from 12v. Can you please advise the spec of the PSU that comes with the nanoleafs? And a possible photograph of the power connectors. This information is impossible to find online.

You need to be more specific. Which one of the Nanoleaf models are you using?

Thanks, Ole, for bouncing that up again. My Nanoleaf Canvas says 42V DC with 0.57A on the back of the controller. So you may just look at the back of your controller to find out.

Yes, but the Auroras have at least a different physical panel connector. Unsure of electrical specs as I only have the Canvas. :slight_smile:

@stefan.hoehn I came here today because my touch gestures are not coming through anymore.
Unsure of exactly when it happened. Could have been when I upgraded to 3.3.0 Release:

openhab> |list | grep -i nano
258 │ Active │  80 │ 3.3.0                  │ openHAB Add-ons :: Bundles :: Nanoleaf Binding

Firing up my old pre-binding python script shows the event is registered through REST API:

2022-08-06 17:11:03,160 Listening...
2022-08-06 17:11:16,788 {"events":[{"panelId":42633,"gesture":0}]}

Nothing heard from rule: (used to work)

rule Tile42633
when         
    Channel "nanoleaf:lightpanel:741ADCF0C4B8:42633:tap" triggered SHORT_PRESS
then
    logInfo("canvasPanelTap", "42633")
    SqueezeboxBoomArbeidsbenk_Volume.sendCommand(30)
end

Any ideas? A TRACE log perhaps?
Have tried rebooting Canvas and restarting OH …
ON/OFF control from OH works fine.

I quickly tried it out with one of my old CANVAS Squares with Block. This is what my trigger looks like

and the rule triggers.

Make sure you create the trigger on the individual panel thing.
The thing is created as such:

Hope that helps
Stefan

Hmm. TRACE log shows touch is registered, but DSL rule does not trigger …

2022-08-06 22:06:40.822 [DEBUG] [al.handler.NanoleafControllerHandler] - touch detected for controller nanoleaf:controller:741ADCF0C4B8
2022-08-06 22:06:40.823 [TRACE] [al.handler.NanoleafControllerHandler] - content id: 4
data: {"events":[{"panelId":42633,"gesture":0}]}


2022-08-06 22:06:40.823 [DEBUG] [al.handler.NanoleafControllerHandler] - panel: 42633 gesture id: 0
2022-08-06 22:06:40.824 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -43566- versus event panel -42633-
2022-08-06 22:06:40.825 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -17053- versus event panel -42633-
2022-08-06 22:06:40.825 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -25091- versus event panel -42633-
2022-08-06 22:06:40.826 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -46141- versus event panel -42633-
2022-08-06 22:06:40.826 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -57575- versus event panel -42633-
2022-08-06 22:06:40.826 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -32679- versus event panel -42633-
2022-08-06 22:06:40.827 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -30347- versus event panel -42633-
2022-08-06 22:06:40.827 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -10785- versus event panel -42633-
2022-08-06 22:06:40.828 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -35565- versus event panel -42633-
2022-08-06 22:06:40.828 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -47484- versus event panel -42633-
2022-08-06 22:06:40.828 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -43000- versus event panel -42633-
2022-08-06 22:06:40.829 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -21486- versus event panel -42633-
2022-08-06 22:06:40.829 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -42995- versus event panel -42633-
2022-08-06 22:06:40.829 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -61260- versus event panel -42633-
2022-08-06 22:06:40.830 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -23501- versus event panel -42633-
2022-08-06 22:06:40.830 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -42426- versus event panel -42633-
2022-08-06 22:06:40.830 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -53974- versus event panel -42633-
2022-08-06 22:06:40.831 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -35688- versus event panel -42633-
2022-08-06 22:06:40.831 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -13670- versus event panel -42633-
2022-08-06 22:06:40.831 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -9251- versus event panel -42633-
2022-08-06 22:06:40.831 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -62838- versus event panel -42633-
2022-08-06 22:06:40.832 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -54720- versus event panel -42633-
2022-08-06 22:06:40.832 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -31158- versus event panel -42633-
2022-08-06 22:06:40.832 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -43093- versus event panel -42633-
2022-08-06 22:06:40.832 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -17238- versus event panel -42633-
2022-08-06 22:06:40.832 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -58857- versus event panel -42633-
2022-08-06 22:06:40.832 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -49508- versus event panel -42633-
2022-08-06 22:06:40.832 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -45041- versus event panel -42633-
2022-08-06 22:06:40.833 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -41739- versus event panel -42633-
2022-08-06 22:06:40.833 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -58698- versus event panel -42633-
2022-08-06 22:06:40.833 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -10787- versus event panel -42633-
2022-08-06 22:06:40.833 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -21504- versus event panel -42633-
2022-08-06 22:06:40.833 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -7856- versus event panel -42633-
2022-08-06 22:06:40.833 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -6575- versus event panel -42633-
2022-08-06 22:06:40.833 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -41929- versus event panel -42633-
2022-08-06 22:06:40.833 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -40220- versus event panel -42633-
2022-08-06 22:06:40.834 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -11875- versus event panel -42633-
2022-08-06 22:06:40.834 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -14699- versus event panel -42633-
2022-08-06 22:06:40.834 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -56142- versus event panel -42633-
2022-08-06 22:06:40.834 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -40625- versus event panel -42633-
2022-08-06 22:06:40.834 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -9276- versus event panel -42633-
2022-08-06 22:06:40.834 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -4240- versus event panel -42633-
2022-08-06 22:06:40.834 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -38037- versus event panel -42633-
2022-08-06 22:06:40.834 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -54642- versus event panel -42633-
2022-08-06 22:06:40.835 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -4147- versus event panel -42633-
2022-08-06 22:06:40.835 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -6833- versus event panel -42633-
2022-08-06 22:06:40.835 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -42490- versus event panel -42633-
2022-08-06 22:06:40.835 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -41961- versus event panel -42633-
2022-08-06 22:06:40.835 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -60924- versus event panel -42633-
2022-08-06 22:06:40.835 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -16813- versus event panel -42633-
2022-08-06 22:06:40.835 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -26663- versus event panel -42633-
2022-08-06 22:06:40.835 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -31345- versus event panel -42633-
2022-08-06 22:06:40.836 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -54375- versus event panel -42633-
2022-08-06 22:06:40.836 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -36187- versus event panel -42633-
2022-08-06 22:06:40.836 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -26950- versus event panel -42633-
2022-08-06 22:06:40.836 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -37066- versus event panel -42633-
2022-08-06 22:06:40.836 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -3654- versus event panel -42633-
2022-08-06 22:06:40.836 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -7864- versus event panel -42633-
2022-08-06 22:06:40.836 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -15692- versus event panel -42633-
2022-08-06 22:06:40.836 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -1084- versus event panel -42633-
2022-08-06 22:06:40.837 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -2881- versus event panel -42633-
2022-08-06 22:06:40.837 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -40473- versus event panel -42633-
2022-08-06 22:06:40.837 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -55338- versus event panel -42633-
2022-08-06 22:06:40.837 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -64602- versus event panel -42633-
2022-08-06 22:06:40.837 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -31676- versus event panel -42633-
2022-08-06 22:06:40.837 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -40943- versus event panel -42633-
2022-08-06 22:06:40.837 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -9959- versus event panel -42633-
2022-08-06 22:06:40.837 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -40192- versus event panel -42633-
2022-08-06 22:06:40.838 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -62884- versus event panel -42633-
2022-08-06 22:06:40.838 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -15141- versus event panel -42633-
2022-08-06 22:06:40.838 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -22092- versus event panel -42633-
2022-08-06 22:06:40.838 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -20017- versus event panel -42633-
2022-08-06 22:06:40.838 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -38949- versus event panel -42633-
2022-08-06 22:06:40.838 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -62611- versus event panel -42633-
2022-08-06 22:06:40.838 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -40391- versus event panel -42633-
2022-08-06 22:06:40.839 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -58786- versus event panel -42633-
2022-08-06 22:06:40.839 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -19268- versus event panel -42633-
2022-08-06 22:06:40.839 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -52542- versus event panel -42633-
2022-08-06 22:06:40.839 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -31010- versus event panel -42633-
2022-08-06 22:06:40.839 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -45556- versus event panel -42633-
2022-08-06 22:06:40.839 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -23072- versus event panel -42633-
2022-08-06 22:06:40.839 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -57126- versus event panel -42633-
2022-08-06 22:06:40.840 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -47347- versus event panel -42633-
2022-08-06 22:06:40.840 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -34500- versus event panel -42633-
2022-08-06 22:06:40.840 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -15535- versus event panel -42633-
2022-08-06 22:06:40.840 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -42505- versus event panel -42633-
2022-08-06 22:06:40.840 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -63234- versus event panel -42633-
2022-08-06 22:06:40.840 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -26217- versus event panel -42633-
2022-08-06 22:06:40.840 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -18766- versus event panel -42633-
2022-08-06 22:06:40.840 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -41120- versus event panel -42633-
2022-08-06 22:06:40.841 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -46502- versus event panel -42633-
2022-08-06 22:06:40.841 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -55692- versus event panel -42633-
2022-08-06 22:06:40.841 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -39617- versus event panel -42633-
2022-08-06 22:06:40.841 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -11882- versus event panel -42633-
2022-08-06 22:06:40.841 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -28885- versus event panel -42633-
2022-08-06 22:06:40.841 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -46666- versus event panel -42633-
2022-08-06 22:06:40.841 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -36112- versus event panel -42633-
2022-08-06 22:06:40.841 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -62503- versus event panel -42633-
2022-08-06 22:06:40.842 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -12437- versus event panel -42633-
2022-08-06 22:06:40.842 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -42794- versus event panel -42633-
2022-08-06 22:06:40.842 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -37716- versus event panel -42633-
2022-08-06 22:06:40.842 [TRACE] [al.handler.NanoleafControllerHandler] - Checking available panel -42633- versus event panel -42633-
2022-08-06 22:06:40.842 [DEBUG] [al.handler.NanoleafControllerHandler] - Panel 42633 found. Triggering item with gesture 0.
2022-08-06 22:06:40.842 [DEBUG] [al.handler.NanoleafControllerHandler] - leaving touch onContent
2022-08-06 22:06:41.798 [TRACE] [al.handler.NanoleafControllerHandler] - tj: touch job java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@56abfa6[Not completed, task = java.util.concurrent.Executors$RunnableAdapter@6618aa6d[Wrapped task = org.openhab.binding.nanoleaf.internal.handler.NanoleafControllerHandler$$Lambda$1285/0x00000001010f9c40@2beab27]] touch job already running. quitting. 678279411 controller nanoleaf:controller:741ADCF0C4B8 with HttpClient@286db8f3{STARTED}",

Could be an OH thing then perhaps?

Last known log entry of it working was in June, but I don’t press it that often :slight_smile:

/var/log/openhab/openhab.log.16.gz:2022-06-09 07:30:59.597 [INFO ] 
[hab.core.model.script.canvasPanelTap] - 42633

Can you try with a blockly rule like I did?
Which was the last version of OH when it worked?