|
1 | 1 | """python-kasa cli tool."""
|
| 2 | +import asyncio |
2 | 3 | import logging
|
3 | 4 | from pprint import pformat as pf
|
4 | 5 | from typing import cast
|
@@ -145,24 +146,24 @@ async def join(dev: SmartDevice, ssid, password, keytype):
|
145 | 146 |
|
146 | 147 | @cli.command()
|
147 | 148 | @click.option("--timeout", default=3, required=False)
|
148 |
| -@click.option("--discover-only", default=False) |
149 | 149 | @click.option("--dump-raw", is_flag=True)
|
150 | 150 | @click.pass_context
|
151 |
| -async def discover(ctx, timeout, discover_only, dump_raw): |
| 151 | +async def discover(ctx, timeout, dump_raw): |
152 | 152 | """Discover devices in the network."""
|
153 | 153 | target = ctx.parent.params["target"]
|
154 | 154 | click.echo(f"Discovering devices on {target} for {timeout} seconds")
|
155 |
| - found_devs = await Discover.discover(target=target, timeout=timeout) |
156 |
| - if not discover_only: |
157 |
| - for ip, dev in found_devs.items(): |
158 |
| - if dump_raw: |
159 |
| - click.echo(dev.sys_info) |
160 |
| - continue |
| 155 | + sem = asyncio.Semaphore() |
| 156 | + |
| 157 | + async def print_discovered(dev: SmartDevice): |
| 158 | + await dev.update() |
| 159 | + async with sem: |
161 | 160 | ctx.obj = dev
|
162 | 161 | await ctx.invoke(state)
|
163 | 162 | click.echo()
|
164 | 163 |
|
165 |
| - return found_devs |
| 164 | + await Discover.discover( |
| 165 | + target=target, timeout=timeout, on_discovered=print_discovered |
| 166 | + ) |
166 | 167 |
|
167 | 168 |
|
168 | 169 | async def find_host_from_alias(alias, target="255.255.255.255", timeout=1, attempts=3):
|
@@ -224,7 +225,6 @@ async def state(ctx, dev: SmartDevice):
|
224 | 225 | click.echo(click.style("\n\t== Device specific information ==", bold=True))
|
225 | 226 | for k, v in dev.state_information.items():
|
226 | 227 | click.echo(f"\t{k}: {v}")
|
227 |
| - click.echo() |
228 | 228 |
|
229 | 229 | if dev.has_emeter:
|
230 | 230 | click.echo(click.style("\n\t== Current State ==", bold=True))
|
|
0 commit comments