BMW connected drive in IPS?

Ja, mein 530e hat sofort funktioniert.

Hallo Christian.

Danke Dir vielmals für das Test Script.
Ich habs gerade mal angepasst (Achtung: Zeile 43 noch ein Schreibfehler).
Das läuft auch ohne Fehler durch und bringt „httpcode=302“.

jetzt müsstest Du mir noch sagen, welche qry ich denn zum Testen anpassen sollte, da bin ich nicht sicher ob ich das auch gefunden habe.
Mache gerne weitere Tests oder interaktive Session, damit wir das auch für Hybride hinkriegen vielleicht.
Gruss
Danny

Habs glaub gefunden, was Du meinst:
//$qry_url =
Wenn ich jeweils eine der Zeilen unkommentiere, kommt trotzdem nur immer HTTP302.
Bei den Zeilen mit V1 aber dann ein Fehler mit unexpected.
Gruss
Danny

sorry, war eine „Verbesserung“ in letzte Sekunde …
tausch mal die Zeile 43 aus durch:

if ($httpcode != 302) {

also die 200 durch die 302 ersetzen. den gleich Schreibfehler (‚httpconde‘) auch am ende des Scriptes korrigieren

Hi.

Danke bestens, das hat so geklappt. Ich krieg jetzt doch Daten zurück:


 httpcode=302
response=HTTP/1.1 302 Found
Date: Mon, 16 Apr 2018 18:16:08 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-68e8d45a04fa900000000000378c2710 0
Location: https://www.bmw-connecteddrive.com/app/default/static/external-dispatch.html#access_token=xRNYn9J9Wq8ISB3o8Yg8oI3b21rfub5T&token_type=Bearer&expires_in=7199
X-c2b-request-id: WtToaKAuoA8AAHVKxMgAAASK
X-c2b-timestamp: 1523902568038
X-Frame-Options: SAMEORIGIN
X-NodeID: 02
X-Powered-By: JOY
Content-Type: text/html; charset="utf-8"
Set-Cookie: SMSESSION=eyJjdHkiOiJKV1QiLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIiwiYWxnIjoiQTI1NktXIn0.qLqIDr7Sa2BfRi-AX5T-fzRzNVXmOlvG4q3eUvG-8kRsUHPJpm7KANexOiUu2eebh6eINIezer0a6c4LCfUk5gkXOlTBQJQp.6A77SnIvGakkGRFwPVzNgw.o6059ItnU_vsrqQna2-NVEI2eQQZckvWJ0H0VGUYpG6Zxz7PQKUVZhTrHb-pViXSYXOuKdNH2bbJ8PFbpk_OoNvA39C-S2WoBgVWa5sGDkJ1LMDouIWgv0S-giTrlc4MkspbV6IKQ7HWizqkTFOihLVt9yiCZXONrxLLiREwsKfyuCMN6bFbzNLa7wgJ80M5VMBd1MZzayTPt3vwzzFNQ_CmSMYjnESRwuNj0Jm7NTtknxxGW2IE8ewpxAvPzea6rMFNp_B7XtQwy7bFzCEz6sJ0Wol5aU6Jp-Vb4aDTCc-1vubg0pl-EXw8b7qveSQYoKB2nIBvRNFwwcPOaWBZMPPZ9lJAxJEEI4Kc8SWSqa0jUhuD2mrJictrPz5DYBsLbio8-LMhYdmih21ii_jSsPkZCZ4vGcC7wz2vLICCvXzXY39nwVVhp_sJsepNwTe6K0tn8QgKO1q8xTIUzio5NCU8YOh9IX9neCh-oW5GTszRT81cHV9em9HN7sHD_AIGXPcwNHmvX-3r0-tGPAMqgn3Twl1NMcgiL8TCfvTL-KJgP9ZY6ky7LH1vzkbaXU6mzdwX_Y3LDrcuhU5YHUr4EN8CwVkXhM55W8cfHUp9ZJJHyyQrIJSxFsOJBdifc9_H-V7K5ZcRNUKhHDxytQy6txWZmz_KmDDWyCrJRkXkFBs1IntuF41ccjXvV8AgrMSdVHopIKVRFdEcCeEc5gyCKmyqA-mOFm73ANlTwUFAMgf-OVhV-UG3nPe6PZHkQxEdEorDxs0WlC-xQH3mRwhwytjYcH6a5GxW4wqi0NzSkxaXWJwHC1RHpOrkFzfCJRc90Lp7RPjkNlF_izj1ZM5nQccdjCNKLtp7gWM48gSLQqFLNTd3tr0Ob0a_yp8En97ct-hNuV15yYchnF9seqnqWeEC-vGw8ZsUaSfZlkauHCQ.9ESO4sia5vCdTK4V1sFTV7FtItWEoAzgItmFIV1M5e0;Domain=customer.bmwgroup.com;Path=/;secure
Transfer-Encoding: chunked


accesstoken=xRNYn9J9Wq8ISB3o8Yg8oI3b21rfub5T
httpcode=200
response=[ {
  "series" : "5",
  "basicType" : "530E IPERFORMANCE",
  "bodyType" : "Limousine",
  "brand" : "BMW",
  "modelName" : "530e iPerformance",
  "vin" : "WBAJAxxxxxxx",
  "dcOnly" : false,
  "hasNavi" : true,
  "hasSunRoof" : false,
  "doorCount" : 4,
  "hasRex" : false,
  "steering" : "LEFT",
  "driveTrain" : "PHEV",
  "supportedChargingModes" : [ "AC_LOW" ]
} ]


Das war mit
$qry_host = ‚www.bmw-connecteddrive.ch‘;
$qry_url = ‚/api/me/vehicles/v2‘;

Gerne teste ich noch mehr.

Gruss
Danny

erste Frage: ist die dort ausgegebene VIN auch die, die Du in der Konfig angegeben hast? in einem frühem Ausschnitt stand da WBJA …, hier steht WBAJA…

und was passiert, wenn du die anderen URL’s ausprobierts?

Hallo Christian.

Die anderen URLs, z.B. wenn ich BMW ConnectedDrive Kundenportal – digitale Vernetzung zu Ihrem BMW. verwende, bringen ein Fehler 400 zurück.
Ich mache das schon am richtigen Ort, oder?
Die VIN ist wirklich WBAJA90…

Gruss
Danny

Aber in den früher (12.4.) von dir dokumentierten Protokoll steht


Send to url: https://www.bmw-connecteddrive.ch/api/vehicle/dynamic/v1/WBJA91020B032177?offset=-120

Und da fehlt das erste ‚A‘. Und in der URL wird die BIN aus der Konfiguration eingetragen. Kannst Du bitte nochmal die Konfiguration der BMW-Instanz zu kontrollieren, nur um sicher zu sein?
Also bitte mit der VIN vergleichen, die die in der Statusabfrage geliefert wurde.

Hi.
Ich denke, dass Dein Gefühl Dich nicht getäuscht hat. Ich habe die VIN nochmals kopiert (vermutlich wars wirklich ein typo oder ein space am Schluss).
Jetzt komme ich zu den Daten. Auf alle Fälle die meisten.
Es gibt noch ein paar Fehler, welche ich im Moment nicht eingrenzen kann. Ich mal einige der Optionen deaktiviert und schrittweise wieder angeschaltet, der untenstehende Fehler kommt aber immer:

connected-ips-error.png

Hast Du hier vielleicht doch noch einen Tip zum Schluss?
Auf alle Fälle schon jetzt herzlichen Dank für Deine Geduld und super Hilfe.
Danny

so direkt noch nicht.

  1. Frage: ist das Modul aktuell? Hintergrund: ich finde in dem Modul ( also /var/lib/symcon/modules/IPSymconBMWConnectedDrive/BMW/module.php ) das Wort RCP nicht und besonders nicht auf der genannten Zeile.
  2. Kannst du den Datensatz mal aufzeichnen, der das auslöst?

Gerne

hallo richimaint,

Hallo,

ich habe mal geschaut, ob ich eine Fehler finde:

Kannst Du in dem Modul.php mal in Funktion GetRemoteServices()

das

        if ($html) {
            $this->SetValue('bmw_history', $response);
        }

durch das

       if ($html) {
            $this->SetValue('bmw_history', $html);
        }

zu ersetzen?

Bei mir erscheinen dann wieder eine (einfach formatierte) Tabelle

Ich habe zwar den commit noch nicht gefunden, wo das möglicherweise geändert wurde, aber richtig scheint mir das nicht zu sein.

@fonzo: kannst Du dir auf diese Änderung einen Reim machen?

gruß
christian

@demel42

Habe es geändert, sieht schon besser aus:D

ok, prima. ich würde die Tabelle dann noch etwas „aufhübschen“ und dann fonzo einen PR machen.

Du hattest, wenn ich das richtig lese, das Modul geupdated und vorher ging es? Das wundert mich insofern, weil ich bisher keine Änderung gefunden habe, die zu einer solchen „Verschlimmbesserung“ passt (und alles, was ich nicht nachvollziehen kann, irritiert mich).
Kannst du den Zeitraum eingrenzen, wann Du vorher geupdated/installiert hattest (dann kann ich die Suche vielleicht eingrenzen)?

Hallo Chris.

Kann bestätigen, dass das Modul aktuell ist. Habs gerade nochmals überprüft.
Es wird wohl etwas mit dem Ladezustand zu tun haben. Diese Infos fehlen auf der Seite.

Darf ich Dir den Debug per PM senden? Liest sich vielleicht besser als wenn ich das hier poste.

Danke und Gruss
Danny

logisch, kannst auch direkt an meine Mailadresse schicken

Ich denke zum 26.01.2018 hat alles noch funktioniert. Dann war eine Weile Funkstille. Am 18.02. Post #175 gab es auch schon Probleme damit von „BestEx“. Wann ich welche Update´s gemacht habe kann ich nicht sagen.Habe willkürlich wenn eins anstand, durchgeführt.

Grüße
Marco

nzi: ich habe den commit mit dem Fehler gefunden und für fonzo ein PR gemacht. Tabelle ist auch ein bisschen hübscher (Datum links und etwas Abstand zwischen den Spalten)
sollte also demnächst updatebar sein.

hallo,

ich bin dabei für dmeyer8803 weitere Daten für den 530e als Variablen zur Verfügung zu stellen und habe bisher Ladezustand & Reichweite identifiziert. Du schreibest hier von weiteren Daten? Wenn Du mir passende Informationen gibst, würde ich die Variable gleich mit einbauen

gruß
demel

Ich habe das jetzt so übernommen und gemerged, sollte jetzt also mit einem Modul Update verfügbar sein.

Hi,

ich übernehme derzeit via Script folgende Daten als Variablen:


<?

  $Dynamics = json_decode( GetValueString( XXXXX /*[BMW 530e Connected Drive\Interface Dynamic]*/ ) );
  
  //if ( GetValueString( XXXXX /*[letztes BMW Connected Drive Update]*/ ) == $Dynamics->attributesMap->updateTime_converted ) return;
  
  SetValueString( XXXXX /*[BMW 530e Connected Drive\via Skript\letztes BMW Connected Drive Update]*/, $Dynamics->attributesMap->updateTime_converted );
  
  SetValueFloat( XXXXX /*[elektrische Restreichweite]*/, $Dynamics->attributesMap->beRemainingRangeElectricKm );
  SetValueFloat( XXXXX /*[Akku Ladestand]*/, $Dynamics->attributesMap->chargingLevelHv );
  SetValueString( XXXXX /*[Ladestatus]*/, $Dynamics->attributesMap->charging_status );
  SetValueString( XXXXX /*[Verbindungsstatus]*/, $Dynamics->attributesMap->connectorStatus );

  if ( $Dynamics->attributesMap->connectorStatus == "CONNECTED" )
  {
    $LadungFertig = "100% geladen";
	if ( floatval( $Dynamics->attributesMap->chargingTimeRemaining ) > 0 ) 
	{
	  $dateTime = new DateTime( date('Y-m-d H:i:s', time() ) );
	  $Minutes = (integer) floatval( $Dynamics->attributesMap->chargingTimeRemaining );
	  $addMinutes = 'PT'.$Minutes.'M';
      $dateTime->add(new DateInterval($addMinutes));
	
      $LadungFertig = "vollständig geladen um ".$dateTime->format( 'H:i:s' );
	}
    SetValueString( XXXXX /*[vollständig geladen]*/, $LadungFertig );
  }
  else
    SetValueString( XXXXX /*[vollständig geladen]*/, 'Fahrzeug nicht angeschlossen' );
?>

Dem charging_status und connectorStatus würde ich noch ein Profil verbinden, um CONNECTED oder CHARGINGENDED sprechender darzustellen.

Was auch ggf. praktisch wäre wäre ein dynamisches Update-Intervall. Wenn nicht angeschlossen langsamer als wenn am laden. Ob zuhause geladen wird kann ich über meine Wallbox abfragen und dann DataUpdate (und schneller zu aktualisieren).

Gruss
Coyote