BMW connected drive in IPS?

Es gibt ein Update mit Änderungen von demel42.

Hallo,

Achtung: es gibt diverse Überarbeitungen und Ergänzungen in dem Modul:

  • Absichern aller Zugriffe auf Variablen, die ggfs. gemäß Konfiguration (Propery) nicht aktiviert sind
  • Option zu Deaktivieren des Fahrzeugbildes
  • Option zu getrennten Verriegeln/Entriegeln-Funktionen (für ältere Modelle ohne Verschlußstatus-Information)
  • Funktion zum Setzen des Update-Intervalls per Script um z.B. während des Labdevorgangs das Update-Intervall zu verkürzen
  • Löschen der Variablen mit den JSON-Daten, statt dessen Zugriffsfunktion (BMW_GetRawData())
    statt vorher:
$s = GetValueString(4711 /*[Fahrzeuge\BMW\bmw_dynamic_interface]*/);

können die Daten nun so geholt werden:

$s = BMW_GetRawData(1234 /*[Fahrzeuge\BMW]*/, 'bmw_dynamic_interface');
  • Token ist kein Property mehr
  • Abfangen einiger HTTP-Codes (401, 405), hier liefert BMW eine Grafik, das führte zu Fehlern in der json-Verarbeitung

Es ist einige Tage sowohl konventionell als auch elektrisch getestet worden, von daher hoffe ich das Beste :smiley:

gruß
christian

Danke euch allen.
Klappt bestens.
Gruss
Danny

Hallo zusammen,

wollte jetzt mal wieder das Modul installieren - hat sich ja wirklich einiges getan seit den ersten Tagen :slight_smile:

Leider bekomme ich beim Anlegen der Instanz folgende Fehlermeldung:

BMW.PNG

Mach ich was falsch?

Danke Pitti

hi,

ich würde sagen, das du noch profile im system hattest, die einen anderen Datentyp haben als jetzte erwartet.
Wenn ich die Zeile 290 anschaue steht dort BMW.TankCapacity vom Typ float.

Am besten ist es, wenn du
a) alle BMW.* - Profile löscht
b) das Modul de- und dann wieder neu installierst ( oder ein MC_ReloadModule() aufrufst )

gruss
demel

Danke demel, die Profile waren es.

Super Arbeit - Danke!

Ich bin heute über euer Modul „gestolpert“ und möchte mich herzlich bei euch bedanken!
Damit habe auch ich, als Programmierlaie, die Möglichkeit Werte meines i3 direkt auszulesen und für weiter Steuerung/Dokumentation zu verwenden.
Jetzt kann ich endlich die Batterie bis zum gewünschten SoC laden und muss nicht immer vollladen.
Bisher habe ich dazu immer die Energeriemenge berechnen müssen und das war mir irgendwann zu umständlich.
Jetzt kann ich direkt den SoC auslesen und gezielt bis zum gewünschten SoC laden.
Das einzige was nicht funktioniert ist die Kartenanzeige.
Kann ich da etwas falsch gemacht haben?

Was ich mir, als Fahrer eines älteren Elektroautos (115tkm), noch wünsche ist die Angabe des SoC und SoCMax in kWh.
Mit dem Befehl „bmw_navigation_interface“ bekomme ich zwar die Information, aber leider bin ich nicht in der Lage diese Werte aus dem String zu isolieren.
Wäre toll wenn die Werte vom Modul mitgeliefert werden könnten.

Wie sieht der Antwort aus bzw. wie der Inhalt von „bmw_navigation_interface“? Wie lautet der Typ des Autos, dann könnte man zumindest abhängig vom Fahrzeugtyp noch die passenden Variablen anlegen.

Es handelt sich um einen i3 mit Rex. 03/2014.
Bekomme folgendes beim Aufruf des Befehls geliefert:

{
„latitude“ : 47.80442,
„longitude“ : 11.644231,
„isoCountryCode“ : „DEU“,
„auxPowerRegular“ : 1.4,
„auxPowerEcoPro“ : 1.2,
„auxPowerEcoProPlus“ : 0.4,
„soc“ : 16.39699935913086,
„socMax“ : 16.4,
„eco“ : „55e,3d6,354,354,322,37c,470,4e1,553,636,719“,
„norm“ : „660,48e,38c,38c,438,4b1,563,5ec,676,78a,89e“,
„ecoEv“ : „55e,3d6,354,354,322,37c,470,4e1,553,636,719“,
„normEv“ : „660,48e,38c,38c,438,4b1,563,5ec,676,78a,89e“,
„vehicleMass“ : „1400“,
„kAccReg“ : „2412000“,
„kDecReg“ : „3240000“,
„kAccEco“ : „2520000“,
„kDecEco“ : „3240000“,
„kUp“ : „3132000“,
„kDown“ : „3384000“,
„driveTrain“ : „bev_rex“,
„pendingUpdate“ : false,
„vehicleTracking“ : true
}

