krauskopf / node-red-contrib-car-bmw

Node-RED nodes for BMW ConnectedDrive
Other
11 stars 8 forks source link

Unexpected end of JSON Input #4

Closed narkelo closed 2 years ago

narkelo commented 4 years ago

Hello, thank you for your work on this code!

I was trying to implement but am getting the following error message:

Failed to parse data , error SyntaxError: Unexpected end of JSON input

the node red console output this:

24 Apr 15:32:09 - [info] [car-bmw-list:38ad96f9.6993fa] Token init completed: 

Token: **REDACTED**

TokenType: Bearer

24 Apr 15:32:09 - [warn] [car-bmw-list:38ad96f9.6993fa] Failed to parse data , error SyntaxError: Unexpected end of JSON input

this is for a USA based BMW connected drive account. If there's any additional details that I can provide please let me know.

thank you.

masipulami commented 3 years ago

Unfortunately I have the exact same problem.

Yesterday evening it still worked but now my BMW nodes return the same error as mentioned in the post above.

What could be the problem?

CONSULitAS commented 3 years ago

The Problem could be here:

Test new Connected Drive url https://github.com/bimmerconnected/bimmer_connected/issues/130

WIP: Use new Connected Drive url https://github.com/bimmerconnected/bimmer_connected/pull/140

BMW seems to have changed the base URLs of the service. I would think in preparation for the changes made with the new "My BMW" App launched in 07/2020.

The new App seems to have a modified API, since it can display a charging history for electric cars.

CONSULitAS commented 3 years ago

Update:

Found this Issue-Comment: https://github.com/bimmerconnected/bimmer_connected/issues/99#issuecomment-524200648

There are the following (new) ULRs:

myc-profile.bmwgroup.com/api/gateway/brs/webapi/v1/user/vehicles/WBAXXXXXXXXX/executeService 
myc-profile.bmwgroup.com/api/gateway/brs/webapi/v1/user/vehicles/WBAXXXXXXXXX/remote360executionStatus?eventId=XXXXXXXXX%40bmw.de
myc-profile.bmwgroup.com/api/gateway/brs/webapi/v1/user/vehicles/WBAXXXXXXXXX/remote360downloadPackage?eventId=XXXXXXXXX%40bmw.de&dataPackageId=6443285 

So the new base URL seems to be myc-profile.bmwgroup.com/api/gateway/brs/webapi/v1/user/vehicles/WBAXXXXXXXXX/.

rikroe commented 3 years ago

@masipulami are you located in rest_of_world? BMW did change the authorization flow here this week - see https://github.com/bimmerconnected/bimmer_connected/pull/210 for more detail.

Currently, it is not needed to use myc-profile.bmwgroup.com as the b2vapi.bmwgroup.com/b2vapi.bmwgroup.us are continuing to work.

krauskopf commented 3 years ago

Hey everybody. Thanks for all the helpful hints. Just tried it recently for my BMW and everything still works as expected. So is this still an issue?

Thanks and regards, Sebastian

choenig commented 3 years ago

For me this Problem started on 01.01.2021, on 31.12.2020 it still worked.

Now I also get "Failed to parse data , error SyntaxError: Unexpected end of JSON input"

br christian

choenig commented 3 years ago

And right now after I wrote this message it startet working again :D

Sorry for the noise

br christian

krauskopf commented 3 years ago

@choenig no problem. Strange that this works not reliable. So thanks for any kind of (error) reports.

narkelo commented 3 years ago

Hello, i've tried again just now but am getting:

Failed to read file: Error: ENOENT: no such file or directory, open 'currenttoken.json' [warn] [car-bmw-list:d6356d32.b0376] Failed to read token:Couldn't find token in response

choenig commented 3 years ago

@choenig no problem. Strange that this works not reliable. So thanks for any kind of (error) reports.

I think, my problem was, that I had two nodes for 'dynamic' and 'navigation' that were triggered by the same node. Since I added a delay node for one of them I did not have problems anymore.

CONSULitAS commented 3 years ago

@choenig no problem. Strange that this works not reliable. So thanks for any kind of (error) reports.

I think, my problem was, that I had two nodes for 'dynamic' and 'navigation' that were triggered by the same node. Since I added a delay node for one of them I did not have problems anymore.

