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

Thanks @cwi, I tried again and now I have

  • connectedcar:volkswagen:… ONLINE
  • connectedcar:vwid:… ONLINE
  • connectedcar:wecharge:… UNKNOWN

and I had the car in the inbox!

  • connectedcar:cnvehicle:… ONLINE

manually created

  • connectedcar:idvehicle:… ERROR:BRIDGE ( BRIDGE_UNINITIALIZED Account Thing is not initialized!)

This does not make sense to me …
connectedcar:idvehicle uses connectedcar:vwid, right?

cnvehicle is a Thing under volkswagen Bridge (the combination I am using), while idvehicle is a Thing of a vwid Bridge. Support might depend on your specific car type and vendor’s API for it.
Maybe, after your Bridge is online and correct Thing assigned to the Bridge, you pause the vehicle in MainUI Thing config, and re-enable again?
Any reports in openhab log, e.g. you need to agree to terms in the car?

I‘m not really missing something, but don‘t like to have to many different systems running. So I also would prefer a „native“ openHAB Binding for different EVs rather having another home-automation running just for few services.

@markus7017 I‘m happy to support in testing for Fiat :wink: Any chance to work on implementation??

Regards, int5749

Hi everyone

First of all, thank you for the binding and all the work/time required to keep it alive. Nevertheless I have an issue in my configuration.

I’ve copied the binding/jar-file from the git provided and created the things: one bridge (myAudi) and two cars. While I had no problems in getting a connection to myAudi and finding our two cars in the things-inbox, the transmitted data got messed up in OH heavily. Sometimes both cars had the values of car 1, next time they both had data of car 2 and so on.

Therefore I created a second bridge and moved one car from bridge 1 to bridge 2. Resulting in both bridges working in parallel and the data of the cars being correct. Is this the intended way of adding multiple cars? Or is there something not properly working? Maybe in my config?

Thanks in advance

@cwi i still do not get get informations on the channels… how do i may debug your bindung to get informations why its not working ?


Thanks a lot!

It might need some input of users with a charger, which I don’t have, so the channel doesn’t appear for me.
I see your bridge and car online. Are there any channels providing values, e.g. Switch status#vehicleLocked being ON or OFF? Even your example of ChargingPower=0 … is at least not NULL (=empty), so seems as if this was a transmitted value.
For your better analysis, you might need to raise log level of the binding and get a deeper look at that output:

  1. In console: log:set DEBUG org.openhab.binding.connectedcar (replace DEBUG with TRACE for even more data)
  2. pause/un-pause the bridge Thing
    (rename or re-create items to force an update of it)

Monitor log output in frontail (:9001) or in log files /var/log/openhab/events.log and /var/log/openhab/openhab.log
Don’t forget to lower log level back to DEFAULT after all.

Reminder: Readme of the binding and its config options: README.md

It looks to me that a new Thing type must be created. According a first test, I wan´t able to login with my Cupra connect credentials via the vwid or seat Thing.

i will check your advises. do you have short description or an link how weconnect works?

