I’m currently running the latest versions of Node-RED (version 19.0.0) and Zigbee2MQTT (version 2.0.0-2).
At home, I create groups for my Zigbee devices using Zigbee2MQTT, like a group for the living room lights. I then use Node-RED to set up a flow that controls the group: if the input is ON, I turn the group ON, and the same for OFF. This setup worked fine until the latest update.
Now, I can control the lights from the main switch (on/off state is reflected correctly), but when I use the virtual parallel switch, it only works to turn the lights ON. The OFF command doesn’t go through.
I’ve tested this on a fresh Home Assistant install, but the issue persists. I’d like to know if anyone else has encountered this or if there were changes in Node-RED or Zigbee affecting this behavior.
I’m still trying to figure out what’s going on. Up to now, debugging nodered, the node “events: state” sends “on” and turn on the light and all switches from the group go to ON state. But, when I turn off, no event is sent, even though I don’t filter the state.
Maybe I’m wrong, but it seems a problem in the group of Z2M … what I do is based on the group of switches in Z2M.
To be sure that the OFF state is ok, I turned on and off through MQTT message in Developers Tools, and it worked properly.
Unfortunately I can’t help with node red, but here’s what I would do to narrow down the issue.
Install MQTT Explorer on Windows and monitor the messages being sent when light is turned on & off. At the same time, check Z2M logs to ensure both payloads match.
Disable this flow in node red temporarily and create a HA automation which does the same thing. Should be pretty straightforward and narrows it down to either a Z2M or Node red issue.
If all else fails, you might have to raise an issue on Github, either that of Z2M or else that of Node Red. Sorry I can’t be of more help.
EDIT: @eduseiden Just spotted this issue in Z2M Github raised yesterday. Seems quite similar behaviour except for the binding part. Maybe try following that thread if you can’t reach a solution.