[velux] New OpenHAB2 binding - feedback welcome!

I have just migrated to OpenHAB version 3. In the openhab.log I see different warnings from the velux addon every time a scene is activated. e.g. :

2021-01-05 10:49:21.457 [WARN ] [al.handler.utils.Thing2VeluxActuator] - mapThing2Velux(): in velux:scene:home:Dachfenster_Storen2_Auf:action cannot find a uniqueIndex, aborting.
2021-01-05 10:49:21.457 [WARN ] [al.handler.utils.Thing2VeluxActuator] - mapThing2Velux(): in velux:scene:home:Dachfenster_Fenster2_Auf:action cannot find a uniqueIndex, aborting.
2021-01-05 10:49:21.458 [WARN ] [al.handler.utils.Thing2VeluxActuator] - mapThing2Velux(): in velux:scene:home:Dachfenster_Fenster2_Zu:action cannot find a uniqueIndex, aborting.

Is there something wrong/missing in my configuration? The configuartion was made manually created via config files as followed. KLF is running the latest firmware.

velux.things:

Bridge velux:klf200:home [ ipAddress=“xxx”, password=“xxx” ] {
Thing scene Dachfenster_Storen1_Auf “Dachfenster_Storen1_Auf” [ TTL=-1, sceneName=“Storen_Gang_rauf” ]
Thing scene Dachfenster_Storen1_Zu “Dachfenster_Storen1_Zu” [ TTL=-1, sceneName=“Storen_Gang_runter” ]
Thing scene Dachfenster_Storen1_Licht “Dachfenster_Storen1_Licht” [ TTL=-1, sceneName=“Storen_Gang_Licht” ]
Thing scene Dachfenster_Storen2_Auf “Dachfenster_Storen2_Auf” [ TTL=-1, sceneName=“Storen_Bad_rauf” ]
Thing scene Dachfenster_Storen2_Zu “Dachfenster_Storen2_Zu” [ TTL=-1, sceneName=“Storen_Bad_runter” ]
Thing scene Dachfenster_Storen2_Licht “Dachfenster_Storen2_Licht” [ TTL=-1, sceneName=“Storen_Bad_Licht” ]
Thing scene Dachfenster_Storen_Auf “Dachfenster_Storen_Auf” [ TTL=-1, sceneName=“Storen_Alle_rauf” ]
Thing scene Dachfenster_Storen_Zu “Dachfenster_Storen_Zu” [ TTL=-1, sceneName=“Storen_Alle_runter” ]
Thing scene Dachfenster_Storen_Licht “Dachfenster_Storen_Licht” [ TTL=-1, sceneName=“Storen_Alle_Licht” ]
Thing scene Dachfenster_Fenster1_Auf “Dachfenster_Fenster1_Auf” [ TTL=-1, sceneName=“Fenster_Gang_auf” ]
Thing scene Dachfenster_Fenster1_Zu “Dachfenster_Fenster1_Zu” [ TTL=-1, sceneName=“Fenster_Gang_zu” ]
Thing scene Dachfenster_Fenster2_Auf “Dachfenster_Fenster2_Auf” [ TTL=-1, sceneName=“Fenster_Bad_auf” ]
Thing scene Dachfenster_Fenster2_Zu “Dachfenster_Fenster2_Zu” [ TTL=-1, sceneName=“Fenster_Bad_zu” ]
Thing scene Dachfenster_Fenster_Auf “Dachfenster_Fenster_Auf” [ TTL=-1, sceneName=“Fenster_Alle_auf” ]
Thing scene Dachfenster_Fenster_Zu “Dachfenster_Fenster_Zu” [ TTL=-1, sceneName=“Fenster_Alle_zu” ]
Thing window Dachfenster_Fenster_Bad “Dachfenster Bad” [serial=“xxx”, inverted=true]
Thing window Dachfenster_Fenster_Gang “Dachfenster Gang” [serial=“xxx”, inverted=true]
Thing rollershutter Dachfenster_Storen_Bad “Dachstoren Bad” [serial=“xxx”]
Thing rollershutter Dachfenster_Storen_Gang “Dachstoren Gang” [serial=“xxx”]
}

