I have a GE Enbrighten Fan Controller (Model #55258 / ZW4002; Running Firmware 5.50). I’m using the HUBZ controller (Silicon Labs).
All of the commands that I send to the node work as expected, but I’m noticing a strange behavior in the Home Assistant UI that is related (I believe) to the Fan Controller reporting its state too fast.
The logs are attached, but what it looks like is the following:
HA sends an “off” command
Controller begins turning off
HA asks for the state of the fan controller
Fan controller has not completed turning off, and reports that it is still on
HA reverts the state of the on/off toggle in the UI
If I click the toggle a second time, it “sticks” in the correct position.
I am using the VirtualBox VM image, Z-Wave JS installed & configured via the Supervisor.
Logs from an attempted “off” toggle (fan started in the “on” state)
2021-08-29T18:56:37.433Z DRIVER » [Node 005] [REQ] [SendData]
│ transmit options: 0x25
│ callback id: 97
└─[MultilevelSwitchCCSet]
target value: 0
2021-08-29T18:56:37.458Z DRIVER « [RES] [SendData]
was sent: true
2021-08-29T18:56:37.473Z DRIVER « [REQ] [SendData]
callback id: 97
transmit status: OK
2021-08-29T18:56:37.491Z CNTRLR [Node 005] Scheduled poll canceled because value was updated
2021-08-29T18:56:37.492Z DRIVER « [Node 005] [REQ] [ApplicationCommand]
└─[MultilevelSwitchCCReport]
current value: 99
Now, the log after pressing the toggle again in the UI (fan is “off”, but UI thinks it is “on”):
2021-08-29T18:57:41.324Z DRIVER » [Node 005] [REQ] [SendData]
│ transmit options: 0x25
│ callback id: 98
└─[MultilevelSwitchCCSet]
target value: 0
2021-08-29T18:57:41.336Z DRIVER « [RES] [SendData]
was sent: true
2021-08-29T18:57:41.351Z DRIVER « [REQ] [SendData]
callback id: 98
transmit status: OK
2021-08-29T18:57:41.370Z CNTRLR [Node 005] Scheduled poll canceled because value was updated
2021-08-29T18:57:41.370Z DRIVER « [Node 005] [REQ] [ApplicationCommand]
└─[MultilevelSwitchCCReport]
current value: 0
Have I misconfigured something? I don’t see an obvious way to update the firmware of the fan controller, so I’m not sure how up-to-date it is either.
Your device is not well behaving. From the logs, it sends a report that it is still on (value 99). If that’s it, then it never follows up with a final value that says it’s off. Because the device reported this value on its own, zwave-js cancels a poll it had scheduled, because usually devices will report the final state correctly.
2021-08-29T18:56:37.491Z CNTRLR [Node 005] Scheduled poll canceled because value was updated
2021-08-29T18:56:37.492Z DRIVER « [Node 005] [REQ] [ApplicationCommand]
└─[MultilevelSwitchCCReport]
current value: 99
The only workaround would be to manually refresh the value, you could use zwave_js.refresh_value for that. The linked issue discusses a possibility of adding a compat flag to override the cancellation of the scheduled poll, but that doesn’t exist yet.
Well that is disappointing, especially since from what I can tell from googling regarding this line of smart devices there is no provided way to update the firmware.
Just noticed the similar thing happening with the same switch, except the fan doesn’t actually turn off. For the most part works fine in home assistant Lovelace, but when making an automation in node red I need to send the off command twice for it to turn off.
It’s kind of the opposite of my problem. Status shows fine when I use Lovelace button or whatever to turn on or off. It’s when I have an automation, that I need to trigger off twice for it to take, because the intermediate step appears to stop it from turning off.
I’ve purchased an alternate smart switch (trying the Leviton ZW4SF-1BW) which will be arriving today. If that one has the same challenge I’ll give polling a shot - but my gut tells me sticking with a hardware vendor that has a fundamental flaw like this in their firmware and hasn’t thought ahead to how they might update firmware isn’t a great long term strategy.
Yesterday I installed a Ge/Jasco Enbrighten 55258 / ZW4002/ I too noticed the issue with ON/OFF switch bouncing and problems with automatons. I found a decent work around, don’t use on/off Instead use fan.set_percentage in your automation:
in additional to the problems referenced above, I wasn’t able to discover the fan controller in alexa using the cloud integration in 2021.10.6. I managed to resolve all of my issues with the zw4002 using two scripts:
set_fan_percentage:
sequence:
- service: fan.set_percentage
target:
entity_id: '{{ entity_id }}'
data:
percentage: '{{ percentage }}'
- service: zwave_js.refresh_value
data:
entity_id: '{{ entity_id }}'
mode: single
alias: Set fan percentage
icon: mdi:fan
set_fan_operation:
alias: Set fan operation
sequence:
- service: fan.turn_{{ operation }}
target:
entity_id: '{{ entity_id }}'
- service: zwave_js.refresh_value
data:
entity_id: '{{ entity_id }}'
mode: single
icon: mdi:fan
I’ve been quite happy with them, but admittedly have limited frame of reference regarding their bulk. They’ve been stable and fit the boxes in my ~20 year old home, at least once I got more practice folding the romex into the enclosure.