@choenig Thanks for this hint. Tried it, but still "Failed to parse data , error SyntaxError: Unexpected end of JSON input" on all nodes.

Which server do you use in your account properties? Thanks in advance.

edit: b2vapi.bmwgroup.com doesnÂŽt work.

CONSULitAS commented 3 years ago

@krauskopf Yes, just stopped working on 23rd of november. 😬

Bildschirmfoto 2021-01-04 um 22 58 17

Donni1966 commented 3 years ago

Hi, i get the same error with

msg : string[70] "Failed to parse data , error SyntaxError: Unexpected end of JSON input"

And i am confused, with Webadresse i have to use now. I have a mini cooper SE (Electric) and want read the batterie Infos or remaining km an so on.

choenig commented 3 years ago

I'm using the default 'www.bmw-connecteddrive.com' for my MINI Cooper SE.

What I additionally changed when it started working again: I increased the request interval to 4 minutes. Ah, and i once deleted the currenttoken.json which made it work again, too.

Br. Christian

Donni1966 commented 3 years ago

Hi @choenig

What I additionally changed when it started working again: I increased the request interval to 4 minutes.

that make sense

Ah, and i once deleted the currenttoken.json which made it work again, too.

now is get some infos by using dynamic als request. I get all the data witch i want - for the moment.

but get an error by using carching profile ... anyway thanks for the moment

CONSULitAS commented 3 years ago

now is get some infos by using dynamic als request. I get all the data witch i want - for the moment.

but get an error by using carching profile ... anyway thanks for the moment

@choenig Great. Deleting /home/pi/currenttoken.json did the job!

only "Data type = charging profile" still gives "Failed to parse data , error SyntaxError: Unexpected end of JSON input"

@krauskopf How about a workaround like

choenig commented 3 years ago

"Data type = charging profile"

Same for me.

Donni1966 commented 3 years ago

by Analyse the returns i get more questions as answers :-D

what i am looking for is:

and i am looking for status of clima is on oder set to a spezial time and this infos ...

any possible way to get this data?

CONSULitAS commented 3 years ago

@Donni1966

As this data is only available on the new app, i would suppose, that we would need the new API for this data.

You will only get the current charging state, plug state and reason for last charging end.

narkelo commented 3 years ago

Hello, i've tried again just now but am getting:

Failed to read file: Error: ENOENT: no such file or directory, open 'currenttoken.json' [warn] [car-bmw-list:d6356d32.b0376] Failed to read token:Couldn't find token in response

I am running this in a docker container, but can confirm with the file node that the running process has access to the container's filesystem as well as a named volume. there should be no reason the files doesn't get created.

I've tried this on a fresh container with no previous configurations and the file does not appear to get created.

Donni1966 commented 3 years ago

As this data is only available on the new app, i would suppose, that we would need the new API for this data.

Oh .. okay. i use this new app. but the usability is ugly and there is o lot of space to top :-) unfortunately i am not a programmer to help here. I wait until the api is available.

Thanx a lot for help/info

krilor1 commented 3 years ago

now is get some infos by using dynamic als request. I get all the data witch i want - for the moment. but get an error by using carching profile ... anyway thanks for the moment

@choenig Great. Deleting /home/pi/currenttoken.json did the job!

only "Data type = charging profile" still gives "Failed to parse data , error SyntaxError: Unexpected end of JSON input"

@krauskopf How about a workaround like

  • no connection or empty reply?
  • delete currenttoken.json and retry once

Hello, i have the same problem. where can i find the currenttoken.json to delete it?

Thx

CONSULitAS commented 3 years ago

/home/pi/currenttoken.json

perhaps here?

Auntie Google could help to: https://www.plesk.com/blog/various/find-files-in-linux-via-command-line/

Donni1966 commented 3 years ago

Yes ...

krilor1 commented 3 years ago

ok, so i have to delete this file at the ccu3. unfortunately i dont have access to the system with my Admin login. Is there a possibilty to delete the file by the exec node within node red?

Donni1966 commented 3 years ago

really? i logged in with root@.... password of the ccu3 and so i can delete the file with out any trouble. But i use raspimatic - no share that there is a reason for. I remember, that you have access as root with all privileges.

