ConnectedCar Binding myAudi, Volkswagen, VW ID, Skoda, Enyaq, Seat, Ford, WeCharge

Updated to yesterday’s version, corrected some item types (switch->contact), data is well populated to items. Tested unlock command, failing with…

message.api-status.gw.error.authentication

Got DEBUG log, shows “malformed request” of unlock call (incl. xmlns of audi.de) for this VW Passat vehicle:

2021-05-19 08:46:56.310 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'PassatLock' received command OFF
==> /var/log/openhab/openhab.log <==
2021-05-19 08:46:56.318 [DEBUG] [ng.carnet.internal.api.CarNetApiBase] - VINVINVINVINVINVI: Sending action request for rlu_v1.UNLOCK, reqSecToken=true, contentType=application/vnd.vwg.mbb.RemoteLockUnlock_v1_0_0+xml
2021-05-19 08:46:56.320 [DEBUG] [rnet.internal.api.CarNetTokenManager] - VINVINVINVINVINVI: Logging in, account=<emailaddress>
2021-05-19 08:46:56.322 [DEBUG] [rnet.internal.api.CarNetTokenManager] - VINVINVINVINVINVI: OAuth: Get signin form
==> /var/log/openhab/events.log <==
2021-05-19 08:46:56.323 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'PassatLock' predicted to become OFF
==> /var/log/openhab/openhab.log <==
2021-05-19 08:46:56.325 [DEBUG] [carnet.internal.api.CarNetHttpClient] - HTTP GET https://identity.vwgroup.io/oidc/v1/authorize?client_id=9496332b-ea03-4091-a224-8c746b885068%40apps_vw-dilab_com&scope=openid+profile+mbb+cars+birthdate+nickname+address+phone&response_type=id_token+token&redirect_uri=carnet%3A%2F%2Fidentity-kit%2Flogin&state=ee559aa2-835d-42d4-855b-72512fd2f671&nonce=MTYyMTQwNjgxNjMyMA==&prompt=login, data=
==> /var/log/openhab/events.log <==
2021-05-19 08:46:56.332 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'PassatLock' changed from ON to OFF
==> /var/log/openhab/openhab.log <==
2021-05-19 08:46:56.634 [DEBUG] [carnet.internal.api.CarNetHttpClient] - HTTP 302 -> https://identity.vwgroup.io/signin-service/v1/signin/xxxxxxxx-ea03-4091-a224-8c746b885068@apps_vw-dilab_com?relayState=(removed)
2021-05-19 08:46:56.638 [DEBUG] [carnet.internal.api.CarNetHttpClient] - HTTP GET https://identity.vwgroup.io/signin-service/v1/signin/xxxxxxxx-ea03-4091-a224-8c746b885068@apps_vw-dilab_com?relayState=(removed), data=
2021-05-19 08:46:56.822 [DEBUG] [carnet.internal.api.CarNetHttpClient] - HTTP POST https://identity.vwgroup.io/signin-service/v1/xxxxxxxx-ea03-4091-a224-8c746b885068@apps_vw-dilab_com/login/identifier, data=_csrf=7516e476-2992-4a40-9abe-8aa2d5aaf271&relayState=(removed)&hmac=(removed)&email=<emailaddress>
2021-05-19 08:46:56.927 [DEBUG] [carnet.internal.api.CarNetHttpClient] - HTTP GET https://identity.vwgroup.io/signin-service/v1/xxxxxxxx-ea03-4091-a224-8c746b885068@apps_vw-dilab_com/login/authenticate?relayState=(removed)&email=<emailaddress>, data=
2021-05-19 08:46:57.042 [DEBUG] [carnet.internal.api.CarNetHttpClient] - HTTP POST https://identity.vwgroup.io/signin-service/v1/xxxxxxxx-ea03-4091-a224-8c746b885068@apps_vw-dilab_com/login/authenticate, data=_csrf=7516e476-2992-4a40-9abe-8aa2d5aaf271&relayState=(removed)&hmac=(removed)&email=<emailaddress>&password=<pw>
2021-05-19 08:46:57.279 [DEBUG] [carnet.internal.api.CarNetHttpClient] - HTTP 302 -> https://identity.vwgroup.io/oidc/v1/oauth/sso?clientId=xxxxxxxx-ea03-4091-a224-8c746b885068@apps_vw-dilab_com&relayState=(removed)&userId=(removed)&HMAC=(removed)
2021-05-19 08:46:57.282 [DEBUG] [carnet.internal.api.CarNetHttpClient] - HTTP GET https://identity.vwgroup.io/oidc/v1/oauth/sso?clientId=xxxxxxxx-ea03-4091-a224-8c746b885068@apps_vw-dilab_com&relayState=(removed)&userId=(removed)&HMAC=(removed), data=
2021-05-19 08:46:57.405 [DEBUG] [carnet.internal.api.CarNetHttpClient] - HTTP 302 -> https://identity.vwgroup.io/signin-service/v1/consent/users/(removed)/xxxxxxxx-ea03-4091-a224-8c746b885068@apps_vw-dilab_com?scopes=openid%20profile%20mbb%20cars%20birthdate%20nickname%20address%20phone&relayState=(removed)&callback=https://identity.vwgroup.io/oidc/v1/oauth/client/callback&hmac=(removed)
2021-05-19 08:46:57.407 [DEBUG] [carnet.internal.api.CarNetHttpClient] - HTTP GET https://identity.vwgroup.io/signin-service/v1/consent/users/(removed)/xxxxxxxx-ea03-4091-a224-8c746b885068@apps_vw-dilab_com?scopes=openid%20profile%20mbb%20cars%20birthdate%20nickname%20address%20phone&relayState=(removed)&callback=https://identity.vwgroup.io/oidc/v1/oauth/client/callback&hmac=(removed), data=
2021-05-19 08:46:57.503 [DEBUG] [carnet.internal.api.CarNetHttpClient] - HTTP 302 -> https://identity.vwgroup.io/oidc/v1/oauth/client/callback/success?user_id=(removed)&client_id=xxxxxxxx-ea03-4091-a224-8c746b885068@apps_vw-dilab_com&scopes=openid%20profile%20mbb%20cars%20birthdate%20nickname%20address%20phone&consentedScopes=openid%20profile%20mbb%20cars%20birthdate%20nickname%20address%20phone&relayState=(removed)&hmac=(removed)
2021-05-19 08:46:57.507 [DEBUG] [carnet.internal.api.CarNetHttpClient] - HTTP GET https://identity.vwgroup.io/oidc/v1/oauth/client/callback/success?user_id=(removed)&client_id=xxxxxxxx-ea03-4091-a224-8c746b885068@apps_vw-dilab_com&scopes=openid%20profile%20mbb%20cars%20birthdate%20nickname%20address%20phone&consentedScopes=openid%20profile%20mbb%20cars%20birthdate%20nickname%20address%20phone&relayState=(removed)&hmac=(removed), data=
2021-05-19 08:46:57.631 [DEBUG] [carnet.internal.api.CarNetHttpClient] - HTTP 302 -> carnet://identity-kit/login#state=ee559aa2-835d-42d4-855b-72512fd2f671&access_token=(removed)
2021-05-19 08:46:57.635 [DEBUG] [rnet.internal.api.CarNetTokenManager] - VINVINVINVINVINVI: Get VW Token
2021-05-19 08:46:57.638 [DEBUG] [carnet.internal.api.CarNetHttpClient] - HTTP POST https://mbboauth-1d.prd.ece.vwg-connect.com/mbbcoauth/mobile/oauth2/v1/token, data=grant_type=id_token&token=(removed)
2021-05-19 08:46:57.743 [DEBUG] [carnet.internal.api.CarNetHttpClient] - HTTP GET https://mal-1a.prd.ece.vwg-connect.com/api/rolesrights/authorization/v2/vehicles/VINVINVINVINVINVI/services/rlu_v1/operations/UNLOCK/security-pin-auth-requested, data=
2021-05-19 08:46:58.130 [DEBUG] [rnet.internal.api.CarNetTokenManager] - Authenticating SPIN, retires=null
2021-05-19 08:46:58.139 [DEBUG] [carnet.internal.api.CarNetHttpClient] - HTTP POST https://mal-1a.prd.ece.vwg-connect.com/api/rolesrights/authorization/v2/security-pin-auth-completed, data={"securityPinAuthentication":{"securityPin":{"challenge":"(removed)","securityPinHash":"(removed)"},"securityToken":"(removed)"}}
2021-05-19 08:46:58.399 [DEBUG] [rnet.internal.api.CarNetTokenManager] - securityToken granted successful!
2021-05-19 08:46:58.402 [DEBUG] [carnet.internal.api.CarNetHttpClient] - HTTP POST https://fal-3a.prd.eu.dp.vwg-connect.com/fs-car/bs/rlu/v1/VW/DE/vehicles/VINVINVINVINVINVI/actions, data=<?xml version="1.0" encoding= "UTF-8" ?><rluAction xmlns="http://audi.de/connect/rlu"><action>unlock</action></rluAction>
2021-05-19 08:46:58.682 [INFO ] [nternal.handler.CarNetVehicleHandler] - VINVINVINVINVINVI: API Call failed: API returned error
2021-05-19 08:46:58.684 [DEBUG] [nternal.handler.CarNetVehicleHandler] - VINVINVINVINVINVI: HTTP response: {"error":{"errorCode":"gw.error.authentication","description":"Malformed request"}}
2021-05-19 08:46:58.686 [DEBUG] [nternal.handler.CarNetVehicleHandler] - VINVINVINVINVINVI: message.api-status.gw.error.authentication
2021-05-19 08:46:58.688 [WARN ] [nternal.handler.CarNetVehicleHandler] - VINVINVINVINVINVI: message.api-status.gw.error.authentication