velux.items

// Velux Bridge channels
String Velux_Bridge_STATUS “Velux Bridge Status” { channel=“velux:klf200:home:STATUS” }
String Velux_Bridge_FIRMWARE “Velux Bridge Firmware version” { channel=“velux:klf200:home:FIRMWARE” }
String Velux_Bridge_IPADDRESS “Velux Bridge IP Address” { channel=“velux:klf200:home:IPADDRESS” }

Switch Dachfenster_Storen1_Auf_Szenenstart “Dachfenster Gang Storen öffnen” { channel=“velux:scene:home:Dachfenster_Storen1_Auf:action” }
Switch Dachfenster_Storen1_Zu_Szenenstart “Dachfenster Gang Storen schliessen” { channel=“velux:scene:home:Dachfenster_Storen1_Zu:action” }
Switch Dachfenster_Storen1_Licht_Szenenstart “Dachfenster Gang Storen Licht” { channel=“velux:scene:home:Dachfenster_Storen1_Licht:action” }
Switch Dachfenster_Storen2_Auf_Szenenstart “Dachfenster Bad Storen öffnen” { channel=“velux:scene:home:Dachfenster_Storen2_Auf:action” }
Switch Dachfenster_Storen2_Zu_Szenenstart “Dachfenster Bad Storen schliessen” { channel=“velux:scene:home:Dachfenster_Storen2_Zu:action” }
Switch Dachfenster_Storen2_Licht_Szenenstart “Dachfenster Bad Storen Licht” { channel=“velux:scene:home:Dachfenster_Storen2_Licht:action” }
Switch Dachfenster_Storen_Auf_Szenenstart “Dachfenster Alle Storen öffnen” { channel=“velux:scene:home:Dachfenster_Storen_Auf:action” }
Switch Dachfenster_Storen_Zu_Szenenstart “Dachfenster Alle Storen schliessen” { channel=“velux:scene:home:Dachfenster_Storen_Zu:action” }
Switch Dachfenster_Storen_Licht_Szenenstart “Dachfenster Alle Storen Licht” { channel=“velux:scene:home:Dachfenster_Storen_Licht:action” }
Switch Dachfenster_Fenster1_Auf_Szenenstart “Dachfenster Gang öffnen” { channel=“velux:scene:home:Dachfenster_Fenster1_Auf:action” }
Switch Dachfenster_Fenster1_Zu_Szenenstart “Dachfenster Gang schliessen” { channel=“velux:scene:home:Dachfenster_Fenster1_Zu:action” }
Switch Dachfenster_Fenster2_Auf_Szenenstart “Dachfenster Bad öffnen” { channel=“velux:scene:home:Dachfenster_Fenster2_Auf:action” }
Switch Dachfenster_Fenster2_Zu_Szenenstart “Dachfenster Bad schliessen” { channel=“velux:scene:home:Dachfenster_Fenster2_Zu:action” }
Switch Dachfenster_Fenster_Auf_Szenenstart “Dachfenster Alle öffnen” { channel=“velux:scene:home:Dachfenster_Fenster_Auf:action” }
Switch Dachfenster_Fenster_Zu_Szenenstart “Dachfenster Alle schliessen” { channel=“velux:scene:home:Dachfenster_Fenster_Zu:action” }

