Klar. Ein bisschen ausführlicher hatte ich gestern schon etwas dazu im Thread "Habe mir eine WebApp für den Batterie-Status gebaut" geschrieben:
viewtopic.php?p=1541938#p1541938
Da hatte ich auch eine erste Version des Programmes hinterlegt, die ich inzwischen um die Kartendarstellung und das Chart für den SoCMax Verlauf erweitert hatte. Ich wollte den Thread aber nicht weiter kapern, da es ja ursprünglich um eine andere Web App ging.
Das Beispiel baut auf
https://streamlit.io/ - einem Python-basierten Framework - auf, mit dem man mit wenigen Zeilen Code bereits recht ansehnliche Webseiten generieren kann. Es wird gerne im Bereich Data-Science genutzt, weil darunter vor allem viel Magic läuft, um Daten schnell zu visualieren. Die Kommunikation mit der Connected Drive API von BMW nimmt mir dabei im Wesentlichen eine Klasse ab, die ich hier fand:
https://github.com/gerard33/bmwcd
Die Anwendung benötigt nur eine Python Installation (mindestens Python 3.6) und läuft auf fast jeder Plattform: Windows, Mac, Linux. Auch auf einem Raspberry kann man es zum Laufen bekommen, allerdings ist es dort etwas Gewürge, um auch dort streamlit zu installieren. Das Ergebnis (die erzeugte Webseite) lässt sich dann auf allem aufrufen, was einen halbwegs aktuellen Browser hat. Also auch auf Tablets/Smartphones unter iOS / Android.
Gestern waren es rund 70 Zeilen Code für den ersten Info-Schirm. Heute sind noch mal ungefähr ebenso viele Codezeilen hinzugekommen, um die Daten zu persistieren (dauerhaft speichern), die Kartendarstellung und das SoCmax Chart zu bekommen.
Die Anwendung kann auch lokal auf dem PC / Mac / Linux Rechner laufen, man muss sie nicht extra auf einen separaten Webserver deployen. Wenn man das Script aufruft, wird automatisch lokal ein kleiner Webserver gestartet und der Browser öffnet automatisch die erzeugte Webseite. Die Anwendung schreibt nun jedesmal, wenn ich die Webseite aufrufe den SoCmax Wert weg, so dass ich im Laufe der Zeit zunehmend Daten für so ein Chart bekomme. Da ich mir, seitdem ich den Wagen habe, schon ab und zu den SoCmax notiert hatte, habe ich diese Vergangenheitswerte mit in die Datei hineingefüttert, in der die Werte kontinuierlich festgehalten werden.
Sollte hier allgemeines Interesse an der Anwendung bestehen, kann ich sie auf GitHub bereitstellen.