Hey Community, is there a editable spreadsheet or table or template where I can add my “works/works not”? I could add my Feedback about the Audi Etron (2019 model)

I’m currently working on the control actions. Could someone confirm that lock/unlock is working with Audi. I get now “malformed request”, not sure if this relates to changes or the API has changed.

Just post a line like this:

Brand Model Year Type Market Notes Doorlock Clima Preheat
Audi A6 2020 Diesel DE/DE TripData service doesn’t work even with valid license yes no n/a
Brand Model Year Type Market Notes Doorlock Clima Preheat
VW Tiguan 2020 Petrol SE/SE Only detected control channel is DoorLock yes no no

Yes, I have the same.

The good: An older version on my prod setup still works with Audi
the bad: The request headers+data are exactly the same
except the bearer token. In the working setup this is way longer. However, Auth gets through, I’m able to get a security token (which is based on the access token) and insert the access token 1:1 in the header.
So: Something must be wrong with the token, This would also explain why the errorCode mentions “gw.error.authentication”.
This requires a longer session comparing logs… :frowning:

Line 1 per step is from the old version, line 2 from the current build:
Looks exactly the same except the length of the Bearer token
yes, I saw the ) in 3.7.0) - doesn’t make a change and “Host msg.volkswagen.de” should be “msg.audi.de” - changed, no difference

