1. Dashboard
  2. Blog
    1. Artikel
  3. Forum
  4. Galerie
    1. Alben
    2. Karte
  5. Shop
    1. Hilfe
    2. Bestellungen
    3. Versandkosten
  6. Marktplatz
    1. Nutzungsbedingungen
    2. Karte
    3. Bewertungen
  7. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  • Anmelden
  • Registrieren
  • Suche
Blog-Artikel
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Blog-Artikel
  • Galerie
  • Produkte
  • Marktplatz-Eintrag
  • Erweiterte Suche
  1. Oles Techblog
  2. Blog
  3. Oles E-Mobilitäts Blog

ConnectedDrive WebApp für i3 und Plugins

  • Olaf Krause
  • 23. April 2017 um 09:39
  • 55.291 Mal gelesen
  • 9 Kommentare
Inhaltsverzeichnis [VerbergenAnzeigen]
  1. Änderungen zur V1 die oben beschrieben wurde:
  2. Die Verbrauchsanzeige springt auf 99.9kWh wenn z.B. der actuelle SOC Wert sich verringert hat das Fahrzeug aber nicht bewegt wurde (unednlich hohen Verbrauch pro km)
  3. Geplant für V3:
  4. Migration der Daten von V1 auf V2:
  5. Troubleshooting:

Web Applikation zum Selberhosten für BMW Fahrzeuge (i3, i8 & Hybride)

Dise ist die neue Version der App welche in Versteckte/geheime, aber wichtige Infos zum BMW i3 vorgestellt wurde.

Nochmals zum Hintergrund: 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 durch

  1. Das Webportal via Datenmitschneiden erhalten oder
  2. Via der BMW Server API abfragen

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).

Änderungen zur V1 die oben beschrieben wurde:

  • Wenn man auf den SOC Kreis klickt kommt man zu eine Graphikseite mit
    • MAX SOC Statistiken (Zeitskalen: täglich, wöchentlich, monatlich und alle Daten) und
    • ObenStreetMap für die eigene und die Fahrzeugposition


Hauptfenster und Statistiken: Tages, Wochen, Monatsstatistik & alle Daten

Anmerkungen zu den Anzeigen:

  1. Die Verbrauchsanzeige springt auf 99.9kWh wenn z.B. der actuelle SOC Wert sich verringert hat das Fahrzeug aber nicht bewegt wurde (unednlich hohen Verbrauch pro km)

  2. Verbrauch, Ladeleistung und letzte gefahrene Strecke bleiben bis zu einer Änderung erhalten (d.h. die letzte ladeleistung sieht man auch wenn man nicht mehr lädt)
  3. In der Die SOC_MAX Grafik
    1. Werden nur änderungen des Wertes angezeigt
    2. Es wird immer der Durchschnitt zwischen den Anzeigemomenten berechnet
    3. Bei mehr als 30 anzuzeigenden Werten wird die länge der Anzeigeperiode vergößert (außer bei Full Data)
  4. Die Positionsgrfik zoomt auf den Bereich um die eigene und Autoposition
  5. In manchen Brownsern (z.B. Chrome) funktioniert die eigene Positionsbestimmung nur bei HTTPS anbindung
  6. Die Position des Fahrzeugs kommt vom CD Portal (im Fahrzeug muss GPS aktiviert sein)

Geplant für V3:

  • CSV ersetzen durch eine SQL-DB um nicht in der Applikationdie Daten filtern zu müssen (Speicher und Performance)
  • Verbrauchs und Ladeleistungsstatistiken
  • Speicherung und Anzeige von Wetterdaten (auch historisch damit man später Statisitken über Winter, Sommerverbräuche etc. erstellen kann)
  • Anzeige der Positionen von Fahrzeug und Browser im letzten Monat/Jahr..
  • Lasst mich Wissen was für Euch interessant sein könnte

Installation
Requirements: Webserver (Apache und IIS getestet) PHP (5.6 und 7.1 getestet) Laufzeitumgebung (ich nutze IIS 8 und PHP 7.1.1) Je nach Browser muss man über HTTPS gehen ansonsten ist die Funktion zur eigenen Positionsbestimmung deaktiviert.

Getestete Browser: Google Chrome, Opera, FireFox, iCab, Safari, MS Edge (hier kommen die Grafiken in Fehlfarben)

 

Anzeige im MS Edge (wer weiss die Lösung?)

Eigentliche Installation:

  • Paket herunterladen
  • 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
<?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

Migration der Daten von V1 auf V2:

Eine Zeile am Anfang der Datei appstats.txt (welche sich nun im data Unterordner befindet!) hinzufügen

