From 3a3ef81835888fdcd98d5b4bf02a55a9a8c8cbb4 Mon Sep 17 00:00:00 2001 From: duffyduck Date: Sat, 31 Oct 2026 16:14:40 +0100 Subject: [PATCH] fix(satellite): Scan-Auftrag waehrend laufendem Scan wartet bis zum Ende MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- satellite/satellite.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/satellite/satellite.py b/satellite/satellite.py index 3aba7dd..19c6b8b 100644 --- a/satellite/satellite.py +++ b/satellite/satellite.py @@ -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"