Maybe an issue through the auth flow, which doesn’t impact other calls
Did you tried other actions?

HTTP POST https://msg.audi.de/fs-car/bs/rlu/v1/Audi/DE/vehicles/WAUZZZF21LN046449/actions, data=<?xml version="1.0" encoding= "UTF-8" ?><rluAction xmlns="http://audi.de/connect/rlu"><action>lock</action></rluAction>
HTTP POST https://msg.audi.de/fs-car/bs/rlu/v1/Audi/DE/vehicles/WAUZZZF21LN046449/actions, data=<?xml version="1.0" encoding= "UTF-8" ?><rluAction xmlns="http://audi.de/connect/rlu"><action>lock</action></rluAction>
Headers: 
Accept-Encoding: gzip
Accept-Encoding: gzip
User-Agent: okhttp/3.7.0)
User-Agent: okhttp/3.7.0)
Accept-Charset: UTF-8
Accept-Charset: UTF-8
Authorization: Bearer eyJraWQiOiJNQkIwMSIsImFsZyI6IlJTMjU2In0.eyJzY3AiOlsiZmFsIl0sInN1YiI6ImRZZUo3Q29NenFWMG9iSHlSWkpTeXprYjlkMTEiLCJ2ZXIiOiIxIiwiY29yIjoiREUiLCJpc3MiOiJWV0dNQkIwMURFTElWMSIsImNudCI6Ijc3ODY5ZTIxLWUzMGEtNGE5Mi1iMDE2LTQ4YWI3ZDNkYjFkOCIsImNjaCI6ImFwcCIsInR5cCI6IkFUIiwic3lzIjoiWElEX0FQUF9BVURJIiwic3R5cCI6IlQyIiwiYXVkIjoibWFsLnByZC5lY2UudndnLWNvbm5lY3QuY29tIiwidG50IjoiQXVkaSxERUZBVUxUIiwiZXhwIjoxNjIxNDk2MzA2LCJpYXQiOjE2MjE0OTI3MDYsInJ0LWlkIjoiMGRjYTgzNWMtZGU0Yi00ZGE1LTkzZDYtZjhkMzhhNWJiZGNjIiwianRpIjoiZDA4MTRmMGItZmEyOS00YTNhLWJhY2QtNTFmYThlZDE2YWVkIn0.HtU_1G_dt9ZFL9gT0mrJi2WpqsWfVNb6hblk_TdUnkNTHUF2Tn-xis2E9jFAhCI8NQyTitgz_ZUaeYOPnHKehwc4Zof2gr_nFi8ixDQX5pI52tZjW5WWtygUFvgrRYKYWCpvtESEJ9f8L7e1qAGs4xEO-TTF_cOFBJNlqNn6TsIhQee_PxyQ-0G5xQqC85PaHknje9ne2AREfhNlGr8CAW5CmH1r0CXoN-XsDYl01K5-72WdsrBdPdZWRQoZRtgZF4Z41xsZUpNVQ_Ccs2iUZVzk2R7od7qDiTmwiMwuxFMUPAjreLmG1Oxzy0YMR8rfseIsRG9Bp71i7dRYomFJwQ
Authorization: Bearer CqYyOmHaSIDnd3ZJGn0mioM81PTIW3hvGpgV8jxOuIiDTHSwnpyi5mM+y4MJQA1xasTI/X4UPIZQsCt/NzJnMjhmhIgwfjQSko/0PnF5qmCunn2Y5+S/FW6gEaP16o1m8/z0qOtC3Towh599BnxkJwfJhUOI/BxKy+/j4HMY3B+DtdbZlYUdKxI1cg6DTECtTss9766Wgm9oj3+UcvHZduP0LtJZKCecE7hC4qcEVf3VnLhyz8X6pHZsYs4J1tDRoDX0otrX5i7t6144pwaO/HY0G70zaQbS9E/t40mKkGZH4mnMGKytS1Z4J2yHFXzLEmyVvYY4S/epSPEF/ib5dShIu1qZciQzl4NYE9J8xy7AE7XS52bxImkhzy4Y9u26gbZAO0T0tgir7jlFmmnwXENYh94aWRzO9IEbFKLLJ3LRWHGO3RDPOb4yCIA1fJT3HN8EzWSGWw6bG6iypUHFCw4PDDHtGNRYGSE8JhBqI5VmG1LnJIb5ZKKacXH1A+D27yE7yxSsZvG58rSlBU24uxZnpSb77ISRGBVeGGrhy2jCNDL29WG58ZuB2jd6HTCZDG6g7bhsADjroICc6tpK3g==
Accept: application/json, application/vnd.vwg.mbb.ChargerAction_v1_0_0+xml,application/vnd.volkswagenag.com-error-v1+xml,application/vnd.vwg.mbb.genericError_v1_0_2+xml,application/vnd.vwg.mbb.RemoteStandheizung_v2_0_0+xml,application/vnd.vwg.mbb.genericError_v1_0_2+xml,application/vnd.vwg.mbb.RemoteLockUnlock_v1_0_0+xml,application/vnd.vwg.mbb.operationList_v3_0_2+xml,application/vnd.vwg.mbb.genericError_v1_0_2+xml,*/*
Accept: application/json, application/vnd.vwg.mbb.ChargerAction_v1_0_0+xml,application/vnd.volkswagenag.com-error-v1+xml,application/vnd.vwg.mbb.genericError_v1_0_2+xml,application/vnd.vwg.mbb.RemoteStandheizung_v2_0_0+xml,application/vnd.vwg.mbb.genericError_v1_0_2+xml,application/vnd.vwg.mbb.RemoteLockUnlock_v1_0_0+xml,application/vnd.vwg.mbb.operationList_v3_0_2+xml,application/vnd.vwg.mbb.genericError_v1_0_2+xml,*/*
X-App-Name: myAudi
X-App-Name: myAudi
Host: msg.volkswagen.de
Host: msg.volkswagen.de
X-App-Version: 3.14.0
X-App-Version: 3.14.0
Content-Type: application/vnd.vwg.mbb.RemoteLockUnlock_v1_0_0+xml
Content-Type: application/vnd.vwg.mbb.RemoteLockUnlock_v1_0_0+xml
x-mbbSecToken: X/Odsge9C8qXycEu0+dRC+brpw2vJBGqwzzGEj8O7Wi73EKIzCT5b7hBpgJcqu7lPKQ790vPg0O5Y1toOvtMMSFDmn6NA7ugAA83xVxNVkxXXb3JvchmSJU9gVqbdaSJ18D+JCOw3hNI0aiFLEHjLA74yKgLbVsCBrsd2bSBcLQHhZMJ8LGZOU9f7tMFLL+6L+8UPR6B7ePb+3LXc+HX/m6eUNihnaIT1zcvzP50RFu8Lh22TTIBHO2vkRUnxQmTFX5TnyCiJ0ZP/Za/Rp0t6CbR3Fk92+U5dx0vJhAbUPoTFtiHZgv0I9ruJ8SzvDIUiDeYqgmEMnk6NqtNEZH6dDMeHrJ5CveVQA+44RmC3eH9mI6E4QujoWTC1/My65PBe5bWHD4onRpb20heDeWS4O0NFbLlKd115aZY/5hJ48FQo13P2aS9tDD9d+57SoXTG8r6GvzO0ILZrcGRJqyyGPSJlrp3lSQNdLYfZKE32KjOITDGuTV9Yj92ZTuUwI/PKeWx0dtsm8q3zrtLlbCLBHNDjxHJKX83be18ntGOZ2dsFFAqTS8o9oOTPykmeWDY4vuZEN5BOi5dx0fa7qz7sA==
x-mbbSecToken: CqYyOmHaSIDnd3ZJGn0mioM81PTIW3hvGpgV8jxOuIiDTHSwnpyi5mM+y4MJQA1xasTI/X4UPIZQsCt/NzJnMjhmhIgwfjQSko/0PnF5qmCunn2Y5+S/FW6gEaP16o1m8/z0qOtC3Towh599BnxkJwfJhUOI/BxKy+/j4HMY3B+DtdbZlYUdKxI1cg6DTECtTss9766Wgm9oj3+UcvHZduP0LtJZKCecE7hC4qcEVf3VnLhyz8X6pHZsYs4J1tDRoDX0otrX5i7t6144pwaO/HY0G70zaQbS9E/t40mKkGZH4mnMGKytS1Z4J2yHFXzLEmyVvYY4S/epSPEF/ib5dShIu1qZciQzl4NYE9J8xy7AE7XS52bxImkhzy4Y9u26gbZAO0T0tgir7jlFmmnwXENYh94aWRzO9IEbFKLLJ3LRWHGO3RDPOb4yCIA1fJT3HN8EzWSGWw6bG6iypUHFCw4PDDHtGNRYGSE8JhBqI5VmG1LnJIb5ZKKacXH1A+D27yE7yxSsZvG58rSlBU24uxZnpSb77ISRGBVeGGrhy2jCNDL29WG58ZuB2jd6HTCZDG6g7bhsADjroICc6tpK3g==
Content-Length: 119
Content-Length: 119

except the bearer token

Why is the bearer token of different length in your old prod compared to latest binding?

Did you tried other actions?

The only action channel that I get detected is DoorLock, but in the app I can also control my remote heater/ventilation and also blink/horn.

Could it be the pairing warning that is the root-cause that I don’t get channels for controlling remote heater and ventilation?

2021-05-19 21:48:10.586 [DEBUG] [nternal.handler.CarNetVehicleHandler] - WVGZZZ5NZLW805555: Service availability: statusData: true, tripData: true, destinations: true, carFinder: true, climater: true, charger: true, remoteLock: true
2021-05-19 21:48:10.586 [DEBUG] [nternal.handler.CarNetVehicleHandler] - WVGZZZ5NZLW805555: Active userId = pE2eU3eHDCJpQHdvyFHrAWMdfRT, role = PRIMARY_USER (securityLevel HG_3), status = ENABLED, Pairing Code 
2021-05-19 21:48:10.587 [DEBUG] [carnet.internal.api.CarNetHttpClient] - HTTP GET https://msg.volkswagen.de/fs-car/usermanagement/users/v1/VW/DE/vehicles/WVGZZZ5NZLW805555/pairing, data=
2021-05-19 21:48:10.587 [TRACE] [carnet.internal.api.CarNetHttpClient] - Headers: 
Accept-Encoding: gzip
User-Agent: okhttp/3.10.0
Accept-Charset: UTF-8
Authorization: Bearer eyJraWQiOiJNQkIwMSIsImFsZyI6IlJTMjU2In0.eyJzY3AiOlsiZmFsIl0sInN1YiI6InBFMmVVM2VIRENKcFFIZHZ5RkhyQVdNdGtUTSIsInZlciI6IjEiLCJjb3IiOiJERSIsImlzcyI6IlZXR01CQjAxREVMSVYxIiwiY250IjoiMzg3NjExMzQtMzRkMC00MWYzLTlhNzMtYzRiZTg4ZDdkMzM3IiwiY2NoIjoiYXBwIiwidHlwIjoiQVQiLCJzeXMiOiJYSURfQVBQX1ZXIiwic3R5cCI6IlQyIiwiYXVkIjoibWFsLnByZC5lY2UudndnLWNvbm5lY3QuY29tIiwidG50IjoiVlcsREVGQVVMVCIsImV4cCI6MTYyMTQ1NzI4OSwiaWF0IjoxNjIxNDUzNjg5LCJydC1pZCI6IjNjYjU1Y2Q1LWE3NTUtNGJkYy05NTlmLTkzZmRjYTYwNTA0MyIsImp0aSI6IjgwZWFlM2VmLWEwYzItNDZjMi05MGNkLTQ0YjA3MzliYTZlNSJ9.fTeNJ04wMCoGGOvnxaK42SIoP9IZVJfP3nY1dH0JeQdJNYcpqV30Vo5shghEQ_cojKK7pKTqXjg7gVtwx0jWryue28z0qhLaQd1lAsU11-0uydhRZuj_LXl7Q3hbM8LWm_mQxSjJ109EncVtwjrBB95d4bLKssbnI7pPYjd6NbkFjsWzjUU2fuj5r-6XZSBogXvpQiSDHFUdbnHUQ9y1AXpW_Au7HyPFhkeieWQ-KkC5ggQXBJyDbwpAHbPZM53Pn33ZTp0C7zXdhNhnGMjjAHZ191IJAQJ1G5G3k7QgE-z1VGVKjH7viOu6_n_GhLkBvInglwI3dIwyLAUIRrMJCg
Accept: application/json
X-App-Name: eRemote
X-Country-Id: DE
X-Language-Id: de
X-App-Version: 5.1.2