VIN:               WV2ZZZ
Device Platform:   MBB_ODP
Nickname:          Multivan Life 1,4 l
Role:              PRIMARY_USER
Enrollment Status: COMPLETED
User Role Status:  ENABLED
Capabilities: 47 items
	[access] Status: INSUFFICIENT_RIGHTS disabling: False
	[automation] disabling: False
	[charging] disabling: False
	[climatisation] disabling: False
	[cubicNetwork] disabling: False
	[cubicNetworkConsumption] disabling: False
	[dealerAppointment] Status: INITIALLY_DISABLED, DISABLED_BY_USER disabling: True
	[departureProfiles] Status: MISSING_SERVICE disabling: False
	[departureTimers] disabling: False
	[destinationSync] Status: MISSING_SERVICE disabling: False
	[destinations] disabling: False
	[emergencyCalling] Status: MISSING_SERVICE disabling: False
	[fuelStatus] disabling: False
	[geofence] Status: MISSING_SERVICE disabling: False
	[hybridRadio] Status: MISSING_SERVICE disabling: False
	[mapUpdate] Status: MISSING_SERVICE disabling: False
	[measurements] disabling: False
	[mobileDeviceKey] Status: MISSING_SERVICE disabling: False
	[news] Status: MISSING_SERVICE disabling: False
	[oilLevelStatus] disabling: False
	[onlineSpeech] Status: MISSING_SERVICE disabling: False
	[parkingInformation] Status: MISSING_SERVICE disabling: False
	[parkingPosition] disabling: False
	[roadsideAssistant] disabling: False
	[routing] Status: MISSING_SERVICE disabling: False
	[state] disabling: False
	[transactionHistoryAntiTheftAlert] Status: MISSING_SERVICE disabling: False
	[transactionHistoryAntiTheftAlertDelete] Status: MISSING_SERVICE disabling: False
	[transactionHistoryDigitalKey] Status: MISSING_SERVICE disabling: False
	[transactionHistoryGeofence] Status: MISSING_SERVICE disabling: False
	[transactionHistoryGeofenceDelete] Status: MISSING_SERVICE disabling: False
	[transactionHistoryHonkFlash] disabling: False
	[transactionHistoryLockUnlock] Status: INSUFFICIENT_RIGHTS disabling: False
	[transactionHistorySpeedAlert] Status: MISSING_SERVICE disabling: False
	[transactionHistorySpeedAlertDelete] Status: MISSING_SERVICE disabling: False
	[tripStatistics] disabling: False
	[vehicleHealth] disabling: False
	[vehicleHealthArchive] Status: MISSING_OPERATION disabling: False
	[vehicleHealthInspection] disabling: False
	[vehicleHealthSettings] Status: MISSING_OPERATION disabling: False
	[vehicleHealthTrigger] Status: MISSING_OPERATION disabling: False
	[vehicleHealthWakeUp] disabling: False
	[vehicleHealthWarnings] disabling: False
	[vehicleLights] disabling: False
	[vehicleWakeUp] disabling: False
	[vehicleWakeUpTrigger] disabling: False
	[webRadio] Status: MISSING_SERVICE disabling: False
Domains: 15 items
[access] Elements: 1 items
	[accessStatus] (last captured 2022-06-10T13:50:47+00:00)
		Overall Status: safe
		Doors: 6 items
			bonnet: closed
			frontLeft: closed
			frontRight: closed
			rearLeft: closed
			rearRight: closed
			trunk: closed
		Windows: 6 items
			frontLeft: closed
			frontRight: closed
			rearLeft: unsupported
			rearRight: unsupported
			roofCover: unsupported
			sunRoof: unsupported
[automation] Elements: 2 items
	[climatisationTimer]
		Error: 	Error 4001: Internal error 
			info: Internal error, please try again later. If the problem persists, please contact our support. 
			timestamp: 2022-06-11 10:05:48+00:00
		Timers: 0 items
	[chargingProfiles]
		Error: 	Error 4001: Internal error 
			info: Internal error, please try again later. If the problem persists, please contact our support. 
			timestamp: 2022-06-11 10:05:48+00:00
			Profiles: 0 items
