From 1ea3b1ef0ace1b35e547055aaa32873fead6476b Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Thu, 28 Jul 2022 13:22:17 -0400 Subject: [PATCH 1/2] Speed up network formation --- setup.py | 2 +- zigpy_cli/radio.py | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index 3338a16..6c4c53f 100644 --- a/setup.py +++ b/setup.py @@ -20,7 +20,7 @@ "click", "coloredlogs", "scapy", - "zigpy>=0.48.0", + "zigpy>=0.48.1", "bellows>=0.31.0", "zigpy-deconz>=0.18.0", "zigpy-znp>=0.8.0", diff --git a/zigpy_cli/radio.py b/zigpy_cli/radio.py index 06c377d..65c124e 100644 --- a/zigpy_cli/radio.py +++ b/zigpy_cli/radio.py @@ -3,6 +3,7 @@ import json import logging import importlib +import itertools import collections import importlib.util @@ -121,15 +122,16 @@ async def restore(app, frame_counter_increment, input): @click.pass_obj @click_coroutine async def form(app): - await app.startup(auto_form=True) + await app.connect() await app.form_network() @radio.command() @click.pass_obj @click.option("--nwk", type=HEX_OR_DEC_INT, default=0x0000) +@click.option("-n", "--num-scans", type=int, default=-1) @click_coroutine -async def energy_scan(app, nwk): +async def energy_scan(app, nwk, num_scans): await app.startup() LOGGER.info("Running scan...") @@ -143,7 +145,10 @@ async def energy_scan(app, nwk): # We compute an average over the last 5 scans channel_energies = collections.defaultdict(lambda: collections.deque([], maxlen=5)) - while True: + for scan in itertools.count(): + if num_scans != -1 and scan > num_scans: + break + rsp = await app.get_device(nwk=nwk).zdo.Mgmt_NWK_Update_req( zigpy.zdo.types.NwkUpdate( ScanChannels=zigpy.types.Channels.ALL_CHANNELS, From fffdddd9709aa9936c3c4a143b0e883a3f429fe4 Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Thu, 28 Jul 2022 13:22:45 -0400 Subject: [PATCH 2/2] Disable network backups in CLI tools --- zigpy_cli/radio.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zigpy_cli/radio.py b/zigpy_cli/radio.py index 65c124e..ce7faec 100644 --- a/zigpy_cli/radio.py +++ b/zigpy_cli/radio.py @@ -48,7 +48,7 @@ async def radio(ctx, radio, port, baudrate=None): # Start the radio app_cls = radio_module.ControllerApplication - config = app_cls.SCHEMA({"device": {"path": port}}) + config = app_cls.SCHEMA({"device": {"path": port}, "backup_enabled": False}) if baudrate is not None: config["device"]["baudrate"] = baudrate