2021-05-19 21:48:10.890 [TRACE] [carnet.internal.api.CarNetHttpClient] - HTTP Response: {"pairingInfo":{"pairingStatus":"UNPAIRED","xmlns":"http://www.vw.com/mbb/usermanagement","userId":"pE2eU3eHDCJpQHdvyFHrAWMdfRT","pairingCode":"","vehicle":"WVGZZZ5NZLW805555"}}
2021-05-19 21:48:10.891 [TRACE] [carnet.internal.api.CarNetHttpClient] - Headers: 
X-FS-Tracking-ID: 81c2194d-2bee-4f66-b3cd-9a51dfb05676
Content-Encoding: gzip
Content-Type: application/json;charset=UTF-8
Content-Length: 172
Date: Wed, 19 May 2021 19:48:10 GMT
Server: www

Anyone else that gets this pairing issue?
It works perfectly to control my Tiguan via the app

Not waking up the car when polling for new results works for me with the sensors that I am interested in but for some sensors it might not be ideal.
I think the current is best for most people though.
Here you can see that I do get more updates when the battery is charging, so that I have decent resolution on the battery level.
However the outside temperature only get updated as a side effect of other activity, which is fine for as it is not worth waking up the car for:


Yes. I think, it would be best, if the forced-vehicle-update is a manual switch in the binding. so than, everbody can choose “his” ideal interval by writing a cron-based rule.

