From aa12bf6251bfd7e362f1d3ded4767a9b71262bf9 Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Wed, 28 Jun 2023 14:08:42 -0400 Subject: [PATCH 1/2] Bump ZHA dependencies --- homeassistant/components/zha/manifest.json | 8 ++++---- requirements_all.txt | 8 ++++---- requirements_test_all.txt | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/homeassistant/components/zha/manifest.json b/homeassistant/components/zha/manifest.json index ae5718e108b2dc..fa1c382926e778 100644 --- a/homeassistant/components/zha/manifest.json +++ b/homeassistant/components/zha/manifest.json @@ -20,15 +20,15 @@ "zigpy_znp" ], "requirements": [ - "bellows==0.35.5", + "bellows==0.35.6", "pyserial==3.5", "pyserial-asyncio==0.6", "zha-quirks==0.0.101", "zigpy-deconz==0.21.0", - "zigpy==0.56.0", - "zigpy-xbee==0.18.0", + "zigpy==0.56.1", + "zigpy-xbee==0.18.1", "zigpy-zigate==0.11.0", - "zigpy-znp==0.11.1" + "zigpy-znp==0.11.2" ], "usb": [ { diff --git a/requirements_all.txt b/requirements_all.txt index 96e6e0bf15af5a..5dd7c142e4d77b 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -497,7 +497,7 @@ beautifulsoup4==4.11.1 # beewi-smartclim==0.0.10 # homeassistant.components.zha -bellows==0.35.5 +bellows==0.35.6 # homeassistant.components.bmw_connected_drive bimmer-connected==0.13.7 @@ -2753,16 +2753,16 @@ ziggo-mediabox-xl==1.1.0 zigpy-deconz==0.21.0 # homeassistant.components.zha -zigpy-xbee==0.18.0 +zigpy-xbee==0.18.1 # homeassistant.components.zha zigpy-zigate==0.11.0 # homeassistant.components.zha -zigpy-znp==0.11.1 +zigpy-znp==0.11.2 # homeassistant.components.zha -zigpy==0.56.0 +zigpy==0.56.1 # homeassistant.components.zoneminder zm-py==0.5.2 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 21d6c436f6cf65..2126d23299a461 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -418,7 +418,7 @@ base36==0.1.1 beautifulsoup4==4.11.1 # homeassistant.components.zha -bellows==0.35.5 +bellows==0.35.6 # homeassistant.components.bmw_connected_drive bimmer-connected==0.13.7 @@ -2017,16 +2017,16 @@ zha-quirks==0.0.101 zigpy-deconz==0.21.0 # homeassistant.components.zha -zigpy-xbee==0.18.0 +zigpy-xbee==0.18.1 # homeassistant.components.zha zigpy-zigate==0.11.0 # homeassistant.components.zha -zigpy-znp==0.11.1 +zigpy-znp==0.11.2 # homeassistant.components.zha -zigpy==0.56.0 +zigpy==0.56.1 # homeassistant.components.zwave_js zwave-js-server-python==0.49.0 From fd9eba885f7c60a8ba36c2e79317aed74ff7d40e Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Wed, 28 Jun 2023 15:08:08 -0400 Subject: [PATCH 2/2] Account for new EZSP metadata keys --- homeassistant/components/zha/radio_manager.py | 7 ++++--- tests/components/zha/test_config_flow.py | 7 +++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/zha/radio_manager.py b/homeassistant/components/zha/radio_manager.py index 9fbfa03b92812c..29214083d27693 100644 --- a/homeassistant/components/zha/radio_manager.py +++ b/homeassistant/components/zha/radio_manager.py @@ -250,11 +250,12 @@ async def async_restore_backup_step_1(self) -> bool: assert self.current_settings is not None + metadata = self.current_settings.network_info.metadata["ezsp"] + if ( self.current_settings.node_info.ieee == self.chosen_backup.node_info.ieee - or not self.current_settings.network_info.metadata["ezsp"][ - "can_write_custom_eui64" - ] + or metadata["can_rewrite_custom_eui64"] + or not metadata["can_burn_userdata_custom_eui64"] ): # No point in prompting the user if the backup doesn't have a new IEEE # address or if there is no way to overwrite the IEEE address a second time diff --git a/tests/components/zha/test_config_flow.py b/tests/components/zha/test_config_flow.py index 48c45dd241d0bb..17665994806887 100644 --- a/tests/components/zha/test_config_flow.py +++ b/tests/components/zha/test_config_flow.py @@ -74,6 +74,12 @@ def mock_app(): mock_app = AsyncMock() mock_app.backups = create_autospec(BackupManager, instance=True) mock_app.backups.backups = [] + mock_app.state.network_info.metadata = { + "ezsp": { + "can_burn_userdata_custom_eui64": True, + "can_rewrite_custom_eui64": False, + } + } with patch( "zigpy.application.ControllerApplication.new", AsyncMock(return_value=mock_app) @@ -1517,6 +1523,7 @@ async def test_ezsp_restore_without_settings_change_ieee( mock_app.state.node_info = backup.node_info mock_app.state.network_info = copy.deepcopy(backup.network_info) mock_app.state.network_info.network_key.tx_counter += 10000 + mock_app.state.network_info.metadata["ezsp"] = {} # Include the overwrite option, just in case someone uploads a backup with it backup.network_info.metadata["ezsp"] = {EZSP_OVERWRITE_EUI64: True}