i write me a node [ { "id": "f5bfd29a.2b1e38", "type": "inject", "z": "505d9063.03da4", "name": "1. Init Deaman", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": true, "onceDelay": 0.1, "topic": "", "payload": "", "payloadType": "date", "x": 960, "y": 1040, "wires": [ [ "9fe2a17.615336" ] ] }, { "id": "9fe2a17.615336", "type": "trigger", "z": "505d9063.03da4", "name": "Totmann", "op1": "false", "op2": "true", "op1type": "bool", "op2type": "bool", "duration": "20", "extend": true, "overrideDelay": false, "units": "min", "reset": "", "bytopic": "all", "topic": "topic", "outputs": 1, "x": 1140, "y": 1040, "wires": [ [ "becaeebc.8d396", "14cecbe3.b15cec" ] ] }, { "id": "14cecbe3.b15cec", "type": "switch", "z": "505d9063.03da4", "name": "Only when true starting deleting", "property": "payload", "propertyType": "msg", "rules": [ { "t": "true" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 1370, "y": 1040, "wires": [ [ "d1809ef2.319c68" ] ] }, { "id": "becaeebc.8d396", "type": "ui_led", "z": "505d9063.03da4", "group": "c1f93750.9cb2a8", "order": 9, "width": 8, "height": 1, "label": "Fehler bei der Status-Abfrage/Token Löschen", "labelPlacement": "left", "labelAlignment": "left", "colorForValue": [ { "color": "gray", "value": "0", "valueType": "num" }, { "color": "green", "value": "false", "valueType": "bool" }, { "color": "red", "value": "true", "valueType": "bool" } ], "allowColorForValueInMessage": false, "name": "Non Error", "x": 1300, "y": 1100, "wires": [] }, { "id": "d1809ef2.319c68", "type": "exec", "z": "505d9063.03da4", "command": "sudo rm /home/pi/currenttoken.json", "addpay": false, "append": "", "useSpawn": "false", "timer": "", "oldrc": false, "name": "delete Token, when exist in case of error", "x": 1720, "y": 1140, "wires": [ [ "becaeebc.8d396" ], [ "becaeebc.8d396" ], [ "becaeebc.8d396" ] ] }, { "id": "c273797.d454d08", "type": "ui_button", "z": "505d9063.03da4", "name": "", "group": "c1f93750.9cb2a8", "order": 10, "width": 0, "height": 0, "passthru": false, "label": "Token manuell Löschen", "tooltip": "Tocken löschen weil Abfrage nicht geht", "color": "black", "bgcolor": "lightgreen", "icon": "fa-arrow-alt-circle-right", "payload": "true", "payloadType": "str", "topic": "", "topicType": "str", "x": 1650, "y": 980, "wires": [ [ "d1809ef2.319c68" ] ] }, { "id": "c1f93750.9cb2a8", "type": "ui_group", "name": "Wartungs Information", "tab": "ca94de6a.c8c928", "order": 3, "disp": true, "width": 8, "collapse": false }, { "id": "ca94de6a.c8c928", "type": "ui_tab", "name": "Mini Cooper SE Status", "icon": "fa-car", "order": 4, "disabled": false, "hidden": false } ]

do this automatically. i check every 15 minutes, if not true triggers, the file will delete automatically. it works very fine.

krilor1 commented 3 years ago

root worked. i found and deleted the file and also getting BMW data worked again.

thx for help!

Donni1966 commented 3 years ago

perfect :-) but this will happen many times a day. So this was the reason to automate this with an Node ...

if you want copy my Dashboard an Homekit solution :-) https://gist.github.com/Donni1966/20ed2bcdfba6e178ac735f25fcb55b07

mocholor commented 3 years ago

I was so happy with this node. Gives regular valuable information on my I3. ..but it stopped working March 11 this year. Error as mentioned above: 14 Jul 21:41:45 - [info] [car-bmw-get:BMW i3 94] Path: /api/vehicle/dynamic/v1/WBY...... 14 Jul 21:41:45 - [warn] [car-bmw-get:BMW i3 94] Failed to parse data , error SyntaxError: Unexpected end of JSON input

Deleting currenttoken.json didn't help. Tried multiple times.

Please help. Is there any way to debug this?

oemich commented 3 years ago

Since I upgraded to nodered:2.0.1 I face the same issue as @mocholor. Deleteing the file currenttoken.json temporarily solves the issue. Once the token get's invalid it is not renewed and I get the error SyntaxError: Unexpected end of JSON input error.

