ECO-DIM.05 dual dimmer not supported in ZHA?

I installed this dimmer because it should be confirmed to work in ZHA:

EcoDim LED Dimmer Duo 2x 0-100W ECO-DIM.05 Zigbee compatibility (blakadder.com)

Manually everything works fine but when I try to control it from HA:

  • switching on/off: light turns on/off several times and get Failed to call service light/turn_on. Failed to send request: device did not respond
  • dimming does not work at all edit: was trying to dim using the slider in ZHA… does work from a Lovelace card

Reinstalled device several times, no difference.
Tried to reconfigure but this fails:

Changed some options but also no difference:

Has anyone managed to get this device fully working? I’m using a Sonoff Zigbee Dongle Plus-E with stock firmware.

I have exactly the same problem with the Skyconnect stick. Help is appreciated!

Sometimes the light will go on/off several times and then go to the correct state. Sometimes it will switch to the correct state at once but I always get this message:

@Stroo: if you have exactly the same problem with the Skyconnect the problem doesn’t seem to be related to the dongle.

LQI is 150 so that shouldn’t be a problem.

Indeed. Also have a good connection here. If you switch it on and off, it is repeated several times. It looks like ZHA retries a few times before giving up and returning the timed out error.

Is there a way to debug the communication?

You could try posting a device support request on GitHub.

@Stiltjack I did, ref [Device Support Request] Ecodim 05 · Issue #2865 · zigpy/zha-device-handlers · GitHub and received feedback that it does work for others without a quirk. Ecodim support told me both channels need to be connected.to a lamp (which is not the case for me). Might this also be the case for you?

Same problem here. Conbee II with a bunch of other Zigbee devices that don’t have issues. LQI and other metrics are normal. Ecodim DIM.0.7 works perfectly fine, but the DIM.05 dual has exactly the same issues.

In my case, lamps are connected to both channels. Just curious @Stroo, if you don’t have lamps on both channels, what do you have connected to it?

Both channels are connected to a lamp but I still have this issue.

I also contacted EcoDim support. Their feedback is that Home Assistant is not officially supported but that their engineers might have a look at it to see if there’s a solution.

Same issue here! Dimming works fine. No strange behavior. The problem starts when switching the lights on and off. ZHA reports: “Failed to send request: device did not respond”.

Haven’t tried Zigbee2MQTT.

Also, I cannot find any other Zigbee dual dimmer so i would really like to get this working :wink:

Work around is using automations to set brightness to 100% and 0%. Triggering these automations do turn on and off the lights, but when dimming to 0% (thus turning off the lights) the status in HA is off sync (keeps reporting on on the last know brightness level).

@Stroo
Hi, I can see your Pull Request (for a quirck) has been merged into zigpy (Add Ecodim 05 Zigbee double dimmer switch quirk by mano3m · Pull Request #3422 · zigpy/zha-device-handlers · GitHub) But how do I benefit of this in Home Assistant now? Should the ZHA integration be updated somehow? And if so, how do I do this? Or do I need to update the firmware of my Home Assistant Sky Connect stick in order to have the on/off of the Ecodim 05 work via HA? Or does this come in a future update of the HA Core?

Hope to hear from you as it would be great to have the Ecodim 05 start working “normal”.

I have to say I’m confused about how to use it too.
According to my home assistant logs the versions are like this

    "versions": {
      "bellows": "0.42.6",
      "zigpy": "0.74.0",
      "zigpy_deconz": "0.24.1",
      "zigpy_xbee": "0.21.0",
      "zigpy_znp": "0.13.1",
      "zigpy_zigate": "0.13.2",
      "zhaquirks": "0.0.130",

and looking at that 0.7.4 of zigpy and 0.0.130 of zhaquirks was released two weeks ago it should already be in home assistant, yet my ecodim 05 still throws the errors and doesn’t show any quirk in use while for my hzc dimmer shows a quirk is in use. Is there something else a user does have to do?

You don’t need to do anything to use builtin quirks. What’s the device signature and does it match the quirk? If it does, then put ZHA in debug and then reload ZHA, what do the logs say as far as why the quirk didn’t match?

Is the device signature manufracturer and name or model? I would say neither do match the quirk.

  "data": {
    "ieee": "**REDACTED**",
    "nwk": 25740,
    "manufacturer": "EcoDim BV",
    "model": "Eco-Dim.05 Zigbee",
    "name": "EcoDim BV Eco-Dim.05 Zigbee",
    "quirk_applied": false,
    "quirk_class": "zigpy.device.Device",
    "quirk_id": null,
    "manufacturer_code": 4098,
    "power_source": "Mains",
    "lqi": 108,
    "rssi": -73,
    "last_seen": "2025-01-19T13:17:47",
    "available": true,
    "device_type": "Router",
    "signature": {
      "node_descriptor": {
        "logical_type": 1,
        "complex_descriptor_available": 0,
        "user_descriptor_available": 0,
        "reserved": 0,
        "aps_flags": 0,
        "frequency_band": 8,
        "mac_capability_flags": 142,
        "manufacturer_code": 4098,
        "maximum_buffer_size": 82,
        "maximum_incoming_transfer_size": 82,
        "server_mask": 11264,
        "maximum_outgoing_transfer_size": 82,
        "descriptor_capability_field": 0
      },
      "endpoints": {
        "1": {
          "profile_id": "0x0104",
          "device_type": "0x0101",
          "input_clusters": [
            "0x0000",
            "0x0003",
            "0x0004",
            "0x0005",
            "0x0006",
            "0x0008",
            "0x1000"
          ],
          "output_clusters": [
            "0x0019"
          ]
        },
        "2": {
          "profile_id": "0x0104",
          "device_type": "0x0101",
          "input_clusters": [
            "0x0000",
            "0x0003",
            "0x0004",
            "0x0005",
            "0x0006",
            "0x0008",
            "0x1000"
          ],
          "output_clusters": [
            "0x0019"
          ]
        },
        "242": {
          "profile_id": "0xa1e0",
          "device_type": "0x0061",
          "input_clusters": [],
          "output_clusters": [
            "0x0021"
          ]
        }
      },
      "manufacturer": "EcoDim BV",
      "model": "Eco-Dim.05 Zigbee"

Is that enough or would a complete diagnostic log help more?

Ok, just a very quick glance, the linked quirk matches ("EcoDim BV", "EcoDim-Zigbee 3.0")

If you want it to match your device, you need this as a custom quirk.

from zigpy.quirks import CustomCluster
from zigpy.quirks.v2 import QuirkBuilder
from zigpy.zcl.clusters.general import OnOff

from zhaquirks import NoReplyMixin


class HzcOnOff(NoReplyMixin, CustomCluster, OnOff):
    """HZC On Off Cluster."""

    void_input_commands = {cmd.id for cmd in OnOff.commands_by_name.values()}


(
    QuirkBuilder("EcoDim BV", "EcoDim BV Eco-Dim.05 Zigbee")
    .replace_cluster_occurrences(HzcOnOff, replace_client_instances=False)
    .add_to_registry()
)

Note, I haven’t looked closely, so no idea if this will actually help, it will just cause the quirk to match your device.

1 Like

Had to replace "EcoDim BV Eco-Dim.05 Zigbee" with "Eco-Dim.05 Zigbee" but now it works.
Thank you

Yep, copied the wrong line, if it works, please PR the change.

Just add .applies_to("EcoDim BV", "Eco-Dim.05 Zigbee") immediatly below the TuyaQuirkBuilder line on the official quirk.

After testing a bit just applying the quirk is not enough. If the dimmer is set to >30% the light turns off but then on again. So the script would also need to turn the level to 30% and then turn it off.