Bluetooth & Open Source
BLE Bridge
BLE Bridge richtet sich an Softwareentwickler, die Messwerte von Bluetooth-Low-Energy-Fitnessgeräten auf einer Plattform verarbeiten möchten, die zwar das Internet erreicht, aber selbst keinen Zugriff auf Bluetooth bietet.
Wenn die Zielplattform nur HTTP versteht
Viele Spiele, Cloud-Dienste und eingebettete Skriptumgebungen können Web-APIs aufrufen, stellen jedoch keine Bluetooth-Schnittstelle zur Verfügung. Ein eigener nativer Gerätetreiber wäre dort entweder gar nicht möglich oder eng an ein bestimmtes Betriebssystem gebunden. BLE Bridge trennt diese beiden Welten: Auf der einen Seite bleibt die Hardware beim Browser, auf der anderen Seite arbeitet die Anwendung mit einer normalen JSON-API.
Die Integration in ein eigenes Projekt bleibt dadurch überschaubar. Der Entwickler benötigt keinen Bluetooth-Stack und muss keine binären GATT-Pakete auswerten. Die Zielanwendung fragt mit einem Verbindungscode den jeweils aktuellen Stand ab und kann dabei entweder die vom Nutzer ausgewählten Hauptwerte oder sämtliche verfügbaren Quellen lesen.
Das Smartphone als Brücke zum Fitnessgerät
Der Browser muss sich in Reichweite des Sensors oder Trainers befinden, die Zielsoftware hingegen nicht. Neben einem Rechner kann deshalb auch ein kompatibles Smartphone mit Web-Bluetooth-fähigem Chromium-Browser die Brücke bilden. Das Telefon verbindet sich direkt mit dem BLE-Gerät und überträgt die aufbereiteten Werte über das Internet an das Relay.
Für den Nutzer sind dafür nur wenige Schritte nötig: Webseite öffnen, die gewünschten GATT-Dienste wählen, das Gerät im Bluetooth-Dialog verbinden und den angezeigten Code in das Spiel oder Dashboard übernehmen. Eine separate native Bridge-App muss auf dem Smartphone nicht installiert werden.
Der Weg eines Messwerts
- Der Browser abonniert geeignete GATT-Characteristics und interpretiert deren Datenpakete.
- Messwerte, Geräteinformationen und die bevorzugten Quellen werden per WebSocket an das Relay übertragen.
- Das Relay hält den letzten Zustand unter dem Verbindungscode im Arbeitsspeicher bereit.
- Die Zielanwendung ruft die benötigten Daten über einfache HTTPS-Endpunkte als JSON ab.
Zum Einstieg ist nicht einmal ein echtes Fitnessgerät erforderlich. Ein Demo-Endpunkt erzeugt künstliche Leistungswerte, mit denen sich die eigene Anbindung entwickeln lässt. Später wird lediglich die Demoquelle durch den Verbindungscode eines echten Nutzers ersetzt.
Mehrere Sensoren bleiben sauber unterscheidbar
Unterstützt werden unter anderem FTMS, Cycling Power, Cycling Speed and Cadence, Running Speed and Cadence, Heart Rate sowie Batterie- und Geräteinformationen. Damit lassen sich Daten von Indoor-Bikes, Laufbändern, Rudergeräten, Crosstrainern und verschiedenen einzelnen Sensoren gemeinsam erfassen.
Wenn Pedale und Rollentrainer gleichzeitig Leistung senden, vermischt BLE Bridge die Werte nicht. Der Nutzer legt fest, welche Quelle als Hauptwert gelten soll. Eine einfache Anwendung kann direkt diese Auswahl verwenden; anspruchsvollere Integrationen erhalten weiterhin Zugriff auf alle Quellen mitsamt Geräte- und Protokollangaben.
Die Trainersteuerung bleibt bewusst freigabepflichtig
Bei passenden FTMS-Trainern funktioniert die Verbindung auch in Gegenrichtung. Befehle aus der Zielanwendung laufen über Relay und Browser zurück zum Gerät. Der Nutzer muss zuvor das Steuerziel auswählen und jede erlaubte Befehlsgruppe freigeben. Zusätzlich berücksichtigt BLE Bridge die vom Trainer gemeldeten Funktionen und begrenzt Werte auf dessen unterstützten Bereich.
Öffentlicher Dienst oder eigener Server
Unter blebridge.com steht eine öffentliche Installation bereit. Gleichzeitig ist der vollständige Quellcode unter der MIT-Lizenz auf GitHub verfügbar. Das Projekt kann mit Docker selbst gehostet oder direkt aus dem Quellcode gestartet und erweitert werden.
Das Relay führt absichtlich keine Trainingsdatenbank. Es hält nur aktive Verbindungen und den letzten Messwertstand im Arbeitsspeicher. Wird die Verbindung beendet oder längere Zeit nicht verwendet, verschwindet dieser Laufzeitzustand wieder. Die eigentliche Bluetooth-Verbindung bleibt zu jedem Zeitpunkt lokal zwischen Browser und Fitnessgerät.