do we want to have

  • one switch to force a status poll and
  • one to force a update by the vehicle

or is it enough to have one, which does both (the request is asynchronous anyways)

I think I found the lock/unlock (and all other actions) problem. For whatever reason I changed the code to fill in the security token twice instead access token and security token (which have different v

New build:

  • Fix: Target temp has 0.1C offset
  • Fix: Use correct bearer token for actions (like lock/unlock)
  • Fix: Channel initialization when channels are newly linked
  • New: If enabled the binding does a reverse lookup on the geo position to get the address (more or less), this can be enabled in the thing config (default: disabled), uses OpenStreetMap
  • New: control for maxCurrent

Please note: I can’t test the changes on the control actions, my A6 doesn’t provide them (even it has a climater). Make sure to enable DEBUG log and check the log for details. Report the vehicle type when tested successful/error.-

I’m now adding a static offset of 0.1C, let’s see how that works out

I added channel

  • charger#maxCurrent to show the current value and
  • control#maxCurrent to control Max charge (write new value)

I need to think about: Normally it doesn’t make sense to have 2 channels with the same purpose. However, changing the current is an asynchronous process, so it could be that you issue the command, bute before completion you receive an update to the current setting, which overwrites the value for the pending request + the fact that that usually all channels in group charger are read-only. What’s your opinion?

i think, one switch which is doing both is enough… thank you!
perhaps the channel “lastUpdate” should show the time of the last “vehicle poll state” not the time of the last “server poll state” so we can see, when last time the data from vehicle was updated…

Question from me on this one.

I have a 2021 Audi A5 in the UK. All connected and working expect for door locking.

If I unlock the doors with the keyfob, the status updates and the same if I lock the doors with the keyfob however, if I try to lock (or unlock) using the LockVehicle Switch, i get the below in the logs. Is this expected? It’s an assumption on my part that as the app supports it (I can lock and unlock in the Audi app), I should be able to do this using the binding too.

2021-05-20 17:33:50.849 [INFO ] [nternal.handler.CarNetVehicleHandler] - WAUZZZxxxxxxxxxxx: API Service is not available:
2021-05-20 17:33:50.852 [WARN ] [nternal.handler.CarNetVehicleHandler] - WAUZZZxxxxxxxxxxx:

Is my assumption incorrect or is something else going wrong here?

Did you tried the latest build?

Brand Model Year Type Market Notes Doorlock Clima Preheat
Audi etron 2021 Electric DE most of the channels seem to work no no N/A

log for climate and doorlock attached
carnet.log (12.8 KB)

clima:
I see “gw.error.validation”,“description”:“Invalid payload”
I updated the build, please try

  • update jar
  • remove thing
  • re-discover
  • go to the account thing config, check advanced
    and change “API Level Climatisation” to 1
  • save thing config, disable/enable thing
  • try it again and provide log

lock/unlock:
I see “MBB Roles and Rights responded: 403 - Forbidden”
Does this work with the Audi App? Are those functions enabled?

new ist build i not working

Error while starting bundle: file:/usr/share/openhab/addons/org.openhab.binding.carnet-3.1.0-SNAPSHOT.jar
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.carnet [283]
  Unresolved requirement: Import-Package: javax.measure; version="[2.1.0,3.0.0)"

	at org.eclipse.osgi.container.Module.start(Module.java:444) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) ~[org.eclipse.osgi-3.12.100.jar:?]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) [bundleFile:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) [bundleFile:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520) [bundleFile:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [bundleFile:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [bundleFile:3.6.4]

new build is uploaded

still the same error (as in the pre previous build). But I have no “API Level Climatisation” under advanced?

Authorization: Bearer eyJraWQiOiJNQkIwMSIsImFsZyI6IlJTMjU2In0.eyJzY3AiOlsiZmFsIl0sInN1YiI6Imp6SXNoYmFRVHJNSVBtQ2lCT2xlVWdCenJKSyIsInZlciI6IjEiLCJjb3IiOiJERSIsImlzcyI6IlZXR01CQjAxREVMSVYxIiwiY250IjoiNzc4NjllMjEtZTMwYS00YTkyLWIwMTYtNDhhYjdkM2RiMWQ4IiwiY2NoIjoiYXBwIiwidHlwIjoiQVQiLCJzeXMiOiJYSURfQVBQX0FVREkiLCJzdHlwIjoiVDIiLCJhdWQiOiJtYWwucHJkLmVjZS52d2ctY29ubmVjdC5jb20iLCJ0bnQiOiJBdWRpLERFRkFVTFQiLCJleHAiOjE2MjE1NDE1NjgsImlhdCI6MTYyMTUzNzk2OCwicnQtaWQiOiI3YzY5MTk2NC1lZDY3LTRlYjktOWI2Yy1mMzM0ZGJkNzI1OGYiLCJqdGkiOiIwOGUwZjQ4NS1iNDRlLTQ0MzAtYTI4My1kYjIyZGVmZTNhMDYifQ.jWaNtN1LbKCExkgJga_71uZxk_t93t28H_clAUzjk-S1mFs1f6g_8sP3ORVRJsjT32lW6TT7IN1ArnLoHixHmJSm6kqL5j_RNwq6OasCeC6yJr4Rl4mojosmsIbn_NyoKShbn_dRfSW1Xz6WXNt8bc20F5RQKH2ALt57tjem7et-AwCof60pgaPjvo_Y30mUeKMRvqVXw7de68ZuS0eEFcc4XeaCv3GmSDy_p6DBcov7MWuc8QFcLOtt7CflczyQR-WIZeAmoxA53H0ysWhn_O602zHuwn3Ny_NF7Yj09eDI3epeQ3I0nIWT4WFO5rc4Oa2Xi9kD_GPSS765h_onkQ
Accept: application/json, application/vnd.vwg.mbb.ChargerAction_v1_0_0+xml,application/vnd.volkswagenag.com-error-v1+xml,application/vnd.vwg.mbb.genericError_v1_0_2+xml,application/vnd.vwg.mbb.RemoteStandheizung_v2_0_0+xml,application/vnd.vwg.mbb.genericError_v1_0_2+xml,application/vnd.vwg.mbb.RemoteLockUnlock_v1_0_0+xml,application/vnd.vwg.mbb.operationList_v3_0_2+xml,application/vnd.vwg.mbb.genericError_v1_0_2+xml,*/*
X-App-Name: myAudi
Host: msg.audi.de
X-App-Version: 3.22.0
Content-Type: application/vnd.vwg.mbb.ClimaterAction_v1_0_0+xml;charset=utf-8
Content-Length: 153


2021-05-20 21:21:03.387 [TRACE] [carnet.internal.api.CarNetHttpClient] - HTTP Response: {"error":{"errorCode":"gw.error.validation","description":"Invalid payload"}}
2021-05-20 21:21:03.389 [TRACE] [carnet.internal.api.CarNetHttpClient] -   Headers: 
X-FS-Tracking-ID: de73f592-8eb6-4e19-986e-c0b90b53cbeb
X-FS-Error-Code: GW400
Content-Type: application/json
Content-Length: 77
Date: Thu, 20 May 2021 19:21:02 GMT
Connection: close
Server: www


2021-05-20 21:21:03.390 [INFO ] [nternal.handler.CarNetVehicleHandler] - XXXXXXXXXXXXXXXXX: API Call failed: API returned error
2021-05-20 21:21:03.392 [DEBUG] [nternal.handler.CarNetVehicleHandler] - XXXXXXXXXXXXXXXXX: HTTP response: {"error":{"errorCode":"gw.error.validation","description":"Invalid payload"}}
2021-05-20 21:21:03.393 [DEBUG] [nternal.handler.CarNetVehicleHandler] - XXXXXXXXXXXXXXXXX: message.api-status.gw.error.validation
2021-05-20 21:21:03.394 [WARN ] [nternal.handler.CarNetVehicleHandler] - XXXXXXXXXXXXXXXXX: message.api-status.gw.error.validation

And yes the door locking works with the app.

Thanks for keeping the fast updates coming!
Build from a few minutes ago connects to my car.

The set temperature for the Climater matches my app with the 0.1 offset. Will let you know how it works with other temperatures.

The Climater switch was working before, but now I get an error that the payload in invalid.

In this build I do see the channel control#maxCurrent and not the charger#maxcurrent maybe the same name gives some weird issue?
In my app I only have a limited set of options for the charging current:
5A, 10A, 13A, MAX
Not sure how this relates to the API behind.