Skip to content

[Device Support Request] EcoDim.05 two-gang dimmer #4369

@CodeCasterNL

Description

@CodeCasterNL

Problem description

A custom quirk was merged in #3422 (zhaquirks/hzc/doubledimmerswitch.py), but the identifier we've got from this device with EAN 8719322372734 is different.

What's in there:

    QuirkBuilder("EcoDim BV", "EcoDim-Zigbee 3.0")

What works:

    QuirkBuilder("EcoDim BV", "Eco-Dim.05 Zigbee")

Solution description

As explained in #2865, this dimmer doesn't report its status back. This quirk makes it so zigpy/zha/HA doesn't expect that, so it won't blink the device multiple times and then reporting an error. It needs to be tied to the reported device name.

Not sure whether to do this in a copy of the existing quirk, or that it can be adapted to respond the same to different devices.

Screenshots/Video

Diagnostics information

zha-01JTXMFAEYVXFH4GY0C3HVK9JF-EcoDim BV Eco-Dim.05 Zigbee-f9af10d373c1c4781d75e1a6158e6a5c.json

Device signature

Device 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",
  "class": "zigpy.quirks.v2.CustomDeviceV2"
}

Logs

No response

Custom quirk

Custom quirk
"""Quirk for EcoDim 05 Duo Dimmer (Eco-Dim.05 Zigbee, 2 gang)."""

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

from zhaquirks import NoReplyMixin

class EcoDimOnOff(NoReplyMixin, CustomCluster, OnOff):
    """EcoDim On/Off Cluster with no-reply workaround."""

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

(
    QuirkBuilder("EcoDim BV", "Eco-Dim.05 Zigbee")
    # Replace all OnOff clusters with our custom version to avoid "did not respond"
    .replace_cluster_occurrences(EcoDimOnOff, replace_client_instances=False)
    .add_to_registry()
)

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions