Hier mal eine Zusammenfassung der versteckten Möglichkeiten im i3 an weitere Infos über die Batterie Softwareversion oder ähnliches zu kommen.
Alle Infos ohne Gewähr - Nutzung auf eigene Gefahr - Dies ist eine Zusammenfassung von Informationen aus verschiedensten Quellen.
Softwarestand des Fahrzeugs
Das geht wohl am besten durch exportieren des eigenen Profils auf einen USB Stick (im Fahrzeug: iDrive Settings > Profiles > Export). Die Datei auf dem Stick dann mit einem Editor öffnen und nach folgendem suchen:
<header>
<date>2016-01-21T17:23:54</date>
<version>1</version>
<username>YOURNAME</username>
<vin>XX12345</vin>
<i-step>I001-15-11-504</i-step>
</header>
im obigen Fall ist die Version I001-15-11-504 - Erklärung siehe auch hier.
Batterie SoC und ähnliches
Die BMW Webseite (ConnectedDrive) ist ja soweit ganz gut zeit aber nur SoC (State of Charge also den Ladezustand) in Prozent und nicht als absoluten kWh Wert an - sie könnte aber, da die Daten sehrwohl vorliegen.
BMW CD Portal & rechts eine selbstgehostete WebApplikation (einmal auf dem Desktop und rechts auf dem mobile)
Die eigentlichen Daten kann man im Auto durch
- Das ServiceMenü (bisher einzige mir bekannte Möglichkeit um z.B. auch die Batterietemperatur auszulesen)
Zum Beispiel findet man hier (Zahlen sind die Menüunterpunkte):- 13.08 Batt. Kapa. Max. (max SoC, als die max. Nutzkapazität des Akkus)
- 13.09 State of charge (SOC, battery %)
- 13.10 Batt. Ladung (Batterie Ladung in kWh)
- 14.05 Batterietemp (Aktuelle Batterietemperatur)
- Das Webportal via Datenmitschneiden erhalten oder an
- Via der BMW Server API abfragen
Die dritte Möglichkeit wurde von Terence Eden in seinem Blog Reverse Engineering the BMW i3 API (Github) und auch in Habe mir eine WebApp für den Batterie-Status gebaut (GitHub) vorgestellt.
Im folgenden ein paar mehr Infos zu der von mir genutzten Implementierung der Webapplikation die mittlerweile auch durch einige GoingElectric Mitstreiter erweitert wurde. Die Werte kommen also vom BMW Server und nicht direkt vom Auto. Es steht nicht immer der letzte aktuelle Wert zu Verfügung, da das Fahrzeug neue Werte nur beim Anhalten/Öffnen/Schließen... sendet. Während einer Ladung werden vom Fahrzeug die aktuellen Werte zwar ab und zu gesendet, aber wann genau ist mir nicht bekannt. Werte dazwischen werden interpoliert. Das sieht man recht gut, wenn man die Ladung im Wagen mittels Servicemenü mit dem Serverdaten vergleicht (bei CCS hingt der Server meist ein paar % SOC hinterher).
Die in der Webapp angezeigten Verbräuche oder Ladeleistungen werden mittels SoC und Zeit oder km Differenz zwischen den einzelnen Aufrufen berechnet. Dazu legt das PHP skript eine CSV Datei auf dem Server an in welcher die Daten (Zeitpunkt, SoC, Gesamtkm stand...) zum jeweiligen Aufruf gespeichert werden. Der Last Leg Wert wird analog aus der Differenz des Gesamtkmstandes zweier Aufrufe berechnet (und sich dann einfach gemerkt, falls sich nicht ändert).
- Requirements: Webserver (Apache und IIS getestet) und PHP (5.5 und 7.1 getestet) Laufzeitumgebung (ich nutze IIS 8 und PHP 7.1.1)
Installation
-
Paket herunterladen (oder die Versionen auf GitHub)
- Änderungen vom 18.2 (wenn Ihr meine Version verwendet einfach nach Backup drüber kopieren): Update 1
- Paket entpacken und auf den Webserver kopieren
- htaccess oder Webconfig Dateien anpassen (Sicherheitseinstellungen etc.)
- Batt/api/access/auth.json mit user, passerwort (der BMW Connecteddriveseite) und VIN füllen
Meine Webconfig sieht z.B. so aus (PHP Einstellung bitte anpassen):
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".appcache" mimeType="text/cache-manifest" />
<mimeMap fileExtension=".woff2" mimeType="font/woff2" />
</staticContent>
<handlers>
<add name="php-7.1.1" path="*.php" verb="GET,HEAD,POST,PROPFIND,OPTIONS,REPORT,PUT,DELETE" modules="FastCgiModule" scriptProcessor="C:\Program Files\PHP\7_1_1\php-cgi.exe" resourceType="Either" requireAccess="Script" />
</handlers>
</system.webServer>
</configuration>
Alles anzeigen
Hinweise für IIS und PHP:
- Wenn man fehler bei der HTTPS-Abfrage bekommt ala "Cert kann nicht geprüft" werden, müsst Ihr Eure PHP installation mit einem CA cert versehen
- CA Info in PHP setzen: PHP How to set CA info
- ein CA cert kann man hier finden: CA Extract
- Falls PHP mit einer anderen Version laufen soll, past Eure HandlerMappings an. Für PHP im allgemeinen nutzt unter ISS am besten den PHP Manager
- Oft fehlen die passenden Mime Types, siehe meine Webconfig
Weitere Versionen etc im Entertainment Servicemenü
Man bekommt dieses wenn man sich im Startmenü befindet und (Quelle)
- Mindestens 10s den iDrive Controlle nach vorne drückt
- 3 rasterstellungen nach rechts dreht
- 3 Raster nach links
- 1 Raster nach rechts
- 1 Raster nach links
- Raster nach recht
- iDrive Controller drücken
Kommentare 1
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.