fix(satellite): Scan-Auftrag waehrend laufendem Scan wartet bis zum Ende

Kam sat_discover, waehrend schon ein Scan lief (z.B. der erste nach dem
Start, ~25 s), wartete der Satellit nur 6 s und lieferte die bisherige
Liste — nach einem Neustart leer → "Keine Geraete gefunden". Jetzt wartet
er, bis der laufende Scan fertig ist (hoechstens SCAN_MAX_SEC).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-31 16:14:40 +01:00
co-authored by Claude Opus 5.5
parent 2a0c8b8192
commit 3a3ef81835
+5 -4
View File
@@ -1819,11 +1819,12 @@ class Satellite:
if self._devices and fresh and not force:
return self._devices
if self._scanning:
# Laufenden Scan abwarten (grob)
for _ in range(30):
# Laufenden Scan abwarten — bis er fertig ist (hoechstens SCAN_MAX_SEC).
# Frueher nur 6 s: direkt nach dem Start (Scan ~25 s, Liste noch
# leer) kam so "keine Geraete gefunden" zurueck.
deadline = time.time() + SCAN_MAX_SEC + 5
while self._scanning and time.time() < deadline:
await asyncio.sleep(0.2)
if not self._scanning:
break
return self._devices
self._scanning = True
self._scan_stage = "start"