Rollershutter Dachfenster_Storen_Bad_Position “Dachfenster Storen Bad Position [%.0f %%]” {channel=“velux:rollershutter:home:Dachfenster_Storen_Bad:position”}
Rollershutter Dachfenster_Storen_Gang_Position “Dachfenster Storen Gang Position [%.0f %%]” {channel=“velux:rollershutter:home:Dachfenster_Storen_Gang:position”}
Rollershutter Dachfenster_Fenster_Bad_Position “Dachfenster Fenster Bad Position [%.0f %%]” {channel=“velux:window:home:Dachfenster_Fenster_Bad:position”}
Rollershutter Dachfenster_Fenster_Gang_Position “Dachfenster Fenster Gang Position [%.0f %%]” {channel=“velux:window:home:Dachfenster_Fenster_Gang:position”}

A couple of points



1. Invalid Scene Configuration Parameters

Thing scene Dachfenster_Storen1_Auf “Dachfenster_Storen1_Auf” [ TTL=-1, sceneName=“Storen_Gang_rauf” ]

“TTL” is not a valid Configuration Parameter.


2. Invalid Bridge Channels

String Velux_Bridge_STATUS “Velux Bridge Status” { channel=“velux:klf200:home:STATUS” }
String Velux_Bridge_FIRMWARE “Velux Bridge Firmware version” { channel=“velux:klf200:home:FIRMWARE” }
String Velux_Bridge_IPADDRESS “Velux Bridge IP Address” { channel=“velux:klf200:home:IPADDRESS” }

“STATUS”, “FIRMWARE”, and “IPADDRESS” are not valid Channels; although “status” (lowercase) is. “Address”, and “Firmware”, are Properties, and “ipAddress” is also a Configuration Parameter.


3. Inverted Commas

I suggest to ANSI inverted commas as follows


"Velux Bridge Status"

instead of unicode ones like these

“Velux Bridge Status”

Thank you for your suggestions.

“TTL” removed. I don’t know from where this parameter came from.


