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.
My HA instance is totally new as I tried to fix this with a clean install.
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.
This is how it looks like:
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.
This is giving me problems where I can’t automate stuff as HA will think the light is on when it’s off etc…
I tried to capture debug logging with my single press from the video about and this is what I got (the switch is called light.dimmer_living_room_light
):
2024-02-07 00:16:24.149 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x46B2](RWL022): Device seen - marking the device available and resetting counter
2024-02-07 00:16:24.150 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x46B2](RWL022): Update device availability - device available: True - new availability: True - changed: False
2024-02-07 00:16:24.351 DEBUG (MainThread) [homeassistant.components.zha.entity] light.dimmer_living_room_light: setting transitioning flag to True
2024-02-07 00:16:24.351 DEBUG (MainThread) [zigpy.util] Tries remaining: 3
2024-02-07 00:16:24.351 DEBUG (MainThread) [zigpy.zcl] [0xA3E8:1:0x0006] Sending request header: ZCLHeader(frame_control=FrameControl<0x01>(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=False, direction=<Direction.Server_to_Client: 0>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=15, command_id=0, *direction=<Direction.Server_to_Client: 0>)
2024-02-07 00:16:24.352 DEBUG (MainThread) [zigpy.zcl] [0xA3E8:1:0x0006] Sending request: off()
2024-02-07 00:16:24.352 DEBUG (MainThread) [bellows.zigbee.application] Sending packet ZigbeePacket(timestamp=datetime.datetime(2024, 2, 6, 23, 16, 24, 352540, tzinfo=datetime.timezone.utc), src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xA3E8), dst_ep=1, source_route=None, extended_timeout=False, tsn=15, profile_id=260, cluster_id=6, data=Serialized[b'\x01\x0f\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=None, rssi=None)
2024-02-07 00:16:24.352 DEBUG (MainThread) [bellows.ezsp.protocol] Send command sendUnicast: (<EmberOutgoingMessageType.OUTGOING_DIRECT: 0>, 0xa3e8, EmberApsFrame(profileId=260, clusterId=6, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_RETRY|APS_OPTION_ENABLE_ROUTE_DISCOVERY: 320>, groupId=0, sequence=15), 79, b'\x01\x0f\x00')
2024-02-07 00:16:24.353 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'337021a9602a155afa904b23aa5493099d4e27a4a2cd6684fd23fb7e'
2024-02-07 00:16:24.362 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'3470a1a9602a152dcbe27e'
2024-02-07 00:16:24.362 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8430fc7e'
2024-02-07 00:16:24.362 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame received sendUnicast: [<EmberStatus.SUCCESS: 0>, 159]
2024-02-07 00:16:24.386 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'4470b1a90d2afd117d3c06db55ed4cdd088f2701d27e'
2024-02-07 00:16:24.386 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8520dd7e'
2024-02-07 00:16:24.387 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame received incomingRouteRecordHandler: [0xa3e8, 94:de:b8:ff:fe:4c:a8:24, 148, -63, []]
2024-02-07 00:16:24.387 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0xa3e8, 94:de:b8:ff:fe:4c:a8:24, 148, -63, []]
2024-02-07 00:16:24.387 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0xa3e8, 94:de:b8:ff:fe:4c:a8:24, 148, -63, [])
2024-02-07 00:16:24.387 DEBUG (Thread-3) [aiosqlite] executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7f1b1e18e890>, 'INSERT INTO relays_v12 VALUES (:ieee, :relays)\n ON CONFLICT (ieee)\n DO UPDATE SET relays=excluded.relays WHERE relays != :relays', {'ieee': 94:de:b8:ff:fe:4c:a8:24, 'relays': b'\x00'})
2024-02-07 00:16:24.388 DEBUG (Thread-3) [aiosqlite] operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7f1b1e18e890>, 'INSERT INTO relays_v12 VALUES (:ieee, :relays)\n ON CONFLICT (ieee)\n DO UPDATE SET relays=excluded.relays WHERE relays != :relays', {'ieee': 94:de:b8:ff:fe:4c:a8:24, 'relays': b'\x00'}) completed
2024-02-07 00:16:24.389 DEBUG (Thread-3) [aiosqlite] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x7f1b1e18e890>)
2024-02-07 00:16:24.389 DEBUG (Thread-3) [aiosqlite] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x7f1b1e18e890>) completed
2024-02-07 00:16:24.393 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'5470b1a90d2afd117d3c06db55ed4cdd088f27318f7e'
2024-02-07 00:16:24.393 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8610be7e'
2024-02-07 00:16:24.394 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame received incomingRouteRecordHandler: [0xa3e8, 94:de:b8:ff:fe:4c:a8:24, 148, -63, []]
2024-02-07 00:16:24.394 DEBUG (MainThread) [bellows.zigbee.application] Received incomingRouteRecordHandler frame with [0xa3e8, 94:de:b8:ff:fe:4c:a8:24, 148, -63, []]
2024-02-07 00:16:24.394 DEBUG (MainThread) [bellows.zigbee.application] Processing route record request: (0xa3e8, 94:de:b8:ff:fe:4c:a8:24, 148, -63, [])
2024-02-07 00:16:24.394 DEBUG (Thread-3) [aiosqlite] executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7f1b1e18e890>, 'INSERT INTO relays_v12 VALUES (:ieee, :relays)\n ON CONFLICT (ieee)\n DO UPDATE SET relays=excluded.relays WHERE relays != :relays', {'ieee': 94:de:b8:ff:fe:4c:a8:24, 'relays': b'\x00'})
2024-02-07 00:16:24.394 DEBUG (Thread-3) [aiosqlite] operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7f1b1e18e890>, 'INSERT INTO relays_v12 VALUES (:ieee, :relays)\n ON CONFLICT (ieee)\n DO UPDATE SET relays=excluded.relays WHERE relays != :relays', {'ieee': 94:de:b8:ff:fe:4c:a8:24, 'relays': b'\x00'}) completed
2024-02-07 00:16:24.395 DEBUG (Thread-3) [aiosqlite] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x7f1b1e18e890>)
2024-02-07 00:16:24.395 DEBUG (Thread-3) [aiosqlite] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x7f1b1e18e890>) completed
2024-02-07 00:16:24.435 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'6470b1a9112a15b658924a24ab1593499cfcbb68056d9874f8ce6c82fcff3d395d7e'
2024-02-07 00:16:24.435 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'87009f7e'
2024-02-07 00:16:24.436 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame received incomingMessageHandler: [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=6, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_RETRY|APS_OPTION_ENABLE_ROUTE_DISCOVERY: 320>, groupId=0, sequence=178), 156, -61, 0xa3e8, 255, 255, b'\x08\x0f\x0b\x00\x81']
2024-02-07 00:16:24.436 DEBUG (MainThread) [bellows.ezsp.protocol] Frame contains trailing data: b'\x02'
2024-02-07 00:16:24.436 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=6, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_RETRY|APS_OPTION_ENABLE_ROUTE_DISCOVERY: 320>, groupId=0, sequence=178), 156, -61, 0xa3e8, 255, 255, b'\x08\x0f\x0b\x00\x81']
2024-02-07 00:16:24.436 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(timestamp=datetime.datetime(2024, 2, 6, 23, 16, 24, 436687, tzinfo=datetime.timezone.utc), src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xA3E8), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=178, profile_id=260, cluster_id=6, data=Serialized[b'\x08\x0f\x0b\x00\x81'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=156, rssi=-61)
2024-02-07 00:16:24.437 DEBUG (MainThread) [zigpy.zcl] [0xA3E8:1:0x0006] Received ZCL frame: b'\x08\x0f\x0b\x00\x81'
2024-02-07 00:16:24.437 DEBUG (MainThread) [zigpy.zcl] [0xA3E8:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl<0x08>(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=15, command_id=11, *direction=<Direction.Client_to_Server: 1>)
2024-02-07 00:16:24.437 DEBUG (MainThread) [zigpy.zcl] [0xA3E8:1:0x0006] Decoded ZCL frame: OnOff:Default_Response(command_id=0, status=<Status.UNSUP_CLUSTER_COMMAND: 129>)
2024-02-07 00:16:24.438 DEBUG (Thread-3) [aiosqlite] executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7f1b1e18e890>, 'UPDATE devices_v12\n SET last_seen=:ts\n WHERE ieee=:ieee AND :ts - last_seen > :min_update_delta', {'ts': 1707261384.436687, 'ieee': 94:de:b8:ff:fe:4c:a8:24, 'min_update_delta': 30.0})
2024-02-07 00:16:24.438 DEBUG (Thread-3) [aiosqlite] operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7f1b1e18e890>, 'UPDATE devices_v12\n SET last_seen=:ts\n WHERE ieee=:ieee AND :ts - last_seen > :min_update_delta', {'ts': 1707261384.436687, 'ieee': 94:de:b8:ff:fe:4c:a8:24, 'min_update_delta': 30.0}) completed
2024-02-07 00:16:24.439 DEBUG (Thread-3) [aiosqlite] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x7f1b1e18e890>)
2024-02-07 00:16:24.439 DEBUG (Thread-3) [aiosqlite] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x7f1b1e18e890>) completed
2024-02-07 00:16:24.440 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'7470b1a96b2a155afa904b23aa5493099d4e2734a2ce673f457e'
2024-02-07 00:16:24.440 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8070787e'
2024-02-07 00:16:24.441 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame received messageSentHandler: [<EmberOutgoingMessageType.OUTGOING_DIRECT: 0>, 41960, EmberApsFrame(profileId=260, clusterId=6, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_RETRY|APS_OPTION_ENABLE_ROUTE_DISCOVERY: 320>, groupId=0, sequence=159), 79, <EmberStatus.SUCCESS: 0>, b'']
2024-02-07 00:16:24.441 DEBUG (MainThread) [bellows.zigbee.application] Received messageSentHandler frame with [<EmberOutgoingMessageType.OUTGOING_DIRECT: 0>, 41960, EmberApsFrame(profileId=260, clusterId=6, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_RETRY|APS_OPTION_ENABLE_ROUTE_DISCOVERY: 320>, groupId=0, sequence=159), 79, <EmberStatus.SUCCESS: 0>, b'']
2024-02-07 00:16:24.442 DEBUG (MainThread) [homeassistant.components.zha.entity] light.dimmer_living_room_light: starting transitioning timer for 1.25
2024-02-07 00:16:24.442 DEBUG (MainThread) [homeassistant.components.zha.entity] light.dimmer_living_room_light: turned off: Default_Response(command_id=0, status=<Status.UNSUP_CLUSTER_COMMAND: 129>)
2024-02-07 00:16:25.693 DEBUG (MainThread) [homeassistant.components.zha.entity] light.dimmer_living_room_light: transition complete - future attribute reports will write HA state
2024-02-07 00:16:26.079 DEBUG (MainThread) [zigpy.application] Feeding watchdog
2024-02-07 00:16:26.079 DEBUG (MainThread) [bellows.ezsp.protocol] Send command readCounters: ()
2024-02-07 00:16:26.080 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'407121a9a52ad6837e'
2024-02-07 00:16:26.096 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'0571a1a9a52a40b26e948d25215594499c4e25abefce358bb0c66389fc7e3da7e9cdde6f8fffc7dbd5d2698c4623a9ec763ba5ea758241984c2613b1e070381c0e07bbe5ca6588459a4d9e4f9ff7c3d9d46a35a2519048247c337e'
2024-02-07 00:16:26.096 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8160597e'
2024-02-07 00:16:26.097 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame received readCounters: [[85, 55, 199, 139, 6, 0, 2, 2, 82, 77, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0]]
2024-02-07 00:16:26.097 DEBUG (MainThread) [bellows.ezsp.protocol] Send command getValue: (<EzspValueId.VALUE_FREE_BUFFERS: 3>,)
2024-02-07 00:16:26.098 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'517621a9fe2a16b3287e'
2024-02-07 00:16:26.103 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'1676a1a9fe2a15b3a55cfe7e'
2024-02-07 00:16:26.104 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'82503a7e'
2024-02-07 00:16:26.104 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame received getValue: [<EzspStatus.SUCCESS: 0>, b'\xfc']
2024-02-07 00:16:26.104 DEBUG (MainThread) [bellows.zigbee.application] Free buffers status EzspStatus.SUCCESS, value: 252
2024-02-07 00:16:26.104 DEBUG (MainThread) [bellows.zigbee.application] ezsp_counters: [MAC_RX_BROADCAST = 85, MAC_TX_BROADCAST = 55, MAC_RX_UNICAST = 199, MAC_TX_UNICAST_SUCCESS = 139, MAC_TX_UNICAST_RETRY = 6, MAC_TX_UNICAST_FAILED = 0, APS_DATA_RX_BROADCAST = 2, APS_DATA_TX_BROADCAST = 2, APS_DATA_RX_UNICAST = 82, APS_DATA_TX_UNICAST_SUCCESS = 77, APS_DATA_TX_UNICAST_RETRY = 0, APS_DATA_TX_UNICAST_FAILED = 0, ROUTE_DISCOVERY_INITIATED = 2, NEIGHBOR_ADDED = 2, NEIGHBOR_REMOVED = 0, NEIGHBOR_STALE = 0, JOIN_INDICATION = 0, CHILD_REMOVED = 0, ASH_OVERFLOW_ERROR = 0, ASH_FRAMING_ERROR = 0, ASH_OVERRUN_ERROR = 0, NWK_FRAME_COUNTER_FAILURE = 0, APS_FRAME_COUNTER_FAILURE = 0, UTILITY = 0, APS_LINK_KEY_NOT_AUTHORIZED = 0, NWK_DECRYPTION_FAILURE = 0, APS_DECRYPTION_FAILURE = 0, ALLOCATE_PACKET_BUFFER_FAILURE = 0, RELAYED_UNICAST = 0, PHY_TO_MAC_QUEUE_LIMIT_REACHED = 0, PACKET_VALIDATE_LIBRARY_DROPPED_COUNT = 0, TYPE_NWK_RETRY_OVERFLOW = 0, PHY_CCA_FAIL_COUNT = 2, BROADCAST_TABLE_FULL = 0, PTA_LO_PRI_REQUESTED = 0, PTA_HI_PRI_REQUESTED = 0, PTA_LO_PRI_DENIED = 0, PTA_HI_PRI_DENIED = 0, PTA_LO_PRI_TX_ABORTED = 0, PTA_HI_PRI_TX_ABORTED = 0, ADDRESS_CONFLICT_SENT = 0, EZSP_FREE_BUFFERS = 252]
Idk if it helps but this is the switch’s 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=4714, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, 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": "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": "HZC",
"model": "Dimmer-Switch-ZB3.0",
"class": "zigpy.device.Device"
}