Fehler #140
Von Julius Haman vor 5 Tagen aktualisiert
BleFtmsTester 1.3.0: Neuer Diagnosemodus `--alle`, der alle BLE-Geräte in Reichweite mit Name, Service-UUIDs und Hersteller-ID auflistet (ohne zu verbinden). Anlass: Ein Tacx-Ergometer wird vom Tester nicht erkannt. **Ursache offen**, die Auswertung des Diagnoselogs steht aus. ### Problem Ein externer Tester (Logs `bleftmstester-20260916.log` und `bleftmstester-20261008.log`, nicht von uns erzeugt) Im Test am 08.10.2026 findet mit dem der BleFtmsTester 1.2.0 (Version 1.2.0) in beiden Läufen nur den Pulsmesser "H6M 55065". Ein angeblich eingeschaltetes Tacx-Ergometer (Modell unbekannt) taucht nie auf. Wir haben selbst kein Tacx und können es auf (Modell unbekannt). Auch der HRM200, den ErControl zur selben Zeit per BLE sieht, wird vom Tester nicht nachstellen. gemeldet. Die Suche war in der Umgebung des Testers ist außerdem langsam: Am 08.10. fand der Der erste Lauf fand in 79 s gar nichts (abgebrochen), im zweiten kam der H6M erst nach 109 s. Ob das am Tester oder an der Umgebung liegt (Entfernung, Adapter), ist nicht geklärt. ### Hintergrund Der Tester wertet nur Advertisements aus, in denen die Service-UUID 0x1826 (FTMS) oder 0x180D (Herzfrequenz) steht. Alle anderen Geräte werden still ignoriert. "Nicht erkannt" kann daher bedeuten: * Das Tacx sendet nicht (zum Beispiel an einer anderen Zentrale wie Uhr, Zwift oder Handy verbunden, oder außer Reichweite). * Es sendet kein FTMS im Advertisement: Ältere Tacx-Modelle bieten nur ANT+ FE-C oder ein eigenes Tacx-BLE-Protokoll. * Die FTMS-UUID steht nicht im Advertisement, sondern wird erst nach dem Verbinden sichtbar. Das lässt sich aus den Logs nicht unterscheiden. ### Technische Details * `BleFtmsTester --alle`: Loggt jede Kombination aus Adresse, Name, Service-UUIDs und Hersteller-ID einmal, mit Signalstärke und Paketart (Advertisement oder Scan Response). Standard-UUIDs kurz (0x180D), herstellerspezifische vollständig. Kein Verbinden. * Versionsstand in `BleFtmsTester.csproj` und im Kommentar in `Directory.Build.props` auf 1.3.0. ### Nächste Schritte Lauf mit `--alle` bei eingeschaltetem Tacx, das mit nichts anderem verbunden ist. Danach je nach Ergebnis: * Tacx mit 0x1826 sichtbar: Fehler im Scan-Code (auch die lange Suchdauer) suchen und beheben. * Tacx ohne 0x1826 sichtbar: Prüfen, welche Schnittstelle das Modell bietet. Bei eigenem Tacx-Protokoll ist ANT+ FE-C der Weg. * Tacx nicht sichtbar: Aufbau prüfen (Verbindung zu anderer Zentrale, Abstand, Gerätezustand), kein Fehler im Code. ### Hinweis zum Test * `--alle` lief am 08.10.2026 auf dem Entwicklungsrechner: Der Modus listet alle Geräte, darunter den BLE-Pulsgurt HRM200 (Name "HRM200:560741", Service 0x180D, Hersteller-ID 0x0087) sowie mehrere unbenannte Fremdgeräte ohne Services. Der Modus funktioniert also. * **Nicht geprüft:** Test mit einem Tacx-Ergometer. Dafür muss die Version 1.3.0 Diagnosemodus noch nicht an den externen Tester weitergegeben werden, der das Ergometer hat. Dessen `--alle`-Log ist die Grundlage für die Auswertung. ### Hinweis für den externen Tester `BleFtmsTester.exe --alle` mit eingeschaltetem Tacx, das mit nichts anderem (Handy, Uhr, Zwift) verbunden ist, nach kurzem Treten 30 bis 60 Sekunden laufen lassen und die Logdatei zurückschicken. echter Hardware gelaufen.