Fehler #133
geschlossenBLE-Pulsmesser (Instinct 2X Solar) muss häufiger neu gekoppelt werden
0%
Beschreibung
Problem¶
Der BLE-Pulsmesser (Garmin Instinct 2X Solar, Herzfrequenz-Broadcast) muss in ErControl häufiger neu gekoppelt (neu ausgewählt) werden, obwohl die gespeicherte Geräteadresse unverändert bleibt (FAD7BDDCB983, statische Zufallsadresse).
Ursache (bestätigt)¶
Windows liefert für ein Gerät mit Zufallsadresse nur dann eine Verbindung, wenn es das Gerät kürzlich in einem Advertisement gesehen hat. Nach einem Neustart der Uhr (bzw. wenn Windows den Eintrag nicht mehr im Zwischenspeicher hat) lieferte BluetoothLEDevice.FromBluetoothAddressAsync(address) dauerhaft sofort null (3 bis 15 ms), obwohl die Uhr sendete. ErControl suchte nie selbst, daher half nur das Neukoppeln, dessen Scan das Gerät Windows wieder bekannt machte.
Nicht die Ursache: Die Adresse wechselt nicht (bleibt auch bei Neukopplung gleich). Eine Windows-Kopplung existiert für die Uhr nicht, die Verbindung läuft rein per BLE/GATT.
Davon zu unterscheiden: Ist die Uhr zwar bekannt, aber noch nicht verbindbar (Broadcast noch nicht aktiv oder belegt), meldet GATT Unreachable (ca. 7,7 s, 0 Services). Das behebt sich nach dem Start des Broadcasts durch die vorhandene Wiederholung von selbst.
Umsetzung¶
- Diagnose-Logging im Verbindungsaufbau von
BlePulsmesser(Adresstyp, Dauer, ConnectionStatus, GATT-Status, ProtocolError je Schritt). - Fix: Vor
FromBluetoothAddressAsyncwartetBlePulsmesserbis zu 5 s auf ein Advertisement der Adresse (BluetoothLEAdvertisementWatcher) und übergibt dessen Adresstyp (Random/Public). Kommt keins, wird trotzdem verbunden. - Einheitliche Log-Meldungen:
BLE-Pulsmesser {Adresse}: <Aussage> (<Details>, <Dauer> ms).
Verifiziert (05.10.2026)¶
- Ohne Fix, nach Neustart der Uhr:
FromBluetoothAddressAsyncliefert dauerhaftnull. - Mit Fix: "Advertisement gesehen, Typ Random" (2,5 s), danach "Verbunden, Notifications abonniert" (8,7 s) ohne Neukoppeln.
- Ein vorangegangener Lauf mit dem Fix macht die Uhr Windows bekannt, sodass auch die Version ohne Fix danach wieder verbindet (Zwischenspeicher).
Hinweise¶
- Die Uhr nimmt nur einen Empfänger gleichzeitig an (Garmin-Verhalten); ein zweiter Empfänger (anderer Rechner, App) macht sie unerreichbar.
- Wenn ein Advertisement "nicht gesehen" wird, sendet die Uhr nicht (Broadcast aktiv?) oder der PC empfängt sie nicht.
JH Von Julius Haman vor 8 Tagen aktualisiert
- Beschreibung aktualisiert (Vergleich)
Ursache bestätigt (Windows-BLE-Zwischenspeicher bei Zufallsadresse), Fix und Diagnose-Logging umgesetzt (Commits 6644f43, d7543f5 in ercontrol3, noch nicht gepusht).
JH Von Julius Haman vor 8 Tagen aktualisiert
- Zielversion wurde auf ErControl 3.1.5 gesetzt
JH Von Julius Haman vor 8 Tagen aktualisiert
- Status wurde von Neu zu Erledigt geändert