NEWS
Adapter: bmw zum Auslesen von BMW's ConnectedDrive Daten
-
dann habe ich mal auf aufsperren geklickt.
Als Fehler kam: bild1.jpg
mfg
Dieter `
Hi bahnur!
Danke für die ÜM. Habe ein neues remoteservice in deinem log gefunden welches es bei mir nicht gibt :````
[b]RCT[/b]Wenn du mal in der normalen BMW-App schaust kannst du mir vielleicht sagen wofür es ist, ich kenne bis jetzt: RCN: 'StarteKlima', RDL: 'Versperren', RDU: 'Aufsperren', RHB: 'StarteHupe', RLF: 'StarteLichthupe' Ich werde mal nachsehen ob ich den Fehler nachvollziehen kann. Übrigens, schalte mal (wie im vorigen Post beschrieben) auf debug! und schick mir die __****_originalData****__ der ****navigation**** und ****dynamic**** . In ioBroker.admin/objekte erscheint wenn du über den 'Wert' (ziemlich rechts) eines Objektes mit der Maus gehst ein icon welches beim Klicken den Wert in die Zwischenablage übergibt. p.s.: wie schon besprochen kann es zwei navi-Daten geben , einmal in dynamic und einmal in navigation, sie enden mit lot/lng oder latitude/longitude. Kannst ja mittels google-maps selbst die Position anzeigen: ` > [https://www.google.at/maps/@Breitengrad … ,16z?hl=de](https://www.google.at/maps/@Breitengrad,L%C3%A4ngengrad,16z?hl=de) ` und den Breitengad durch die Latidude bzw. den Längengrad durch die longitude ersetzen.
-
so, 1. Rückmeldung.
habe debug! eingegeben
Bei den Objekten unter Navigation ist sofort ersichtlich, dass er die Daten ladit… und long.. geändert hat.
Vor debug! standen dort noch alte Werte.
Fazit:
debug! hat definitiv die Werte geändert. Warum, wieso weiß ich nicht.
Die Daten sind per pn auf dem Weg.
-
mir ist noch etwas aufgefallen.
Unter dynamic gibt es "remaining fuel"
Hier steht 40
Müsste doch heißen; es sind noch 40 Liter im Tank, richtig?
Da ich fast leer bin stimmt die Zahl nicht.
mfg
Dieter
-
so, 1. Rückmeldung.
habe debug! eingegeben
Bei den Objekten unter Navigation ist sofort ersichtlich, dass er die Daten ladit… und long.. geändert hat.
Vor debug! standen dort noch alte Werte.
Fazit:
debug! hat definitiv die Werte geändert. Warum, wieso weiß ich nicht.
Die Daten sind per pn auf dem Weg. `
Bahnuhr, 'debug!' ändert keinen Wert sondern speichert sie nur in log und '_originalData'!
Allerdings können keine Standortdaten während der Fahrt ausgelesen werden, nur wenn das Fahrzeug die Zündung ausstellt (oder vom Fahrzeug ein Unfall gemeldet wird) werden die Daten übertragen (wie ich gehört habe).
Solange bleiben die Daten wie sie waren da der Adapter nur dann die Daten ändert wenn sich diese ändern!
p.s.: Ich kann nur die Daten verarbeiten die ich von BMW bekomme
-
@fsjoke:Bahnuhr, 'debug!' ändert keinen Wert sondern speichert sie nur in log und '_originalData'! `
War aber bei mir so.Sobald ich diesen debug eingegeben hatte wurden die Werte geändert. Warum, wieso weiß ich nicht.
@fsjoke:… nur wenn das Fahrzeug die Zündung ausstellt ... werden die Daten übertragen ... `
Im Adapter stand gestern abend als Adresse "Eichenzell".Heute morgen gefahren von Eichenzell nach Bad Vilbel.
Ankunft in Bad Vilbel um ca. 8.15 Uhr.
Um 10.00 Uhr bei Objekten geschaut. Es steht immer noch Eichenzell drin.
Dateien werden irgendwie nicht geändert.
@fsjoke:p.s.: Ich kann nur die Daten verarbeiten die ich von BMW bekomme `
Ja das ist schon klar. Danke nochmals für deine Arbeit.Aber irgendwie klappt das bei mir nicht so wie gewollt.
Werde heute abend mal (Tür auf, zu, Lichthupe, Klima) testen.
Mal schauen ob da noch die Fehlermeldung kommt.
mfg
Dieter
-
Hi fsjoke,
hier nun die debug auswertung. Allerdings steht da nur, dass der Request versendet wurde.
Der fehler ist dann, dass dell.includes keine Funktion ist.
!
! bmw.0 2017-09-13 11:50:41.814 info BMW car WBAxxxxxxxxxxxxxx with 0 data points received bmw.0 2017-09-13 11:50:41.814 warn Error in covert car data: TypeError: dell.includes is not a function bmw.0 2017-09-13 11:50:40.946 info debug: Request specs for WBAxxxxxxxxxxxxxx on /api/vehicle/specs/v1/WBAxxxxxxxxxxxxxx bmw.0 2017-09-13 11:50:40.945 info debug: Request service for WBAxxxxxxxxxxxxxx on /api/vehicle/service/v1/WBAxxxxxxxxxxxxxx bmw.0 2017-09-13 11:50:40.943 info debug: Request servicepartner for WBAxxxxxxxxxxxxxx on /api/vehicle/servicepartner/v1/WBAxxxxxxxxxxxxxx bmw.0 2017-09-13 11:50:40.942 info debug: Request remote_history for WBAxxxxxxxxxxxxxx on /api/vehicle/remoteservices/v1/WBAxxxxxxxxxxxxxx/history bmw.0 2017-09-13 11:50:40.939 info debug: Request remote_execution for WBAxxxxxxxxxxxxxx on /api/vehicle/remoteservices/v1/WBAxxxxxxxxxxxxxx/state/execution bmw.0 2017-09-13 11:50:40.938 info debug: Request navigation for WBAxxxxxxxxxxxxxx on /api/vehicle/navigation/v1/WBAxxxxxxxxxxxxxx bmw.0 2017-09-13 11:50:40.937 info debug: Request dynamic for WBAxxxxxxxxxxxxxx on /api/vehicle/dynamic/v1/WBAxxxxxxxxxxxxxx?offset=-120 bmw.0 2017-09-13 11:50:40.936 info debug: Request efficiency for WBAxxxxxxxxxxxxxx on /api/vehicle/efficiency/v1/WBAxxxxxxxxxxxxxx bmw.0 2017-09-13 11:50:40.688 info debug: Command to refresh data received from system.adapter.admin.0 bmw.0 2017-09-13 11:50:40.686 info debug: stateChange called forbmw.0._RefreshData = { val: true, ack: false, ts: 15xxxxxxxxxxx, q: 0, from: 'system.adapter.admin.0', lc: 15xxxxxxxxxxx } bmw.0 2017-09-13 11:50:25.273 info BMW Adapter initialization finished, will scan ConnectedDrive every 60 minutes. bmw.0 2017-09-13 11:50:25.262 info BMW car WBAxxxxxxxxxxxxxx with 0 data points received bmw.0 2017-09-13 11:50:25.261 warn Error in covert car data: TypeError: dell.includes is not a functi !
-
Der fehler ist dann, dass dell.includes keine Funktion ist. `
dell sollte aus deiner lösch-Liste im adapter.config generiert werden. Hast du da nichts drinnen (weil du ALLES? anzeigen willst)?
Egal, check mal und gib mal mindestens einen Leerschritt ein oder dazu damit es neu abgespeichert und der Adapter neu geladen wird.
Welche node-Version verwendest du? Der Fehler würde bedeuten dass deine Eingabe im Config kein String ist!
p.s.: Habe den spelling-error in der Fehlermeldung korrigiert!
-
@fsjoke:Welche node-Version verwendest du? Der Fehler würde bedeuten dass deine Eingabe im Config kein String ist! `
Node Version ist 4.8.1dell sollte aus deiner lösch-Liste im adapter.config generiert werden. Hast du da nichts drinnen (weil du ALLES? anzeigen willst)? `
aaah ok. dann steht dell für delete ? mmh
hier ist meine komplette config:
Services die ConnectedDrive abfragen soll:
debug! efficiency, dynamic, navigation, remote_execution, remote_history, servicepartner, service, specs
Objekte/namen die nicht übertragen werden sollen
modelType, series, basicType, brand, licensePlate, hasNavi, bodyType, dcOnly, hasSunRoof, hasRex, steering, driveTrain, doorCount, vehicleTracking, isoCountryCode, auxPowerRegular, auxPowerEcoPro, auxPowerEcoProPlus, ccmMessages
Objekte/namen die in übergeordnete Hirarchie wandern sollen:
attributesMap, vehicleMessages, cbsMessages, twoTimeTimer, characteristicList, lifeTimeList, lastTripList, remoteServiceEvent
Arrays die in Objekte konvertiert werden müssen (object|name|wert|unit durch ',' getrennt):
lastTripList|name|lastTrip|unit, specs|key|value, service|name|services, cdpFeatures|name|status, cbsMessages|text|date, lifeTimeList|name|value, characteristicList|characteristic|quantity, remote_history|eventId
-
Übrigens, habe ein Vis-Widget generiert welches einen button erzeugt mit dem man in Google-Map die Position des Autos sehen kann:
[{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false, "g_gestures":false,"g_signals":true,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==", "signals-val-0":"_","signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0, "signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png", "signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==", "signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0, "signals-vert-2":0,"signals-hide-edit-2":false,"html":" \n \n", "signals-oid-0":"bmw.0.-vin-.dynamic.google_maps_link"},"style":{"left":"820px","top":"990px","width":"200px","height":"35px"},"widgetSet":"basic"}]
Ersetzt -vin- durch euren vin.
Wenn ihr auf den Button klickt sollte Google-Maps angezeigt werden und versuchen die route zu der Auto-Position zu berechnen!
-
Hi fsjoke,
vielen Dank für die neue Version.
Den Fehler habe ich nicht mehr, bin aber nicht sicher, ob das daran liegt, dass tatsächlich der BMW service nicht zur Verfügung steht ?
Die Meldung ist: Error in GetCars, most probably the server is down! No data is changed: RequestVehicles Error, could niot get data for Vehicles!
vG Looxer
-
Die Meldung ist: Error in GetCars, most probably the server is down! No data is changed: RequestVehicles Error, could niot get data for Vehicles!
vG Looxer `
Genau diese Meldung hab ich auch.
-
Genau diese Meldung hab ich auch. `
allerdings ist über das Internet alles funktional ok. Fernsteuern geht von da aus.
Kann ja trotzdem was mit einem BMW Server was kaputt sein. (API bezogen)
oder es ist ein Problem mit dem Adapter. Zurück auf die frühere Version ist noch nicht implementiert.
-
Hallo allesamt!
Habe 1.2.3 auf Git (und npm).
Danke für euer Feedback!
Habe den Code für die Fernsteuerung verbessert und auch die Fehlerbehandlung wenn Services nicht vorhanden sind.
Es sollte auch ein Problem das erst nach ~2h auftritt (wenn BMW die Erlaubnis für die Abfrage beendet) behoben sein.
Danke im Voraus für weiteren Feedback!
p.s.: Dr Adapter ist jezt auch in ioBroker-Liste. Das bedeutet ihr könnt im Admin ohne Git den Adapter installieren!
p.p.s: Leider ist der BMW-server (wie so oft) nicht verfügbar und ich kann nicht weiter testen!
-
Hi fsjoke,
ich habe es jetzt mit version 1.2.3 probiert.
Das Log ist immer noch identisch, die Fehlermeldung ist etwas anders:
warn Error in GetCars, most probably the server is down! No data is changed: RequestVehicles Error to get data for Vehicles : [TypeError: dell.includes is not a function]!
Also ist das "dell"-Problem noch da.
Kann ich noch irgendwas tun, um zur Aufklärung beizutragen ?
vG Looxer
-
Hi fsjoke,
warn Error in GetCars, most probably the server is down! No data is changed: RequestVehicles Error to get data for Vehicles : [TypeError: dell.includes is not a function]!
Also ist das "dell"-Problem noch da.
Kann ich noch irgendwas tun, um zur Aufklärung beizutragen ?
vG Looxer `
Hallo Looxer!
Ich habe V 1.2.4 auf Git (adapter ist schon in ioBroker gelistet, du kannst in jetzt dort auch im Git-menü finden) um noch mehr debug einzubauen.
Habe leider auch jeden Tag einige Minuten wo die Server nicht verfügbar sind aber permanent sollte es nicht sein.
Versiche mal den Server auf http://www.bmw-connecteddrive.de zu stellen.
und wenn du noch immer die Probleme hast schalte auf debug wie oben beschrieben und kopiere mir die erhaltenen _originalData-Werte in eine PM damit ich mir das anschauen kann was BMW bei dir so liefert!
-
Guten Morgen,
kurze Rückinfo von mir:
Habe jetzt die 1.2.4 drauf und Klima, Hupe, auf/zu funktioniert. -> Super und danke schön!
Naviangaben/dynamic-angaben sind weiterhin nicht die richtigen. Werden offensichtlich nicht (so oft) übertragen.
Wenn ich bei objekte den Taster "Starte Lichthupe" drücke kommt im log:
Wenn ich ein widget in vis nehmen (hqwidget on/off und bei Wert taster) dann kommt im log:
Das ganze funktioniert mit dem vis taster auch; aber es kommt ne Fehlermeldung.Hat jemand eine Idee welchen Taster man nehmen soll ?
mfg
Dieter
Nachtrag:
Der Unterschied ist wohl der, dass das widget auch false sendet; was das Object wohl nicht tut.
Also, gibt es einen Taster der bei false nichts sendet; sondern eben nur true übermittelt.
-
ich bekomme leider den gleichen Fehler mit dem dell:
hier die komplette Zeile:
debug: http:// www. bmw-connecteddrive .com/api/vehicle/remoteservices/chargingprofile/v1/WBxxxxxx resulted status code: 404: { 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, Content-Type, Accept, Cache-Control', 'max-forwards': '20', 'x-correlationid': 'Id-2461be59cc137f000000000024e75f13 0', 'x-nodeid': '01', 'x-powered-by': 'JOY', expires: 'Sun, 17 Sep 2017 11:48:53 GMT', 'cache-control': 'max-age=0, no-cache, no-store', pragma: 'no-cache', date: 'Sun, 17 Sep 2017 11:48:53 GMT', 'content-length': '0', connection: 'close', 'strict-transport-security': 'max-age=31536000; includeSubDomains; preload' }
ist ein 328i
3562_bmw.png
3562_bmw2.png -
Hi,
habe das gleiche Problem wie NetFelix.
bmw.0 2017-09-18 10:55:00.385 info BMW Adapter initialization finished, will scan ConnectedDrive every 60 minutes. bmw.0 2017-09-18 10:55:00.378 warn Error in GetCars, most probably the server is down! No data is changed: RequestVehicles Error to get data for Vehicles : [TypeError: dell.includes is not a function]! bmw.0 2017-09-18 10:55:00.378 info debug: Added car location Maps-Link for Waalderstraat 84, 1791 EC Den Burg, Netherlands with latitude/longitude bmw.0 2017-09-18 10:55:00.193 info debug: Added car location Maps-Link for Waalderstraat 84, 1791 EC Den Burg, Netherlands with gps_lat/gps_lng bmw.0 2017-09-18 10:54:58.046 info debug: www.bmw-connecteddrive.com/api/vehicle/remoteservices/chargingprofile/v1/WBA8H123456789123 resulted status code: 404: { server: 'Apache', 'access-control-allow-m bmw.0 2017-09-18 10:54:57.894 info debug: www.bmw-connecteddrive.com/api/vehicle/servicepartner/v1/WBA8H123456789123 resulted status code: 404: { server: 'Apache', 'access-control-allow-methods': 'POST, bmw.0 2017-09-18 10:54:57.131 info debug: Request map_download for WBA8H123456789123 on /api/me/service/mapupdate/download/v1/WBA8H123456789123 bmw.0 2017-09-18 10:54:57.131 info debug: Request store for WBA8H123456789123 on /api/store/v2/WBA8H123456789123/offersAndPortfolios bmw.0 2017-09-18 10:54:57.131 info debug: Request specs for WBA8H123456789123 on /api/vehicle/specs/v1/WBA8H123456789123 bmw.0 2017-09-18 10:54:57.131 info debug: Request service for WBA8H123456789123 on /api/vehicle/service/v1/WBA8H123456789123 bmw.0 2017-09-18 10:54:57.131 info debug: Request servicepartner for WBA8H123456789123 on /api/vehicle/servicepartner/v1/WBA8H123456789123 bmw.0 2017-09-18 10:54:57.131 info debug: Request remote_history for WBA8H123456789123 on /api/vehicle/remoteservices/v1/WBA8H123456789123/history bmw.0 2017-09-18 10:54:57.131 info debug: Request remote_chargingprofile for WBA8H123456789123 on /api/vehicle/remoteservices/chargingprofile/v1/WBA8H123456789123 bmw.0 2017-09-18 10:54:57.131 info debug: Request remote_execution for WBA8H123456789123 on /api/vehicle/remoteservices/v1/WBA8H123456789123/state/execution bmw.0 2017-09-18 10:54:57.131 info debug: Request navigation for WBA8H123456789123 on /api/vehicle/navigation/v1/WBA8H123456789123 bmw.0 2017-09-18 10:54:57.131 info debug: Request dynamic for WBA8H123456789123 on /api/vehicle/dynamic/v1/WBA8H123456789123?offset=-120 bmw.0 2017-09-18 10:54:57.131 info debug: Request efficiency for WBA8H123456789123 on /api/vehicle/efficiency/v1/WBA8H123456789123 bmw.0 2017-09-18 10:54:56.778 info debug: Initialized, client_id= 'aJ3qsnVkdcsVlEby4Y0RRoY5hNDNTg9i' bmw.0 2017-09-18 10:54:56.519 info debug: Initialize for server www.bmw-connecteddrive.com bmw.0 2017-09-18 10:54:56.410 info BMW will scan the following services: efficiency, dynamic, navigation, remote_execution, remote_chargingprofile, remote_history, servicepartner, service, specs, store, map_download. bmw.0 2017-09-18 10:54:56.409 info debug: Adapter will run in debug mode because 'debug!' flag as first letters in services! bmw.0 2017-09-18 10:54:55.981 info starting. Version 1.2.4 in /opt/iobroker/node_modules/iobroker.bmw, node: v4.8.3 host.openmediavault 2017-09-18 10:54:55.731 info instance system.adapter.bmw.0 started with pid 20437
Das manuelle Einloggen über die Webseite funktioniert Problemlos.
Gruß
Mirko
-
Neue Version 1.3.0 auf Git!
Es kann Wertenamen umbenennen (damit kann man seine Fahrzeugnummer z.B. auf 'Auto_Frau' ändern).
Der Adapter versteht jetzt auch 'sendTo' Kommandos.
sendTo('bmw.0','send','Auto_Frau.Versperren')
würde den Wagen den sie auf 'Auto_Frau' umbenannt haben versperren,sendTo('bmw.0','send','_DatenNeuLaden')
würde einen Refresh ausführen undsendTo('bmw.0','debug','on')
(es geht auch 0,1,on,off,ein,aus,true,false) würde debug ein- oder ausschalten.@wendy2702 und @NetFelix: Ich habe auch dem 'TypeError: dell.includes' versucht beizukommen da ich deine node-Version mit 4.x erkannt habe und das beherrscht anscheinend Array.prototype.includes nicht ohne Hilfe. Habe eine eigene Funktion geschrieben um es zu umgehen. Hoffe es funktioniert jetzt!
Wenn euer Feedback gut ist wird es auch auf npm veröffentlicht!
p.s.: Ich selbst habe node v6.11.3 laufen. v6.x ist die letzte LTE supported version, im Oktober kommt dann v8 als LTE denke ich. Ich habe keinen V4-Installation mehr daher konnte ich da nicht testen!
-
@fsjoke:Ich habe auch dem 'TypeError: dell.includes' auf versucht beizukommen da ich deine node-Version mit 4.x erkannt habe und das beherrscht anscheinend Array.prototype.includes nicht ohne Hilfe. Habe eine eigene Funktion geschrieben um es zu umgehen. Hoffe es funktioniert jetzt! `
habs gerade probiert. States werden angelegt und es gibt keine Fehler im Log.
Ich teste weiter.
Vielen Dank für die neue Version.
vG Looxer