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
737 stars 675 forks source link

[Device Support Request] Aubess/Tuya TS0505B by _TZ3210_it1u8ahz RGBCC bulb. Minor fix. #2365

Closed ShogunMan closed 6 months ago

ShogunMan commented 1 year ago

Problem description

Device is throwing log errors on the color cluster 0X300 (768) (see log)

Solution description

Device seems to be working, but would be nice to get rid of the errors cluttering the log.

Screenshots/Video

Screenshots/Video [Paste/upload your media here]

Device signature

Device signature ```json { "node_descriptor": "NodeDescriptor(logical_type=, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=, mac_capability_flags=, manufacturer_code=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=, *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": 260, "device_type": "0x010d", "in_clusters": [ "0x0000", "0x0003", "0x0004", "0x0005", "0x0006", "0x0008", "0x000a", "0x0300", "0x1000", "0x1888", "0xffee" ], "out_clusters": [ "0x0019", "0x1000", "0xffee" ] } }, "manufacturer": "_TZ3210_it1u8ahz", "model": "TS0505B", "class": "zigpy.device.Device" } ```

Diagnostic information

Diagnostic information ```json { "home_assistant": { "installation_type": "Home Assistant Container", "version": "2023.4.6", "dev": false, "hassio": false, "virtualenv": false, "python_version": "3.10.10", "docker": true, "arch": "aarch64", "timezone": "Europe/Oslo", "os_name": "Linux", "os_version": "5.15.84-v8+", "run_as_root": true }, "custom_components": { "hacs": { "version": "1.32.1", "requirements": [ "aiogithubapi>=22.10.1" ] }, "scheduler": { "version": "v0.0.0", "requirements": [] }, "localtuya": { "version": "5.0.0", "requirements": [] } }, "integration_manifest": { "domain": "zha", "name": "Zigbee Home Automation", "after_dependencies": [ "onboarding", "usb" ], "codeowners": [ "@dmulcahey", "@adminiuga", "@puddly" ], "config_flow": true, "dependencies": [ "file_upload" ], "documentation": "https://www.home-assistant.io/integrations/zha", "iot_class": "local_polling", "loggers": [ "aiosqlite", "bellows", "crccheck", "pure_pcapy3", "zhaquirks", "zigpy", "zigpy_deconz", "zigpy_xbee", "zigpy_zigate", "zigpy_znp" ], "requirements": [ "bellows==0.35.1", "pyserial==3.5", "pyserial-asyncio==0.6", "zha-quirks==0.0.97", "zigpy-deconz==0.20.0", "zigpy==0.54.1", "zigpy-xbee==0.17.0", "zigpy-zigate==0.10.3", "zigpy-znp==0.10.0" ], "usb": [ { "vid": "10C4", "pid": "EA60", "description": "*2652*", "known_devices": [ "slae.sh cc2652rb stick" ] }, { "vid": "1A86", "pid": "55D4", "description": "*sonoff*plus*", "known_devices": [ "sonoff zigbee dongle plus v2" ] }, { "vid": "10C4", "pid": "EA60", "description": "*sonoff*plus*", "known_devices": [ "sonoff zigbee dongle plus" ] }, { "vid": "10C4", "pid": "EA60", "description": "*tubeszb*", "known_devices": [ "TubesZB Coordinator" ] }, { "vid": "1A86", "pid": "7523", "description": "*tubeszb*", "known_devices": [ "TubesZB Coordinator" ] }, { "vid": "1A86", "pid": "7523", "description": "*zigstar*", "known_devices": [ "ZigStar Coordinators" ] }, { "vid": "1CF1", "pid": "0030", "description": "*conbee*", "known_devices": [ "Conbee II" ] }, { "vid": "10C4", "pid": "8A2A", "description": "*zigbee*", "known_devices": [ "Nortek HUSBZB-1" ] }, { "vid": "0403", "pid": "6015", "description": "*zigate*", "known_devices": [ "ZiGate+" ] }, { "vid": "10C4", "pid": "EA60", "description": "*zigate*", "known_devices": [ "ZiGate" ] }, { "vid": "10C4", "pid": "8B34", "description": "*bv 2010/10*", "known_devices": [ "Bitron Video AV2010/10" ] } ], "zeroconf": [ { "type": "_esphomelib._tcp.local.", "name": "tube*" }, { "type": "_zigate-zigbee-gateway._tcp.local.", "name": "*zigate*" }, { "type": "_zigstar_gw._tcp.local.", "name": "*zigstar*" }, { "type": "_slzb-06._tcp.local.", "name": "slzb-06*" } ], "is_built_in": true }, "data": { "ieee": "**REDACTED**", "nwk": 39949, "manufacturer": "_TZ3210_it1u8ahz", "model": "TS0505B", "name": "_TZ3210_it1u8ahz TS0505B", "quirk_applied": false, "quirk_class": "zigpy.device.Device", "manufacturer_code": 4417, "power_source": "Mains", "lqi": 176, "rssi": -56, "last_seen": "2023-04-28T14:32:14", "available": true, "device_type": "Router", "signature": { "node_descriptor": "NodeDescriptor(logical_type=, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=, mac_capability_flags=, manufacturer_code=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=, *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": 260, "device_type": "0x010d", "in_clusters": [ "0x0000", "0x0003", "0x0004", "0x0005", "0x0006", "0x0008", "0x000a", "0x0300", "0x1000", "0x1888", "0xffee" ], "out_clusters": [ "0x0019", "0x1000", "0xffee" ] } } }, "active_coordinator": false, "entities": [ { "entity_id": "button.tz3210_it1u8ahz_ts0505b_identify_2", "name": "_TZ3210_it1u8ahz TS0505B" }, { "entity_id": "light.tz3210_it1u8ahz_ts0505b_light_2", "name": "_TZ3210_it1u8ahz TS0505B" }, { "entity_id": "number.tz3210_it1u8ahz_ts0505b_start_up_current_level_2", "name": "_TZ3210_it1u8ahz TS0505B" }, { "entity_id": "number.tz3210_it1u8ahz_ts0505b_start_up_color_temperature_2", "name": "_TZ3210_it1u8ahz TS0505B" }, { "entity_id": "select.tz3210_it1u8ahz_ts0505b_start_up_behavior_2", "name": "_TZ3210_it1u8ahz TS0505B" } ], "neighbors": [ { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Parent", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x4A11", "permit_joining": "Unknown", "depth": "1", "lqi": "129" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0xB26D", "permit_joining": "Unknown", "depth": "1", "lqi": "212" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0xE34F", "permit_joining": "Unknown", "depth": "1", "lqi": "176" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x911E", "permit_joining": "Unknown", "depth": "1", "lqi": "203" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0xE828", "permit_joining": "Unknown", "depth": "1", "lqi": "136" }, { "device_type": "Coordinator", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x0000", "permit_joining": "Unknown", "depth": "0", "lqi": "168" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x4850", "permit_joining": "Unknown", "depth": "1", "lqi": "169" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0xCCFA", "permit_joining": "Unknown", "depth": "1", "lqi": "173" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0xE71C", "permit_joining": "Unknown", "depth": "1", "lqi": "230" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x504C", "permit_joining": "Unknown", "depth": "2", "lqi": "251" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0xB853", "permit_joining": "Unknown", "depth": "2", "lqi": "142" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0xDD6C", "permit_joining": "Unknown", "depth": "1", "lqi": "133" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x65D7", "permit_joining": "Unknown", "depth": "1", "lqi": "194" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x64E9", "permit_joining": "Unknown", "depth": "1", "lqi": "165" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x4738", "permit_joining": "Unknown", "depth": "1", "lqi": "103" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x7DB6", "permit_joining": "Unknown", "depth": "1", "lqi": "88" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0xD2A1", "permit_joining": "Unknown", "depth": "2", "lqi": "113" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x1135", "permit_joining": "Unknown", "depth": "2", "lqi": "156" } ], "routes": [], "endpoint_names": [ { "name": "EXTENDED_COLOR_LIGHT" } ], "user_given_name": "Red Lamp", "device_reg_id": "ecc169e7cedc5e8d684a784e26167de6", "area_id": "living_room", "cluster_details": { "1": { "device_type": { "name": "EXTENDED_COLOR_LIGHT", "id": 269 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": { "0x0004": { "attribute_name": "manufacturer", "value": "_TZ3210_it1u8ahz" }, "0x0005": { "attribute_name": "model", "value": "TS0505B" } }, "unsupported_attributes": {} }, "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x1888": { "endpoint_attribute": null, "attributes": {}, "unsupported_attributes": {} }, "0x0004": { "endpoint_attribute": "groups", "attributes": {}, "unsupported_attributes": {} }, "0x0005": { "endpoint_attribute": "scenes", "attributes": {}, "unsupported_attributes": {} }, "0x0006": { "endpoint_attribute": "on_off", "attributes": { "0x0000": { "attribute_name": "on_off", "value": 0 }, "0x4003": { "attribute_name": "start_up_on_off", "value": 255 } }, "unsupported_attributes": {} }, "0x0008": { "endpoint_attribute": "level", "attributes": { "0x0000": { "attribute_name": "current_level", "value": 1 }, "0x4000": { "attribute_name": "start_up_current_level", "value": 254 } }, "unsupported_attributes": { "0x0014": { "attribute_name": "default_move_rate" }, "0x0013": { "attribute_name": "off_transition_time" }, "0x0011": { "attribute_name": "on_level" }, "0x0010": { "attribute_name": "on_off_transition_time" }, "0x0012": { "attribute_name": "on_transition_time" } } }, "0x0300": { "endpoint_attribute": "light_color", "attributes": { "0x0000": { "attribute_name": "current_hue", "value": 80 }, "0x0001": { "attribute_name": "current_saturation", "value": 254 }, "0x0003": { "attribute_name": "current_x", "value": 45940 }, "0x0004": { "attribute_name": "current_y", "value": 19594 }, "0x0007": { "attribute_name": "color_temperature", "value": 143 }, "0x0008": { "attribute_name": "color_mode", "value": 1 }, "0x000f": { "attribute_name": "options", "value": 0 }, "0x4002": { "attribute_name": "color_loop_active", "value": 1 }, "0x400a": { "attribute_name": "color_capabilities", "value": 8 }, "0x400b": { "attribute_name": "color_temp_physical_min", "value": 143 }, "0x400c": { "attribute_name": "color_temp_physical_max", "value": 500 }, "0x4010": { "attribute_name": "start_up_color_temperature", "value": 143 } }, "unsupported_attributes": { "0x4000": { "attribute_name": "enhanced_current_hue" } } }, "0x000a": { "endpoint_attribute": "time", "attributes": {}, "unsupported_attributes": {} }, "0x1000": { "endpoint_attribute": "lightlink", "attributes": {}, "unsupported_attributes": {} }, "0xffee": { "endpoint_attribute": "manufacturer_specific", "attributes": {}, "unsupported_attributes": {} } }, "out_clusters": { "0x0019": { "endpoint_attribute": "ota", "attributes": {}, "unsupported_attributes": {} }, "0x1000": { "endpoint_attribute": "lightlink", "attributes": {}, "unsupported_attributes": {} }, "0xffee": { "endpoint_attribute": "manufacturer_specific", "attributes": {}, "unsupported_attributes": {} } } } } } } ```

