NEWS
Adapter: bmw zum Auslesen von BMW's ConnectedDrive Daten
-
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
-
Ich mische mich hier ja nur sehr ungern ein, aber mal eine kleine Frage: ginge so etwas auch für die CarNET Daten von VW / Audi?
Einen Zugang könnte ich gern bereitstellen..
Viele Grüße
Christian
-
Im Prinzip sollte es funktionieren, hab zumindest ein Python-Library im Internet gesehen mit dem man Daten abrufen kann.
Habe in 1-2 Wochen vielleicht Zeit mir das im Javascript-Adapter anzusehen und wenn ich dann Zugang brauche rühr ich mich mit PM.
-
@fsjoke:Im Prinzip sollte es funktionieren, hab zumindest ein Python-Library im Internet gesehen mit dem man Daten abrufen kann.
Habe in 1-2 Wochen vielleicht Zeit mir das im Javascript-Adapter anzusehen und wenn ich dann Zugang brauche rühr ich mich mit PM. `
Oh das klingt ja super, vielen Dank! Ich unterstütze gern, wenn ich irgendwie kann.. -
Hi,
habe durch ein anderes Problem bei mir gesehen das der BMW Adapter sich scheinbar irgendwie im History Adapter verewigt–> siehe Bild
Warum ist das so bzw. muss das so sein oder ist das ein Bug?
-
sich scheinbar irgendwie im History Adapter verewigt- `
Das ist nicht der History-Adapter, sondern das "Einstell-popup" zu einem Datenpunkt.Hier werden Einstellungen für den Datenpunkt für diverse Adapter gemacht.
Das können History, SQL, influxDB sein, oder aber auch mqtt.
Und bei dir ist das der Datenpunkt modbus.0.inputRegisters.30057_Seriennummer
Du solltest dich (oder wen auch immer) fragen, was der BMW-Adapter mit diesem Datenpunkt will.
Gruß
Rainer