Polling Nikobus


I have a question about Nikobus. When I execute 2 actions quickly one after another (via pushing my wall switches), I get issues with the polling. It seems that the polling of the second action overrides the polling of the first action. The result is that the status of my items in Openhab is not in-line with the reality.
Is there a way to execute a polling a second time for specific items or channels groups? Certainly for the status of critical items, this could help to rectify the wrong status …
I know there’s a polling which happens every x seconds for a specific channel group, but this is too slow …


Tijl De Waele

One of the issues with nikobus is, is that it allows multiple senders to place messages on the bus simultaneously, which can cause messages to get scrambled. E.g when you press 2 buttons at the same time, they will corrupt each others’ messages and as a result no action will happen.

The polling in the nikobus module is triggered after a short delay. The polling of one button should not override/interfere with the polling of another button. If it does then that would be a bug.

To force a refresh, you could define a ‘virtual’ button which is linked to the same channel module group, e.g. Switch ReloadState {nikobus="#N000001[C964-1]"}. Then define a rule which listens to the button command or channel state change. Upon change, you can use the rule to send a delayed ON command to the virtual switch. This will then trigger the status to be reloaded.


I started applying this approach now for dimmers as well to solve the 1 sec. minimum dim time that causes the status of a dimmer output to be incorrect because the status update request is sent before the 1 sec min dimming period is finished. I used to work around this by putting the module update reference 3 or 4 times with a comma in the button definition which worked to some extend but isn’t ideal.

I now created a virtual button for every dimmer module section (left and right) and use node red to capture a change, then deduplicate in node red and delay 3 seconds before sending an on command to the virtual button that polls the dimmer module section.

This results in when a wall switch is pressed the status is updated after 3 seconds but seems to be very solid. I guess it will help me with “all lights off” buttons and “leave home” buttons as well as I can now easily do something similar for all modules without overloding the bus

1 Like