Invalid items removed. I think this items where copied from the original description of GĂŒnter Schreiner (https://github.com/gs4711/org.openhab.binding.velux)


This happens while coping the files to that post. In the configuration files the correct quotation marks are used.

However, my original issue is still the same. The same events are logged even after correcting the configuration.

You get the error on Dachfenster_Storen1_Auf (say), so check if the respective scene name Storen_Gang_rauf is actually listed in MainUI in the Scenes Property of your Bridge.

Thing scene Dachfenster_Storen1_Auf “Dachfenster_Storen1_Auf” [sceneName=“Storen_Gang_rauf” ]

The output of the command “openhab:things show velux:klf200:home” in the openhab console shows the following. What worries me is the content of the “check” property. In the KLF200 the names of the scenes are exactly defined as stated in my thing objects.

openhab> openhab:things show velux:klf200:home
UID: velux:klf200:home
Type: velux:klf200
Label: Velux KLF200
Status: ONLINE

Properties:
	connectionSuccess : Wed Jan 06 11:13:42 CET 2021
	address : 192.168.15.31
	vendor : Velux
	defaultGW : 192.168.15.1
	scenes : 15_members:_Scene_"Storen_Gang_runter"_(index_15)_with_non-silent_mode_and_0_actions,Scene_"Fenster_Gang_auf"_(index_6)_with_non-silent_mode_and_0_actions,Scene_"Storen_Bad_runter"_(index_0)_with_non-silent_mode_and_0_actions,Scene_"Storen_Alle_Licht"_(index_13)_with_non-silent_mode_and_0_actions,Scene_"Storen_Alle_rauf"_(index_3)_with_non-silent_mode_and_0_actions,Scene_"Fenster_Alle_zu"_(index_9)_with_non-silent_mode_and_0_actions,Scene_"Storen_Alle_runter"_(index_11)_with_non-silent_mode_and_0_actions,Scene_"Storen_Bad_rauf"_(index_1)_with_non-silent_mode_and_0_actions,Scene_"Fenster_Gang_zu"_(index_7)_with_non-silent_mode_and_0_actions,Scene_"Storen_Gang_rauf"_(index_16)_with_non-silent_mode_and_0_actions,Scene_"Fenster_Bad_auf"_(index_4)_with_non-silent_mode_and_0_actions,Scene_"Fenster_Alle_auf"_(index_8)_with_non-silent_mode_and_0_actions,Scene_"Storen_Gang_Licht"_(index_2)_with_non-silent_mode_and_0_actions,Scene_"Fenster_Bad_zu"_(index_5)_with_non-silent_mode_and_0_actions,Scene_"Storen_Bad_Licht"_(index_12)_with_non-silent_mode_and_0_actions
	check : IntegritĂ€tsprĂŒfung fehlgeschlagen. Nachfolgende Szenen werden nicht verwendet: [Storen_Gang_runter, Fenster_Gang_auf, Storen_Bad_runter, Storen_Alle_Licht, Storen_Alle_rauf, Fenster_Alle_zu, Storen_Alle_runter, Storen_Bad_rauf, Fenster_Gang_zu, Storen_Gang_rauf, Fenster_Bad_auf, Fenster_Alle_auf, Storen_Gang_Licht, Fenster_Bad_zu, Storen_Bad_Licht]
	subnetMask : 255.255.255.0
	firmware : Software version 0.2.0.0.71.0, Hardware version 5.14.3
	DHCP : OFF
	connectionAttempt : Wed Jan 06 11:13:42 CET 2021
	products : 4_members:_Product_"Fenster_Gang"_/_SLIDER_WINDOW_(bridgeIndex=2,serial=xx:xx:xx:xx:xx:xx:xx:xx,position=C800),Product_"Storen_Gang"_/_SLIDER_SHUTTER_(bridgeIndex=4,serial=xx:xx:xx:xx:xx:xx:xx:xx,position=8425),Product_"Fenster_Bad"_/_SLIDER_WINDOW_(bridgeIndex=0,serial=xx:xx:xx:xx:xx:xx:xx:xx,position=0104),Product_"Storen_Bad"_/_SLIDER_SHUTTER_(bridgeIndex=1,serial=xx:xx:xx:xx:xx:xx:xx:xx,position=73AF)

Yes the “check” parameter confirms the problem. But I don’t know why. I will think about this


^
In the OH console, please set trace logging on the “check” Channel as follows, and post the respective log entries


log:set TRACE org.openhab.binding.velux.internal.handler.ChannelBridgeCheck

would it be possible to create a exception table for older devices that they are update more frequently?
I am using an 7 year old rullershutter that seems not to send a GW_NODE_STATE_POSITION_CHANGED_NTF after moving.

It takes very long until the state is updated in OH when using a velux remote.

Here is the trace log output. By the way, I’m able to control the rollershutter and window as expected via OpenHAB rules (e.g. by “sendCommand(Dachfenster_Storen_Auf_Szenenstart, ON)”). The problem is only the unexpected log output.

2021-01-06 13:24:43.628 [DEBUG] [.internal.handler.ChannelBridgeCheck] - handleRefresh(velux:klf200:home:check,check,org.openhab.binding.velux.internal.handler.VeluxBridgeHandler@2de94262) called.
2021-01-06 13:24:43.629 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): loop through all existing scenes.
2021-01-06 13:24:43.629 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): .loop through all handled channels.
2021-01-06 13:24:43.630 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:klf200:home:status.
2021-01-06 13:24:43.630 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): ignoring non SCENE_ACTION.
2021-01-06 13:24:43.630 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:scene:home:Dachfenster_Fenster_Auf:action.
2021-01-06 13:24:43.631 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): aborting processing as scene name is not set.
2021-01-06 13:24:43.631 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): scene Storen_Gang_runter is currently unused.
2021-01-06 13:24:43.631 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): .loop through all handled channels.
2021-01-06 13:24:43.631 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:klf200:home:status.
2021-01-06 13:24:43.632 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): ignoring non SCENE_ACTION.
2021-01-06 13:24:43.632 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:scene:home:Dachfenster_Fenster_Auf:action.
2021-01-06 13:24:43.632 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): aborting processing as scene name is not set.
2021-01-06 13:24:43.633 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): scene Fenster_Gang_auf is currently unused.
2021-01-06 13:24:43.633 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): .loop through all handled channels.
2021-01-06 13:24:43.633 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:klf200:home:status.
2021-01-06 13:24:43.633 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): ignoring non SCENE_ACTION.
2021-01-06 13:24:43.634 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:scene:home:Dachfenster_Fenster_Auf:action.
2021-01-06 13:24:43.634 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): aborting processing as scene name is not set.
2021-01-06 13:24:43.634 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): scene Storen_Bad_runter is currently unused.
2021-01-06 13:24:43.635 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): .loop through all handled channels.
2021-01-06 13:24:43.635 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:klf200:home:status.
2021-01-06 13:24:43.635 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): ignoring non SCENE_ACTION.
2021-01-06 13:24:43.636 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:scene:home:Dachfenster_Fenster_Auf:action.
2021-01-06 13:24:43.636 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): aborting processing as scene name is not set.
2021-01-06 13:24:43.636 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): scene Storen_Alle_Licht is currently unused.
2021-01-06 13:24:43.637 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): .loop through all handled channels.
2021-01-06 13:24:43.637 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:klf200:home:status.
2021-01-06 13:24:43.637 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): ignoring non SCENE_ACTION.
2021-01-06 13:24:43.638 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:scene:home:Dachfenster_Fenster_Auf:action.
2021-01-06 13:24:43.638 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): aborting processing as scene name is not set.
2021-01-06 13:24:43.638 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): scene Storen_Alle_rauf is currently unused.
2021-01-06 13:24:43.638 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): .loop through all handled channels.
2021-01-06 13:24:43.639 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:klf200:home:status.
2021-01-06 13:24:43.639 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): ignoring non SCENE_ACTION.
2021-01-06 13:24:43.639 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:scene:home:Dachfenster_Fenster_Auf:action.
2021-01-06 13:24:43.639 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): aborting processing as scene name is not set.
2021-01-06 13:24:43.639 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): scene Fenster_Alle_zu is currently unused.
2021-01-06 13:24:43.639 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): .loop through all handled channels.
2021-01-06 13:24:43.640 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:klf200:home:status.
2021-01-06 13:24:43.640 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): ignoring non SCENE_ACTION.
2021-01-06 13:24:43.640 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:scene:home:Dachfenster_Fenster_Auf:action.
2021-01-06 13:24:43.640 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): aborting processing as scene name is not set.
2021-01-06 13:24:43.640 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): scene Storen_Alle_runter is currently unused.
2021-01-06 13:24:43.640 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): .loop through all handled channels.
2021-01-06 13:24:43.640 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:klf200:home:status.
2021-01-06 13:24:43.640 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): ignoring non SCENE_ACTION.
2021-01-06 13:24:43.640 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:scene:home:Dachfenster_Fenster_Auf:action.
2021-01-06 13:24:43.640 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): aborting processing as scene name is not set.
2021-01-06 13:24:43.640 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): scene Storen_Bad_rauf is currently unused.
2021-01-06 13:24:43.640 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): .loop through all handled channels.
2021-01-06 13:24:43.640 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:klf200:home:status.
2021-01-06 13:24:43.640 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): ignoring non SCENE_ACTION.
2021-01-06 13:24:43.640 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:scene:home:Dachfenster_Fenster_Auf:action.
2021-01-06 13:24:43.641 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): aborting processing as scene name is not set.
2021-01-06 13:24:43.641 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): scene Fenster_Gang_zu is currently unused.
2021-01-06 13:24:43.641 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): .loop through all handled channels.
2021-01-06 13:24:43.641 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:klf200:home:status.
2021-01-06 13:24:43.641 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): ignoring non SCENE_ACTION.
2021-01-06 13:24:43.641 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:scene:home:Dachfenster_Fenster_Auf:action.
2021-01-06 13:24:43.641 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): aborting processing as scene name is not set.
2021-01-06 13:24:43.641 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): scene Storen_Gang_rauf is currently unused.
2021-01-06 13:24:43.641 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): .loop through all handled channels.
2021-01-06 13:24:43.641 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:klf200:home:status.
2021-01-06 13:24:43.641 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): ignoring non SCENE_ACTION.
2021-01-06 13:24:43.641 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:scene:home:Dachfenster_Fenster_Auf:action.
2021-01-06 13:24:43.641 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): aborting processing as scene name is not set.
2021-01-06 13:24:43.641 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): scene Fenster_Bad_auf is currently unused.
2021-01-06 13:24:43.641 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): .loop through all handled channels.
2021-01-06 13:24:43.641 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:klf200:home:status.
2021-01-06 13:24:43.641 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): ignoring non SCENE_ACTION.
2021-01-06 13:24:43.642 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:scene:home:Dachfenster_Fenster_Auf:action.
2021-01-06 13:24:43.642 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): aborting processing as scene name is not set.
2021-01-06 13:24:43.642 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): scene Fenster_Alle_auf is currently unused.
2021-01-06 13:24:43.642 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): .loop through all handled channels.
2021-01-06 13:24:43.642 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:klf200:home:status.
2021-01-06 13:24:43.642 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): ignoring non SCENE_ACTION.
2021-01-06 13:24:43.642 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:scene:home:Dachfenster_Fenster_Auf:action.
2021-01-06 13:24:43.642 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): aborting processing as scene name is not set.
2021-01-06 13:24:43.642 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): scene Storen_Gang_Licht is currently unused.
2021-01-06 13:24:43.642 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): .loop through all handled channels.
2021-01-06 13:24:43.642 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:klf200:home:status.
2021-01-06 13:24:43.642 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): ignoring non SCENE_ACTION.
2021-01-06 13:24:43.642 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:scene:home:Dachfenster_Fenster_Auf:action.
2021-01-06 13:24:43.642 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): aborting processing as scene name is not set.
2021-01-06 13:24:43.642 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): scene Fenster_Bad_zu is currently unused.
2021-01-06 13:24:43.642 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): .loop through all handled channels.
2021-01-06 13:24:43.642 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:klf200:home:status.
2021-01-06 13:24:43.643 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): ignoring non SCENE_ACTION.
2021-01-06 13:24:43.643 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): evaluating ChannelUID velux:scene:home:Dachfenster_Fenster_Auf:action.
2021-01-06 13:24:43.643 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): aborting processing as scene name is not set.
2021-01-06 13:24:43.643 [TRACE] [.internal.handler.ChannelBridgeCheck] - handleCommand(): scene Storen_Bad_Licht is currently unused.
2021-01-06 13:24:43.643 [DEBUG] [.internal.handler.ChannelBridgeCheck] - IntegritĂ€tsprĂŒfung fehlgeschlagen. Nachfolgende Szenen werden nicht verwendet: [Storen_Gang_runter, Fenster_Gang_auf, Storen_Bad_runter, Storen_Alle_Licht, Storen_Alle_rauf, Fenster_Alle_zu, Storen_Alle_runter, Storen_Bad_rauf, Fenster_Gang_zu, Storen_Gang_rauf, Fenster_Bad_auf, Fenster_Alle_auf, Storen_Gang_Licht, Fenster_Bad_zu, Storen_Bad_Licht]
  • What OH version / binding version are you running?
  • What is the Bridge refreshInterval value? (and try reducing it
)