Die Werte in Zeile 7 und 8 sind die die mich interessieren.
Wie man an dem Wert sieht zeigt mein Akku Anzeichen von Schwäche (hatte zu Beginn 19.4kWh SOCMax).
Ist aber wohl auch ein Thema des Balancings durch die Software, daher wäre ein Monitoring für mich sehr interessant.
Durch eine neue Initialisierung der Akkuzellen durch die Werkstatt konnte der Wert (und damit die Reichweite meines Autos) deutlich gesteigert werden.
Soviel zum Hintergrund meines Wunsches den Wert in IPS monitoren zu können.

hi fonzo,

ich habe mal nachgeschaut, bei einem 530e steht auch soc und socMax in den Daten drin. Könnte man annehmen, das das zu e-Modelle gehört?

Soll ich das einbauen oder machst du?
Ich bin allerdings einige Tags dienstlich unterwegs, würde eher Wochenende werden.

@spiderman: gibt es eine Bezeichnung für die Abkürzung ‚soc‘? Wie wird das in der offiziellen BMW-ConnectedDrive-Webseite bezeichent?

demel

SOC = State Of Charge, Ladeszustand hier in kWh nicht in Prozent!
Auf der offiziellen Seite werden die Werte nicht angegeben. Sie werden auch im Auto offiziell nicht angezeigt.
Es gibt ein „geheimes“ Service-Menu in dem man die Werte auslesen kann.
Gerade deswegen ist es so interessant sie dann in IPS verfügbar zu haben.
BMW benutzt die Daten scheinbar nur für Berechnungen, gibt sie aber nicht Preis! Nur hieran kann man sehen was der Akku wirklich noch „drauf“ hat.

Hallo,

Free-Wifi sein Dank habe ich schon Zeit gefunden, mich hiermit zu befassen und eine Änderung vorzubereiten.

Um die zu testen, bitte

  1. das Modul löschen (die Instanz nicht löschen)
  2. das Modul mit dieser URL GitHub - demel42/IPSymconBMWConnectedDrive: PHP module for IP-Symcon 4.3 an BMW Connected Drive erneut installieren.

Wenn es nicht funktioniert, kann Du das einfach auf dem gleichen Weg wieder auf das Original-Repository zurück stellen.

Bitte in dem Fall, wenn es nicht funktioniert, ein Debug erstellen und mit schicken.

Ich kann es leider nicht testen denn ich habe nur ein Standard BMW (kein e-Modell oder Hybrid).

Wenn die Änderung gut ist würde ich Fonzo ein PR machen, damit das in den Hauptzweig einfliesst.

demel

Das geht ja wirklich schnell hier!
Die Variablen werden angezeigt aber keine Daten aktualisiert. Zeigt immer 0 an. Bei aktualisierung steht „Nie“.
Ich weiß leider nicht wie ich das Debug File anhängen kann.

Nach Deiner Änderung des Moduls funktioniert es jetzt. Die SoC-Werte werden korrekt angezeigt.
Super Sache!!! Vielen Dank.

Das mit der Karte liegt daran, das man GoogleMaps-Karten nicht mehr ohne API-Key aufrufen kann. Beschreibung, wie man den holt, siehe hier.

Daher habe ich die Möglichkeit eingebaut, das man in der Konfiguration den API-Key angeben kann.

Bitte Modul noch mal aktualisieren. Wenn ok, würde ich die gesammelten Änderungen als PR fertigmachen und Fonzo geben.

Gruß
demel

Ich habe eine API-Key erstellt und eingetragen. Das mit der Karte funktioniert aber troztdem nicht.
Ich bin mir allerdings auch nicht sicher ob ich beim erstellen des Keys alles richtig gemacht habe.

hmm, das ist jetzt schwer zu sagen. Hast du das entsprechende API-Interface im GoogleMaps aktiviert (static-map)? (steht in dem verlinkten README.md in meine post).

Leider sieht man nicht viel, ausser das das ein leeres Bild angezeigt wird bzw. ein „zerbrochenes“ oder wie bei dem Browser ein defektes Bild-URL angezeigt wird (bezogen auf die IPS-Visualisierung in einem Webbrowser).
Wenn man auf dem Image klickt (mit rechte Maustaste) gibt es i.d.R ein Menüeintrag „Bild anzeigen“. was steht dann im Browser?

Die HTML-Box (und damit die URL) wird nur neu erstellt, wenn neuen Daten von BMW geholt werden, der Zoom-Faktor oder der Kartentyp geändert wurde.

demel

Ich bekomme folgenden Text gezeigt:

The Google Maps Platform server rejected your request. This API project is not authorized to use this API. Please ensure this API is activated in the Google Developers Console: Google Cloud Platform

Ok. Static-Map fehlte. Ich habe jetzt einfach alle APIs aktiviert. Jetzt bekomme ich die Karte angezeigt wenn ich auf „in einem neuen Tab öffnen“ gehe.
Innerhalb IPS zeigt er die Karte aber nicht an.
In Chrome funktioniert auch das nicht. Da kommt folgende Meldung:
The Google Maps Platform server rejected your request. This IP, site or mobile application is not authorized to use this API key. Request received from IP address