[userCapabilities] Elements: 1 items
	[capabilitiesStatus]
		Capabilities: 46 items
			[access] Status: INSUFFICIENT_RIGHTS disabling: False
			[automation] disabling: False
			[charging] disabling: False
			[climatisation] disabling: False
			[cubicNetwork] disabling: False
			[cubicNetworkConsumption] disabling: False
			[dealerAppointment] Status: INITIALLY_DISABLED, DISABLED_BY_USER disabling: True
			[departureProfiles] Status: MISSING_SERVICE disabling: False
			[departureTimers] disabling: False
			[destinationSync] Status: MISSING_SERVICE disabling: False
			[emergencyCalling] Status: MISSING_SERVICE disabling: False
			[fuelStatus] disabling: False
			[geofence] Status: MISSING_SERVICE disabling: False
			[hybridRadio] Status: MISSING_SERVICE disabling: False
			[mapUpdate] Status: MISSING_SERVICE disabling: False
			[measurements] disabling: False
			[mobileDeviceKey] Status: MISSING_SERVICE disabling: False
			[news] Status: MISSING_SERVICE disabling: False
			[oilLevelStatus] disabling: False
			[onlineSpeech] Status: MISSING_SERVICE disabling: False
			[parkingInformation] Status: MISSING_SERVICE disabling: False
			[parkingPosition] disabling: False
			[roadsideAssistant] disabling: False
			[routing] Status: MISSING_SERVICE disabling: False
			[state] disabling: False
			[transactionHistoryAntiTheftAlert] Status: MISSING_SERVICE disabling: False
			[transactionHistoryAntiTheftAlertDelete] Status: MISSING_SERVICE disabling: False
			[transactionHistoryDigitalKey] Status: MISSING_SERVICE disabling: False
			[transactionHistoryGeofence] Status: MISSING_SERVICE disabling: False
			[transactionHistoryGeofenceDelete] Status: MISSING_SERVICE disabling: False
			[transactionHistoryHonkFlash] disabling: False
			[transactionHistoryLockUnlock] Status: INSUFFICIENT_RIGHTS disabling: False
			[transactionHistorySpeedAlert] Status: MISSING_SERVICE disabling: False
			[transactionHistorySpeedAlertDelete] Status: MISSING_SERVICE disabling: False
			[tripStatistics] disabling: False
			[vehicleHealth] disabling: False
			[vehicleHealthArchive] Status: MISSING_OPERATION disabling: False
			[vehicleHealthInspection] disabling: False
			[vehicleHealthSettings] Status: MISSING_OPERATION disabling: False
			[vehicleHealthTrigger] Status: MISSING_OPERATION disabling: False
			[vehicleHealthWakeUp] disabling: False
			[vehicleHealthWarnings] disabling: False
			[vehicleLights] disabling: False
			[vehicleWakeUp] disabling: False
			[vehicleWakeUpTrigger] disabling: False
			[webRadio] Status: MISSING_SERVICE disabling: False
[charging] Elements: 5 items
	[batteryStatus] (last captured 2022-06-10T18:01:06+00:00)
		Current SoC: 100%
		Range: 38km
	[chargingStatus] (last captured 2022-06-10T18:01:06+00:00)
		State: readyForCharging
		Remaining Charging Time: 0 minutes
		Charging Settings: 
	[chargingSettings] (last captured 2022-06-10T18:01:06+00:00)
		Maximum Charge Current AC: maximum
	[chargeMode]
		Error: 	Error 4001: Internal error 
			info: Internal error, please try again later. If the problem persists, please contact our support. 
			timestamp: 2022-06-11 10:05:48+00:00
	[plugStatus] (last captured 2022-06-10T18:01:06+00:00)
		Plug: connected, locked
[climatisation] Elements: 3 items
	[climatisationStatus] (last captured 2022-06-10T08:00:05+00:00)
		State: off
		Remaining Climatization Time: 0 min
	[climatisationSettings] (last captured 2022-06-09T10:03:27+00:00)
		Target Temperature in °C: 22.0 °C 
		Target Temperature in °F: 72.0 °F 
		Climatization without external Power: False
	[windowHeatingStatus] (last captured 2022-06-10T08:00:06+00:00)
		Windows: 2 items
			front: off
			rear: off
[fuelStatus] Elements: 1 items
	[rangeStatus] (last captured 2022-06-10T18:01:06+00:00)
		Car Type: hybrid
		Total Range: 468 km
		Primary Engine: gasoline  SoC: 98% (430 km)
		Secondary Engine: electric  SoC: 100% (38 km)
[vehicleLights] Elements: 1 items
	[lightsStatus] (last captured 2022-06-10T13:50:47+00:00)
		Lights: 2 items
			right: off
			left: off
[lvBattery] Elements: 1 items
	[lvBatteryStatus]
		Error: 	Error 4001: Internal error 
			info: Internal error, please try again later. If the problem persists, please contact our support. 
			timestamp: 2022-06-11 10:05:48+00:00
[readiness] Elements: 0 items
[vehicleHealthInspection] Elements: 1 items
	[maintenanceStatus] (last captured 2022-06-10T13:50:44+00:00)
		Current milage: 1065 km
		Inspection due in: 665 days
		Inspection due in: 29000 km
		Oil service in: 14000 km
		Oil service in: 300 days
