CarConnectivity will become the successor of WeConnect-python in 2025 with similar functionality but support for other brands beyond Volkswagen!
CarConenctivity uses a plugin architecture to enable access to the services of various brands. Currently known plugins are:
Brand | Connector |
---|---|
Skoda | CarConnectivity-connector-skoda |
Volkswagen | CarConnectivity-connector-volkswagen |
If you know of a connector not listed here let me know and I will add it to the list. If you are a python developer and willing to implement a connector for a brand not listed here, let me know and I try to support you as good as possible
You first need a running Python installation. Afterwards you can install CarConnectivity-cli with:
pip install carconnectivity-cli
You also need the right connector for your vehicle, e.g.
pip install carconnectivity-connector-skoda
or you installed CarConnectivity-cli with all known connectors and plugins:
pip3 install 'carconnectivity-cli[connectors,plugins]'
The plugins will then become active when you add them to your configuration.
Start by creating a carconnectivity.json configuration file
In your carconnectivity.json configuration add a section for the connectors you like to use like this:
{
"carConnectivity": {
"connectors": [
{
"type": "volkswagen",
"config": {
"username": "[email protected]"
"password": "testpassword123"
}
},
{
"type": "skoda",
"config": {
"username": "[email protected]"
"password": "testpassword123"
}
}
]
}
}
The detailed configuration options of the connectors can be found in their README files.
Start carconnectivity-cli from the commandline, by default you will enter the interactive shell:
carconnectivity-cli mycarconnectivity_config.json
You get all the usage information by using the --help command
carconnectivity-cli mycarconnectivity_config.json --help
With the "list" command you can get a list of all available information you can query (use "list -s" if you want to see which attributes can be changed)
carconnectivity-cli mycarconnectivity_config.json list
/garage/WVWABCE1ZSD057394
/garage/WVWABCE1ZSD057394/vin
/garage/WVWABCE1ZSD057394/type
/garage/WVWABCE1ZSD057394/odometer
/garage/WVWABCE1ZSD057394/model
/garage/WVWABCE1ZSD057394/name
...
You can then pass the addresses to the "get" command:
carconnectivity-cli mycarconnectivity_config.json get /garage/WVWABCE1ZSD057394/model
ID.3
or the "set" command:
carconnectivity-cli mycarconnectivity_config.json /garage/WVWABCE1ZSD057394/climatisation/command stop
The "events" command allows you to monitor what is happening on the WeConnect Interface:
carconnectivity-cli mycarconnectivity_config.json events
2021-05-26 16:49:58.698570: /garage/WVWABCE1ZSD057394/doors/lock_state: new value: unlocked
2021-05-26 16:49:58.698751: /garage/WVWABCE1ZSD057394/doors/bonnet/lock_state: new value: unknown lock state
2021-05-26 16:49:58.698800: /garage/WVWABCE1ZSD057394/doors/bonnet/open_state: new value: closed
2021-05-26 16:49:58.698980: /garage/WVWABCE1ZSD057394/doors/frontLeft/lock_state: new value: unlocked
2021-05-26 16:49:58.699056: /garage/WVWABCE1ZSD057394/doors/frontLeft/open_state: new value: closed
For some commands (e.g. locking/unlocking supported on some cars) you need in addition to your login the so called S-PIN, you can provide it with the spin config option:
You can also use an interactive shell:
carconnectivity-cli --username [email protected] --password test123 shell
Welcome! Type ? to list commands
[email protected]@weconnect-sh:/$update
update done
[email protected]@weconnect-sh:/$cd garage
[email protected]@weconnect-sh:/garage$ ls
..
WVWABCE1ZSD057394
WVWABCE13SD057505
[email protected]@weconnect-sh:/garage$ cd /garage/WVWABCE13SD057505/status/parkingPosition
[email protected]@weconnect-sh:/garage/WVWABCE13SD057505/status/parkingPosition$ cat
[parkingPosition] (last captured 2021-06-01T19:05:04+00:00)
Latitude: 51.674535
Longitude: 16.154376
[email protected]@weconnect-sh:/garage/WVWABCE13SD057505/parking/parkingPosition$ exit
Bye
By default carconnectivity-cli will cache (store) the data for 300 seconds before retrieving new data from the servers. This makes carconnectivity-cli more responsive and at the same time does not cause unneccessary requests to the vw servers. If you want to increase the cache duration use max_age config option. If you do not want to cache use no_cache option. Please use the no_cache option with care. You are generating traffic with subsequent requests. If you request too often you might be blocked for some time until you can generate requests again.
If you do not want to provide your username or password all the time you have to create a ".netrc" file at the appropriate location (usually this is your home folder):
machine volkswagen.de
login [email protected]
password testpassword123
You can also provide the location of the netrc file in the configuration.
The optional S-PIN needed for some commands can be provided in the account section:
# For WeConnect
machine volkswagen.de
login [email protected]
password testpassword123
account 1234
- Volkswagen ID.3 Modelyear 2021
- Volkswagen Passat GTE Modelyear 2021
- Skoda Enyaq RS Modelyear 2025
Please feel free to open an issue at GitHub Issue page to report problems you found.
- The Tool is in alpha state and may change unexpectedly at any time!
- WeConnect-MQTT: MQTT Client that publishes data from CarConnectivity to any MQTT broker.
- CarConnectivity: The underlying python API behind CarConnectivity-cli. If you are a developer and want to implement an application or service with vehicle telemetry data you can use CarConnectivity-Library.