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

@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.

Ok, so I’m kinda new to the Zigbee integrations.

Let me check with you @Noir and @PrairieSnpr if my understanding of the above posts is correct:

The ZHA Device Handlers (aka Quircks) are a part of zigpy, which is the library for the ZHA component in Home Assistant.

On GitHub, I can see that in the dev branch, there is a quirck for the Ecodim 05:

This Quirck is not present in the main branch (which is 300+ or so commits behind) and therefore not released into Home Assistant Core? Is this the reason why it does not work out of the box in my HA instance?

So therefore, if I would like to have it to work now, I have to create my own local quirck the way @PrairieSnpr supplied some code for?
And if so, is there any documentation on where to put/create this code?
Do I need to remove the current Zigbee device and pair it again or does a restart of ZHA will do the trick?

The master branch isn’t used in zigpy, everything is completed in the dev branch.

You can see what’s been released by checking here Releases · zigpy/zha-device-handlers.

In this case, #3422 was released as part of 0.0.125, so it’s included in the current HA release.

As far as why your device isn’t working, it’s likely not matching the model and manufacturer. If you want to add a custom quirk, there are several guides here on the forums, here is one https://community.home-assistant.io/t/zigbee-guide-how-to-add-setup-local-custom-zha-device-handlers-also-known-as-quirks-in-the-zha-integration/.

1 Like

I follwed the guide you sent and now it works! Thank you.

Do I understand correct that:

I made a custom/local quirk (using your example code) and let HA know this by pointing to it in the ZHA configuration of the HA configuration.yaml.

  • After rebooting HA, it started working because the EcoDim 05 signature does match “EcoDim BV”, “Eco-Dim.05 Zigbee” from my own custom/local quirk.

  • My device, an ecodim 05 does not use the built-in quirk, because the signature does not match “EcoDim BV”, “EcoDim-Zigbee 3.0”

  • My ecodim 07 on the other hand does use the built-in quirk because the signature does match “EcoDim BV”, “EcoDim-Zigbee 3.0”)

And this is all there is to it?

yes I would say so.

Since you also have a ecodim 05, does yours turn off without turning on again if it is set to 100%?

I fiddled with it a little this morning and I have to say I do not see this behavior that you describe. But, I have two lamps connected to the dimmer. One halogen and one Philips Hue Bleutooth bulb. The latter acts a little different than one might expect. But I’m guessing this has to do with the fact that this bulb itself has dimming capabilities so this might not be representative. The halogen on the other hand works fine.

Does the behavior you are seeing improve when you play around with the min/max meters on the dimmer itself?

No it doesn’t, it only improves if I reduce the load. I have a LED driver connected to it and if I remove one LED loop from it the amount I need to dimm so it stays of gets geduced. 3 loops connected = dimm to 30% to stay off, 1 loop connected = 80% to stay off.
The eco dim 05 is also the only dimmer with that behaviour, I have also a
iolloi Zigbee dimmer which looks to be a eco dim 07 and there everything stays of even with a high load off.