weconnect-mqtt


Nameweconnect-mqtt JSON
Version 0.49.0 PyPI version JSON
download
home_pagehttps://github.com/tillsteinbach/WeConnect-mqtt
SummaryMQTT Client that publishes data from Volkswagen WeConnect
upload_time2024-03-03 10:42:46
maintainer
docs_urlNone
authorTill Steinbach
requires_python>=3.8
licenseMIT
keywords weconnect we connect carnet car net volkswagen vw telemetry mqtt smarthome
VCS
bugtrack_url
requirements weconnect paho-mqtt python-dateutil
Travis-CI No Travis.
coveralls test coverage
            # WeConnect-MQTT
[![GitHub sourcecode](https://img.shields.io/badge/Source-GitHub-green)](https://github.com/tillsteinbach/WeConnect-mqtt/)
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/tillsteinbach/WeConnect-mqtt)](https://github.com/tillsteinbach/WeConnect-mqtt/releases/latest)
[![GitHub](https://img.shields.io/github/license/tillsteinbach/WeConnect-mqtt)](https://github.com/tillsteinbach/WeConnect-mqtt/blob/master/LICENSE)
[![GitHub issues](https://img.shields.io/github/issues/tillsteinbach/WeConnect-mqtt)](https://github.com/tillsteinbach/WeConnect-mqtt/issues)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/weconnect-mqtt?label=PyPI%20Downloads)](https://pypi.org/project/weconnect-mqtt/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/weconnect-mqtt)](https://pypi.org/project/weconnect-mqtt/)
[![Docker Image Size (latest semver)](https://img.shields.io/docker/image-size/tillsteinbach/weconnect-mqtt?sort=semver)](https://hub.docker.com/r/tillsteinbach/weconnect-mqtt)
[![Docker Pulls](https://img.shields.io/docker/pulls/tillsteinbach/weconnect-mqtt)](https://hub.docker.com/r/tillsteinbach/weconnect-mqtt)
[![Donate at PayPal](https://img.shields.io/badge/Donate-PayPal-2997d8)](https://www.paypal.com/donate?hosted_button_id=2BVFF5GJ9SXAJ)
[![Sponsor at Github](https://img.shields.io/badge/Sponsor-GitHub-28a745)](https://github.com/sponsors/tillsteinbach)

[MQTT](https://mqtt.org) 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](https://mqtt.org) can be very helpful. This Client enables you to integrate with the [MQTT Broker](https://mqtt.org/software/) of your choice (e.g. your home automation solution such as [ioBroker](https://www.iobroker.net), [FHEM](https://fhem.de) or [Home Assistant](https://www.home-assistant.io))

## Requirements
You need to install python 3 on your system: [How to install python](https://realpython.com/installing-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](https://pypi.org/project/weconnect-mqtt/). Just install instead using:
```bash
pip3 install weconnect-mqtt
```
### Updates
If you want to update WeConnect-mqtt, the easiest way is:
```bash
pip3 install weconnect-mqtt --upgrade
```
### Docker
There is also a Docker image to easily host WeConnect-MQTT: [See on Dockerhub](https://hub.docker.com/r/tillsteinbach/weconnect-mqtt)

## How to use
Start weconnect-mqtt from the commandline:
```bash
weconnect-mqtt
```
You get all the usage information by using the --help command
```bash
weconnect-mqtt --help
```
An example to connect with an MQTT broker at 192.168.0.1 with user test and password test123 is
```bash
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:
```bash
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](https://github.com/tillsteinbach/WeConnect-mqtt/issues) to report problems you found.

## More Questions?
Please see the wiki [Wiki](https://github.com/tillsteinbach/WeConnect-mqtt/wiki) or start a [discussion](https://github.com/tillsteinbach/WeConnect-mqtt/discussions).

### Known Issues
- The Tool is in alpha state and may change unexpectedly at any time!

## Related Projects:
- [WeConnect-cli](https://github.com/tillsteinbach/WeConnect-cli): Commandline Interface to interact with the Volkswagen WeConnect Services
- [WeConnect-python](https://github.com/tillsteinbach/WeConnect-python): Python API to connect to Volkswagen WeConnect Services
- [VWsFriend](https://github.com/tillsteinbach/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

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/tillsteinbach/WeConnect-mqtt",
    "name": "weconnect-mqtt",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "weconnect,we connect,carnet,car net,volkswagen,vw,telemetry,mqtt,smarthome",
    "author": "Till Steinbach",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/85/50/230dcda245368115d2a456677d028f6e1e677854cef5cf3ea8d411e199f2/weconnect-mqtt-0.49.0.tar.gz",
    "platform": null,
    "description": "# WeConnect-MQTT\n[![GitHub sourcecode](https://img.shields.io/badge/Source-GitHub-green)](https://github.com/tillsteinbach/WeConnect-mqtt/)\n[![GitHub release (latest by date)](https://img.shields.io/github/v/release/tillsteinbach/WeConnect-mqtt)](https://github.com/tillsteinbach/WeConnect-mqtt/releases/latest)\n[![GitHub](https://img.shields.io/github/license/tillsteinbach/WeConnect-mqtt)](https://github.com/tillsteinbach/WeConnect-mqtt/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/tillsteinbach/WeConnect-mqtt)](https://github.com/tillsteinbach/WeConnect-mqtt/issues)\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/weconnect-mqtt?label=PyPI%20Downloads)](https://pypi.org/project/weconnect-mqtt/)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/weconnect-mqtt)](https://pypi.org/project/weconnect-mqtt/)\n[![Docker Image Size (latest semver)](https://img.shields.io/docker/image-size/tillsteinbach/weconnect-mqtt?sort=semver)](https://hub.docker.com/r/tillsteinbach/weconnect-mqtt)\n[![Docker Pulls](https://img.shields.io/docker/pulls/tillsteinbach/weconnect-mqtt)](https://hub.docker.com/r/tillsteinbach/weconnect-mqtt)\n[![Donate at PayPal](https://img.shields.io/badge/Donate-PayPal-2997d8)](https://www.paypal.com/donate?hosted_button_id=2BVFF5GJ9SXAJ)\n[![Sponsor at Github](https://img.shields.io/badge/Sponsor-GitHub-28a745)](https://github.com/sponsors/tillsteinbach)\n\n[MQTT](https://mqtt.org) Client that publishes data from Volkswagen WeConnect Services\n\n## What is the purpose?\nIf you want to integrate data from your weconnect enabled car a standard protocol such as [MQTT](https://mqtt.org) can be very helpful. This Client enables you to integrate with the [MQTT Broker](https://mqtt.org/software/) of your choice (e.g. your home automation solution such as [ioBroker](https://www.iobroker.net), [FHEM](https://fhem.de) or [Home Assistant](https://www.home-assistant.io))\n\n## Requirements\nYou need to install python 3 on your system: [How to install python](https://realpython.com/installing-python/). The minimum required python version is 3.8\n\n### Login & Consent\nWeConnect-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.\n\n## How to install\nIf you want to use WeConnect-mqtt, the easiest way is to obtain it from [PyPI](https://pypi.org/project/weconnect-mqtt/). Just install instead using:\n```bash\npip3 install weconnect-mqtt\n```\n### Updates\nIf you want to update WeConnect-mqtt, the easiest way is:\n```bash\npip3 install weconnect-mqtt --upgrade\n```\n### Docker\nThere is also a Docker image to easily host WeConnect-MQTT: [See on Dockerhub](https://hub.docker.com/r/tillsteinbach/weconnect-mqtt)\n\n## How to use\nStart weconnect-mqtt from the commandline:\n```bash\nweconnect-mqtt\n```\nYou get all the usage information by using the --help command\n```bash\nweconnect-mqtt --help\n```\nAn example to connect with an MQTT broker at 192.168.0.1 with user test and password test123 is\n```bash\nweconnect-mqtt --username test@test.de --password test123 --mqttbroker 192.168.0.1 --mqtt-username test --mqtt-password test123 --prefix weconnect\n```\nThe client uses user test@test.de and password test123 in this example to connect to weconnect\n\n### S-PIN\nFor 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:\n```bash\nweconnect-mqtt --username test@test.de --password test123  --spin 1234 --mqttbroker 192.168.0.1 --mqtt-username test --mqtt-password test123 --prefix weconnect\n```\n\n### Credentials\nIf 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):\n```\n# For WeConnect\nmachine volkswagen.de\nlogin test@test.de\npassword testpassword123\n\n# For the MQTTBroker\nmachine 192.168.0.1\nlogin test\npassword testpassword123\n```\nYou can also provide the location of the netrc file using the --netrc option\n\nThe optional S-PIN needed for some commands can be provided in the account section:\n```\n# For WeConnect\nmachine volkswagen.de\nlogin test@test.de\npassword testpassword123\naccount 1234\n```\n\n### Charging stations\nYou 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`.\nData for charging stations is mostly static, but you can see the current availability.\n\n### Topics\nIf 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.\nThere 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.\n\n### Disabling features\nYou can disable data for the cars capabilities with `--no-capabilities`\nIf you only need a subset of the data you can use the `--selective` option. E.g. `--selective climatisation`\n\n### Images\nYou can enable ASCII Art pictures of the cars with `--pictures`\n\n#### PNG vehicle images\nIf your client can deal with PNG-images received through MQTT you can set `--picture-format png`\n\n### Times\nBy 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`.\nYou 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'`.\nIf you want to set the date in another language than default on your system use e.g. `--locale de_DE`.\n\n### Raw JSON\nIf 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.\n\n## Tested with\n- Volkswagen ID.3 Modelyear 2021\n- Volkswagen Passat GTE Modelyear 2021\n\n## Reporting Issues\nPlease feel free to open an issue at [GitHub Issue page](https://github.com/tillsteinbach/WeConnect-mqtt/issues) to report problems you found.\n\n## More Questions?\nPlease see the wiki [Wiki](https://github.com/tillsteinbach/WeConnect-mqtt/wiki) or start a [discussion](https://github.com/tillsteinbach/WeConnect-mqtt/discussions).\n\n### Known Issues\n- The Tool is in alpha state and may change unexpectedly at any time!\n\n## Related Projects:\n- [WeConnect-cli](https://github.com/tillsteinbach/WeConnect-cli): Commandline Interface to interact with the Volkswagen WeConnect Services\n- [WeConnect-python](https://github.com/tillsteinbach/WeConnect-python): Python API to connect to Volkswagen WeConnect Services\n- [VWsFriend](https://github.com/tillsteinbach/VWsFriend): VWsFriend is a software to visualize and record statistics of your car and allows control via HomeKit\n\n## Seat, Cupra, Skoda IV, ...\nIn 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.\n- 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\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "MQTT Client that publishes data from Volkswagen WeConnect",
    "version": "0.49.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/tillsteinbach/WeConnect-mqtt/issues",
        "Funding": "https://github.com/sponsors/WeConnect-mqtt",
        "Homepage": "https://github.com/tillsteinbach/WeConnect-mqtt",
        "Source": "https://github.com/tillsteinbach/WeConnect-mqtt"
    },
    "split_keywords": [
        "weconnect",
        "we connect",
        "carnet",
        "car net",
        "volkswagen",
        "vw",
        "telemetry",
        "mqtt",
        "smarthome"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "43c1ebaecfa7101dde4a589d70a76e7806ba9993bad53a0bd09b0d456f9d5b0a",
                "md5": "3f27c4446b89137d54390de741901864",
                "sha256": "147457623c16ecfa3be284cc6c5d29c2c5fab599e0c34f2fb1908aed275bcc63"
            },
            "downloads": -1,
            "filename": "weconnect_mqtt-0.49.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3f27c4446b89137d54390de741901864",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 15058,
            "upload_time": "2024-03-03T10:42:42",
            "upload_time_iso_8601": "2024-03-03T10:42:42.791470Z",
            "url": "https://files.pythonhosted.org/packages/43/c1/ebaecfa7101dde4a589d70a76e7806ba9993bad53a0bd09b0d456f9d5b0a/weconnect_mqtt-0.49.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8550230dcda245368115d2a456677d028f6e1e677854cef5cf3ea8d411e199f2",
                "md5": "e04a83582eb47e82e2b0885be0acbe61",
                "sha256": "ee0d879905c0597d72355fcc415e3396953b23e55148689da6a5c0d8c87afabf"
            },
            "downloads": -1,
            "filename": "weconnect-mqtt-0.49.0.tar.gz",
            "has_sig": false,
            "md5_digest": "e04a83582eb47e82e2b0885be0acbe61",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 18803,
            "upload_time": "2024-03-03T10:42:46",
            "upload_time_iso_8601": "2024-03-03T10:42:46.409106Z",
            "url": "https://files.pythonhosted.org/packages/85/50/230dcda245368115d2a456677d028f6e1e677854cef5cf3ea8d411e199f2/weconnect-mqtt-0.49.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-03 10:42:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "tillsteinbach",
    "github_project": "WeConnect-mqtt",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "requirements": [
        {
            "name": "weconnect",
            "specs": [
                [
                    "~=",
                    "0.60.2"
                ]
            ]
        },
        {
            "name": "paho-mqtt",
            "specs": [
                [
                    "~=",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "python-dateutil",
            "specs": [
                [
                    "~=",
                    "2.8.2"
                ]
            ]
        }
    ],
    "test_requirements": [
        {
            "name": "pytest",
            "specs": []
        },
        {
            "name": "pytest-cov",
            "specs": []
        }
    ],
    "lcname": "weconnect-mqtt"
}
        
Elapsed time: 0.20836s