BMW connected drive in IPS?

Hallo,

entschuldige bitte die verspätete Antwort, irgendwie ist mir das entgangen, das ich noch nix geschrieben hatte.

Vom Grundsatz her werden die Daten zyklisch geladen in dem Intervall, wie in der Modul-Konfiguration angegeben.

Es gibt eine Möglichkeit, das Intervall „von aussen“ zu ändern, um zB während des Ladezyklus eines E-Autos kürzer abzufragen und dann wieder auf normales Intervall zu gehen

BMW_SetUpdateIntervall(int InstanceID, int $Minutes)

wird als Minutes 0 übergeben, wird auf den Default zurückgestellt.

BMW_DataUpdate(int InstanceID)

würde die Daten auch laden, aber eigentlich ist dafür das Modul selbst da.

mit

BMW_GetRawData(int InstanceID, string Name)

kann man Teile der Original-Daten des vorigen Abrufs holen - Hintergrund ist, das nicht alle Daten im Modul ausgewertet und visualisiert werden. SO kann man selbst machen, was man will.
Also immer nur, das was im letzten Zyklus geholt wurde. Das ist (technisch gesehen)( auch nicht ein Abruf sonder eine Reihe von Abrufen, die immer bestimmte Bereich abdecken - für jeden Abruf gibt es dann diese RawData

Hmm, das zeigt mir aber eher, das da noch was nicht stimmt. das sind eigentlich die Basis-Funtionen, die alle BMW können,
ansonsten st das extrem unterschiedlich, was die einzelnen Moden/Baureihe liefern.

Hmm, das ist einer der vielen API-Abrufe, kommt drauf an, das BMW zu deinem Modell liefert.

Was sollten wir tun? Am besten

  • schick mir deine Konfiguration des Moduls (Passwörter unkenntlich machen !)
  • Modul-Ddbug einschalten und unbedingt die Anzahl der Nachrichten deutliche erhöhen (Nachrichten limitieren)
  • einmal Daten abrufen über die Modul-Funktion Fahrzeugdaten aktualisieren.
  • den ModulDebug in eine Datei sichern (wieder darin ausgegebene Passwörter löschen) und mir schicken

Das Ganze an demel42@web.de und dann schau ich mir das mal an

Gruß
demel

Hi,

danke für deine Hilfe! Ich schicke dir die Daten sobald wie möglich, kann 1-2 Tage dauern.

Viele Grüße
micheljarre

Habe dir eine Mail geschickt.

Viele Grüße!

Bekomme seit gestern Error Meldungen:

17.01.2020, 09:08:36 | TimerPool | BMW (BMWDataUpdate): <br />
<b>Fatal error</b>:  Uncaught TypeError: json_decode() expects parameter 1 to be string, bool given in C:\ProgramData\Symcon\modules\.store\fonzo.ipsymconbmw\BMW\module.php:1144
Stack trace:
#0 C:\ProgramData\Symcon\modules\.store\fonzo.ipsymconbmw\BMW\module.php(1144): json_decode(false)
#1 C:\ProgramData\Symcon\modules\.store\fonzo.ipsymconbmw\BMW\module.php(557): BMWConnectedDrive->GetDynamicData()
#2 C:\ProgramData\Symcon\scripts\__generated.inc.php(691): BMWConnectedDrive->DataUpdate()
#3 C:\Windows\System32\-(1): BMW_DataUpdate(12742)
#4 {main}
  thrown in <b>C:\ProgramData\Symcon\modules\.store\fonzo.ipsymconbmw\BMW\module.php</b> on line <b>1144</b><br />
Abort Processing during Fatal-Error: Uncaught TypeError: json_decode() expects parameter 1 to be string, bool given in C:\ProgramData\Symcon\modules\.store\fonzo.ipsymconbmw\BMW\module.php:1144
Stack trace:
#0 C:\ProgramData\Symcon\modules\.store\fonzo.ipsymconbmw\BMW\module.php(1144): json_decode(false)
#1 C:\ProgramData\Symcon\modules\.store\fonzo.ipsymconbmw\BMW\module.php(557): BMWConnectedDrive->GetDynamicData()
#2 C:\ProgramData\Symcon\scripts\__generated.inc.php(691): BMWConnectedDrive->DataUpdate()
#3 C:\Windows\System32\-(1): BMW_DataUpdate(12742)
#4 {main}
  thrown
   Error in Script C:\ProgramData\Symcon\modules\.store\fonzo.ipsymconbmw\BMW\module.php on Line 1144

Hallo,

das kommt daher, das Fonzo in dem Modul auf ‚strict_types‘ umgestellt hat und das ist php manchmal etwas „ungnädig“.
ich werde das asap korrigieren und Fonzo die Änderungen als PatchRequest schicken. Hoffe ich komme morgen dazu

demel

Version 1.9 von demel42 ist in Beta Branch verfügbar und sollte den Fehler hoffentlich beheben.

seit dem 10.12.2019 laufen bei mir beim Parameter „maximale Ladekapazität“ keine Werte mehr ein.
Alles andere funktioniert tadellos.
Hat jemand eine Idee voran das liegen könnte?

mach mal ein Debug (bitte Anzahl Zeilen in ‚Limitierung‘ im Debug-Fenster hochstellen) und schick mir den an demel42@web.de
Dazu bitte den vermutlichen Wert, den du erwartest

gruß
Demel

Der String von BMW hat sich geändert (am 10.12.). Ich meine es war nur Gross-/Kleinschreibung (neu ‚socmax‘ anstatt bisher ‚socMax‘).

lg, kjb

Hallo,

danke für die Info, Ich hatte das gestern auch gesehen und werden für fonzo ein PR erstellen, nur heute geht’s etwas drunter und drüber …

gruß
demel

Funktioniert wieder! Vielen Dank.

Hallo,

bei mir funktionieren ausschließlich die Remote Services nicht (also Klima, Verriegeln etc) der Rest geht tadellos.

Hat jm eine Idee diesbezüglich?

VG

Hallo,
die Remote-Services müssen aktiviert sein (geht glaube ich auf den BMW-Webseite / BMw-Cockpit) , klappen diese Funktionen, wenn du die original BMW-App benutzt?

demel

Hallo, ja die Remote Services sind aktiviert und funktionieren mit der BMW APP und auch mit Amazon Alexa. IPS hat auch Verbindung zum Server und ruft zyklisch störungsfrei alle Daten ab. Nur am Push hängts noch…

VG

schick mir doch mal den IO-Debug, wenn du so ein RemoteService aufrufst.
Problem ist, das die API ja inoffiziell ist und völlig undokumentiert.

gruß
demel

Hallo anbei der IO- Debug

30.10.2020, 09:27:57 | CheckToken | token=NslqOR9dOCq36c8educpGxxxxxxxxxxx
30.10.2020, 09:27:57 | GetBMWServerURL | use server location Germany, url=https://www.bmw-connecteddrive.de
30.10.2020, 09:27:57 | SendBMWAPI | url=https://www.bmw-connecteddrive.de/api/vehicle/remoteservices/v1/WBY1Z6xxxxxxxxxxx/RCN
30.10.2020, 09:27:57 | SendBMWAPI | header=Array
(
[0] => Content-Type: application/json
[1] => Authorization: Bearer NslqOR9dOCq36c8educpGxxxxxxxxxxx
)
30.10.2020, 09:27:57 | SendBMWAPI | postfields=Array
(
[serviceType] => CLIMATE_NOW
)
30.10.2020, 09:28:00 | SendBMWAPI | got http-code 503
30.10.2020, 09:28:00 | SendBMWAPI | response=
30.10.2020, 09:28:00 | StartClimateControl | service=RCN, action=CLIMATE_NOW, result=

VG und danke vorab!

Hmm, er meldet http-erro 503 (Service Unavailable)

Ich habe gerade mal bei mir probiert, die Tür zu verriegeln -> gibt den gleiche http-error. Es scheint also, das die in dem Interface was geändert haben…

@alle: falls jemand das Modul im Einsatz hat, könnt ihr mal verifizieren, ob das bei jemandem überhaupt noch klappt?

danke
demel

Habs probiert.

Scheint zu funktionieren, schau:

TXT: 31.10.2020 18:57:11.00 | CheckToken | token=I…
TXT: 31.10.2020 18:57:11.00 | GetBMWServerURL | use server location Switzerland, url=https://www.bmw-connecteddrive.ch
TXT: 31.10.2020 18:57:11.00 | SendBMWAPI | url=https://www.bmw-connecteddrive.ch/api/vehicle/remoteservices/v1/WBA…
TXT: 31.10.2020 18:57:11.00 | SendBMWAPI | header=Array<LF>(<LF> [0] => Content-Type: application/json<LF> [1] => Authorization: Bearer I…<LF>)<LF>

TXT: 31.10.2020 18:57:11.00 | SendBMWAPI | postfields=Array<LF>(<LF> [serviceType] => DOOR_LOCK<LF>)<LF>
TXT: 31.10.2020 18:57:13.00 | SendBMWAPI | response=<?xml version=„1.0“ encoding=„UTF-8“ standalone=„yes“?><remoteServiceResponseDO><nextRequestInSec>10</nextRequestInSec><remoteServiceEvent><remoteServiceType>RDL</remoteServiceType><remoteServiceStatus>PENDING</remoteServiceStatus><eventId>42303332313737273061F900@bmw.de</eventId><created>2020-10-31T18:57:13.378+01:00</created><lastUpdate>2020-10-31T18:57:13.378+01:00</lastUpdate></remoteServiceEvent></remoteServiceResponseDO>
TXT: 31.10.2020 18:57:13.00 | LockTheDoors | service=RDL, action=DOOR_LOCK, result=<?xml version=„1.0“ encoding=„UTF-8“ standalone=„yes“?><remoteServiceResponseDO><nextRequestInSec>10</nextRequestInSec><remoteServiceEvent><remoteServiceType>RDL</remoteServiceType><remoteServiceStatus>PENDING</remoteServiceStatus><eventId>42303332313737273061F900@bmw.de</eventId><created>2020-10-31T18:57:13.378+01:00</created><lastUpdate>2020-10-31T18:57:13.378+01:00</lastUpdate></remoteServiceEvent></remoteServiceResponseDO>

hmm, scheint so.
bei mir weiterhin nicht. wird bei dir der Verlauf der remote-services gefüllt?
ich habe änderungen in der api gefunden und kann anscheinend wieder die remote-services auslösen.
muss aber noch basteln. frage ist nur, ob das dann auch in CH noch funktioniert …

demel

Hi.
Mache ich gerne, aber wo wäre das mit Verlauf? Ich kann gerne testen, lass es mich wissen. Wie immer.
Gruss aus CH
Danny