merlinmb commented 3 years ago

@oemich - I had the same problem with this and a few other API based nodes. Bumped NR to 2.0.3 (Maintenance release) which resolved this issue.

oemich commented 3 years ago

@oemich - I had the same problem with this and a few other API based nodes. Bumped NR to 2.0.3 (Maintenance release) which resolved this issue.

Thanks for the hint, I tried it and it did not solve my issue. But I did another change which fixed it ...

In my setup, I trigger every 10 minutes two requests to the BMW API (for 2 cars) and this seems to be the issue ... it is going fine for the first request and until the validity of the token ends. Afterwards none of both requests is capable to request a new token. I no delayed the second request by 30 seconds and this solved the issue for me.

It seems the plugin or BMW API has issues with concurrent requests to retrieve / store the API Token.

mocholor commented 3 years ago

still none of these workarounds works for me:

is there a log or something else peek into the node and debug this?

krauskopf commented 2 years ago

Hey guys,

I've rewritten the code. Major changes of version 0.3.0:

Hope this makes everything more robust and will solve some of your issues. Note that the 'Efficiency' API is still implemented, but does not work on both of my cars. Seems dead. You might have a look if you can find the information in the new API calls. In general, the supported API calls and return values seem to be a little bit different depending on your model. The 'Specifications" API is working on my 330e but not on my M2. The 'Status' API is returning a lot more info on the 330e.

As a bonus, there is now a new node to call a remote service (flash headlight, blow horn, etc...). ;-)

Donni1966 commented 2 years ago

Hi,

oh that are already a few cool things. I had for climate on and light and horn again a Homebridge plugin - that I can save me. Laststrip I have also had to get the way here.the Efficiency I have also fetched with a HTLM request and so to say disassembled.

if someone can use it:

[{"id":"9f19bbd9.a1b64","type":"function","z":"505d9063.03da4","name":"prep request","func":"global.set(\"vin\",\"WMWxxxxxxxxxxxxxxxx\")\n\nif(msg.payload==true){\n msg.headers =\n {\n \"Content-Type\" : \"application/x-www-form-urlencoded\"\n };\n msg.payload =\n {\n username: \"xxxxx@web.de\",\n password: \"xxxxxx\",\n client_id: \"dbf0a542-ebd1-4ff0-a9a7-55172fbfce35\",\n redirect_uri: \"https://www.bmw-connecteddrive.com/app/default/static/external-dispatch.html\",\n response_type: \"token\",\n scope: \"remote_services vehicle_data\" \n } \n return msg\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":635,"y":260,"wires":[["60f68c47.b6e5d4"]],"l":false},{"id":"60f68c47.b6e5d4","type":"http request","z":"505d9063.03da4","name":"","method":"POST","ret":"txt","paytoqs":"ignore","url":"https://customer.bmwgroup.com/gcdm/oauth/authenticate","tls":"","persist":false,"proxy":"","authType":"","x":695,"y":260,"wires":[["5cf5359e.e6fe04","7af5ba1f.8b31f4","520dcef4bb5dc40a"]],"l":false},{"id":"8eb4a71f.05ddd8","type":"change","z":"505d9063.03da4","name":"","rules":[{"t":"set","p":"token","pt":"global","to":"","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":795,"y":260,"wires":[[]],"l":false},{"id":"520dcef4bb5dc40a","type":"debug","z":"505d9063.03da4","name":"Mini Dynamic","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":855,"y":260,"wires":[],"l":false},{"id":"d9601fef.b618f","type":"delay","z":"505d9063.03da4","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":575,"y":260,"wires":[["9f19bbd9.a1b64"]],"l":false},{"id":"65ef6094.da6d2","type":"link in","z":"505d9063.03da4","name":"","links":["5cf5359e.e6fe04"],"x":75,"y":360,"wires":[["61d0ebbd.a39924"]]},{"id":"61d0ebbd.a39924","type":"function","z":"505d9063.03da4","name":"set glob var token","func":"var x = msg.redirectList[0].location\n\nglobal.set(\"token\",x.slice(90,90+32));\nmsg.payload = global.get(\"token\");\nreturn msg;\n\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":75,"y":400,"wires":[["4fd57be6.ac4a84","27eb929a.cdf816"]],"l":false},{"id":"82f0deaf.838c48","type":"inject","z":"505d9063.03da4","name":"manual Trigger","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":195,"y":360,"wires":[["a1e83605.73fae8","4b845f4b.b43408"]],"l":false},{"id":"27eb929a.cdf816","type":"change","z":"505d9063.03da4","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":135,"y":400,"wires":[["99977a3e.cca338"]],"l":false},{"id":"4fd57be6.ac4a84","type":"debug","z":"505d9063.03da4","name":"Lasttrip Out API","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":135,"y":440,"wires":[],"l":false},{"id":"a1e83605.73fae8","type":"function","z":"505d9063.03da4","name":"get lastTrip","func":"if(msg.payload==true){\n msg.headers = {\n \"Content-Type\": \"application/json\",\n \"Authorization\": \"Bearer \" + global.get(\"token\")\n }\n msg.url = \"https://b2vapi.bmwgroup.com/webapi/v1/user/vehicles/\" + global.get(\"vin\") + \"/statistics/lastTrip\"\nreturn msg\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","x":255,"y":420,"wires":[["2a1f0bd4.36572c"]],"l":false},{"id":"4b845f4b.b43408","type":"function","z":"505d9063.03da4","name":"allTrips","func":"if(msg.payload==true){\n msg.headers = {\n \"Content-Type\": \"application/json\",\n \"Authorization\": \"Bearer \" + global.get(\"token\")\n }\n msg.url = \"https://b2vapi.bmwgroup.com/webapi/v1/user/vehicles/\" + global.get(\"vin\") + \"/statistics/allTrips\"\n return msg\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":255,"y":380,"wires":[["d19c7513.4c9e48"]],"l":false},{"id":"99977a3e.cca338","type":"delay","z":"505d9063.03da4","name":"","pauseType":"delay","timeout":"10","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":195,"y":400,"wires":[["4b845f4b.b43408","a1e83605.73fae8"]],"l":false},{"id":"d19c7513.4c9e48","type":"http request","z":"505d9063.03da4","name":"","method":"GET","ret":"obj","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","authType":"","x":295,"y":380,"wires":[["6424a644.4a0fa","eb3f66d.748b418","2e91ec15.5f7ecc"]],"l":false},{"id":"2a1f0bd4.36572c","type":"http request","z":"505d9063.03da4","name":"","method":"GET","ret":"obj","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","authType":"","x":295,"y":420,"wires":[["382a3a46.d7dc16","a1bec292.cb045","da434cd8.e352a","f1a8d36c.b2e428","ea9d1abb.473218"]],"l":false},{"id":"da434cd8.e352a","type":"function","z":"505d9063.03da4","name":"Effizienz read","func":"msg.payload=msg.payload.lastTrip.efficiencyValue*100\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":395,"y":380,"wires":[["435bee11.8cd1c","98f794ca.a44628"]],"l":false},{"id":"98f794ca.a44628","type":"function","z":"505d9063.03da4","name":"Mini Effiziens in DB","func":"var eff=msg.payload;\nmsg.payload = [{\n \"value\": eff,\n },\n {\n \"type\": \"Prozent\", \n \"name\": \"MiniEffizenz\"\n }];\n msg.measurement = \"Mini\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":455,"y":380,"wires":[["16f9567a.7b6132"]],"l":false},{"id":"2e91ec15.5f7ecc","type":"function","z":"505d9063.03da4","name":"","func":"msg.payload = msg.payload.allTrips.savedCO2greenEnergy/12.5\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":515,"y":380,"wires":[["5275aaea.70ec94"]],"l":false},{"id":"5275aaea.70ec94","type":"ui_artlessgauge","z":"505d9063.03da4","group":"c1f93750.9cb2a8","order":7,"width":2,"height":2,"name":"BĂ€ume","icon":"fa-tree","label":"BĂ€ume","unit":"tree","layout":"radial","decimals":"2","differential":false,"minmax":true,"colorTrack":"#fffb00","style":"","colorFromTheme":true,"property":"payload","secondary":"secondary","inline":false,"animate":false,"sectors":[{"val":0,"col":"#e0edd4","t":"min","dot":0},{"val":100,"col":"#cce8b5","t":"sec","dot":0},{"val":200,"col":"#b1dd8c","t":"sec","dot":0},{"val":300,"col":"#96d35f","t":"sec","dot":0},{"val":400,"col":"#77bb41","t":"sec","dot":0},{"val":500,"col":"#669c35","t":"sec","dot":0},{"val":600,"col":"#4f7a28","t":"sec","dot":0},{"val":700,"col":"#38571a","t":"sec","dot":0},{"val":800,"col":"#6f7608","t":"sec","dot":0},{"val":900,"col":"#38571a","t":"sec","dot":0},{"val":1000,"col":"#38571a","t":"max","dot":0}],"lineWidth":3,"bgcolorFromTheme":false,"diffCenter":"50","x":620,"y":380,"wires":[]},{"id":"435bee11.8cd1c","type":"ui_artlessgauge","z":"505d9063.03da4","group":"8b98191.6de21e8","order":1,"width":2,"height":2,"name":"ENERGIEEFFIZENZ","icon":"fa-car","label":"Effizenz","unit":"%","layout":"radial","decimals":0,"differential":false,"minmax":true,"colorTrack":"#aaaaaa","style":"","colorFromTheme":true,"property":"payload","secondary":"secondary","inline":false,"animate":true,"sectors":[{"val":0,"col":"#ff2600","t":"min","dot":0},{"val":25,"col":"#ff9300","t":"sec","dot":0},{"val":75,"col":"#00f900","t":"sec","dot":0},{"val":100,"col":"#00f900","t":"max","dot":0}],"lineWidth":3,"bgcolorFromTheme":false,"diffCenter":"50","x":660,"y":420,"wires":[]},{"id":"16f9567a.7b6132","type":"influxdb out","z":"505d9063.03da4","influxdb":"b1b4dbb8.76a4f","name":"","measurement":"","precision":"","retentionPolicy":"","database":"","retentionPolicyV18Flux":"","org":"","bucket":"","x":455,"y":420,"wires":[],"l":false},{"id":"f1a8d36c.b2e428","type":"debug","z":"505d9063.03da4","name":"Mini Dynamic","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":295,"y":460,"wires":[],"l":false},{"id":"a1bec292.cb045","type":"change","z":"505d9063.03da4","name":"parse last trip lengh","rules":[{"t":"move","p":"payload.lastTrip.totalDistance","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":450,"y":460,"wires":[["25091b52.7c815c"]]},{"id":"25091b52.7c815c","type":"ui_text","z":"505d9063.03da4","group":"8b98191.6de21e8","order":7,"width":3,"height":1,"name":"LĂ€nge","label":"LĂ€nge: ","format":"{{msg.payload}} km","layout":"row-spread","x":610,"y":460,"wires":[]},{"id":"382a3a46.d7dc16","type":"change","z":"505d9063.03da4","name":"parse last trip duration","rules":[{"t":"move","p":"payload.lastTrip.duration","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":440,"y":500,"wires":[["9b30a57.0f7e658"]]},{"id":"9b30a57.0f7e658","type":"ui_text","z":"505d9063.03da4","group":"8b98191.6de21e8","order":8,"width":3,"height":1,"name":"Dauer","label":"Dauer","format":"{{msg.payload}} Minuten","layout":"row-spread","x":610,"y":500,"wires":[]},{"id":"c1f93750.9cb2a8","type":"ui_group","name":"Wartungs Information","tab":"ca94de6a.c8c928","order":3,"disp":true,"width":6,"collapse":true},{"id":"8b98191.6de21e8","type":"ui_group","name":"Zustand","tab":"ca94de6a.c8c928","order":1,"disp":true,"width":6,"collapse":false},{"id":"b1b4dbb8.76a4f","type":"influxdb","hostname":"192.168.2.116","port":"8086","protocol":"http","database":"topics","name":"InfluxDB auf Homebridge01","usetls":false,"tls":"","influxdbVersion":"1.x","url":"","rejectUnauthorized":false},{"id":"ca94de6a.c8c928","type":"ui_tab","name":"Mini Cooper SE Status","icon":"fa-car","order":5,"disabled":false,"hidden":false}]

Status and Destination I have never seen - cool thing! Respect for this.

I'll test it out the days ... thank you again. byby, Michael

choenig commented 2 years ago

Very nice, thanks for your work :-)

Br Christian