zigpy / zha-device-handlers

ZHA device handlers bridge the functionality gap created when manufacturers deviate from the ZCL specification, handling deviations and exceptions by parsing custom messages to and from Zigbee devices.
Apache License 2.0
728 stars 675 forks source link

[Device Support Request] Too many sensors on _TZ3000_zw7yf6yk #2917

Open phulstaert opened 8 months ago

phulstaert commented 8 months ago

Problem description

Although we do it generally the other way around, I have too many sensors.

I have a _TZ3000_zw7yf6yk (zigbee 3.0 switch). It is very simple: you can turn it on... and even off. But when adding it, it shows all different kind of sensors (Current, Power, Summation delivered and Voltage). This device does not do any form of energy monitoring and the values remain on 0.

Solution description

I think it would be better to only expose the sensors or options that are available on the device. I have not found a _TZ3000_zw7yf6yk that does have energy monitoring. I don't know about energy monitoring on _TZ3000_majwnphg or _TZ3000_6axxqqi2 (from here) so i would leave them untouched for now...

Screenshots/Video

Screenshots/Video ![image](https://github.com/zigpy/zha-device-handlers/assets/8971696/18ef2d95-452a-45b6-8abf-a4c2476a8ddb)

Device signature

Device signature ```json [Paste the device signature here] ```

Diagnostic information

Diagnostic information ```json [Paste the diagnostic information here] ```

Logs

Logs ```python [Paste the logs here] ```

Custom quirk

Custom quirk ```python [Paste your custom quirk here] ```

Additional information

No response

TheJulianJES commented 8 months ago

You need to provide the device signature and/or diagnostics information for that device, so we know what quirk it currently matches. It can be found on the device page.

You can also hide or disable sensors/entities in HA.

gvillo commented 2 months ago

@TheJulianJES does this info works for you? I am experiencing the same as @phulstaert, power measurement is not working at all, AFAIK this device does support that.

Device: _TZ3000_zw7yf6yk (https://zigbee.blakadder.com/Girier_JR-ZDS01.html) Quirk applied: zhaquirks.tuya.ts000x.Switch_1G_Metering

  "data": {
    "ieee": "**REDACTED**",
    "nwk": 39565,
    "manufacturer": "_TZ3000_zw7yf6yk",
    "model": "TS0001",
    "name": "_TZ3000_zw7yf6yk TS0001",
    "quirk_applied": true,
    "quirk_class": "zhaquirks.tuya.ts000x.Switch_1G_Metering",
    "quirk_id": "tuya.plug_on_off_attributes",
    "manufacturer_code": 4417,
    "power_source": "Mains",
    "lqi": 255,
    "rssi": -73,
    "last_seen": "2024-07-07T23:31:56",
    "available": true,
    "device_type": "Router",
    "signature": {
      "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.FullFunctionDevice|MainsPowered|RxOnWhenIdle|AllocateAddress: 142>, manufacturer_code=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
      "endpoints": {
        "1": {
          "profile_id": "0x0104",
          "device_type": "0x0100",
          "input_clusters": [
            "0x0000",
            "0x0003",
            "0x0004",
            "0x0005",
            "0x0006",
            "0x0702",
            "0x0b04",
            "0xe000",
            "0xe001"
          ],
          "output_clusters": [
            "0x000a",
            "0x0019"
          ]
        }
      },
      "manufacturer": "_TZ3000_zw7yf6yk",
      "model": "TS0001"
    },
    "active_coordinator": false,
    "entities": [
      {
        "entity_id": "button.switch_test_identify",
        "name": "_TZ3000_zw7yf6yk TS0001"
      },
      {
        "entity_id": "light.switch_test_light",
        "name": "_TZ3000_zw7yf6yk TS0001"
      },
      {
        "entity_id": "select.switch_test_power_on_state",
        "name": "_TZ3000_zw7yf6yk TS0001"
      },
      {
        "entity_id": "select.switch_test_backlight_mode",
        "name": "_TZ3000_zw7yf6yk TS0001"
      },
      {
        "entity_id": "sensor.switch_test_current",
        "name": "_TZ3000_zw7yf6yk TS0001"
      },
      {
        "entity_id": "sensor.switch_test_voltage",
        "name": "_TZ3000_zw7yf6yk TS0001"
      },
      {
        "entity_id": "sensor.tz3000_zw7yf6yk_ts0001_rssi_2",
        "name": "_TZ3000_zw7yf6yk TS0001"
      },
      {
        "entity_id": "sensor.switch_test_power",
        "name": "_TZ3000_zw7yf6yk TS0001"
      },
      {
        "entity_id": "sensor.switch_test_summation_delivered",
        "name": "_TZ3000_zw7yf6yk TS0001"
      },
      {
        "entity_id": "update.switch_test_firmware",
        "name": "_TZ3000_zw7yf6yk TS0001"
      }
    ],
    "neighbors": [],
    "routes": [],
    "endpoint_names": [
      {
        "name": "ON_OFF_LIGHT"
      }
    ],
    "user_given_name": "Switch Test",
    "device_reg_id": "732e49ef64cfde17490486c73416d39b",
    "area_id": null,
    "cluster_details": {
      "1": {
        "device_type": {
          "name": "ON_OFF_LIGHT",
          "id": 256
        },
        "profile_id": 260,
        "in_clusters": {
          "0x0000": {
            "endpoint_attribute": "basic",
            "attributes": {
              "0x0001": {
                "attribute_name": "app_version",
                "value": 72
              },
              "0x0004": {
                "attribute_name": "manufacturer",
                "value": "_TZ3000_zw7yf6yk"
              },
              "0x0005": {
                "attribute_name": "model",
                "value": "TS0001"
              }
            },
            "unsupported_attributes": {}
          },
          "0x0003": {
            "endpoint_attribute": "identify",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0004": {
            "endpoint_attribute": "groups",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0005": {
            "endpoint_attribute": "scenes",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {
              "0x8001": {
                "attribute_name": "backlight_mode",
                "value": 1
              },
              "0x4002": {
                "attribute_name": "off_wait_time",
                "value": 0
              },
              "0x0000": {
                "attribute_name": "on_off",
                "value": 0
              },
              "0x4001": {
                "attribute_name": "on_time",
                "value": 0
              },
              "0x8002": {
                "attribute_name": "power_on_state",
                "value": 2
              }
            },
            "unsupported_attributes": {
              "0x8000": {
                "attribute_name": "child_lock"
              },
              "0x4003": {
                "attribute_name": "start_up_on_off"
              }
            }
          },
          "0x0702": {
            "endpoint_attribute": "smartenergy_metering",
            "attributes": {
              "0x0000": {
                "attribute_name": "current_summ_delivered",
                "value": 0
              },
              "0x0302": {
                "attribute_name": "divisor",
                "value": 100
              },
              "0x0306": {
                "attribute_name": "metering_device_type",
                "value": 0
              },
              "0x0301": {
                "attribute_name": "multiplier",
                "value": 1
              },
              "0x0200": {
                "attribute_name": "status",
                "value": 0
              },
              "0x0303": {
                "attribute_name": "summation_formatting",
                "value": 0
              },
              "0x0300": {
                "attribute_name": "unit_of_measure",
                "value": 0
              }
            },
            "unsupported_attributes": {
              "0x0400": {
                "attribute_name": "instantaneous_demand"
              },
              "0x0100": {
                "attribute_name": "current_tier1_summ_delivered"
              },
              "0x0102": {
                "attribute_name": "current_tier2_summ_delivered"
              },
              "0x0001": {
                "attribute_name": "current_summ_received"
              },
              "0x0104": {
                "attribute_name": "current_tier3_summ_delivered"
              },
              "0x0304": {
                "attribute_name": "demand_formatting"
              },
              "0x0106": {
                "attribute_name": "current_tier4_summ_delivered"
              },
              "0x0108": {
                "attribute_name": "current_tier5_summ_delivered"
              },
              "0x010a": {
                "attribute_name": "current_tier6_summ_delivered"
              }
            }
          },
          "0x0b04": {
            "endpoint_attribute": "electrical_measurement",
            "attributes": {
              "0x0603": {
                "attribute_name": "ac_current_divisor",
                "value": 1000
              },
              "0x0602": {
                "attribute_name": "ac_current_multiplier",
                "value": 1
              },
              "0x050b": {
                "attribute_name": "active_power",
                "value": 0
              },
              "0x0508": {
                "attribute_name": "rms_current",
                "value": 0
              },
              "0x0505": {
                "attribute_name": "rms_voltage",
                "value": 0
              }
            },
            "unsupported_attributes": {
              "0x0300": {
                "attribute_name": "ac_frequency"
              },
              "0x0601": {
                "attribute_name": "ac_voltage_divisor"
              },
              "0x0302": {
                "attribute_name": "ac_frequency_max"
              },
              "0x0600": {
                "attribute_name": "ac_voltage_multiplier"
              },
              "0x0507": {
                "attribute_name": "rms_voltage_max"
              },
              "0x0605": {
                "attribute_name": "ac_power_divisor"
              },
              "0x0604": {
                "attribute_name": "ac_power_multiplier"
              },
              "0x0401": {
                "attribute_name": "ac_frequency_divisor"
              },
              "0x0400": {
                "attribute_name": "ac_frequency_multiplier"
              },
              "0x050a": {
                "attribute_name": "rms_current_max"
              },
              "0x0000": {
                "attribute_name": "measurement_type"
              },
              "0x050d": {
                "attribute_name": "active_power_max"
              },
              "0x0510": {
                "attribute_name": "power_factor"
              },
              "0x050f": {
                "attribute_name": "apparent_power"
              },
              "0x0402": {
                "attribute_name": "power_multiplier"
              },
              "0x0403": {
                "attribute_name": "power_divisor"
              }
            }
          },
          "0xe000": {
            "endpoint_attribute": "tuya_manufacturer_specific_57344",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0xe001": {
            "endpoint_attribute": "tuya_external_switch_type",
            "attributes": {
              "0xd030": {
                "attribute_name": "external_switch_type",
                "value": 0
              }
            },
            "unsupported_attributes": {}
          }
        },
        "out_clusters": {
          "0x000a": {
            "endpoint_attribute": "time",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0019": {
            "endpoint_attribute": "ota",
            "attributes": {
              "0x0002": {
                "attribute_name": "current_file_version",
                "value": 72
              }
            },
            "unsupported_attributes": {}
          }
        }
      }
    }
  }
phulstaert commented 2 months ago

The TZ3000_zw7yf6yk does not support energy monitoring. (cfr https://zigbee.blakadder.com/Girier_JR-ZDS01.html) Also, when you look at the guts of the device, you will see there is no current sensor; just a simple relay.