Hi,
danke für den Hinweis auf die bmw-mqtt-bridge – die kenne ich und sie ist technisch interessant. Ich möchte aber erklären, warum ich mich bewusst für die REST-API entschieden haben und was mein Ansatz anders macht.
Der grundlegende Unterschied ist das Ziel: Ich entwickel ein natives openWB-SoC-Modul, das direkt in openWB integriert ist – ohne externe Abhängigkeiten. Die bmw-mqtt-bridge ist ein externes Tool, das dauerhaft auf einem separaten System (NAS, Raspberry Pi etc.) laufen muss. Das ist prinzipiell derselbe Ansatz wie mein Bridge-Script, das ich bereits veröffentlicht habe:
https://github.com/GERDerDennis/bmw-cardata-openwb
Was mein natives Modul konkret leistet:
- Vollständige Integration in openWB – kein externes System nötig
- Konfiguration direkt in der openWB-Oberfläche (Client ID, VIN, Testmodus)
- BMW OAuth Device Flow direkt aus der openWB-UI anstoßbar
- Testmodus ohne einen einzigen BMW-API-Call
- Token- und Container-ID werden persistent gespeichert, dadurch typischerweise nur 1 API-Call pro Poll
- Sauberes Fehlerhandling für das BMW-Tageslimit (50 Calls/Tag)
Zur Frage ob 50 REST-Calls/Tag reichen: Ja, bei einem sinnvollen Poll-Intervall von 30 Minuten sind das maximal 48 Calls pro Tag – das passt genau.
Zur Zukunft: Ein MQTT-Stream-Modus wäre technisch sicherlich eine sinnvolle Ergänzung, da er Echtzeit-Updates liefert und kein Tageslimit hat. Das steht auf der Roadmap als optionaler zweiter Modus. Für die initiale Integration ist REST aber der richtigere Weg, weil er einfacher zu implementieren, zu debuggen und für den Endnutzer einfacher einzurichten ist.
Der aktuelle Stand:
- Modul funktioniert mit echten BMW-Daten (getestet mit iX M60, SoC und Reichweite)
- UI-Integration ist in Arbeit
- PR für openWB/core und openwb-ui-settings folgt
Feedback und Tester sind weiterhin willkommen!
Viele Grüße
Dennis