Logs

Logs ```python Logger: zigpy.device Source: runner.py:179 First occurred: 15:56:00 (20 occurrences) Last logged: 16:50:17 Failed to parse message (b'08fe0a0cf0480c000100000000000000000000') on cluster 768, because Data is too short to contain 1 bytes Failed to parse message (b'08ff0a09f04800') on cluster 768, because Data is too short to contain 1 bytes Failed to parse message (b'08b00a09f04800') on cluster 768, because Data is too short to contain 1 bytes Failed to parse message (b'08b40a0bf04800') on cluster 768, because Data is too short to contain 1 bytes Failed to parse message (b'08030a0bf04800') on cluster 768, because Data is too short to contain 1 bytes ```

Custom quirk

No custom quirks or core quirks are loaded.

Additional information

Have tried re-pairing the devices with no effect. The device is listed as Zigbee 3.0 compatible, so ideally this should not occur.

ShogunMan commented 1 year ago

In the diagnostic section i find this:

 "0x1888": {
            "endpoint_attribute": null,
            "attributes": {},
            "unsupported_attributes": {}
          },

0x1888 has no matching entries in ZCL lightning.py hence endpoint_attribute is null. Could this be the cause of the errors filling up the log?

ShogunMan commented 1 year ago

@TheJulianJES @MattWestb @javicalle Any idea of where I should start looking to fix this?

MattWestb commented 1 year ago

Sorry im not one code worrier so i cant helping but our friends 110% can do that :-))

ShogunMan commented 1 year ago

@TheJulianJES & @javicalle Bumping this :-)

TheJulianJES commented 1 year ago

See: https://github.com/home-assistant/core/issues/98900#issuecomment-1722261213

ShogunMan commented 1 year ago

@TheJulianJES This pull adds a class for the Tuya 0x1888 cluster: https://github.com/zigpy/zha-device-handlers/pull/2592

It might fix the log errors. What is the easiest way to test this?

MattWestb commented 1 year ago

Making one local quirk for your device and adding the signature and importing and use the 0x1888 cluster in it then the system shall trying using the commands from the 0x1888 cluster / attributes of it but i think its a not working one on this device.

github-actions[bot] commented 6 months ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.