- 
                Notifications
    You must be signed in to change notification settings 
- Fork 436
Description
Hi,
I’m having an issue with Zigbee 4-channel switches when connected through SonoffLAN.
- Device: Sonoff Zigbee 4CH switch (paired via NSPanel Pro acting as Zigbee gateway)
- Integration: SonoffLAN v3.9.3
- HA Core 2025.9.4
- Mode: auto
Problem:
In Home Assistant, all 4 channels are visible as separate entities. However, they don’t work independently:
- When I turn on one channel, the others are automatically turned off.
- In the eWeLink app everything works fine: I can keep multiple channels ON at the same time.
Expected behavior:
Each channel should be independent in Home Assistant, just like in the eWeLink app.
Here is a debug log when I first turn ON outlet 0 and then outlet 1:
2025-09-27 17:18:13.304 DEBUG [...] {'switches': [{'outlet': 0, 'switch': 'on'}, {'outlet': 1, 'switch': 'off'}, {'outlet': 2, 'switch': 'off'}, {'outlet': 3, 'switch': 'off'}]}
2025-09-27 17:18:21.981 DEBUG [...] {'switches': [{'outlet': 0, 'switch': 'off'}, {'outlet': 1, 'switch': 'on'}, {'outlet': 2, 'switch': 'off'}, {'outlet': 3, 'switch': 'off'}]}
As you can see, the payload reports all 4 outlets together, and the “on” state is exclusive. This causes HA to treat the device as if only one channel can be active at a time, even though in eWeLink multiple outlets can stay ON simultaneously.
Extra: possible event loop / duplicate updates
Even with only two user actions (turn ON outlet 0, then turn ON outlet 1), the debug log keeps growing with many duplicate state messages within a few seconds, often repeating the exact same switches array multiple times.
Short sample (trimmed to show repetition):
2025-09-27 17:18:13.304 DEBUG [...] => Cloud4 | {'switches': [{'outlet': 0, 'switch': 'on'}, {'outlet': 1, 'switch': 'off'}, {'outlet': 2, 'switch': 'off'}, {'outlet': 3, 'switch': 'off'}]}
2025-09-27 17:18:15.280 DEBUG [...] <= Cloud3 | {'switches': [{'outlet': 0, 'switch': 'on'}, {'outlet': 1, 'switch': 'off'}, {'outlet': 2, 'switch': 'off'}, {'outlet': 3, 'switch': 'off'}]}
2025-09-27 17:18:17.343 DEBUG [...] <= Cloud3 | {'switches': [{'outlet': 0, 'switch': 'on'}, {'outlet': 1, 'switch': 'off'}, {'outlet': 2, 'switch': 'off'}, {'outlet': 3, 'switch': 'off'}]}
2025-09-27 17:18:18.032 DEBUG [...] <= Cloud3 | {'switches': [{'outlet': 0, 'switch': 'on'}, {'outlet': 1, 'switch': 'off'}, {'outlet': 2, 'switch': 'off'}, {'outlet': 3, 'switch': 'off'}]}
2025-09-27 17:18:21.981 DEBUG [...] => Cloud4 | {'switches': [{'outlet': 0, 'switch': 'off'}, {'outlet': 1, 'switch': 'on'}, {'outlet': 2, 'switch': 'off'}, {'outlet': 3, 'switch': 'off'}]}
2025-09-27 17:18:24.754 DEBUG [...] <= Cloud3 | {'switches': [{'outlet': 0, 'switch': 'off'}, {'outlet': 1, 'switch': 'on'}, {'outlet': 2, 'switch': 'off'}, {'outlet': 3, 'switch': 'off'}]}
2025-09-27 17:18:27.311 DEBUG [...] <= Cloud3 | {'switches': [{'outlet': 0, 'switch': 'off'}, {'outlet': 1, 'switch': 'on'}, {'outlet': 2, 'switch': 'off'}, {'outlet': 3, 'switch': 'off'}]}
2025-09-27 17:18:28.093 DEBUG [...] <= Cloud3 | {'switches': [{'outlet': 0, 'switch': 'off'}, {'outlet': 1, 'switch': 'on'}, {'outlet': 2, 'switch': 'off'}, {'outlet': 3, 'switch': 'off'}]}
Please let me know if you’d like me to capture a longer debug log or enable extra logging.
Thanks a lot for your work on this integration!