NEWS
Adapter: bmw zum Auslesen von BMW's ConnectedDrive Daten
-
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
-
Guten Morgen,
auch gerade installiert und es werden States angelegt.
Im Log das gesehen:
2017-09-19 07:08:50.921 - [32minfo[39m: bmw.0 debug: www.bmw-connecteddrive.com/api/vehicle/remoteservices/chargingprofile/v1/WBA8H91050K746296 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-62a6c0591744d900000000005970b0de 0', 'x-nodeid': '02', 'x-powered-by': 'JOY', expires: 'Tue, 19 Sep 2017 05:08:50 GMT', 'cache-control': 'max-age=0, no-cache, no-store', pragma: 'no-cache', date: 'Tue, 19 Sep 2017 05:08:50 GMT', 'content-length': '0', connection: 'close', 'strict-transport-security': 'max-age=31536000; includeSubDomains; preload' }
Denke das liegt daran das ich kein "E" bzw. Hybrid habe, oder?
Dann noch das:
2017-09-19 07:08:50.974 - [32minfo[39m: bmw.0 debug: Request remote_history for WBA8H123456789123 on /api/vehicle/remoteservices/v1/WBA8H123456789123/history 2017-09-19 07:08:59.671 - [32minfo[39m: bmw.0 debug: Service unavailable. Please try later from www.bmw-connecteddrive.com 2017-09-19 07:08:59.674 - [32minfo[39m: bmw.0 debug: request for /api/vehicle/remoteservices/v1/WBA8H123456789123/history made error 'Service unavailable. Please try later from www.bmw-connecteddrive.com' 2017-09-19 07:08:59.725 - [32minfo[39m: bmw.0 debug: Request servicepartner for WBA8H123456789123 on /api/vehicle/servicepartner/v1/WBA8H123456789123
Ist das "normal"!?
Mein Standort war auch falsch. Laut IOS App gestern Abend zum letzten mal aktualisiert, ausgelesen wurde aber immer noch ein Standort von vor zwei Wochen. Nachdem ich über die App "Mein Fahrzeug Orten" gemacht habe wurde beim erneuten start des Adapters die richtigen werte angezeigt.
Gruß
Mirko
-
@fsjoke: Super, Funkioniert jetzt
Vielen Dank
-
Hallo wendy2702!
Leider: das ist normal! die BMW-server sind leider öfter nicht erreichbar, wenn dann ein solcher Fehler passiert werden die Daten nicht ausgelesen!
Die Meldung:
Service unavailable. Please try later …
kommt vom BMW-Server als Antwort.Da hilft nur noch einen Reload zu machen (Adapter braucht normal nicht restarted zu werden wenn keine config geändert wird)!
-
Wenn du ein remoteservice startest wird zwar ein Wert zurückgegeben aber der Adapter muss selbst alle 5s nachfragen ob das service ausgeführt wurde, bei jeder Nachfrage speichert er das Ergebnis (übersetzt auf deutch) im wert des services.
Solange BMW das service nicht als ausgeführt zurückmeldet oder eine bestimmte Mindestzeit (ich hab sie verdoppelt auf 20s, BMW will mindestens 10s aber ist nie in 10s fertig) verstrichen ist kann kein neues service ausgeführt werden. Nach 20 Abfragen (x 5 Sekunden) hör ich auf auf BMW zu warten und erlaube neues senden, dann schreib ich was von abgebrochen in die value.
Also solange der timer nicht abgelaufen ist oder BMW nict error oder executed meldet kann man kain anderes service starten und bekommt diese Meldung…
-
@fsjoke:Wenn du ein remoteservice startest wird zwar ein Wert zurückgegeben aber der Adapter muss selbst alle 5s nachfragen ob das service ausgeführt wurde, bei jeder Nachfrage speichert er das Ergebnis (übersetzt auf deutch) im wert des services.
Solange BMW das service nicht als ausgeführt zurückmeldet oder eine bestimmte Mindestzeit (ich hab sie verdoppelt auf 20s, BMW will mindestens 10s aber ist nie in 10s fertig) verstrichen ist kann kein neues service ausgeführt werden. Nach 20 Abfragen (x 5 Sekunden) hör ich auf auf BMW zu warten und erlaube neues senden, dann schreib ich was von abgebrochen in die value.
Also solange der timer nicht abgelaufen ist oder BMW nict error oder executed meldet kann man kain anderes service starten und bekommt diese Meldung… `
Ich glaub ich hab mich nicht deutlich ausgedrückt.
Die Meldung rührt doch da her, dass das widget als taster fungiert.
d.h. es wird true gesendet und dein adapter sendet den befehl.
aber dann kommt vom widget gleich danach ein false (weil ja taster); und dieses false lehnt dein adapter ab (ist ja auch gut so; er soll ja auch nur auf true reagieren).
Die Frage war:
Gibt es widget was eben nur true sendet.
Deine taster bei den objekten senden ja auch nur true.
Und wenn ich ein manuelles script schreibe (ist schon erledigt); wird ja auch nur true gesendet.
mfg
-
@fsjoke:…Der Adapter versteht jetzt auch 'sendTo' Kommandos. ... `
Hallo,
habe folgenden Befehl probiert:
sendTo('bmw.0','send','WBA5D11010xxxxxxx.StarteLichthupe');
Im log ist kein Start erkennbar.
Ist der Befehl so nicht richtig ?
mfg
Dieter
-
Ich verwende 'jqui - Button State', und schreibe nicht true sonder "Start" dort hinein (damit das als Text auch angezeigt wird).
Ich verwende auch die hq-widgets aber nie den Taster sondern nur normale Schalter da ich das Ausschalten nicht brauche.
Wegen dem sendTo: Wenn du im admin/#objects mit der Maus links über den gewünschten id gehst kriegst ein 'kopier' symbol wo du den entsprechenden Namen in die Zwischenablage kopierst und das kannst dann angeben. Wenn du das Auto umbenannt hhast dann ist der Name natürlich auch anders'.
Aber bei mir funktioniert:````
sendTo('bmw.0', 'send', '225xe.Versperren')habe den Wagen auf 225xe umbenannt!
-
@looxer:
Du verwendest die iobroker-system-Version von debug welche viel zu viele Werte liefert.
Du kannst die adapter-interne Version auch verwenden, siehe Bild in der adapter-config!
Was deinen Fehler angeht sollte er behoben sein aber ich sehe im log dass du eine alte Version verwendest.
Bitte lade eine neue von Git (1.3.1 ist die letzte).
-
Hi fsjoke,
@fsjoke:Was deinen Fehler angeht sollte er behoben sein aber ich sehe im log dass du eine alte Version verwendest. `
ich glaube,dass du meinen letzten post nicht gesehen hast.
habs gerade probiert. States werden angelegt und es gibt keine Fehler im Log.
Ich teste weiter.
Vielen Dank für die neue Version. `
alles ist gut und funktioniert super
1000 Dank für deinen Einsatz hier.
lG Looxer
-
@fsjoke
Dieser Befehl klappt nicht:
sendTo('bmw.0','send','530D.StarteLichthupe');
Dieser Befehl klappt:
setState('bmw.0.530D.StarteLichthupe', 'on');
Was mach ich falsch bei dem sentTo?
Habe mein Problem mit dem widget wie folgt gelöst:
-
hqwidget als Taster (sendet true und false)
-
Manuelle Variablen angelegt unter "javascript.0.Status…..."
-
Script geschrieben, was bei true reagiert und o.g. "on" sendet.
Für alle die es brauchen können:
on({id: "javascript.0.Status.BMW.Lichthupe", change: "ne", val: true}, function() { log("Auslöser Taster BMW: Starte Lichthupe"); setState('bmw.0.530D.StarteLichthupe', 'on'); });
mfg
Dieter
P.S.
Vielen Dank für den tollen Adapter.
Alleine die Funktion "Starte Klima" ist gold wert.
-
-
Ahh, ich sehe du bist Javascript-fähig :)!
hab's gerade probiert mit 1.3.1:
Kannst mal
sendTo('bmw.0', 'get', '530D.StarteLichthupe' ,function(ret) {log(JSON.stringify(ret),'info');});
probieren und sehen ob sowas zurückkommt:
{"val":"An Farzeug gesendet","ack":true,"ts":1505933645825,"q":0,"from":"system.adapter.bmw.0","lc":1505933645825}
? Wenn ja (wobei die Werte anders sein können aber kein Error gezeigt wird) kannst das get mal auf send austauschen.
im debug log (wenn eingeschaltet) kann bei wirklichen 'send's dann sowas stehen….
! ````
bmw.0 2017-09-20 20:39:46.990 info debug: execute RLF state/execution: { remoteServiceType: 'RLF', remoteServiceStatus: 'EXECUTED', eventId: '563738323832352155725C00@bmw.de', created: '2017-09-20T2
bmw.0 2017-09-20 20:39:41.617 info debug: execute RLF state/execution: { remoteServiceType: 'RLF', remoteServiceStatus: 'DELIVERED_TO_VEHICLE', eventId: '563738323832352155725C00@bmw.de', created: '
bmw.0 2017-09-20 20:39:36.155 info debug: execute RLF state/execution: { remoteServiceType: 'RLF', remoteServiceStatus: 'PENDING', eventId: '563738323832352155725C00@bmw.de', created: '2017-09-20T20
bmw.0 2017-09-20 20:39:30.804 info debug: execute RLF state/execution: { remoteServiceType: 'RLF', remoteServiceStatus: 'PENDING', eventId: '563738323832352155725C00@bmw.de', created: '2017-09-20T20
javascript.0 2017-09-20 20:39:25.318 info script.js.script.TestSendMessage: returned: "returned: "{ val: 29.9, ack: true, ts: 1505932688230, q: 0, from: 'system.adapter.broadlink2.0', lc: 1505932688230 }""
javascript.0 2017-09-20 20:39:25.317 info script.js.script.TestSendMessage: returned: "{ val: 29.9, ack: true, ts: 1505932688230, q: 0, from: 'system.adapter.broadlink2.0', lc: 1505932688230 }"
broadlink2.0 2017-09-20 20:39:25.300 info Message from 'system.adapter.javascript.0', command 'get', message 'broadlink2.0.RM2:RMPROPLUS.Temperature' executed with result:"{ val: 29.9, ack: true, ts: 1505932688230, q: 0, from: 'syste
javascript.0 2017-09-20 20:39:25.283 info script.js.script.TestSendMessage: send command 'get' with message 'broadlink2.0.RM2:RMPROPLUS.Temperature'
javascript.0 2017-09-20 20:39:25.280 info script.js.script.TestSendMessage: returned: "got message sent: 225xe.StarteLichthupe"
bmw.0 2017-09-20 20:39:25.274 info Message from 'system.adapter.javascript.0', command 'send', message '225xe.StarteLichthupe' executed with result:"got message sent: 225xe.StarteLichthupe"
bmw.0 2017-09-20 20:39:25.273 info debug: got message sent: 225xe.StarteLichthupe
bmw.0 2017-09-20 20:39:25.265 info debug: execute RLF for 225xe.StarteLichthupe resulted in: { remoteServiceEvent: { remoteServiceType: 'RLF', remoteServiceStatus: 'PENDING', eventId: '56373
bmw.0 2017-09-20 20:39:22.983 info debug: I should execute RLF for 225xe.StarteLichthupe on xxxxxxxxxxxxxxxxx with path /api/vehicle/remoteservices/v1/xxxxxxxxxx/RLF!
bmw.0 2017-09-20 20:39:22.962 info debug: Execute command "send" with Message 225xe.StarteLichthupe
bmw.0 2017-09-20 20:39:22.961 info debug: received Message { command: 'send', message: '225xe.StarteLichthupe', from: 'system.adapter.javascript.0', callback: { message: '225xe.StarteLichthupe'... -
@fsjoke:Ahh, ich sehe du bist Javascript-fähig :)! `
Ein bisschen; Einschätzung vielleicht Fortgeschrittener (aber ganz am Anfang).Das mit dem sendto probier ich aus.
Meld mich dann wieder.
mfg
-
@fsjoke
Habe probiert:
sendTo('bmw.0', 'get', '530D.StarteLichthupe' ,function(ret) {log(JSON.stringify(ret),'info');});
Und im log: nichts
Es kommt gar keine Meldung.
Benutze sendTo sehr oft bei der Meldung an telegram; da klappt dies einwandfrei.
mfg
Dieter
-
@bahnuhr: Dann hab ich keine Ahnung!
Wenn da nix zurückkommt dann kann fast nur vorkommen dass nix empfangen wird…
Bitte um letzte Eventualitäten auszuschließen: Nochmal von Git laden (ist ja eh schin im admin als Paket gelistet).
Mach dann bitte auch nen 'iobroker upload bmw' ums sicher zu sein dass das letzte io-package.json hochjeladen wird da drinnen ein flag ist welches den Adapter überhaupt erst erlaubt Daten per sendTo zu Empfangen. Hatte ich bis vor einer Woche auch nicht gewusst!
Danke
-
Jo,
das mit dem upload hat geklappt.
Jetzt bekomme ich bei diesem langen Befehl auch ne Rückmeldung.
Und der Befehl:
sendTo('bmw.0','send','530D.StarteLichthupe');
klappt auch.
Jetzt bekomme ich im log entsprechende Rückinfo.
Bis hin zum "executed".
Danke dir.
mfg
Dieter