Code
DATE_TIME;TIMESTAMP;RANGE;SOC;ACT_SOC;MAX_SOC;REM_TIME;MILEAGE;CHARGEPOWER;CONSUMPTION;LAST_LEG;GPS_LON;GPS_LAT

Ohne diese Zeile kann die App die Daten nicht zuordnen.

Lizenzen der verwendeten 3pp Bibliotheken:

Chart.js:

The MIT License (MIT) Copyright (c) 2013-2017 Nick Downie
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

OpenLayers 4.1:

Licence: https://www.tldrlegal.com/l/freebsd

Troubleshooting:

Als erstes mal in Euer PHP Errorlog schauen - im Fehlerfall schreibe ich da auch Informationen rein.

Zweites sehr wichtiges Hilfsmittel zur Fehlersuche sind die Entwicklertools der Browser:

Opera, Chrome und FireFox Entwicklertools (hier Webkonsole)

Unter apache2 habe ich eine .htaccess zum Testen (ohne security headers und rewrite) die so aussieht - welche Sicherheitsfeature apache so bietet bitte auch selber nachlesen

Code
# Security
Options -Indexes
ServerSignature Off

# UTF-8
AddDefaultCharset utf-8

# Don't show PHP errors
<IfModule mod_php7.c>
    php_flag display_errors Off
</IfModule>

# Strip spaces
<IfModule mod_substitute.c>
    AddOutputFilterByType SUBSTITUTE text/html
    Substitute s/(\n|\t|\s\s+)//q
</IfModule>

# Restrict access
<FilesMatch "(^\.|\.(json|md)$)">
    order deny,allow
    deny from all
</FilesMatch>

# Mime types
<IfModule mod_mime.c>
    AddType image/x-icon            ico
    AddType text/cache-manifest     appcache
    AddType application/font-woff2  woff2
    AddType application/javascript  js
</IfModule>
Alles anzeigen

EEG: PV 20kWp - 90kWh Victron LFP Speicher; EVs: BMW i3 60Ah & Tesla M3 Gadgets im Fluss
3D Drucker: Voron 2.4 & Qidi X-Max + X-Plus; Schaut im Shop vorbei: https://www.elektrifiziert.net/shop/

  • Vorheriger Artikel GoogleMaps Location-Ort an Auto-i3 senden
  • Nächster Artikel eRUDA 2017 Planung

