Polling Z-Wave switch after triggering automation

I have an older Z-Wave dimmer (GoControl WD500Z-1) that does not report status updates. However, the only way I can control this switch is via Home Assistant (it’s hidden in the attic and controls the light in the room below). I’m trying to set up Home Assistant so that whenever there’s a state change triggered by HA (e.g., via an automation, etc.) Home Assistant will poll the state approx. 5 seconds later (e.g., get on/off status and brightness). However, it’s not working. Right now what happens is that when I turn off the switch via HA, it updates twice in rapid succession showing that the light is slowly turning off (it’s on a dimmer so it takes about 2 seconds to turn off) and then remains stuck at ~20% brightness because HA does not poll any further.

In my zwave_device_config.yaml file, I have the following configuration:

light.master_bedroom:
  ignored: false
  polling_intensity: 0
  refresh_value: true

My understanding is that refresh_value will require HA to poll the device at a specified delay after a state change (e.g., triggered by an automation); however, this does not appear to be happening. The default delay is 5 sec, which should be plenty of time for the light to turn off.

Any advice on how to debug this?

Is your configuration.yaml including zwave_device_config.yaml?

zwave:
  device_config: !include zwave_device_config.yaml

That worked. Thank you!

Sorry to revive an old post, but I am having the same exact issue with the WD500Z not updating when manually pressed. With newer version of HA, not seeing the zwave yaml as I believe it was merged in (?) from what I hear. Using Z-Wave JS for zwave2mqtt, but not finding any way to change polling or any service that would allow me to script something to run every 10 seconds or so. Any thoughts?

If your values don’t update in HA when you manually press a button then the issue is an Association Issue. You can only add associations in the Z-Wave JS UI addon. Once inside Z-Wave JS UI go into groups to verify that an entry is listed. I’ve posted pictures of what it shhould look like. Once you add the associations if it still doesn’t work try reinterviewing.


If the associations don’t work then you can use the following service to poll for new information.

service: zwave_js.refresh_value

Thanks for the reply.

I confirmed all the WD500 lights (have dozen or so) have no Groups? Clicking Refresh did nothing on any of them, nor did Add, which did not give me option to add/create a group to add device to, so unable to create group for the switch.

I looked for a service for zwave and there is none. I am on latest HA with zwave ui at 1.10.0 (1.10.1 just released).

Here an example on how to poll a switch every ten minutes. This one is offset by. 210 seconds, as if you have more than one switch you do not want to poll them at the same time.

- id: "outdoor_switch poll switch state"
  alias: outdoor_switch poll switch 210
  description: "Automation to periodically poll switches"
  mode: single
  max_exceeded: silent
  trigger:
    - platform: time_pattern
      minutes: "/10"
    - platform: homeassistant
      event: start
  action:
    - delay: 210
    - service: zwave_js.refresh_value
      data:
        entity_id: switch.outdoor_switch
        refresh_all_values: false

To trigger this off of turning the switch on or off from HASS, add the call_service event to the triggers.

Unfortunately the service is not available. Updated Zwave JS UI to latest (1.10.1) but still not seeing any service option. Manually entering the Yaml results in following. What am I missing in my install? Or am I at the point where it is better to switch from mqtt back to normal/built-in zwave/zigbee handling?

## Switch Poll uses an unknown service

The automation "Switch Poll" (`automation.switch_poll`) has an action that calls an unknown service: `zwave_js.refresh_value`.

zwave_js services are naturally implemented by the Z-Wave integration, not the MQTT integration. For use with HA, the integration is the recommended approach over MQTT, but the choice is yours.

You can enable polling directly in ZUI if you decide to stay with MQTT. Or you need to send your own MQTT commands instead.

https://zwave-js.github.io/zwave-js-ui/#/device-support/polling

https://zwave-js.github.io/zwave-js-ui/#/guide/mqtt