[vehicleHealthWarnings] Elements: 1 items
	[warningLights] (last captured 2022-06-10T13:50:44+00:00)
		Current milage: 1065 km
[oilLevel] Elements: 1 items
	[oilLevelStatus]
		Error: 	Error 4001: Internal error 
			info: Internal error, please try again later. If the problem persists, please contact our support. 
			timestamp: 2022-06-11 10:05:48+00:00
[measurements] Elements: 2 items
	[rangeStatus] (last captured 2022-06-10T18:01:06+00:00)
		Electric Range: 38km
		Gasoline Range: 430km
	[odometerStatus] (last captured 2022-06-10T13:50:47+00:00)
		Odometer: 1065km
[batterySupport] Elements: 1 items
	[batterySupportStatus]
		Error: 	Error 4001: Internal error 
			info: Internal error, please try again later. If the problem persists, please contact our support. 
			timestamp: 2022-06-11 10:05:48+00:00
[parking] Elements: 1 items
	[parkingPosition] (last captured 2022-06-10T07:59:39+00:00)
		Latitude: 51.28124
		Longitude: 12.312735```

No, I don’t have such. A fast search provided these:

Not sure if those is of valid help.
Yet, your API feedback reports a valid query, setting several basic attributes.

Interesting would be to access these attributes as channels

but they are not available in openhab. could pls include them?

i used this here: GitHub - tillsteinbach/WeConnect-cli: Commandline Interface to interact with the Volkswagen WeConnect Services

enclosed openhab.log

2022-06-13 10:10:10.787 [DEBUG] [nectedcar.internal.api.ApiHttpClient] - WV2ZZZSTZNH002530: HTTP GET https://mobileapi.apps.emea.vwapps.io/vehicles/WV2ZZZSTZNH002530/status
2022-06-13 10:10:11.492 [DEBUG] [nectedcar.internal.api.ApiHttpClient] - WV2ZZZSTZNH002530: HTTP 207 Response: {"data":{"accessStatus":{"overallStatus":"safe","carCapturedTimestamp":"2022-06-12T15:50:57Z","doors":[{"name":"bonnet","status":["closed"]},{"name":"frontLeft","status":["locked","closed"]},{"name":"frontRight","status":["locked","closed"]},{"name":"rearLeft","status":["locked","closed"]},{"name":"rearRight","status":["locked","closed"]},{"name":"trunk","status":["locked","closed"]}],"windows":[{"name":"frontLeft","status":["closed"]},{"name":"frontRight","status":["closed"]},{"name":"rearLeft","status":["unsupported"]},{"name":"rearRight","status":["unsupported"]},{"name":"roofCover","status":["unsupported"]},{"name":"sunRoof","status":["unsupported"]}]},"batteryStatus":{"carCapturedTimestamp":"2022-06-12T18:01:07Z","currentSOC_pct":1,"cruisingRangeElectric_km":0},"chargingStatus":{"carCapturedTimestamp":"2022-06-12T18:01:07Z","remainingChargingTimeToComplete_min":0,"chargingState":"readyForCharging","chargeMode":"","chargeType":"","chargingSettings":""},"chargingSettings":{"carCapturedTimestamp":"2022-06-12T18:01:06Z","maxChargeCurrentAC":"maximum"},"plugStatus":{"carCapturedTimestamp":"2022-06-12T18:01:07Z","plugConnectionState":"connected","plugLockState":"locked"},"climatisationStatus":{"carCapturedTimestamp":"2022-06-12T15:44:41Z","remainingClimatisationTime_min":0,"climatisationState":"off"},"climatisationSettings":{"carCapturedTimestamp":"2022-06-11T12:32:12Z","targetTemperature_C":22,"targetTemperature_F":72,"unitInCar":null,"climatisationWithoutExternalPower":false,"targetTemperature_K":295},"windowHeatingStatus":{"carCapturedTimestamp":"2022-06-12T15:44:41Z","windowHeatingStatus":[{"windowLocation":"front","windowHeatingState":"off"},{"windowLocation":"rear","windowHeatingState":"off"}]},"lightsStatus":{"carCapturedTimestamp":"2022-06-12T15:50:57Z","lights":[{"name":"right","status":"off"},{"name":"left","status":"off"}]},"maintenanceStatus":{"carCapturedTimestamp":"2022-06-12T15:50:56Z","inspectionDue_days":662,"inspectionDue_km":27900,"mileage_km":2154,"oilServiceDue_days":297,"oilServiceDue_km":12900},"rangeStatus":{"carCapturedTimestamp":"2022-06-12T18:01:07Z","carType":"hybrid","primaryEngine":{"type":"gasoline","currentSOC_pct":37,"remainingRange_km":130},"secondaryEngine":{"type":"electric","currentSOC_pct":1,"remainingRange_km":0},"totalRange_km":130},"capabilityStatus":{"capabilities":[{"id":"access","status":[3003],"userDisablingAllowed":false},{"id":"automation","userDisablingAllowed":false},{"id":"charging","userDisablingAllowed":false},{"id":"climatisation","userDisablingAllowed":false},{"id":"cubicNetwork","userDisablingAllowed":false},{"id":"cubicNetworkConsumption","userDisablingAllowed":false},{"id":"dealerAppointment","status":[1003,1004],"userDisablingAllowed":true},{"id":"departureProfiles","status":[1008],"userDisablingAllowed":false},{"id":"departureTimers","userDisablingAllowed":false},{"id":"destinationSync","status":[1008],"userDisablingAllowed":false},{"id":"emergencyCalling","status":[1008],"userDisablingAllowed":false},{"id":"fuelStatus","userDisablingAllowed":false},{"id":"geofence","status":[1008],"userDisablingAllowed":false},{"id":"hybridRadio","status":[1008],"userDisablingAllowed":false},{"id":"mapUpdate","status":[1008],"userDisablingAllowed":false},{"id":"measurements","userDisablingAllowed":false},{"id":"mobileDeviceKey","status":[1008],"userDisablingAllowed":false},{"id":"news","status":[1008],"userDisablingAllowed":false},{"id":"oilLevelStatus","userDisablingAllowed":false},{"id":"onlineSpeech","status":[1008],"userDisablingAllowed":false},{"id":"parkingInformation","status":[1008],"userDisablingAllowed":false},{"id":"parkingPosition","userDisablingAllowed":false},{"id":"roadsideAssistant","userDisablingAllowed":false},{"id":"routing","status":[1008],"userDisablingAllowed":false},{"id":"state","userDisablingAllowed":false},{"id":"transactionHistoryAntiTheftAlert","status":[1008],"userDisablingAllowed":false},{"id":"transactionHistoryAntiTheftAlertDelete","status":[1008],"userDisablingAllowed":false},{"id":"transactionHistoryDigitalKey","status":[1008],"userDisablingAllowed":false},{"id":"transactionHistoryGeofence","status":[1008],"userDisablingAllowed":false},{"id":"transactionHistoryGeofenceDelete","status":[1008],"userDisablingAllowed":false},{"id":"transactionHistoryHonkFlash","userDisablingAllowed":false},{"id":"transactionHistoryLockUnlock","status":[3003],"userDisablingAllowed":false},{"id":"transactionHistorySpeedAlert","status":[1008],"userDisablingAllowed":false},{"id":"transactionHistorySpeedAlertDelete","status":[1008],"userDisablingAllowed":false},{"id":"tripStatistics","userDisablingAllowed":false},{"id":"vehicleHealth","userDisablingAllowed":false},{"id":"vehicleHealthArchive","status":[1007],"userDisablingAllowed":false},{"id":"vehicleHealthInspection","userDisablingAllowed":false},{"id":"vehicleHealthSettings","status":[1007],"userDisablingAllowed":false},{"id":"vehicleHealthTrigger","status":[1007],"userDisablingAllowed":false},{"id":"vehicleHealthWakeUp","userDisablingAllowed":false},{"id":"vehicleHealthWarnings","userDisablingAllowed":false},{"id":"vehicleLights","userDisablingAllowed":false},{"id":"vehicleWakeUp","userDisablingAllowed":false},{"id":"vehicleWakeUpTrigger","userDisablingAllowed":false},{"id":"webRadio","status":[1008],"userDisablingAllowed":false}]},"rangeMeasurements":{"carCapturedTimestamp":"2022-06-12T18:01:07Z","electricRange":0,"gasolineRange":130},"odometerMeasurement":{"carCapturedTimestamp":"2022-06-12T15:50:57Z","odometer":2154}},"error":{"oilLevelStatus":{"message":"Internal error","info":"Internal error, please try again later. If the problem persists, please contact our support.","code":4001,"group":2,"retry":true},"climatisationTimer":{"message":"Internal error","info":"Internal error, please try again later. If the problem persists, please contact our support.","code":4001,"group":2,"retry":true},"chargeMode":{"message":"Internal error","info":"Internal error, please try again later. If the problem persists, please contact our support.","code":4001,"group":2,"retry":true}}}

Dear team,
thanks for creating and maintaining this binding. I am successfully able to find and link my Skoda Enyaq. Unfortunately the original skoda app offers nearly nothing (no comfort function or many informations). No i would be interested to link also my Skoda Powerpass wallbox. Is this available somehow or are you still searching testers as mentioned in your initial post?
Best regards
Pudermueller

It seemed that volkswagen changed something if i try to call identity.vwgroup.io i get a 404 error so the debug log states the same.
tried it with carnet and weconnect same result

2022-06-19 11:34:33.159 [DEBUG] [.binding.connectedcar.internal.api.IdentityManager] - VW: Logging in, account=myemail@gmail.com
2022-06-19 11:34:33.166 [DEBUG] [ab.binding.connectedcar.internal.api.ApiHttpClient] - 
2022-06-19 11:34:33.688 [DEBUG] [ab.binding.connectedcar.internal.api.ApiHttpClient] - VW: HTTP POST https://identity.vwgroup.io
2022-06-19 11:34:33.732 [DEBUG] [ab.binding.connectedcar.internal.api.ApiHttpClient] - VW: HTTP 404 Response: 404 page not found
2022-06-19 11:34:33.734 [DEBUG] [nding.connectedcar.internal.handler.AccountHandler] - VW: Initialization failed: API call failed

Did you use the most recent version? Not 100% sure, but I think this one is the current version.

Hello everyone,

I just set up a new Openhab 3.3.0 M7 only to try carconnect with wecharge. I still have the problem, that this service is not running. With the milestone M3 the VW.ID Cars are perfectly running. I got this in my log. Has anyone an idea, what is the problem ?

Thank you :slight_smile:

2022-06-20 09:32:03.483 [INFO ] [.core.model.lsp.internal.ModelServer] - Started Language Server Protocol (LSP) service on port 5007
2022-06-20 09:32:10.676 [INFO ] [e.automation.internal.RuleEngineImpl] - Rule engine started.
2022-06-20 09:32:12.295 [INFO ] [org.openhab.ui.internal.UIService ] - Started UI on port 8080
2022-06-20 09:32:16.058 [INFO ] [ab.ui.habpanel.internal.HABPanelTile] - Started HABPanel at /habpanel
2022-06-20 09:35:23.862 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:

java.lang.NullPointerException: null
at org.openhab.binding.connectedcar.internal.api.ApiDataTypesDTO$VehicleDetails.<init>(ApiDataTypesDTO.java:126) ~[?:?]
at org.openhab.binding.connectedcar.internal.api.wecharge.WeChargeApi.getVehicleDetails(WeChargeApi.java:90) ~[?:?]
at org.openhab.binding.connectedcar.internal.handler.AccountHandler.initializeThing(AccountHandler.java:179) ~[?:?]
at org.openhab.binding.connectedcar.internal.handler.AccountHandler.lambda$2(AccountHandler.java:146) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:829) [?:?]

Thanks for this hint, seems to work. :+1:

Are the sources of this addon available? is it open source?

Of course, like all openHAB addons, licensed under EPL2.0.
There is a pending Pull Request and sources can be found in Markus‘ repository.