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
743 stars 680 forks source link

[Device Support Request] HZC Electronics D688-ZG #2987

Closed EmberLightVFX closed 1 month ago

EmberLightVFX commented 8 months ago

Problem description

I’m having a problem when I try to toggle my light dimmer in the UI. The dimmer is a HZC Electronics D688-ZG dimmer. When I press to turn the light off, the light turns off but it doen’t seem to register in the UI and the switch goes back to its on-state in the UI while the real light is still off.

If I turn on/off the light with the light-switch, HA will register this and print it in the log book

If I go to the switch’s Manage Zigbee Device I can send the light-toggle from there and it works as expected. I do get an error: Failed to call service zha/issue_zigbee_cluster_command. Failed to issue cluster command with status: <Status.UNSUP_CLUSTER_COMMAND: 129> but the light works as expected and it’s being logged in the logbook.

It might be connected to this support request also as they are both made by HZC: https://github.com/zigpy/zha-device-handlers/issues/2865

Solution description

The light should turn on/off and stay that way after changing it in the UI.

Screenshots/Video

Screenshots/Video ![0aca44887b97b60822fc3394f292acf7fe01d8eb](https://github.com/zigpy/zha-device-handlers/assets/49758407/8685351e-5850-42c3-a906-6620b8c8e036)

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=4714, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, 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": "0x0104", "device_type": "0x0101", "input_clusters": [ "0x0000", "0x0003", "0x0004", "0x0005", "0x0006", "0x0008", "0x0b05", "0x1000" ], "output_clusters": [ "0x0019" ] }, "242": { "profile_id": "0xa1e0", "device_type": "0x0061", "input_clusters": [], "output_clusters": [ "0x0021" ] } }, "manufacturer": "Shyugj", "model": "Dimmer-Switch-ZB3.0", "class": "zigpy.device.Device" } ```

Diagnostic information

Diagnostic information ```json { "home_assistant": { "installation_type": "Home Assistant Container", "version": "2024.2.1", "dev": false, "hassio": false, "virtualenv": false, "python_version": "3.12.1", "docker": true, "arch": "x86_64", "timezone": "Europe/Stockholm", "os_name": "Linux", "os_version": "4.4.302+", "run_as_root": true }, "custom_components": {}, "integration_manifest": { "domain": "zha", "name": "Zigbee Home Automation", "after_dependencies": [ "onboarding", "usb" ], "codeowners": [ "@dmulcahey", "@adminiuga", "@puddly", "@TheJulianJES" ], "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", "universal_silabs_flasher" ], "requirements": [ "bellows==0.38.0", "pyserial==3.5", "pyserial-asyncio==0.6", "zha-quirks==0.0.111", "zigpy-deconz==0.23.0", "zigpy==0.62.3", "zigpy-xbee==0.20.1", "zigpy-zigate==0.12.0", "zigpy-znp==0.12.1", "universal-silabs-flasher==0.0.18", "pyserial-asyncio-fast==0.11" ], "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": "0403", "pid": "6015", "description": "*conbee*", "known_devices": [ "Conbee III" ] }, { "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": "_uzg-01._tcp.local.", "name": "uzg-01*" }, { "type": "_slzb-06._tcp.local.", "name": "slzb-06*" } ], "is_built_in": true }, "data": { "ieee": "**REDACTED**", "nwk": 41960, "manufacturer": "Shyugj", "model": "Dimmer-Switch-ZB3.0", "name": "Shyugj Dimmer-Switch-ZB3.0", "quirk_applied": false, "quirk_class": "zigpy.device.Device", "quirk_id": null, "manufacturer_code": 4714, "power_source": "Mains", "lqi": 184, "rssi": -54, "last_seen": "2024-02-17T14:12:38", "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=4714, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, 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": "0x0104", "device_type": "0x0101", "input_clusters": [ "0x0000", "0x0003", "0x0004", "0x0005", "0x0006", "0x0008", "0x0b05", "0x1000" ], "output_clusters": [ "0x0019" ] }, "242": { "profile_id": "0xa1e0", "device_type": "0x0061", "input_clusters": [], "output_clusters": [ "0x0021" ] } }, "manufacturer": "Shyugj", "model": "Dimmer-Switch-ZB3.0" }, "active_coordinator": false, "entities": [ { "entity_id": "button.dimmer_living_room_identify", "name": "Shyugj Dimmer-Switch-ZB3.0" }, { "entity_id": "number.dimmer_living_room_on_level", "name": "Shyugj Dimmer-Switch-ZB3.0" }, { "entity_id": "update.dimmer_living_room_firmware", "name": "Shyugj Dimmer-Switch-ZB3.0" }, { "entity_id": "light.dimmer_living_room_light", "name": "Shyugj Dimmer-Switch-ZB3.0" } ], "neighbors": [ { "device_type": "Coordinator", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x0000", "permit_joining": "Unknown", "depth": "0", "lqi": "141" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Parent", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0xB65B", "permit_joining": "Unknown", "depth": "15", "lqi": "134" } ], "routes": [ { "dest_nwk": "0x0000", "route_status": "Active", "memory_constrained": true, "many_to_one": true, "route_record_required": false, "next_hop": "0x0000" }, { "dest_nwk": "0xB65B", "route_status": "Active", "memory_constrained": false, "many_to_one": false, "route_record_required": false, "next_hop": "0xB65B" } ], "endpoint_names": [ { "name": "DIMMABLE_LIGHT" }, { "name": "PROXY_BASIC" } ], "user_given_name": "Dimmer Living Room", "device_reg_id": "8b8b877240f7eb690c0908d73cc48e0b", "area_id": "living_room", "cluster_details": { "1": { "device_type": { "name": "DIMMABLE_LIGHT", "id": 257 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": { "0x0004": { "attribute_name": "manufacturer", "value": "Shyugj" }, "0x0005": { "attribute_name": "model", "value": "Dimmer-Switch-ZB3.0" }, "0x4000": { "attribute_name": "sw_build_id", "value": "3.09" } }, "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": { "0xfffd": { "attribute_name": "cluster_revision", "value": 2 }, "0x0000": { "attribute_name": "on_off", "value": 0 } }, "unsupported_attributes": { "0xfffe": { "attribute_name": "reporting_status" }, "0x4001": { "attribute_name": "on_time" }, "0x4002": { "attribute_name": "off_wait_time" }, "0x4003": { "attribute_name": "start_up_on_off" }, "0x4000": { "attribute_name": "global_scene_control" } } }, "0x0008": { "endpoint_attribute": "level", "attributes": { "0x0000": { "attribute_name": "current_level", "value": 246 }, "0x0011": { "attribute_name": "on_level", "value": 184 } }, "unsupported_attributes": { "0x4000": { "attribute_name": "start_up_current_level" }, "0x0010": { "attribute_name": "on_off_transition_time" }, "0x0012": { "attribute_name": "on_transition_time" }, "0x0013": { "attribute_name": "off_transition_time" }, "0x0014": { "attribute_name": "default_move_rate" } } }, "0x0b05": { "endpoint_attribute": "diagnostic", "attributes": {}, "unsupported_attributes": {} }, "0x1000": { "endpoint_attribute": "lightlink", "attributes": {}, "unsupported_attributes": {} } }, "out_clusters": { "0x0019": { "endpoint_attribute": "ota", "attributes": {}, "unsupported_attributes": { "0x0002": { "attribute_name": "current_file_version" } } } } }, "242": { "device_type": { "name": "PROXY_BASIC", "id": 97 }, "profile_id": 41440, "in_clusters": {}, "out_clusters": { "0x0021": { "endpoint_attribute": "green_power", "attributes": {}, "unsupported_attributes": {} } } } } } } ```

Logs

Logs My switchis called `light.dimmer_living_room_light` ```python 2024-02-17 14:29:30.999 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'56b6b1a9112a15b658904124ab1593499c21c77fb6789874f5de3e83f47b1e22e9dea37e' 2024-02-17 14:29:31.000 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8610be7e' 2024-02-17 14:29:31.001 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame received incomingMessageHandler: [, EmberApsFrame(profileId=260, clusterId=2820, sourceEndpoint=1, destinationEndpoint=1, options=, groupId=0, sequence=111), 224, -44, 0xb65b, 255, 255, b'\x18]\n\x08\x05!\x85\x02'] 2024-02-17 14:29:31.001 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [, EmberApsFrame(profileId=260, clusterId=2820, sourceEndpoint=1, destinationEndpoint=1, options=, groupId=0, sequence=111), 224, -44, 0xb65b, 255, 255, b'\x18]\n\x08\x05!\x85\x02'] 2024-02-17 14:29:31.001 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(timestamp=datetime.datetime(2024, 2, 17, 13, 29, 31, 1544, tzinfo=datetime.timezone.utc), src=AddrModeAddress(addr_mode=, address=0xB65B), src_ep=1, dst=AddrModeAddress(addr_mode=, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=111, profile_id=260, cluster_id=2820, data=Serialized[b'\x18]\n\x08\x05!\x85\x02'], tx_options=, radius=0, non_member_radius=0, lqi=224, rssi=-44) 2024-02-17 14:29:31.002 DEBUG (MainThread) [zigpy.zcl] [0xB65B:1:0x0b04] Received ZCL frame: b'\x18]\n\x08\x05!\x85\x02' 2024-02-17 14:29:31.002 DEBUG (MainThread) [zigpy.zcl] [0xB65B:1:0x0b04] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl<0x18>(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=93, command_id=10, *direction=) 2024-02-17 14:29:31.002 DEBUG (MainThread) [zigpy.zcl] [0xB65B:1:0x0b04] Decoded ZCL frame: TuyaZBElectricalMeasurement:Report_Attributes(attribute_reports=[Attribute(attrid=0x0508, value=TypeValue(type=uint16_t, value=645))]) 2024-02-17 14:29:31.003 DEBUG (MainThread) [zigpy.zcl] [0xB65B:1:0x0b04] Received command 0x0A (TSN 93): Report_Attributes(attribute_reports=[Attribute(attrid=0x0508, value=TypeValue(type=uint16_t, value=645))]) 2024-02-17 14:29:31.003 DEBUG (MainThread) [zigpy.zcl] [0xB65B:1:0x0b04] Attribute report received: rms_current=645 2024-02-17 14:29:31.003 DEBUG (MainThread) [homeassistant.components.zha.core.cluster_handlers] [0xB65B:1:0x0b04]: cluster_handler[electrical_measurement] attribute_updated - cluster[Electrical Measurement] attr[rms_current] value[645] 2024-02-17 14:29:31.003 DEBUG (Thread-3) [aiosqlite] executing functools.partial(, 'UPDATE devices_v12\n SET last_seen=:ts\n WHERE ieee=:ieee AND :ts - last_seen > :min_update_delta', {'ts': 1708176571.001544, 'ieee': a4:c1:38:1c:52:fe:e4:1c, 'min_update_delta': 30.0}) 2024-02-17 14:29:31.004 DEBUG (Thread-3) [aiosqlite] operation functools.partial(, 'UPDATE devices_v12\n SET last_seen=:ts\n WHERE ieee=:ieee AND :ts - last_seen > :min_update_delta', {'ts': 1708176571.001544, 'ieee': a4:c1:38:1c:52:fe:e4:1c, 'min_update_delta': 30.0}) completed 2024-02-17 14:29:31.004 DEBUG (Thread-3) [aiosqlite] executing functools.partial() 2024-02-17 14:29:31.004 DEBUG (Thread-3) [aiosqlite] operation functools.partial() completed 2024-02-17 14:29:31.005 DEBUG (Thread-3) [aiosqlite] executing functools.partial(, '\n INSERT INTO attributes_cache_v12\n VALUES (:ieee, :endpoint_id, :cluster_id, :attrid, :value, :timestamp)\n ON CONFLICT (ieee, endpoint_id, cluster, attrid) DO UPDATE\n SET value=excluded.value, last_updated=excluded.last_updated\n WHERE\n value != excluded.value\n OR :timestamp - last_updated > :min_update_delta\n ', {'ieee': a4:c1:38:1c:52:fe:e4:1c, 'endpoint_id': 1, 'cluster_id': 2820, 'attrid': 1288, 'value': 645, 'timestamp': 1708176571.003347, 'min_update_delta': 30.0}) 2024-02-17 14:29:31.005 DEBUG (Thread-3) [aiosqlite] operation functools.partial(, '\n INSERT INTO attributes_cache_v12\n VALUES (:ieee, :endpoint_id, :cluster_id, :attrid, :value, :timestamp)\n ON CONFLICT (ieee, endpoint_id, cluster, attrid) DO UPDATE\n SET value=excluded.value, last_updated=excluded.last_updated\n WHERE\n value != excluded.value\n OR :timestamp - last_updated > :min_update_delta\n ', {'ieee': a4:c1:38:1c:52:fe:e4:1c, 'endpoint_id': 1, 'cluster_id': 2820, 'attrid': 1288, 'value': 645, 'timestamp': 1708176571.003347, 'min_update_delta': 30.0}) completed 2024-02-17 14:29:31.006 DEBUG (Thread-3) [aiosqlite] executing functools.partial() 2024-02-17 14:29:31.006 DEBUG (Thread-3) [aiosqlite] operation functools.partial() completed 2024-02-17 14:29:31.176 DEBUG (MainThread) [homeassistant.components.zha.entity] light.dimmer_living_room_light: setting transitioning flag to True 2024-02-17 14:29:31.176 DEBUG (MainThread) [zigpy.util] Tries remaining: 3 2024-02-17 14:29:31.177 DEBUG (MainThread) [zigpy.zcl] [0xA3E8:1:0x0006] Sending request header: ZCLHeader(frame_control=FrameControl<0x01>(frame_type=, is_manufacturer_specific=False, direction=, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=11, command_id=0, *direction=) 2024-02-17 14:29:31.177 DEBUG (MainThread) [zigpy.zcl] [0xA3E8:1:0x0006] Sending request: off() 2024-02-17 14:29:31.177 DEBUG (MainThread) [bellows.zigbee.application] Sending packet ZigbeePacket(timestamp=datetime.datetime(2024, 2, 17, 13, 29, 31, 177759, tzinfo=datetime.timezone.utc), src=AddrModeAddress(addr_mode=, address=0x0000), src_ep=1, dst=AddrModeAddress(addr_mode=, address=0xA3E8), dst_ep=1, source_route=None, extended_timeout=False, tsn=11, profile_id=260, cluster_id=6, data=Serialized[b'\x01\x0b\x00'], tx_options=, radius=0, non_member_radius=0, lqi=None, rssi=None) 2024-02-17 14:29:31.178 DEBUG (MainThread) [bellows.ezsp.protocol] Send command sendUnicast: (, 0xa3e8, EmberApsFrame(profileId=260, clusterId=6, sourceEndpoint=1, destinationEndpoint=1, options=, groupId=0, sequence=11), 55, b'\x01\x0b\x00') 2024-02-17 14:29:31.179 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'66b721a9602a155afa904b23aa5493099d4e27a0dacd6680fd777d3a7e' 2024-02-17 14:29:31.187 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'67b7a1a9602a157dfd577e' 2024-02-17 14:29:31.187 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'87009f7e' 2024-02-17 14:29:31.188 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame received sendUnicast: [, 207] 2024-02-17 14:29:31.216 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'77b7b1a9112a15b658924a24ab1593499c3f9362056d9874f8ce6882fcff68067e' 2024-02-17 14:29:31.217 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8070787e' 2024-02-17 14:29:31.217 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame received incomingMessageHandler: [, EmberApsFrame(profileId=260, clusterId=6, sourceEndpoint=1, destinationEndpoint=1, options=, groupId=0, sequence=113), 180, -55, 0xa3e8, 255, 255, b'\x08\x0b\x0b\x00\x81'] 2024-02-17 14:29:31.217 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [, EmberApsFrame(profileId=260, clusterId=6, sourceEndpoint=1, destinationEndpoint=1, options=, groupId=0, sequence=113), 180, -55, 0xa3e8, 255, 255, b'\x08\x0b\x0b\x00\x81'] 2024-02-17 14:29:31.218 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(timestamp=datetime.datetime(2024, 2, 17, 13, 29, 31, 218150, tzinfo=datetime.timezone.utc), src=AddrModeAddress(addr_mode=, address=0xA3E8), src_ep=1, dst=AddrModeAddress(addr_mode=, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=113, profile_id=260, cluster_id=6, data=Serialized[b'\x08\x0b\x0b\x00\x81'], tx_options=, radius=0, non_member_radius=0, lqi=180, rssi=-55) 2024-02-17 14:29:31.218 DEBUG (MainThread) [zigpy.zcl] [0xA3E8:1:0x0006] Received ZCL frame: b'\x08\x0b\x0b\x00\x81' 2024-02-17 14:29:31.219 DEBUG (MainThread) [zigpy.zcl] [0xA3E8:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl<0x08>(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=11, command_id=11, *direction=) 2024-02-17 14:29:31.219 DEBUG (MainThread) [zigpy.zcl] [0xA3E8:1:0x0006] Decoded ZCL frame: OnOff:Default_Response(command_id=0, status=) 2024-02-17 14:29:31.219 DEBUG (Thread-3) [aiosqlite] executing functools.partial(, 'UPDATE devices_v12\n SET last_seen=:ts\n WHERE ieee=:ieee AND :ts - last_seen > :min_update_delta', {'ts': 1708176571.21815, 'ieee': 94:de:b8:ff:fe:4c:a8:24, 'min_update_delta': 30.0}) 2024-02-17 14:29:31.220 DEBUG (Thread-3) [aiosqlite] operation functools.partial(, 'UPDATE devices_v12\n SET last_seen=:ts\n WHERE ieee=:ieee AND :ts - last_seen > :min_update_delta', {'ts': 1708176571.21815, 'ieee': 94:de:b8:ff:fe:4c:a8:24, 'min_update_delta': 30.0}) completed 2024-02-17 14:29:31.220 DEBUG (Thread-3) [aiosqlite] executing functools.partial() 2024-02-17 14:29:31.221 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'07b7b1a96b2a155afa904b23aa5493099d4e2764dace677b6e7e' 2024-02-17 14:29:31.221 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8160597e' 2024-02-17 14:29:31.221 DEBUG (Thread-3) [aiosqlite] operation functools.partial() completed 2024-02-17 14:29:31.222 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame received messageSentHandler: [, 41960, EmberApsFrame(profileId=260, clusterId=6, sourceEndpoint=1, destinationEndpoint=1, options=, groupId=0, sequence=207), 55, , b''] 2024-02-17 14:29:31.222 DEBUG (MainThread) [bellows.zigbee.application] Received messageSentHandler frame with [, 41960, EmberApsFrame(profileId=260, clusterId=6, sourceEndpoint=1, destinationEndpoint=1, options=, groupId=0, sequence=207), 55, , b''] 2024-02-17 14:29:31.222 DEBUG (MainThread) [homeassistant.components.zha.entity] light.dimmer_living_room_light: starting transitioning timer for 1.25 2024-02-17 14:29:31.222 DEBUG (MainThread) [homeassistant.components.zha.entity] light.dimmer_living_room_light: turned off: Default_Response(command_id=0, status=) 2024-02-17 14:29:31.395 DEBUG (MainThread) [homeassistant.components.zha.entity] sensor.switch_computer_summation_delivered: polling for updated state 2024-02-17 14:29:31.395 DEBUG (MainThread) [homeassistant.components.zha.core.cluster_handlers] [0xB65B:1:0x0702]: async_update 2024-02-17 14:29:31.395 DEBUG (MainThread) [homeassistant.components.zha.core.cluster_handlers] [0xB65B:1:0x0702]: Reading attributes in chunks: ['current_summ_delivered', 'status'] 2024-02-17 14:29:31.396 DEBUG (MainThread) [zigpy.zcl] [0xB65B:1:0x0702] Sending request header: ZCLHeader(frame_control=FrameControl<0x00>(frame_type=, is_manufacturer_specific=False, direction=, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=28, command_id=, *direction=) 2024-02-17 14:29:31.396 DEBUG (MainThread) [zigpy.zcl] [0xB65B:1:0x0702] Sending request: Read_Attributes(attribute_ids=[0, 512]) 2024-02-17 14:29:31.397 DEBUG (MainThread) [bellows.zigbee.application] Sending packet ZigbeePacket(timestamp=datetime.datetime(2024, 2, 17, 13, 29, 31, 397011, tzinfo=datetime.timezone.utc), src=AddrModeAddress(addr_mode=, address=0x0000), src_ep=1, dst=AddrModeAddress(addr_mode=, address=0xB65B), dst_ep=1, source_route=None, extended_timeout=False, tsn=28, profile_id=260, cluster_id=1794, data=Serialized[b'\x00\x1c\x00\x00\x00\x00\x02'], tx_options=, radius=0, non_member_radius=0, lqi=None, rssi=None) 2024-02-17 14:29:31.397 DEBUG (MainThread) [bellows.ezsp.protocol] Send command sendUnicast: (, 0xb65b, EmberApsFrame(profileId=260, clusterId=1794, sourceEndpoint=1, destinationEndpoint=1, options=, groupId=0, sequence=28), 56, b'\x00\x1c\x00\x00\x00\x00\x02') 2024-02-17 14:29:31.398 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'71b421a9602a15e9ef904b27ad5493099d4e27b7d5c96797fdc66389fe1e807e' 2024-02-17 14:29:31.407 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'10b4a1a9602a1562b11f7e' 2024-02-17 14:29:31.407 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'82503a7e' 2024-02-17 14:29:31.407 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame received sendUnicast: [, 208] 2024-02-17 14:29:31.430 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'20b4b1a96b2a15e9ef904b27ad5493099d4e277bd5ce67bf0d7e' 2024-02-17 14:29:31.430 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'83401b7e' 2024-02-17 14:29:31.431 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame received messageSentHandler: [, 46683, EmberApsFrame(profileId=260, clusterId=1794, sourceEndpoint=1, destinationEndpoint=1, options=, groupId=0, sequence=208), 56, , b''] 2024-02-17 14:29:31.431 DEBUG (MainThread) [bellows.zigbee.application] Received messageSentHandler frame with [, 46683, EmberApsFrame(profileId=260, clusterId=1794, sourceEndpoint=1, destinationEndpoint=1, options=, groupId=0, sequence=208), 56, , b''] 2024-02-17 14:29:31.438 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'30b4b1a9112a15b658964d24ab1593499c3efb78b6789874efde7f88fc7e3f823bf1de6f8fffc7d9d5ca6937477e' 2024-02-17 14:29:31.439 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8430fc7e' 2024-02-17 14:29:31.440 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame received incomingMessageHandler: [, EmberApsFrame(profileId=260, clusterId=1794, sourceEndpoint=1, destinationEndpoint=1, options=, groupId=0, sequence=112), 220, -45, 0xb65b, 255, 255, b'\x18\x1c\x01\x00\x00\x00%\xd0<\x00\x00\x00\x00\x00\x02\x00\x18\x00'] 2024-02-17 14:29:31.440 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [, EmberApsFrame(profileId=260, clusterId=1794, sourceEndpoint=1, destinationEndpoint=1, options=, groupId=0, sequence=112), 220, -45, 0xb65b, 255, 255, b'\x18\x1c\x01\x00\x00\x00%\xd0<\x00\x00\x00\x00\x00\x02\x00\x18\x00'] 2024-02-17 14:29:31.440 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(timestamp=datetime.datetime(2024, 2, 17, 13, 29, 31, 440426, tzinfo=datetime.timezone.utc), src=AddrModeAddress(addr_mode=, address=0xB65B), src_ep=1, dst=AddrModeAddress(addr_mode=, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=112, profile_id=260, cluster_id=1794, data=Serialized[b'\x18\x1c\x01\x00\x00\x00%\xd0<\x00\x00\x00\x00\x00\x02\x00\x18\x00'], tx_options=, radius=0, non_member_radius=0, lqi=220, rssi=-45) 2024-02-17 14:29:31.440 DEBUG (MainThread) [zigpy.zcl] [0xB65B:1:0x0702] Received ZCL frame: b'\x18\x1c\x01\x00\x00\x00%\xd0<\x00\x00\x00\x00\x00\x02\x00\x18\x00' 2024-02-17 14:29:31.441 DEBUG (MainThread) [zigpy.zcl] [0xB65B:1:0x0702] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl<0x18>(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=28, command_id=1, *direction=) 2024-02-17 14:29:31.441 DEBUG (MainThread) [zigpy.zcl] [0xB65B:1:0x0702] Decoded ZCL frame: TuyaZBMeteringCluster:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0000, status=, value=TypeValue(type=uint48_t, value=15568)), ReadAttributeRecord(attrid=0x0200, status=, value=TypeValue(type=bitmap8, value=))]) 2024-02-17 14:29:31.442 DEBUG (MainThread) [homeassistant.components.zha.core.cluster_handlers] [0xB65B:1:0x0702]: cluster_handler[smartenergy_metering] attribute_updated - cluster[TuyaZBMeteringCluster] attr[current_summ_delivered] value[15568] 2024-02-17 14:29:31.442 DEBUG (MainThread) [homeassistant.components.zha.core.cluster_handlers] [0xB65B:1:0x0702]: cluster_handler[smartenergy_metering] attribute_updated - cluster[TuyaZBMeteringCluster] attr[status] value[0] 2024-02-17 14:29:31.443 DEBUG (Thread-3) [aiosqlite] executing functools.partial(, 'UPDATE devices_v12\n SET last_seen=:ts\n WHERE ieee=:ieee AND :ts - last_seen > :min_update_delta', {'ts': 1708176571.440426, 'ieee': a4:c1:38:1c:52:fe:e4:1c, 'min_update_delta': 30.0}) 2024-02-17 14:29:31.443 DEBUG (Thread-3) [aiosqlite] operation functools.partial(, 'UPDATE devices_v12\n SET last_seen=:ts\n WHERE ieee=:ieee AND :ts - last_seen > :min_update_delta', {'ts': 1708176571.440426, 'ieee': a4:c1:38:1c:52:fe:e4:1c, 'min_update_delta': 30.0}) completed 2024-02-17 14:29:31.444 DEBUG (Thread-3) [aiosqlite] executing functools.partial() 2024-02-17 14:29:31.444 DEBUG (Thread-3) [aiosqlite] operation functools.partial() completed 2024-02-17 14:29:31.444 DEBUG (Thread-3) [aiosqlite] executing functools.partial(, '\n INSERT INTO attributes_cache_v12\n VALUES (:ieee, :endpoint_id, :cluster_id, :attrid, :value, :timestamp)\n ON CONFLICT (ieee, endpoint_id, cluster, attrid) DO UPDATE\n SET value=excluded.value, last_updated=excluded.last_updated\n WHERE\n value != excluded.value\n OR :timestamp - last_updated > :min_update_delta\n ', {'ieee': a4:c1:38:1c:52:fe:e4:1c, 'endpoint_id': 1, 'cluster_id': 1794, 'attrid': 0, 'value': 15568, 'timestamp': 1708176571.442268, 'min_update_delta': 30.0}) 2024-02-17 14:29:31.445 DEBUG (Thread-3) [aiosqlite] operation functools.partial(, '\n INSERT INTO attributes_cache_v12\n VALUES (:ieee, :endpoint_id, :cluster_id, :attrid, :value, :timestamp)\n ON CONFLICT (ieee, endpoint_id, cluster, attrid) DO UPDATE\n SET value=excluded.value, last_updated=excluded.last_updated\n WHERE\n value != excluded.value\n OR :timestamp - last_updated > :min_update_delta\n ', {'ieee': a4:c1:38:1c:52:fe:e4:1c, 'endpoint_id': 1, 'cluster_id': 1794, 'attrid': 0, 'value': 15568, 'timestamp': 1708176571.442268, 'min_update_delta': 30.0}) completed 2024-02-17 14:29:31.446 DEBUG (Thread-3) [aiosqlite] executing functools.partial() 2024-02-17 14:29:31.446 DEBUG (Thread-3) [aiosqlite] operation functools.partial() completed 2024-02-17 14:29:31.446 DEBUG (Thread-3) [aiosqlite] executing functools.partial(, '\n INSERT INTO attributes_cache_v12\n VALUES (:ieee, :endpoint_id, :cluster_id, :attrid, :value, :timestamp)\n ON CONFLICT (ieee, endpoint_id, cluster, attrid) DO UPDATE\n SET value=excluded.value, last_updated=excluded.last_updated\n WHERE\n value != excluded.value\n OR :timestamp - last_updated > :min_update_delta\n ', {'ieee': a4:c1:38:1c:52:fe:e4:1c, 'endpoint_id': 1, 'cluster_id': 1794, 'attrid': 512, 'value': , 'timestamp': 1708176571.442592, 'min_update_delta': 30.0}) 2024-02-17 14:29:31.447 DEBUG (Thread-3) [aiosqlite] operation functools.partial(, '\n INSERT INTO attributes_cache_v12\n VALUES (:ieee, :endpoint_id, :cluster_id, :attrid, :value, :timestamp)\n ON CONFLICT (ieee, endpoint_id, cluster, attrid) DO UPDATE\n SET value=excluded.value, last_updated=excluded.last_updated\n WHERE\n value != excluded.value\n OR :timestamp - last_updated > :min_update_delta\n ', {'ieee': a4:c1:38:1c:52:fe:e4:1c, 'endpoint_id': 1, 'cluster_id': 1794, 'attrid': 512, 'value': , 'timestamp': 1708176571.442592, 'min_update_delta': 30.0}) completed 2024-02-17 14:29:31.447 DEBUG (Thread-3) [aiosqlite] executing functools.partial() 2024-02-17 14:29:31.448 DEBUG (Thread-3) [aiosqlite] operation functools.partial() completed 2024-02-17 14:29:32.000 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'40b4b1a9112a15b658904124ab1593499c3fc37eb6789874f5de3d83f77b1669eb502e7e' 2024-02-17 14:29:32.000 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8520dd7e' 2024-02-17 14:29:32.001 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame received incomingMessageHandler: [, EmberApsFrame(profileId=260, clusterId=2820, sourceEndpoint=1, destinationEndpoint=1, options=, groupId=0, sequence=113), 228, -43, 0xb65b, 255, 255, b'\x18^\n\x0b\x05)\xce\x00'] 2024-02-17 14:29:32.001 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [, EmberApsFrame(profileId=260, clusterId=2820, sourceEndpoint=1, destinationEndpoint=1, options=, groupId=0, sequence=113), 228, -43, 0xb65b, 255, 255, b'\x18^\n\x0b\x05)\xce\x00'] 2024-02-17 14:29:32.001 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(timestamp=datetime.datetime(2024, 2, 17, 13, 29, 32, 1899, tzinfo=datetime.timezone.utc), src=AddrModeAddress(addr_mode=, address=0xB65B), src_ep=1, dst=AddrModeAddress(addr_mode=, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=113, profile_id=260, cluster_id=2820, data=Serialized[b'\x18^\n\x0b\x05)\xce\x00'], tx_options=, radius=0, non_member_radius=0, lqi=228, rssi=-43) 2024-02-17 14:29:32.002 DEBUG (MainThread) [zigpy.zcl] [0xB65B:1:0x0b04] Received ZCL frame: b'\x18^\n\x0b\x05)\xce\x00' 2024-02-17 14:29:32.002 DEBUG (MainThread) [zigpy.zcl] [0xB65B:1:0x0b04] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl<0x18>(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=94, command_id=10, *direction=) 2024-02-17 14:29:32.003 DEBUG (MainThread) [zigpy.zcl] [0xB65B:1:0x0b04] Decoded ZCL frame: TuyaZBElectricalMeasurement:Report_Attributes(attribute_reports=[Attribute(attrid=0x050B, value=TypeValue(type=int16s, value=206))]) 2024-02-17 14:29:32.003 DEBUG (MainThread) [zigpy.zcl] [0xB65B:1:0x0b04] Received command 0x0A (TSN 94): Report_Attributes(attribute_reports=[Attribute(attrid=0x050B, value=TypeValue(type=int16s, value=206))]) 2024-02-17 14:29:32.003 DEBUG (MainThread) [zigpy.zcl] [0xB65B:1:0x0b04] Attribute report received: active_power=206 2024-02-17 14:29:32.003 DEBUG (MainThread) [homeassistant.components.zha.core.cluster_handlers] [0xB65B:1:0x0b04]: cluster_handler[electrical_measurement] attribute_updated - cluster[Electrical Measurement] attr[active_power] value[206] 2024-02-17 14:29:32.004 DEBUG (Thread-3) [aiosqlite] executing functools.partial(, 'UPDATE devices_v12\n SET last_seen=:ts\n WHERE ieee=:ieee AND :ts - last_seen > :min_update_delta', {'ts': 1708176572.001899, 'ieee': a4:c1:38:1c:52:fe:e4:1c, 'min_update_delta': 30.0}) 2024-02-17 14:29:32.005 DEBUG (Thread-3) [aiosqlite] operation functools.partial(, 'UPDATE devices_v12\n SET last_seen=:ts\n WHERE ieee=:ieee AND :ts - last_seen > :min_update_delta', {'ts': 1708176572.001899, 'ieee': a4:c1:38:1c:52:fe:e4:1c, 'min_update_delta': 30.0}) completed 2024-02-17 14:29:32.007 DEBUG (Thread-3) [aiosqlite] executing functools.partial() 2024-02-17 14:29:32.008 DEBUG (Thread-3) [aiosqlite] operation functools.partial() completed 2024-02-17 14:29:32.008 DEBUG (Thread-3) [aiosqlite] executing functools.partial(, '\n INSERT INTO attributes_cache_v12\n VALUES (:ieee, :endpoint_id, :cluster_id, :attrid, :value, :timestamp)\n ON CONFLICT (ieee, endpoint_id, cluster, attrid) DO UPDATE\n SET value=excluded.value, last_updated=excluded.last_updated\n WHERE\n value != excluded.value\n OR :timestamp - last_updated > :min_update_delta\n ', {'ieee': a4:c1:38:1c:52:fe:e4:1c, 'endpoint_id': 1, 'cluster_id': 2820, 'attrid': 1291, 'value': 206, 'timestamp': 1708176572.003691, 'min_update_delta': 30.0}) 2024-02-17 14:29:32.008 DEBUG (Thread-3) [aiosqlite] operation functools.partial(, '\n INSERT INTO attributes_cache_v12\n VALUES (:ieee, :endpoint_id, :cluster_id, :attrid, :value, :timestamp)\n ON CONFLICT (ieee, endpoint_id, cluster, attrid) DO UPDATE\n SET value=excluded.value, last_updated=excluded.last_updated\n WHERE\n value != excluded.value\n OR :timestamp - last_updated > :min_update_delta\n ', {'ieee': a4:c1:38:1c:52:fe:e4:1c, 'endpoint_id': 1, 'cluster_id': 2820, 'attrid': 1291, 'value': 206, 'timestamp': 1708176572.003691, 'min_update_delta': 30.0}) completed 2024-02-17 14:29:32.009 DEBUG (Thread-3) [aiosqlite] executing functools.partial() 2024-02-17 14:29:32.009 DEBUG (Thread-3) [aiosqlite] operation functools.partial() completed 2024-02-17 14:29:32.474 DEBUG (MainThread) [homeassistant.components.zha.entity] light.dimmer_living_room_light: transition complete - future attribute reports will write HA state 2024-02-17 14:29:34.385 DEBUG (MainThread) [homeassistant.components.zha.entity] sensor.switch_computer_power: polling for updated state 2024-02-17 14:29:34.385 DEBUG (MainThread) [homeassistant.components.zha.core.cluster_handlers] [0xB65B:1:0x0b04]: async_update 2024-02-17 14:29:34.385 DEBUG (MainThread) [homeassistant.components.zha.core.cluster_handlers] [0xB65B:1:0x0b04]: Reading attributes in chunks: ['active_power', 'rms_current', 'rms_voltage'] 2024-02-17 14:29:34.386 DEBUG (MainThread) [zigpy.zcl] [0xB65B:1:0x0b04] Sending request header: ZCLHeader(frame_control=FrameControl<0x00>(frame_type=, is_manufacturer_specific=False, direction=, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=29, command_id=, *direction=) 2024-02-17 14:29:34.386 DEBUG (MainThread) [zigpy.zcl] [0xB65B:1:0x0b04] Sending request: Read_Attributes(attribute_ids=[1291, 1288, 1285]) 2024-02-17 14:29:34.387 DEBUG (MainThread) [bellows.zigbee.application] Sending packet ZigbeePacket(timestamp=datetime.datetime(2024, 2, 17, 13, 29, 34, 387038, tzinfo=datetime.timezone.utc), src=AddrModeAddress(addr_mode=, address=0x0000), src_ep=1, dst=AddrModeAddress(addr_mode=, address=0xB65B), dst_ep=1, source_route=None, extended_timeout=False, tsn=29, profile_id=260, cluster_id=2820, data=Serialized[b'\x00\x1d\x00\x0b\x05\x08\x05\x05\x05'], tx_options=, radius=0, non_member_radius=0, lqi=None, rssi=None) 2024-02-17 14:29:34.387 DEBUG (MainThread) [bellows.ezsp.protocol] Send command sendUnicast: (, 0xb65b, EmberApsFrame(profileId=260, clusterId=2820, sourceEndpoint=1, destinationEndpoint=1, options=, groupId=0, sequence=29), 57, b'\x00\x1d\x00\x0b\x05\x08\x05\x05\x05') 2024-02-17 14:29:34.388 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'05b521a9602a15e9ef904b21a15493099d4e27b6d4c76796fdcd6681f97b3af9687e' 2024-02-17 14:29:34.397 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'51b5a1a9602a1563a85c7e' 2024-02-17 14:29:34.397 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8610be7e' 2024-02-17 14:29:34.398 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame received sendUnicast: [, 209] 2024-02-17 14:29:34.422 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'61b5b1a96b2a15e9ef904b21a15493099d4e277ad4ce67cf757e' 2024-02-17 14:29:34.422 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'87009f7e' 2024-02-17 14:29:34.423 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame received messageSentHandler: [, 46683, EmberApsFrame(profileId=260, clusterId=2820, sourceEndpoint=1, destinationEndpoint=1, options=, groupId=0, sequence=209), 57, , b''] 2024-02-17 14:29:34.423 DEBUG (MainThread) [bellows.zigbee.application] Received messageSentHandler frame with [, 46683, EmberApsFrame(profileId=260, clusterId=2820, sourceEndpoint=1, destinationEndpoint=1, options=, groupId=0, sequence=209), 57, , b''] 2024-02-17 14:29:34.431 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'71b5b1a9112a15b658904124ab1593499c3cc37eb6789874e8de7e88f77b3f8e26cdd66a8fde6ad8d0d769ada323230b7e' 2024-02-17 14:29:34.431 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8070787e' 2024-02-17 14:29:34.432 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame received incomingMessageHandler: [, EmberApsFrame(profileId=260, clusterId=2820, sourceEndpoint=1, destinationEndpoint=1, options=, groupId=0, sequence=114), 228, -43, 0xb65b, 255, 255, b'\x18\x1d\x01\x0b\x05\x00)\xcd\x00\x08\x05\x00!\xad\x03\x05\x05\x00!\xe5\x00'] 2024-02-17 14:29:34.432 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [, EmberApsFrame(profileId=260, clusterId=2820, sourceEndpoint=1, destinationEndpoint=1, options=, groupId=0, sequence=114), 228, -43, 0xb65b, 255, 255, b'\x18\x1d\x01\x0b\x05\x00)\xcd\x00\x08\x05\x00!\xad\x03\x05\x05\x00!\xe5\x00'] 2024-02-17 14:29:34.432 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(timestamp=datetime.datetime(2024, 2, 17, 13, 29, 34, 432764, tzinfo=datetime.timezone.utc), src=AddrModeAddress(addr_mode=, address=0xB65B), src_ep=1, dst=AddrModeAddress(addr_mode=, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=114, profile_id=260, cluster_id=2820, data=Serialized[b'\x18\x1d\x01\x0b\x05\x00)\xcd\x00\x08\x05\x00!\xad\x03\x05\x05\x00!\xe5\x00'], tx_options=, radius=0, non_member_radius=0, lqi=228, rssi=-43) 2024-02-17 14:29:34.433 DEBUG (MainThread) [zigpy.zcl] [0xB65B:1:0x0b04] Received ZCL frame: b'\x18\x1d\x01\x0b\x05\x00)\xcd\x00\x08\x05\x00!\xad\x03\x05\x05\x00!\xe5\x00' 2024-02-17 14:29:34.433 DEBUG (MainThread) [zigpy.zcl] [0xB65B:1:0x0b04] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl<0x18>(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=29, command_id=1, *direction=) 2024-02-17 14:29:34.434 DEBUG (MainThread) [zigpy.zcl] [0xB65B:1:0x0b04] Decoded ZCL frame: TuyaZBElectricalMeasurement:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x050B, status=, value=TypeValue(type=int16s, value=205)), ReadAttributeRecord(attrid=0x0508, status=, value=TypeValue(type=uint16_t, value=941)), ReadAttributeRecord(attrid=0x0505, status=, value=TypeValue(type=uint16_t, value=229))]) 2024-02-17 14:29:34.435 DEBUG (MainThread) [homeassistant.components.zha.core.cluster_handlers] [0xB65B:1:0x0b04]: cluster_handler[electrical_measurement] attribute_updated - cluster[Electrical Measurement] attr[active_power] value[205] 2024-02-17 14:29:34.435 DEBUG (MainThread) [homeassistant.components.zha.core.cluster_handlers] [0xB65B:1:0x0b04]: cluster_handler[electrical_measurement] attribute_updated - cluster[Electrical Measurement] attr[rms_current] value[941] 2024-02-17 14:29:34.436 DEBUG (MainThread) [homeassistant.components.zha.core.cluster_handlers] [0xB65B:1:0x0b04]: cluster_handler[electrical_measurement] attribute_updated - cluster[Electrical Measurement] attr[rms_voltage] value[229] 2024-02-17 14:29:34.437 DEBUG (Thread-3) [aiosqlite] executing functools.partial(, 'UPDATE devices_v12\n SET last_seen=:ts\n WHERE ieee=:ieee AND :ts - last_seen > :min_update_delta', {'ts': 1708176574.432764, 'ieee': a4:c1:38:1c:52:fe:e4:1c, 'min_update_delta': 30.0}) 2024-02-17 14:29:34.438 DEBUG (Thread-3) [aiosqlite] operation functools.partial(, 'UPDATE devices_v12\n SET last_seen=:ts\n WHERE ieee=:ieee AND :ts - last_seen > :min_update_delta', {'ts': 1708176574.432764, 'ieee': a4:c1:38:1c:52:fe:e4:1c, 'min_update_delta': 30.0}) completed 2024-02-17 14:29:34.439 DEBUG (Thread-3) [aiosqlite] executing functools.partial() 2024-02-17 14:29:34.439 DEBUG (Thread-3) [aiosqlite] operation functools.partial() completed 2024-02-17 14:29:34.439 DEBUG (Thread-3) [aiosqlite] executing functools.partial(, '\n INSERT INTO attributes_cache_v12\n VALUES (:ieee, :endpoint_id, :cluster_id, :attrid, :value, :timestamp)\n ON CONFLICT (ieee, endpoint_id, cluster, attrid) DO UPDATE\n SET value=excluded.value, last_updated=excluded.last_updated\n WHERE\n value != excluded.value\n OR :timestamp - last_updated > :min_update_delta\n ', {'ieee': a4:c1:38:1c:52:fe:e4:1c, 'endpoint_id': 1, 'cluster_id': 2820, 'attrid': 1291, 'value': 205, 'timestamp': 1708176574.435183, 'min_update_delta': 30.0}) 2024-02-17 14:29:34.440 DEBUG (Thread-3) [aiosqlite] operation functools.partial(, '\n INSERT INTO attributes_cache_v12\n VALUES (:ieee, :endpoint_id, :cluster_id, :attrid, :value, :timestamp)\n ON CONFLICT (ieee, endpoint_id, cluster, attrid) DO UPDATE\n SET value=excluded.value, last_updated=excluded.last_updated\n WHERE\n value != excluded.value\n OR :timestamp - last_updated > :min_update_delta\n ', {'ieee': a4:c1:38:1c:52:fe:e4:1c, 'endpoint_id': 1, 'cluster_id': 2820, 'attrid': 1291, 'value': 205, 'timestamp': 1708176574.435183, 'min_update_delta': 30.0}) completed 2024-02-17 14:29:34.440 DEBUG (Thread-3) [aiosqlite] executing functools.partial() 2024-02-17 14:29:34.441 DEBUG (Thread-3) [aiosqlite] operation functools.partial() completed 2024-02-17 14:29:34.442 DEBUG (Thread-3) [aiosqlite] executing functools.partial(, '\n INSERT INTO attributes_cache_v12\n VALUES (:ieee, :endpoint_id, :cluster_id, :attrid, :value, :timestamp)\n ON CONFLICT (ieee, endpoint_id, cluster, attrid) DO UPDATE\n SET value=excluded.value, last_updated=excluded.last_updated\n WHERE\n value != excluded.value\n OR :timestamp - last_updated > :min_update_delta\n ', {'ieee': a4:c1:38:1c:52:fe:e4:1c, 'endpoint_id': 1, 'cluster_id': 2820, 'attrid': 1288, 'value': 941, 'timestamp': 1708176574.435911, 'min_update_delta': 30.0}) 2024-02-17 14:29:34.443 DEBUG (Thread-3) [aiosqlite] operation functools.partial(, '\n INSERT INTO attributes_cache_v12\n VALUES (:ieee, :endpoint_id, :cluster_id, :attrid, :value, :timestamp)\n ON CONFLICT (ieee, endpoint_id, cluster, attrid) DO UPDATE\n SET value=excluded.value, last_updated=excluded.last_updated\n WHERE\n value != excluded.value\n OR :timestamp - last_updated > :min_update_delta\n ', {'ieee': a4:c1:38:1c:52:fe:e4:1c, 'endpoint_id': 1, 'cluster_id': 2820, 'attrid': 1288, 'value': 941, 'timestamp': 1708176574.435911, 'min_update_delta': 30.0}) completed 2024-02-17 14:29:34.443 DEBUG (Thread-3) [aiosqlite] executing functools.partial() 2024-02-17 14:29:34.443 DEBUG (Thread-3) [aiosqlite] operation functools.partial() completed 2024-02-17 14:29:34.444 DEBUG (Thread-3) [aiosqlite] executing functools.partial(, '\n INSERT INTO attributes_cache_v12\n VALUES (:ieee, :endpoint_id, :cluster_id, :attrid, :value, :timestamp)\n ON CONFLICT (ieee, endpoint_id, cluster, attrid) DO UPDATE\n SET value=excluded.value, last_updated=excluded.last_updated\n WHERE\n value != excluded.value\n OR :timestamp - last_updated > :min_update_delta\n ', {'ieee': a4:c1:38:1c:52:fe:e4:1c, 'endpoint_id': 1, 'cluster_id': 2820, 'attrid': 1285, 'value': 229, 'timestamp': 1708176574.436346, 'min_update_delta': 30.0}) 2024-02-17 14:29:34.444 DEBUG (Thread-3) [aiosqlite] operation functools.partial(, '\n INSERT INTO attributes_cache_v12\n VALUES (:ieee, :endpoint_id, :cluster_id, :attrid, :value, :timestamp)\n ON CONFLICT (ieee, endpoint_id, cluster, attrid) DO UPDATE\n SET value=excluded.value, last_updated=excluded.last_updated\n WHERE\n value != excluded.value\n OR :timestamp - last_updated > :min_update_delta\n ', {'ieee': a4:c1:38:1c:52:fe:e4:1c, 'endpoint_id': 1, 'cluster_id': 2820, 'attrid': 1285, 'value': 229, 'timestamp': 1708176574.436346, 'min_update_delta': 30.0}) completed 2024-02-17 14:29:34.446 DEBUG (Thread-3) [aiosqlite] executing functools.partial() 2024-02-17 14:29:34.447 DEBUG (Thread-3) [aiosqlite] operation functools.partial() completed ```

Custom quirk

Custom quirk ```python from zigpy.profiles import zha, zgp from zigpy.quirks import CustomDevice, CustomCluster from zigpy.zcl.clusters.general import ( Basic, GreenPowerProxy, Groups, Identify, LevelControl, OnOff, Ota, Scenes, ) from zigpy.zcl.clusters.homeautomation import Diagnostic from zigpy.zcl.clusters.lightlink import LightLink from zhaquirks import NoReplyMixin from zhaquirks.const import ( DEVICE_TYPE, ENDPOINTS, INPUT_CLUSTERS, MODEL, MANUFACTURER, OUTPUT_CLUSTERS, PROFILE_ID, ) class HzcOnOff(NoReplyMixin, CustomCluster, OnOff): """HZC On Off Cluster.""" void_input_commands = {cmd.id for cmd in OnOff.commands_by_name.values()} class HZCRotaryDimmer(CustomDevice): """Dimmer-Switch-ZB3.0 by Shyugj""" signature = { MANUFACTURER: "Shyugj", MODEL: "Dimmer-Switch-ZB3.0", ENDPOINTS: { # 1: { PROFILE_ID: zha.PROFILE_ID, DEVICE_TYPE: zha.DeviceType.DIMMABLE_LIGHT, INPUT_CLUSTERS: [ Basic.cluster_id, Identify.cluster_id, Groups.cluster_id, Scenes.cluster_id, OnOff.cluster_id, LevelControl.cluster_id, Diagnostic.cluster_id, LightLink.cluster_id, ], OUTPUT_CLUSTERS: [Ota.cluster_id], }, 242: { #

Additional information

No response

EmberLightVFX commented 7 months ago

Made a custom quirk that seems to fix my problem. I simply ignore the response commands from the OnOff cluster (I think). The identification still doesn't work and I couldn't get that working. I also don't know how to correctly do a PR out of this but it's at least something.

github-actions[bot] commented 1 month 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.

jagheterfredrik commented 1 month ago

@EmberLightVFX would you mind sharing?

EmberLightVFX commented 1 month ago

@jagheterfredrik You'll find the custom quirk under the Custom quirk dropdown in the first post

jagheterfredrik commented 1 month ago

Ah cheers @EmberLightVFX, I'll make a PR