Skip to main content

MQTT Client that publishes data from Volkswagen WeConnect

Project description

WeConnect-MQTT

GitHub sourcecode GitHub release (latest by date) GitHub GitHub issues PyPI - Downloads PyPI - Python Version Docker Image Size (latest semver) Docker Pulls Donate at PayPal Sponsor at Github

MQTT Client that publishes data from Volkswagen WeConnect Services

What is the purpose?

If you want to integrate data from your weconnect enabled car a standard protocol such as MQTT can be very helpful. This Client enables you to integrate with the MQTT Broker of your choice (e.g. your home automation solution such as ioBroker, FHEM or Home Assistant)

Requirements

You need to install python 3 on your system: How to install python. The minimum required python version is 3.8

Login & Consent

WeConnect-mqtt is based on the new WeConnect API that was introduced with the new series of ID cars. If you use another car or hybrid you probably need to agree to the terms and conditions of the new WeConnect interface. Easiest to do so is by installing the Volkswagen app on your smartphone and login there. If necessary you will be asked to agree to the terms and conditions.

How to install

If you want to use WeConnect-mqtt, the easiest way is to obtain it from PyPI. Just install instead using:

pip3 install weconnect-mqtt

Updates

If you want to update WeConnect-mqtt, the easiest way is:

pip3 install weconnect-mqtt --upgrade

Docker

There is also a Docker image to easily host WeConnect-MQTT: See on Dockerhub

How to use

Start weconnect-mqtt from the commandline:

weconnect-mqtt

You get all the usage information by using the --help command

weconnect-mqtt --help

An example to connect with an MQTT broker at 192.168.0.1 with user test and password test123 is

weconnect-mqtt --username test@test.de --password test123 --mqttbroker 192.168.0.1 --mqtt-username test --mqtt-password test123 --prefix weconnect

The client uses user test@test.de and password test123 in this example to connect to weconnect

S-PIN

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 option:

weconnect-mqtt --username test@test.de --password test123  --spin 1234 --mqttbroker 192.168.0.1 --mqtt-username test --mqtt-password test123 --prefix weconnect

Credentials

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):

# For WeConnect
machine volkswagen.de
login test@test.de
password testpassword123

# For the MQTTBroker
machine 192.168.0.1
login test
password testpassword123

You can also provide the location of the netrc file using the --netrc option

The optional S-PIN needed for some commands can be provided in the account section:

# For WeConnect
machine volkswagen.de
login test@test.de
password testpassword123
account 1234

Charging stations

You can also obtain data from charging stations by adding a location with e.g. --chargingLocation 52.437132 10.796628 and a radius in meters with --chargingLocationRadius=500. Data for charging stations is mostly static, but you can see the current availability.

Topics

If your broker does not let you observe all available topics you can pass the parameter --list-topics to get all topics displayed on the commandline. Topics marked as "(writeable)" can be manipulated. There are also two topics to receive all available topics as a comma seperated list: weconnect/0/mqtt/topics lists all available topics, weconnect/0/mqtt/writeableTopics provides topics that can be manipulated.

Disabling features

You can disable data for the cars capabilities with --no-capabilities If you only need a subset of the data you can use the --selective option. E.g. --selective climatisation

Images

You can enable ASCII Art pictures of the cars with --pictures

PNG vehicle images

If your client can deal with PNG-images received through MQTT you can set --picture-format png

Times

By default the times coming from the car are UTC isoformat. You can convert times to your local timezone by adding --convert-times. Convert times will use the systems timezone. If you want to set a specific timezone use e.g. --convert-times Europe/Berlin. You can format times in your local format by adding --timeformat. This will use the default Date/Time format of your locale setting. If you want to set a specific format use e.g. --timeformat '%a %d %b %Y %T'. If you want to set the date in another language than default on your system use e.g. --locale de_DE.

Raw JSON

If you want to continue working with the whole data you can also enable the topic weconnect/0/rawjson by adding --with-raw-json-topic. The topic is published on every change of the json string.

Tested with

  • Volkswagen ID.3 Modelyear 2021
  • Volkswagen Passat GTE Modelyear 2021

Reporting Issues

Please feel free to open an issue at GitHub Issue page to report problems you found.

More Questions?

Please see the wiki Wiki or start a discussion.

Known Issues

  • The Tool is in alpha state and may change unexpectedly at any time!

Related Projects:

  • WeConnect-cli: Commandline Interface to interact with the Volkswagen WeConnect Services
  • WeConnect-python: Python API to connect to Volkswagen WeConnect Services
  • VWsFriend: VWsFriend is a software to visualize and record statistics of your car and allows control via HomeKit

Seat, Cupra, Skoda IV, ...

In an effort to try to make WeConnect-MQTT also to work with latest generation of vehicles from other volkswagen brands I'm looking for users to temporarily share access to their accounts. If you are willing to support please send me a message.

  • Already tried: Cupra Born (The API looks a bit different, maybe it is older, I will check again in some weeks), thanks to the user initdebugs

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

weconnect_mqtt-0.49.2.tar.gz (18.8 kB view details)

Uploaded Source

Built Distribution

weconnect_mqtt-0.49.2-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

Details for the file weconnect_mqtt-0.49.2.tar.gz.

File metadata

  • Download URL: weconnect_mqtt-0.49.2.tar.gz
  • Upload date:
  • Size: 18.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for weconnect_mqtt-0.49.2.tar.gz
Algorithm Hash digest
SHA256 f0635599c7e07b597de09a3997b315a223a060ef0705a66786028aa88b1c958f
MD5 0bcde9dd687f394b2a72217fab830499
BLAKE2b-256 3535a9175f3cc47a24decb1dac5e1a513d7c889929bc66b9cfc8bef248bb106d

See more details on using hashes here.

File details

Details for the file weconnect_mqtt-0.49.2-py3-none-any.whl.

File metadata

File hashes

Hashes for weconnect_mqtt-0.49.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4e097a3d8e5d18997820b1870dfc919c9ef785b989e305998d69be1d3915b6a8
MD5 e929b35568d692e6287e42d9b5663f10
BLAKE2b-256 8df39550cdd8e72e202f4fd7e5397f31c889d86b3e7c8ee1c9bd4f6cf2d0ce7a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page