Kommentare 9

Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.

  • Smileys
  • :)
  • :(
  • ;)
  • :P
  • ^^
  • :D
  • ;(
  • X(
  • :*
  • :|
  • 8o
  • =O
  • <X
  • ||
  • :/
  • :S
  • X/
  • 8)
  • ?(
  • :huh:
  • :rolleyes:
  • :love:
  • :pinch:
  • 8|
  • :cursing:
  • :wacko:
  • :thumbdown:
  • :thumbup:
  • :sleeping:
  • :whistling:
  • :evil:
  • :saint:
  • <3
  • :!:
  • :?:
Olaf Krause
21. Dezember 2019 um 18:37
Autor
  • Inhalt melden

Scheint als hätte BMW socMax in socmax geändert Bitte Zeile
$display_data["stateOfChargeMax"] = number_format( round( $attributes->socmax, 2 ), 2, ',', '.');
im index.php file entsprechend ändern (also in socmax). Ist ca. Zeile 500.

Die Zeilen mit 0 solltet Ihr aus der appstats.txt Datei löschen (es müsste ca. am 9.12 angefangen haben, dass BMW das Label geändert hat).

Lucien Gaulard
9. Juli 2019 um 11:44
  • Inhalt melden

Hi,
Thank you for the App that I have installed under Linux CentOs without any problem. I have a question concerning the screen with the plot of the SocMax vs the timeline. When I click on the blue rectangle, the data with the SocMax disappears but nothing else appears even though the y-axis changes and has some negative values (in kWh): is this normal ? Is there a way to make something appear in this graph apart from the SocMax ?
Thanking you in advance for your response,
Best,
Lucien Gaulard.

Olaf Krause
21. Dezember 2019 um 18:22
Autor
  • Inhalt melden

Normal behaviour - was intented to add more values but never had time for it.

i3s fahrer
1. Mai 2019 um 10:02
  • Inhalt melden

Hallo.
Danke für die App-Aber eine Frage habe ioch zu Datum/zeit unter "mein i3 Status"
Da steht bei mir zwar ein Datum/Zeit, aber worauf bezieht sich die? Ich ndenke auf die letzte Aktualisierung vom Portal. Nur dann stimmt die zeit nicht. Stat 16:00 steht bei mir 22:00, und ein Zusatz mit WINTER.
Wie stell ich das richtig?
fg

Olaf Krause
21. Dezember 2019 um 18:35
Autor
  • Inhalt melden

Da wird der Zeitstempel der von BMW kommt mit der php function strftime umgewandelt. Winter oder Sommer kommt vom Webserver (ob er winter der sommerzeit hat). Unten im Fenster ist die Zeit des Webclients (browser)

andyp
18. Januar 2018 um 13:46
  • Inhalt melden

I have installed it on Apache and when I try to load the page, I get an error "Request failed: 424"
I have tried both the last 7 and the full VIN. I have checked my username and password.
I would appreciate any suggestions!
In the PHP Error Log:
[18-Jan-2018 13:42:28 Europe/Berlin] No remote token received - username or password might be wrongHTTP/1.1 302 Found
Date: Thu, 18 Jan 2018 12:42:28 GMT
Server: Apache
Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE, HEAD
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Authorization, Origin, X-c2b-Authorization, X-c2b-mTAN, X-Requested-With, X-c2b-Sender-Id, Content-Type, Accept, Cache-Control, KeyId
Max-Forwards: 20
Via: 1.0 lpb2vcn02 (BMW Group API Gateway)
X-CorrelationID: Id-3496605af1a0920100000000948894d7 0
Location: https://www.bmw-connecteddrive.com/app/default/st…r=access_denied
X-c2b-Exception: AuthenticationFailedAppException
X-c2b-request-id: WmCWNKAuoA4AAD6pKScAAADW
X-c2b-timestamp: 1516279348442
X-NodeID: 02
X-Powered-By: JOY
Content-Type: text/html; charset="utf-8"
Transfer-Encoding: chunked

Olaf Krause
22. Februar 2018 um 13:45
Autor
  • Inhalt melden

Full VIN has to be used WBY...VZ12345, you might debug the detailed response in your browser or via modifiying the php at line 101 in index.php (add some addiotinal printouts to see what exactly you got).

Olaf Krause
22. Februar 2018 um 15:13
Autor
  • Inhalt melden

And please triple check your auth.json for any not allowed or invisible characters messing up the user/pwd.
PLUS: ensure that your security stuff is not accessible from the internet!!

Olaf Krause
1. Januar 2018 um 20:01
Autor
  • Inhalt melden

Ab Microsoft Edge 41.16299.15.0 scheint es nun auch mit MS zu funktionieren (keine Änderung auf meiner Seite).
Und installiert das Updater https://okedv.dyndns.org/wbb/blog/index…-8-und-plugins/ um die latest Features zu bekommen.

Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.

  • Smileys
  • :)
  • :(
  • ;)
  • :P
  • ^^
  • :D
  • ;(
  • X(
  • :*
  • :|
  • 8o
  • =O
  • <X
  • ||
  • :/
  • :S
  • X/
  • 8)
  • ?(
  • :huh:
  • :rolleyes:
  • :love:
  • :pinch:
  • 8|
  • :cursing:
  • :wacko:
  • :thumbdown:
  • :thumbup:
  • :sleeping:
  • :whistling:
  • :evil:
  • :saint:
  • <3
  • :!:
  • :?:

Kategorien

  • Erneuerbare Energien und E-Mobilität
  • Computer und IT
  • Reisen
  • Auto

Archiv

  1. 2024 (1)
    1. November (1)
  2. 2020 (13)
    1. August (1)
    2. Juli (1)
    3. Juni (2)
    4. April (2)
    5. März (2)
    6. Februar (3)
    7. Januar (2)
  3. 2019 (17)
    1. Dezember (2)
    2. November (1)
    3. September (6)
    4. August (5)
    5. Juni (1)
    6. April (2)
  4. 2018 (6)
    1. November (1)
    2. Oktober (2)
    3. Januar (3)
  5. 2017 (7)
    1. November (1)
    2. September (1)
    3. August (2)
    4. April (2)
      • ConnectedDrive WebApp für i3 und Plugins
      • GoogleMaps Location-Ort an Auto-i3 senden
    5. Februar (1)
  6. 2016 (2)
    1. September (2)
  7. 2015 (6)
    1. Oktober (3)
    2. September (1)
    3. Juli (2)
  8. 2014 (22)
    1. August (3)
    2. Juli (3)
    3. Juni (2)
    4. Mai (6)
    5. April (2)
    6. März (6)

Tags

  • BMW
  • i3
  • ConnectedDrive
  • WebApp
  • CD
  • Plugin
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™ 6.1.8