Hi, I see some strange behaviour with this version and there are no roller errors logged in the system log about this.
So they just get out of sync and stop moving. And we have to press multiple times on the physical button to fix it.
Normally we have 3 rollers that open via an automation.
But sometimes we open them manually in the morning. The physical buttons are not far away from each other so we press up in room one, up in room 2 and up in room 3.
But most of the time one or 2 of them stop moving after a couple of seconds. No error logged and the state in HA shows they are moving/ opened.
Another thing I noticed is that if an HA automation opens or closes a roller. And we interrupt it via a wall button (all rollers have a 2 button config (open/stop & close/stop). Then it does not work correctly anymore.
You also mention this above:
Anything I can do to better understand what is going on?
Enable debug logging?
Can it be due to the automation? I have one automation that closes 5 rollers when the sun goes down. Sometimes one is still open. Never had this with Nikobus schedules. I already put a 1 second pause between them. But maybe I need to try with 5 seconds or so.
those buttons are standard, I ordered them from Reichelt and soldered on new ones for my whole installation. If you want I can look up the reference, itās a bit more than a year ago and all is still good. I had buttons where the rubbers were so worn out they came off.
You should be fine with 0.2.7, there was a bug in previous release. operating a cover then taking action on another cover from a Nikobus button where both cover are from the same module would stop the first cover movement.
There are so many scenarioās, I hope Iāve tested and solved them all now
This should also be solved:
I have one automation that closes 5 rollers when the sun goes down.
You open or close a shutter from HA, then you interrupt the movement with a Nikobus button. Nikobus is not happy about it, as to Nikobus internal state the cover is not moving (we cannot sync or talk to Nikobus internal state) so everytime you start a movement from HA, Nikobus is not aware (internal state not updated) so if you take action towards that moving cover from Nikobus ā 0x03 (Error).
The workaround that it currently in place, is that any ārevertingā Nikobus action towards a cover will start to movement in the oppositive direction for 1second and stop the cover.
I could not think of any better and technically possible way to handle this scenario. Now, Iām curious on how the binding from OpenHAB do manage those scenario if it does ? waiting to see if @MarcVZ can still test it for us.
Nikobus Cover State Synchronization Issue & Possible Workarounds
Let me summarize it this way:
Nikobus is not aware that a cover is moving if the movement was triggered from outside Nikobus. This is because we manipulate the output relay, not the internal Nikobus state machine.
If you interact with the cover using a Nikobus button while itās moving (triggered externally), it results in a 0x03 state (Error).
Key Implications:
If a cover is stopped, whether by Nikobus or an external trigger, it can be controlled via a Nikobus button without issue, as both Nikobus and Home Assistant (HA) recognize it as stopped.
If a cover is moving (triggered externally), Nikobus cannot control it correctly because its internal state is not in sync with reality.
Possible Workarounds:
There is no direct fix, only a mitigation:
When HA detects the 0x03 state, move the cover for 1 second and then stop it. This action ensures that both HA and Nikobus revert to a stopped state, bringing them back in sync.
Alternative Approach to Test:
Instead of sending commands directly to the output relay, define the button controlling the cover in the module config file:
{
"description": "not_in_use output_1",
"operation_time": "00",
"led_on": "**Button Address to Open Shutter**",
"led_off": "**Button Address to Close Shutter**"
}
This method simulates a button press instead of directly controlling the relay, which should update both the output state (relay) and the internal Nikobus state machine.
Note:
This approach is untested. If anyone tries it, please share your findings.
Iām currently using a diy arduino based pcb to connect to my Nikobus.
Most of the times it works ok and captures everything, but some buttons are a challenge (something to do with the cut-off voltage).
So i ordered a 2nd hand Feedback module thats arriving next week.
Your plugin provides all of the things that i used (buttons/state and position for the shutters), but iām missing one: a āvirtualā button.
Can i just define a button in the config that does not exist and have it āpressedā by Homeassist when another button is pressed?
Iām using this to use the (left-over) channels on a rollershutter module. If I would use a ārealā button i have to use 2 (one for up and one for down).
Update about the Cover State:
Iām new to Homeassist and this binding (but iām using a diy interface and commands), so i may be getting only a part of the problem, but:
If you emulate a button-press (from Homeassist) to get the shutter up or down, the internal nikobus state will be ok? I guess that now you try to set the module itself?
As far as i know the openhab interface works this way (i think i gave the author some info 10 years ago or so )
I guess, Iāve not tried, that you can define a non existing button in the config file, then that button address will be sent to Nikobus everytime your trigger it in HA.
have it āpressedā by Homeassist when another button is pressed?
That I do not get what you mean ? could you explain it again ?
If you emulate a button-press (from Homeassist) to get the shutter up or down, the internal nikobus state will be ok?
Yes
I guess that now you try to set the module itself?
Both option exist, you can trigger the module output (set the relay of the module with the downside that the internal Nikobus state is not updated) or send emulated button.
Happy to work together to make the integration more robust send me your feedback. I will try the virtual button out of curiosity.
Sorry for my english (dutch speaking belgian ), i meant when a real nikobus button is pushed i would like homeassistant to react by sending the code for the virtual one (push the virtual button)
You can do that over automation in ha, listen for the nikobus_button_press even that matches the physical button address and as action push the virtual one.
Example to get you started, listen to nikobus_button_press event for the Nikobus button with address 9A93EE then send an open command to Velux cover. You just need to adapt the action to your needs
There is a downside of operating the cover with a buffer operation time that is equal to the full operation time, here is why
If you operate a cover fully (target 0 or 100) from HA and you press a Nikobus button before the full operation time has passed (buffer), it will not work and generate a 0x03 error. As Nikobus believe the cover is stopped, but the stop command from HA following the operation command has not been sent yet.
This is managed by the integration by sending immediatly a stop command to resync HA and Nikobus. so the next push on the Nikobus button will work, while the first one if before the ābufferā time will always fails.
We will never get it perfect. We just have to know and accept the limitation of integrating something that is not designed to be integrated
I advice to delete the integration and re-install, do not touch your config files. only the Integration to be removed and added back. I did it many times without issue but as always, take a BACKUP before
Has anyone made their own usb-rj11 cable yet? I bought an 05-207 (feedback module) and want to connect it and test it with the nikobus program (v 3.2.3).
However, I get a message that the pc-link (I suspect this may also be a feedback module) is not responding.
The link above is somewhat contradictoryā¦
I have now tested:
hang the black cable and green cable to GND (from a usb-serial dongle)
the yellow cable to RXD
the red cable to TXD
The contradiction is (for me anyway) that the pinnrs on the screenshot does not match the RJ11 plug drawn.
Can anyone tell me how to do it?
The Nikobus program from Niko can only be used with a PC-Link not with a feedback module.
The HA integration can be used with both, but if you connect to a feedback module use the refresh rate not the feedback module refresh which can only be used if you connect to a PCLink and the installation has a feedback module. So for your case, do it like this
Tnxā¦itās still a challenge, since iām trying to run it in docker on a synology.
I managed to install the usb drivers and iām seeing /dev/ttyUSB0 via ssh.
I gave acces (chmod 777 /dev/ttyUSB0 ), but homeassistant is still telling me āSerieel apparaat niet gevonden of geen toegangā
whatās your homeassistant docker compose ? I guess you are not passing the USB device to the docker container, that would explain the behaviour you have