Skip to content

Commit 8e21fda

Browse files
authored
Fail adapter migration if the frame counter cannot be written (#263)
1 parent 70910bc commit 8e21fda

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

tests/test_network_state.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import importlib.metadata
44

55
import pytest
6-
from zigpy.exceptions import NetworkNotFormed
6+
from zigpy.exceptions import ControllerException, NetworkNotFormed
77
import zigpy.state as app_state
88
import zigpy.types as t
99
import zigpy.zdo.types as zdo_t
@@ -141,6 +141,21 @@ async def write_parameter(param, *args):
141141

142142
node_info = node_info.replace(logical_type=logical_type)
143143

144+
if not fw_supports_fc:
145+
with pytest.raises(
146+
ControllerException,
147+
match=(
148+
"Please upgrade your adapter firmware. Firmware version 0x26580700 does"
149+
" not support writing the network key frame counter, which is required"
150+
" for migration to succeed."
151+
),
152+
):
153+
await app.write_network_info(
154+
network_info=network_info,
155+
node_info=node_info,
156+
)
157+
return
158+
144159
await app.write_network_info(
145160
network_info=network_info,
146161
node_info=node_info,

zigpy_deconz/zigbee/application.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -189,9 +189,11 @@ async def write_network_info(self, *, network_info, node_info):
189189
)
190190
except zigpy_deconz.exception.CommandError as ex:
191191
assert ex.status == Status.UNSUPPORTED
192-
LOGGER.warning(
193-
"Writing the network frame counter is not supported with this firmware,"
194-
" please update your Conbee"
192+
fw_version = f"{int(self._api.firmware_version):#010x}"
193+
raise zigpy.exceptions.ControllerException(
194+
f"Please upgrade your adapter firmware. Firmware version {fw_version}"
195+
f" does not support writing the network key frame counter, which is"
196+
f" required for migration to succeed."
195197
)
196198

197199
if node_info.logical_type == zdo_t.LogicalType.Coordinator:

0 commit comments

Comments
 (0)