Closed smmoroz closed 2 months ago
Hey there @dmulcahey, @adminiuga, @puddly, @thejulianjes, mind taking a look at this issue as it has been labeled with an integration (zha
) you are listed as a code owner for? Thanks!
(message by CodeOwnersMention)
zha documentation zha source (message by IssueLinks)
I'm experiencing the same thing. Below is my debug log output attempting to update a Legrand WNRR15 smart outlet.
2024-06-06 09:52:15.973 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Sending reply header: ZCLHeader(frame_control=FrameControl<0x19>(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=False, direction=<Direction.Server_to_Client: 1>, disable_default_response=1, reserved=0, *is_cluster=True, *is_general=False), tsn=11, command_id=0, *direction=<Direction.Server_to_Client: 1>)
2024-06-06 09:52:15.974 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Sending reply: ImageNotifyCommand(payload_type=<PayloadType.QueryJitter: 0>, query_jitter=100)
2024-06-06 09:52:16.064 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(timestamp=datetime.datetime(2024, 6, 6, 13, 52, 16, 64336, tzinfo=datetime.timezone.utc), src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xCD50), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=106, profile_id=260, cluster_id=25, data=Serialized[b'\x01\x87\x01\x00!\x10\x11\x00\xffCS\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=212, rssi=-47)
2024-06-06 09:52:16.065 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Received ZCL frame: b'\x01\x87\x01\x00!\x10\x11\x00\xffCS\x00'
2024-06-06 09:52:16.065 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl<0x01>(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 0>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=135, command_id=1, *direction=<Direction.Client_to_Server: 0>)
2024-06-06 09:52:16.066 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Decoded ZCL frame: Ota:QueryNextImageCommand(field_control=<FieldControl: 0>, manufacturer_code=4129, image_type=17, current_file_version=5456895)
2024-06-06 09:52:16.066 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Received command 0x01 (TSN 135): QueryNextImageCommand(field_control=<FieldControl: 0>, manufacturer_code=4129, image_type=17, current_file_version=5456895)
2024-06-06 09:52:16.068 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Sending reply header: ZCLHeader(frame_control=FrameControl<0x19>(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=False, direction=<Direction.Server_to_Client: 1>, disable_default_response=1, reserved=0, *is_cluster=True, *is_general=False), tsn=135, command_id=2, *direction=<Direction.Server_to_Client: 1>)
2024-06-06 09:52:16.068 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Sending reply: query_next_image_response(status=<Status.SUCCESS: 0>, manufacturer_code=4129, image_type=17, file_version=5915139, image_size=250775)
2024-06-06 09:52:21.892 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(timestamp=datetime.datetime(2024, 6, 6, 13, 52, 21, 892554, tzinfo=datetime.timezone.utc), src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xCD50), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=107, profile_id=260, cluster_id=25, data=Serialized[b'\x01\x88\x03\x02!\x10\x11\x00\x03BZ\x00\x00\x00\x00\x00>\x14\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=212, rssi=-47)
2024-06-06 09:52:21.893 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Received ZCL frame: b'\x01\x88\x03\x02!\x10\x11\x00\x03BZ\x00\x00\x00\x00\x00>\x14\x00'
2024-06-06 09:52:21.894 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl<0x01>(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 0>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=136, command_id=3, *direction=<Direction.Client_to_Server: 0>)
2024-06-06 09:52:21.894 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Decoded ZCL frame: Ota:ImageBlockCommand(field_control=<FieldControl.MinimumBlockPeriod: 2>, manufacturer_code=4129, image_type=17, file_version=5915139, file_offset=0, maximum_data_size=62, minimum_block_period=20)
2024-06-06 09:52:21.895 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Received command 0x03 (TSN 136): ImageBlockCommand(field_control=<FieldControl.MinimumBlockPeriod: 2>, manufacturer_code=4129, image_type=17, file_version=5915139, file_offset=0, maximum_data_size=62, minimum_block_period=20)
2024-06-06 09:52:21.896 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Sending reply header: ZCLHeader(frame_control=FrameControl<0x19>(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=False, direction=<Direction.Server_to_Client: 1>, disable_default_response=1, reserved=0, *is_cluster=True, *is_general=False), tsn=136, command_id=5, *direction=<Direction.Server_to_Client: 1>)
2024-06-06 09:52:21.896 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Sending reply: ImageBlockResponseCommand(status=<Status.SUCCESS: 0>, manufacturer_code=4129, image_type=17, file_version=5915139, file_offset=0, image_data=b'\x1e\xf1\xee\x0b\x00\x018\x00\x00\x00!\x10\x11\x00\x03BZ\x00\x02\x00 ')
2024-06-06 09:52:21.979 INFO (MainThread) [zigpy.device] [0xcd50] OTA upgrade progress: (40 / 250775): 0.0160%
2024-06-06 09:52:22.018 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(timestamp=datetime.datetime(2024, 6, 6, 13, 52, 22, 18091, tzinfo=datetime.timezone.utc), src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xCD50), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=108, profile_id=260, cluster_id=25, data=Serialized[b'\x01\x89\x03\x02!\x10\x11\x00\x03BZ\x00(\x00\x00\x00\x16\x14\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=212, rssi=-47)
2024-06-06 09:52:22.019 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Received ZCL frame: b'\x01\x89\x03\x02!\x10\x11\x00\x03BZ\x00(\x00\x00\x00\x16\x14\x00'
2024-06-06 09:52:22.019 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl<0x01>(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 0>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=137, command_id=3, *direction=<Direction.Client_to_Server: 0>)
2024-06-06 09:52:22.020 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Decoded ZCL frame: Ota:ImageBlockCommand(field_control=<FieldControl.MinimumBlockPeriod: 2>, manufacturer_code=4129, image_type=17, file_version=5915139, file_offset=40, maximum_data_size=22, minimum_block_period=20)
2024-06-06 09:52:22.020 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Received command 0x03 (TSN 137): ImageBlockCommand(field_control=<FieldControl.MinimumBlockPeriod: 2>, manufacturer_code=4129, image_type=17, file_version=5915139, file_offset=40, maximum_data_size=22, minimum_block_period=20)
2024-06-06 09:52:22.021 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Sending reply header: ZCLHeader(frame_control=FrameControl<0x19>(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=False, direction=<Direction.Server_to_Client: 1>, disable_default_response=1, reserved=0, *is_cluster=True, *is_general=False), tsn=137, command_id=5, *direction=<Direction.Server_to_Client: 1>)
2024-06-06 09:52:22.022 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Sending reply: ImageBlockResponseCommand(status=<Status.SUCCESS: 0>, manufacturer_code=4129, image_type=17, file_version=5915139, file_offset=40, image_data=b' \x97\xd3\x03\x00\x00\x00Y\xd3\x03\x00')
2024-06-06 09:52:22.097 INFO (MainThread) [zigpy.device] [0xcd50] OTA upgrade progress: (62 / 250775): 0.0247%
2024-06-06 09:52:22.110 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(timestamp=datetime.datetime(2024, 6, 6, 13, 52, 22, 110723, tzinfo=datetime.timezone.utc), src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xCD50), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=109, profile_id=260, cluster_id=25, data=Serialized[b'\x10\x89\x0b\x05\x02'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=212, rssi=-47)
2024-06-06 09:52:22.111 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Received ZCL frame: b'\x10\x89\x0b\x05\x02'
2024-06-06 09:52:22.112 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl<0x10>(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 0>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=137, command_id=11, *direction=<Direction.Client_to_Server: 0>)
2024-06-06 09:52:22.112 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Decoded ZCL frame: Ota:Default_Response(command_id=5, status=<Status.MAC_PAN_ACCESS_DENIED: 2>)
2024-06-06 09:52:22.113 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Received command 0x0B (TSN 137): Default_Response(command_id=5, status=<Status.MAC_PAN_ACCESS_DENIED: 2>)
2024-06-06 09:52:22.207 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(timestamp=datetime.datetime(2024, 6, 6, 13, 52, 22, 207311, tzinfo=datetime.timezone.utc), src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xCD50), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=110, profile_id=260, cluster_id=25, data=Serialized[b'\x01\x8a\x06\x96!\x10\x11\x00\x03BZ\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=212, rssi=-47)
2024-06-06 09:52:22.208 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Received ZCL frame: b'\x01\x8a\x06\x96!\x10\x11\x00\x03BZ\x00'
2024-06-06 09:52:22.208 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl<0x01>(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 0>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=138, command_id=6, *direction=<Direction.Client_to_Server: 0>)
2024-06-06 09:52:22.209 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Decoded ZCL frame: Ota:upgrade_end(status=<Status.INVALID_IMAGE: 150>, manufacturer_code=4129, image_type=17, file_version=5915139)
2024-06-06 09:52:22.210 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Received command 0x06 (TSN 138): upgrade_end(status=<Status.INVALID_IMAGE: 150>, manufacturer_code=4129, image_type=17, file_version=5915139)
2024-06-06 09:52:22.210 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Sending reply header: ZCLHeader(frame_control=FrameControl<0x19>(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=False, direction=<Direction.Server_to_Client: 1>, disable_default_response=1, reserved=0, *is_cluster=True, *is_general=False), tsn=138, command_id=7, *direction=<Direction.Server_to_Client: 1>)
2024-06-06 09:52:22.211 DEBUG (MainThread) [zigpy.zcl] [0xCD50:1:0x0019] Sending reply: upgrade_end_response(manufacturer_code=4129, image_type=17, file_version=5915139, current_time=0, upgrade_time=0)
2024-06-06 09:52:22.281 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140099642118288] Unexpected exception
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 241, in handle_call_service
response = await hass.services.async_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2741, in async_call
response_data = await coro
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2784, in _execute_service
return await target(service_call)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 977, in entity_service_call
single_response = await _handle_entity_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1049, in _handle_entity_call
result = await task
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/update/__init__.py", line 157, in async_install
await entity.async_install_with_progress(version, backup)
File "/usr/src/homeassistant/homeassistant/components/update/__init__.py", line 461, in async_install_with_progress
await self.async_install(version, backup)
File "/usr/src/homeassistant/homeassistant/components/zha/update.py", line 196, in async_install
raise HomeAssistantError(f"Update was not successful: {result}")
homeassistant.exceptions.HomeAssistantError: Update was not successful: <Status.INVALID_IMAGE: 150>
Legrand devices have a broken OTA implementation and are not currently supported.
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 Home Assistant 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.
The problem
OTA firmware update of my Legrand 067773 end device failing with
INVALID_IMAGE
preceded byMAC_PAN_ACCESS_DENIED
.My procedure:
Update was not successful: <Status.INVALID_IMAGE: 150>
error.But in the logs there is a strange
MAC_PAN_ACCESS_DENIED
message (see below).What version of Home Assistant Core has the issue?
core-2024.3.3
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant OS
Integration causing the issue
ZHA
Link to integration documentation on our website
https://www.home-assistant.io/integrations/zha/
Diagnostics information
zha-24f56eb317664354a00f2267a4963692- Legrand Remote switch-56a51c5084981cc44552a14fc0148244.json
Example YAML snippet
Anything in the logs that might be useful for us?
Additional information
No response