I’ve got some Neo Coolcam switches that don’t send an update when operated manually. At the moment I’m polling them every minute 24x7 from a little script using MQTT. I’d prefer to be able to poll them from Home Assistant, so I can trigger the polling on a scene change or automation. I think the old Z-Wave integration had a refresh_node service or something.
The script I use publishes to the MQTT topic OpenZWave/1/command/requestnodedynamic/ and the payload is simply ‘{“node”: $node_id}’
Or you could enable polling on those valueIDkeys?
Thanks for the pointer. It looks like a simper way of doing polling but I would prefer not to do polling but have some way of querying the node as part of an automation. What happens currently is if I manually switch on a light and it doesn’t update hass then I can’t switch it off from hass because hass still thinks it’s off. If I run polling then hass is up to date after the polling interval and I can switch the light off.
What I would like to do is have my automation for switching the light off do the following:
- Switch the light off
- Query the node
- Wait a bit for the node to refresh
- Switch the light off again
That way I get the instant off when hass thinks the light is on, and a delayed off if hass thinks the switch is off but actually on.
I can actually do this now by using a shell_script in the automation but it would be a lot nicer if I could just call ozw.refresh_node
Did you find any good solution to this? I am also looking for the old zwave.refresh_node or zwave.refresh_entity functionality with the OpenZwave (Beta) integration to get my fibaro heat controllers to work properly.
I wrote a script to talk to the mqtt server directly. It’s a bit heavyweight as it figures out which devices to query just in case they move around. It works by looking for a certain manufacturer and product ID so you should change those to match your device. Or just type in the node ID. It’s at https://corky.co/update-neo-switches
Would you have a sample on how I can do the command?
topic: OpenZWave/<instance>/command/requestnodestate/
payload: { "node" : <node id to refresh> }