Interesting, thankyou. Your log tells me that there is a bug in the “check” Property code; which seems to have been there for a long time, but apparently this has upset nobody.

Indeed I am pretty sure that the “check” Property is NOT the cause of your problem. And there might not be a real problem at all, but rather just a mis-placed WARN message. However I need further logs to help figure out what is really going wrong


log:set TRACE org.openhab.binding.velux.internal.handler

I have uploaded the logs to pastebin. Thank you for your support.

Thank you for the log. It seems to indicate that your issue is just a mis-placed warning message. I don’t have any scenes in my operative KLF200, so I did not notice this warning myself.

I built a new version of the binding which should a) eliminate the warning, and b) fix the “check” property.

My main system is on OH v2.5.x and my OH v3.1.x test system is broken at the moment, so I hope that you can test this new build rigorously for me.

You just need to download the jar file here and place it in your “add-ons” folder.

I have installed your patched version yesterday evening. Everything is working as expected so far. No more warn messages, the “check” property no longer contains an error. :+1:

Thank you for testing. That is good to hear.
PS you will need to restore the logging back from TRACE to WARN


I could kick myself. I had a stable system running OpenHAB 2.5.10 stable with the 2.5.11 snapshot Velux plugin. Then I updated to 2.5.11 stable, still using the same snapshot binding and I get a connection refused error:

2021-01-07 22:16:45.772 [INFO ] [x.internal.bridge.slip.io.Connection] - io() on 192.168.100.29: socket I/O failed 5 times.
2021-01-07 22:16:45.776 [WARN ] [.internal.handler.VeluxBridgeHandler] - velux bridge login sequence failed; expecting bridge is OFFLINE.
2021-01-07 22:16:45.823 [INFO ] [nternal.bridge.slip.io.SSLconnection] - Starting velux bridge connection.
2021-01-07 22:16:45.828 [INFO ] [x.internal.bridge.slip.io.Connection] - io() on 192.168.100.29: Exception occurred during I/O: raised a non-recoverable error during connection setup: Connection refused (Connection refused).

Any ideas? Is there a known incompatibility?

1 Like

Hello Jonas,

have you power-cycled the KLF200 after the upgrade? Any changes after it?

Yes, a number of times. At first it was blinking white. Power-cycling solved that and initially everything worked fine but when I got home from work all shutters were still open


1 Like

If you are still using the same 2.5.11-SNAPSHOT jar (in your addons folder), then nothing has changed. There were no changes in the OH core between 2.5.10 and 2.5.11, and there were no changes in the binding (because you are using the same jar in the addons folder as before).

EDIT: if you “lost” the V2.5.11-snapshot JAR then it is still here

