NEWS
Adapter Hyundai (Bluelink) oder KIA (UVO)
-
2022-02-11 09:02:56.014 - info: host.hsmart4 "system.adapter.bluelink.0" enabled 2022-02-11 09:02:56.222 - info: host.hsmart4 instance system.adapter.bluelink.0 started with pid 6731 2022-02-11 09:02:57.923 - debug: bluelink.0 (6731) Redis Objects: Use Redis connection: 0.0.0.0:9001 2022-02-11 09:02:57.965 - debug: bluelink.0 (6731) Objects client ready ... initialize now 2022-02-11 09:02:57.967 - debug: bluelink.0 (6731) Objects create System PubSub Client 2022-02-11 09:02:57.968 - debug: bluelink.0 (6731) Objects create User PubSub Client 2022-02-11 09:02:57.970 - debug: bluelink.0 (6731) Objects client initialize lua scripts 2022-02-11 09:02:57.985 - debug: bluelink.0 (6731) Objects connected to redis: 0.0.0.0:9001 2022-02-11 09:02:57.995 - debug: bluelink.0 (6731) objectDB connected 2022-02-11 09:02:57.997 - debug: bluelink.0 (6731) Redis States: Use Redis connection: 0.0.0.0:9000 2022-02-11 09:02:58.008 - debug: bluelink.0 (6731) States create System PubSub Client 2022-02-11 09:02:58.009 - debug: bluelink.0 (6731) States create User PubSub Client 2022-02-11 09:02:58.020 - debug: bluelink.0 (6731) States connected to redis: 0.0.0.0:9000 2022-02-11 09:02:58.022 - debug: bluelink.0 (6731) statesDB connected 2022-02-11 09:02:58.328 - info: bluelink.0 (6731) starting. Version 2.2.2 in /opt/iobroker/node_modules/iobroker.bluelink, node: v14.18.1, js-controller: 3.3.22 2022-02-11 09:02:58.365 - info: bluelink.0 (6731) Login to api 2022-02-11 09:03:02.214 - info: bluelink.0 (6731) 1 Vehicles found 2022-02-11 09:03:02.216 - debug: bluelink.0 (6731) [{"vehicleConfig":{"nickname":"IONIQ 5","name":"IONIQ 5","regDate":"2021-07-09 13:36:33.723","brandIndicator":"H", "id":"xxx","vin":"xxx","generation":"2022"}, "controller":{"userConfig":{"username":"","password":"PW","region":"EU","brand":"hyundai","autoLogin":true,"pin":"1632","vin":"","language":"en"}, "session":{"accessToken":"Bearer...","refreshToken":"-_I1OML-xxx","deviceId":"xxx","tokenExpiresAt":1644652981,"controlTokenExpiresAt":0}, "_environment":{"brand":"hyundai", "host":"prd.eu-ccapi.hyundai.com:8080", "baseUrl":"https://prd.eu-ccapi.hyundai.com:8080","clientId":"xxxx", "endpoints":{"session":"https://prd.eu-ccapi.hyundai.com:8080/api/v1/user/oauth2/authorize?response_type=code&state=test&client_id=xxx&redirect_uri=https://prd.eu-ccapi.hyundai.com:8080/api/v1/user/oauth2/redirect", "login":"https://prd.eu-ccapi.hyundai.com:8080/api/v1/user/signin", "language":"https://prd.eu-ccapi.hyundai.com:8080/api/v1/user/language", "redirectUri":"https://prd.eu-ccapi.hyundai.com:8080/api/v1/user/oauth2/redirect", "token":"https://prd.eu-ccapi.hyundai.com:8080/api/v1/user/oauth2/token", "integration":"https://prd.eu-ccapi.hyundai.com:8080/api/v1/user/integrationinfo", "silentSignIn":"https://prd.eu-ccapi.hyundai.com:8080/api/v1/user/silentsignin"}, "basicToken":"Basic...==","GCMSenderID":"xxxx"}, "authStrategies":{"main":{"language":"en"},"fallback":{"language":"en"}}},"_fullStatus":null,"_status":null,"_location":null,"_odometer":null,"region":"EU","serverRates":{"max":-1,"current":-1}}] 2022-02-11 09:03:02.452 - debug: bluelink.0 (6731) driveHistory-Data: {"cumulated":[ {"period":0,"consumption":{"total":344638,"engine":340253,"climate":1405,"devices":2980,"battery":0},"regen":8170,"distance":87}, {"period":1,"consumption":{"total":43079,"engine":42531,"climate":175,"devices":372,"battery":0},"regen":1021,"distance":10.875}, {"period":2,"consumption":{}}], "history":[ {"period":0,"rawDate":"20220203","date":"2022-02-02T23:00:00.000Z","consumption":{"total":150,"engine":0,"climate":0,"devices":150,"battery":0},"regen":0,"distance":0}, {"period":0,"rawDate":"20220202","date":"2022-02-01T23:00:00.000Z","consumption":{"total":68148,"engine":67728,"climate":0,"devices":420,"battery":0},"regen":990,"distance":12}, {"period":0,"rawDate":"20220130","date":"2022-01-29T23:00:00.000Z","consumption":{"total":67667,"engine":67257,"climate":0,"devices":410,"battery":0},"regen":1451,"distance":14}, {"period":0,"rawDate":"20220123","date":"2022-01-22T23:00:00.000Z","consumption":{"total":73843,"engine":72146,"climate":887,"devices":810,"battery":0},"regen":3944,"distance":41}, {"period":0,"rawDate":"20220119","date":"2022-01-18T23:00:00.000Z","consumption":{"total":190,"engine":0,"climate":0,"devices":190,"battery":0},"regen":0,"distance":0}, {"period":0,"rawDate":"20220118","date":"2022-01-17T23:00:00.000Z","consumption":{"total":134172,"engine":133122,"climate":490,"devices":560,"battery":0},"regen":1785,"distance":20}, {"period":0,"rawDate":"20220116","date":"2022-01-15T23:00:00.000Z","consumption":{"total":302,"engine":0,"climate":12,"devices":290,"battery":0},"regen":0,"distance":0}, {"period":0,"rawDate":"20220112","date":"2022-01-11T23:00:00.000Z","consumption":{"total":166,"engine":0,"climate":16,"devices":150,"battery":0},"regen":0,"distance":0}]} 2022-02-11 09:03:02.485 - info: bluelink.0 (6731) undefined is not a valid state value for id "bluelink.0.xxx.driveHistory.cumulated03.regen" 2022-02-11 09:03:02.487 - info: bluelink.0 (6731) undefined is not a valid state value for id "bluelink.0.xxx.driveHistory.cumulated03.distance" 2022-02-11 09:03:02.524 - info: bluelink.0 (6731) undefined is not a valid state value for id "bluelink.0.xxx.driveHistory.cumulated03.consumption.total" 2022-02-11 09:03:02.525 - info: bluelink.0 (6731) undefined is not a valid state value for id "bluelink.0.xxx.driveHistory.cumulated03.consumption.engine" 2022-02-11 09:03:02.526 - info: bluelink.0 (6731) undefined is not a valid state value for id "bluelink.0.xxx.driveHistory.cumulated03.consumption.climate" 2022-02-11 09:03:02.527 - info: bluelink.0 (6731) undefined is not a valid state value for id "bluelink.0.xxx.driveHistory.cumulated03.consumption.devices" 2022-02-11 09:03:02.528 - info: bluelink.0 (6731) undefined is not a valid state value for id "bluelink.0.xxx.driveHistory.cumulated03.consumption.battery" 2022-02-11 09:03:03.562 - debug: bluelink.0 (6731) Read new status from api for xxxx 2022-02-11 09:03:04.028 - info: bluelink.0 (6731) Error on API-Full-Status - Fallback GetNormalStatus 2022-02-11 09:03:04.125 - error: bluelink.0 (6731) Error on API-Request Status 2022-02-11 09:03:04.126 - error: bluelink.0 (6731) @EuropeVehicle.status: [400] Bad Request on [GET] https://prd.eu-ccapi.hyundai.com:8080/api/v2/spa/vehicles/xxx/status - {"retCode":"F","resCode":"4006","resMsg":"Remote control unavailable(tmu timeout) - Remote control unavailable(tmu timeout)","msgId":"xxx"} 2022-02-11 09:08:22.376 - info: host.hsmart4 "system.adapter.bluelink.0" disabled 2022-02-11 09:08:22.393 - info: host.hsmart4 stopInstance system.adapter.bluelink.0 (force=false, process=true) 2022-02-11 09:08:22.470 - info: host.hsmart4 stopInstance system.adapter.bluelink.0 send kill signal 2022-02-11 09:08:22.470 - info: bluelink.0 (6731) Got terminate signal TERMINATE_YOURSELF 2022-02-11 09:08:22.472 - info: bluelink.0 (6731) Adapter bluelink cleaned up everything... 2022-02-11 09:08:22.473 - info: bluelink.0 (6731) terminating 2022-02-11 09:08:22.474 - info: bluelink.0 (6731) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
Habe mal noch ein paar Umbrüche reingemacht zur Übersicht.
Mit XXX habe ich PW,User und IDs ersetzt. -
@klausiob Danke, muss ich mir anschauen, das sind wieder andere Werte für driveHistory
-
@newan Habe gerade nochmal den Adapter angeworfen. Jetzt kamen keinerlei Fehler. Die undefinierten Werte hingen evtl. mit dem Adapterstart nach Update zusammen oder dass der Adapter tagelang sich nicht einwählen konnte. Das sollen ja die Verbrauchswerte sein in welcher Maßeinheit? Wh wie beim Solardach? Hast Du mal eine API-Beschreibung was die Werte bedeuten, die meisten sind ja selbstsprechend? Was bedeutet auch z.B.:
Folgende Ladezeiten Moeglichkeiten wurden gefunden:
{"etc1":{"value":44,"unit":1},"etc2":{"value":710,"unit":1},"etc3":{"value":175,"unit":1},"atc":{"value":125,"unit":1}}
-
@klausiob Kenne auch keine API Doc und suche das immer so raus.
-
Hilfe gesucht, könnt ihr bitte den REsult vom Smalabruf auf die vorhandenen Objekte zuweisen:
{ "chassis":{ "hoodOpen":false, "trunkOpen":false, "locked":false, "openDoors":{ "frontRight":false, "frontLeft":false, "backLeft":false, "backRight":false }, "tirePressureWarningLamp":{ "rearLeft":false, "frontLeft":false, "frontRight":false, "rearRight":false, "all":false } }, "climate":{ "active":false, "steeringwheelHeat":false, "sideMirrorHeat":false, "rearWindowHeat":false, "defrost":false, "temperatureSetpoint":14, "temperatureUnit":0 }, "engine":{ "ignition":false, "accessory":false, "rangeGas":338, "range":393, "rangeEV":0, "plugedTo":0, "charging":false, "estimatedCurrentChargeDuration":1, "estimatedPortableChargeDuration":9, "estimatedStationChargeDuration":6, "batteryCharge12v":73, "batteryChargeHV":97 }, "lastupdate":"2022-01-10T16:46:55.000Z" }
Würde mir reichen wir ihr eure IDs dahinter schreibt in welche Objekte ihr welchen Wert haben wollt. Weil das JSON vom Full und small komplett anders aussieht wäre ich über die Fleißarbeit sehr dankbar!
-
@newan Verstehe noch nicht ganz was Du genau brauchst. Ein Mapping des JSON Smalabruf auf die Adapterobjekte? In folgender Art?
//Location if(newStatus.vehicleLocation.coord != undefined) { await this.setStateAsync(vin + '.vehicleLocation.lat', { val: newStatus.vehicleLocation.coord.lat, ack: true }); await this.setStateAsync(vin + '.vehicleLocation.lon', { val: newStatus.vehicleLocation.coord.lon, ack: true }); await this.setStateAsync(vin + '.vehicleLocation.speed', { val: newStatus.vehicleLocation.speed.value, ack: true }); }
Wenn Du mir so ein Codesnippet lieferst, kann ich dir das vorbereiten.
-
@klausiob Ne viel einfacher:
"hoodOpen":false, -> '.vehicleStatus.hoodOpen'
"trunkOpen":false, .> '.vehicleStatus.trunkOpen'usw, damit ich weiß was ich in die Objekte schreibe. Oben ist es einfach, danach was unübersichtlich für mich wenn ich kein Auto habe für den Adapter
-
@newan sagte in Adapter Hyundai (Bluelink) oder KIA (UVO):
-> '.vehicleStatus.hoodOpen'
{ "chassis": { "hoodOpen": false, -> '.vehicleStatus.hoodOpen' "trunkOpen": false, -> '.vehicleStatus.trunkOpen' "locked": false, -> '.vehicleStatus.doorLock' "openDoors": { "frontRight": false, -> '.vehicleStatus.doorOpen.frontRight' "frontLeft": false, -> '.vehicleStatus.doorOpen.frontLeft' "backLeft": false, -> '.vehicleStatus.doorOpen.backLeft' "backRight": false -> '.vehicleStatus.doorOpen.backRight' }, "tirePressureWarningLamp": { "rearLeft": false, -> '.vehicleStatus.tirePressureLamp.rearLeft' "frontLeft": false, -> '.vehicleStatus.tirePressureLamp.frontLeft' "frontRight": false, -> '.vehicleStatus.tirePressureLamp.frontRight' "rearRight": false, -> '.vehicleStatus.tirePressureLamp.rearRight' "all": false -> '.vehicleStatus.tirePressureLamp.all' } }, "climate": { "active": false, -> '.vehicleStatus.airCtrlOn' "steeringwheelHeat": false, -> '.vehicleStatus.steerWheelHeat' "sideMirrorHeat": false, -> '.vehicleStatus.sideMirrorHeat' //neu "rearWindowHeat": false, -> '.vehicleStatus.sideBackWindowHeat' // sideMirror und Rear window heating geht in der App nur gemeinsam "defrost": false, -> '.vehicleStatus.defrost' //neu "temperatureSetpoint": 14, -> '.vehicleStatus.airTemp' // zeigt die Vortemperierung in der App einstellbar von 17-27°C "temperatureUnit": 0 analog -> '.vehicleStatusRaw.airTemp.unit' // bei mir °C }, "engine": { "ignition": false, // entspricht wahrscheinlich dem vehicleStatusRaw.vehicleStatus.ign3 "accessory": false, // entspricht wahrscheinlich dem vehicleStatusRaw.vehicleStatus.acc "rangeGas": 338, -> '.vehicleStatus.gasModeRange' "range": 393, -> '.vehicleStatus.totalAvailableRange' //neu entspricht der Summe aus gas und ev, ist bei mir immer identisch mit ev "rangeEV": 0, -> '.vehicleStatus.evModeRange' "plugedTo": 0, -> '.vehicleStatus.battery.plugin' "charging": false, -> '.vehicleStatus.battery.charge' "estimatedCurrentChargeDuration": 1, //hat evtl. mit .vehicleStatusRaw.vehicleStatus.evStatus.remainTime2-values zu tun Ladezeiten ? "estimatedPortableChargeDuration": 9, // Laden mit Notladekabel? "estimatedStationChargeDuration": 6, // Laden an Ladestation? sowas zeigt er im Auto an beim Laden "batteryCharge12v": 73, -> '.vehicleStatus.battery.soc-12' "batteryChargeHV": 97 -> '.vehicleStatus.battery.soc' }, "lastupdate": "2022-01-10T16:46:55.000Z" }
-
@klausiob said in Adapter Hyundai (Bluelink) oder KIA (UVO):
@newan sagte in Adapter Hyundai (Bluelink) oder KIA (UVO):
-> '.vehicleStatus.hoodOpen'
{ "chassis": { "hoodOpen": false, -> '.vehicleStatus.hoodOpen' "trunkOpen": false, -> '.vehicleStatus.trunkOpen' "locked": false, -> '.vehicleStatus.doorLock' "openDoors": { "frontRight": false, -> '.vehicleStatus.doorOpen.frontRight' "frontLeft": false, -> '.vehicleStatus.doorOpen.frontLeft' "backLeft": false, -> '.vehicleStatus.doorOpen.backLeft' "backRight": false -> '.vehicleStatus.doorOpen.backRight' }, "tirePressureWarningLamp": { "rearLeft": false, -> '.vehicleStatus.tirePressureLamp.rearLeft' "frontLeft": false, -> '.vehicleStatus.tirePressureLamp.frontLeft' "frontRight": false, -> '.vehicleStatus.tirePressureLamp.frontRight' "rearRight": false, -> '.vehicleStatus.tirePressureLamp.rearRight' "all": false -> '.vehicleStatus.tirePressureLamp.all' } }, "climate": { "active": false, -> '.vehicleStatus.airCtrlOn' "steeringwheelHeat": false, -> '.vehicleStatus.steerWheelHeat' "sideMirrorHeat": false, -> '.vehicleStatus.sideMirrorHeat' //neu "rearWindowHeat": false, -> '.vehicleStatus.sideBackWindowHeat' // sideMirror und Rear window heating geht in der App nur gemeinsam "defrost": false, -> '.vehicleStatus.defrost' //neu "temperatureSetpoint": 14, -> '.vehicleStatus.airTemp' // zeigt die Vortemperierung in der App einstellbar von 17-27°C "temperatureUnit": 0 analog -> '.vehicleStatusRaw.airTemp.unit' // bei mir °C }, "engine": { "ignition": false, // entspricht wahrscheinlich dem vehicleStatusRaw.vehicleStatus.ign3 "accessory": false, // entspricht wahrscheinlich dem vehicleStatusRaw.vehicleStatus.acc "rangeGas": 338, -> '.vehicleStatus.gasModeRange' "range": 393, -> '.vehicleStatus.totalAvailableRange' //neu entspricht der Summe aus gas und ev, ist bei mir immer identisch mit ev "rangeEV": 0, -> '.vehicleStatus.evModeRange' "plugedTo": 0, -> '.vehicleStatus.battery.plugin' "charging": false, -> '.vehicleStatus.battery.charge' "estimatedCurrentChargeDuration": 1, //hat evtl. mit .vehicleStatusRaw.vehicleStatus.evStatus.remainTime2-values zu tun Ladezeiten ? "estimatedPortableChargeDuration": 9, // Laden mit Notladekabel? "estimatedStationChargeDuration": 6, // Laden an Ladestation? sowas zeigt er im Auto an beim Laden "batteryCharge12v": 73, -> '.vehicleStatus.battery.soc-12' "batteryChargeHV": 97 -> '.vehicleStatus.battery.soc' }, "lastupdate": "2022-01-10T16:46:55.000Z" } ```[link text](link url)
Super Arbeit. Ich habe nur ein EV und daher ist bei mir Range = RangeEV.
Die verschiedenen Duration kann ich einmal testen. Denke aber deine Vermutungen stimmen wohl.
"estimatedCurrentChargeDuration":3360, => Ist wirklich die aktuelle Zeit die für den aktuellen Ladestrom errechnet wird.
Ich lade gerade "portabel" mit nur 1x 6A und es werden 3360 errechnet. "estimatedPortableChargeDuration":1380, scheint also einen anderen Ladestrom hinterlegt zu haben.Wäre super wenn @Newan nun eine Version für die kurze Abfrage bauen kann. Die volle Abfrage ist bei mir eigentlich nie möglich wenn das Auto aus ist.
Top. Schönen Dank für die Arbeit -
Danke, so kann ich das auf jedenfall mal alles anpassen!
-
@newan
Ich habe heute zum ersten Mal den Error on API-Full-Status - Fallback GetNormalStatus bekommen. Das JSON für einen IONIQ5 habe ich in den github Kommentar geschrieben. Wenn Du mir sagst, wo Du das Mapping reinsetzen willst mit einem "insert here", kann ich das auch machen. Ich bin auch in Github registriert.
Warum machst du was an dem Adapter, wenn Du kein KIA oder Hyundai hast? -
@klausiob Weil es keiner gemacht hat und mich technisch gereizt hat das hinzubekommen.
Ist halt nur für Fehlersuche etc etwas schwer -
@newan Also mit 2.2.2 und IONIQ5 klappt der refresh wieder!
Ein schreiben geht aber aber nicht. z.b. bluelink.1.XXX.vehicleStatus.battery.charge_limit_fast kann man zwar ändern, der wert wird aber beim refresh vom auto wieder übernommen.
-
@newan sagte in Adapter Hyundai (Bluelink) oder KIA (UVO):
@klausiob Weil es keiner gemacht hat und mich technisch gereizt hat das hinzubekommen.
Ist halt nur für Fehlersuche etc etwas schwerDa bist Du aber mutig. Aber ich verstehe das trotzdem. Mich reizt das auch technisch hier mitzumachen. Habe bis vor 2 Jahren jahrelang JS programmiert und habe jetzt Ruhestand, soweit es die Frau erlaubt. Allerdings das iobroker-Rundherum für die Einbindung von Adaptern ist mir noch etwas fremd.
-
@torsten3009 geht bei mir auch nicht.
@Newan
In dem NormalStatus den ich heute bekommen habe gibt es gegenüber deinem JSON noch "estimatedFastChargeDuration"."estimatedCurrentChargeDuration": 125, "estimatedFastChargeDuration": 44, "estimatedPortableChargeDuration": 1090, "estimatedStationChargeDuration": 255,
Laut Bluelinky-Code kann man hier das Mapping auch erkennen:
estimatedCurrentChargeDuration: vehicleStatus?.evStatus?.remainTime2?.atc?.value, estimatedFastChargeDuration: vehicleStatus?.evStatus?.remainTime2?.etc1?.value, estimatedPortableChargeDuration: vehicleStatus?.evStatus?.remainTime2?.etc2?.value, estimatedStationChargeDuration: vehicleStatus?.evStatus?.remainTime2?.etc3?.value,
-
@klausiob
Heute mal eine andere Fehlermeldung (um 6:37 ging noch der small status):2022-02-15 14:37:07.270 - error: bluelink.0 (13800) EV History fetching failed 2022-02-15 14:37:07.270 - error: bluelink.0 (13800) @EuropeVehicle.history: [401] Unauthorized on [POST] https://prd.eu-ccapi.hyundai.com:8080/api/v1/spa/vehicles/fc3295f0-8a97-4f3f-a1d0-c704a93c2cf4/drvhistory - {"retCode":"F","resCode":"4017","resMsg":"Invalid request value - Invalid Application Id. - 10847.246xxxx","msgId":"e2d8d1b1-71de-4bf7-aee7-0c783fc21c05"} 2022-02-15 14:37:36.294 - debug: bluelink.0 (13800) Read new status from api for KMH... 2022-02-15 14:37:36.617 - info: bluelink.0 (13800) Error on API-Full-Status - Fallback GetNormalStatus 2022-02-15 14:37:36.977 - error: bluelink.0 (13800) Error on API-Request Status 2022-02-15 14:37:36.978 - error: bluelink.0 (13800) @EuropeVehicle.status: [401] Unauthorized on [GET] https://prd.eu-ccapi.hyundai.com:8080/api/v2/spa/vehicles/fc3295f0-8a97-4f3f-a1d0-c704a93c2cf4/status - {"retCode":"F","resCode":"4017","resMsg":"Invalid request value - Invalid Application Id. - 10876.888xxxx","msgId":"77907b18-f5c5-412d-a5c0-2290ddba2d53"}
Heute sollte ich im Auto neue Bluelink Geschäftsbedingungen anerkennen. Vielleicht ist da was geändert.
-
@klausiob said in Adapter Hyundai (Bluelink) oder KIA (UVO):
Heute sollte ich im Auto neue Bluelink Geschäftsbedingungen anerkennen. Vielleicht ist da was geändert.
Ja mußte ich neulich auch.
Mein Stromlieferer Tibber hat ein seit ein paar Wochen ein Hyundai-Betaplugin welches auch im Moment nicht funktioniert. Glaube auch das die da was geändert haben.Langsam nerven die ein wenig...
-
... und im Moment tut bei mir nicht einmal die Bluelink-App
-
@michaelnorge sagte in Adapter Hyundai (Bluelink) oder KIA (UVO):
... und im Moment tut bei mir nicht einmal die Bluelink-App
Bei mir auch nicht. Vor 2h ging sie noch beim Laden.
-
@klausiob sagte in Adapter Hyundai (Bluelink) oder KIA (UVO):
Bei mir auch nicht. Vor 2h ging sie noch beim Laden.
ich bekomme auch einen network error. Offenbar ist deren Server down.