OH + Binding: 3.0.0
refresh via backend: 20000 ms

I think the timer has no impact on any refresh intervall as I can always see quereys after 10000 ms in traces (shortened):

10:29:27.504 [TRACE] [.binding.velux.internal.VeluxItemType] - getByThingAndChannel(velux:klf200,check) returns enum velux:klf200/check.
10:29:27.506 [TRACE] [.binding.velux.internal.VeluxItemType] - isToBeRefreshedNow(): returning false, as refresh cycle has not yet come for this item.

10:29:37.663 [TRACE] [.binding.velux.internal.VeluxItemType] - isToBeRefreshedNow(): returning false, as refresh cycle has not yet come for this item.
10:29:37.665 [DEBUG] [x.internal.handler.VeluxBridgeHandler] - refreshOpenHAB() initiated by Thread[OH-thingHandler-1,5,main] finished cycle 16635.

10:29:47.668 [DEBUG] [x.internal.handler.VeluxBridgeHandler] - refreshOpenHAB() initiated by Thread[OH-thingHandler-5,5,main] starting cycle 16636.
10:29:47.673 [TRACE] [x.internal.handler.VeluxBridgeHandler] - refreshOpenHAB(): processing of possible HSM messages.

But I think the problem is that the old Velux device (2012) that has a different behaviour than the devices from 2018.

The devices from 2018 (Blinds) send a GW_NODE_STATE_POSITION_CHANGED_NTF immediately after moving, the device from 2012 (Blinds with solar power) not.
As I mentioned some time ago here it is also not possible to stop moving of the old device via OH, you came tho the conclusion that it must be the old device