{"id":15286495,"url":"https://github.com/tillsteinbach/vwsfriend","last_synced_at":"2025-05-15T13:05:35.432Z","repository":{"id":37028231,"uuid":"356811655","full_name":"tillsteinbach/VWsFriend","owner":"tillsteinbach","description":"VW WeConnect visualization and control","archived":false,"fork":false,"pushed_at":"2024-12-17T07:16:47.000Z","size":5928,"stargazers_count":284,"open_issues_count":60,"forks_count":25,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-05-15T13:05:34.911Z","etag":null,"topics":["car","docker","grafana","homekit","iobroker","volkswagen","volkswagen-carnet","volkswagen-weconnect"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tillsteinbach.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-11T08:31:22.000Z","updated_at":"2025-05-12T14:58:19.000Z","dependencies_parsed_at":"2023-11-17T00:01:47.258Z","dependency_job_id":"aff792a6-2705-4549-a6fe-a1a9728b05e3","html_url":"https://github.com/tillsteinbach/VWsFriend","commit_stats":{"total_commits":1312,"total_committers":6,"mean_commits":"218.66666666666666","dds":0.05716463414634143,"last_synced_commit":"2a7a50eb34962c1039fbf2ddb10aba321eabae0a"},"previous_names":[],"tags_count":89,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tillsteinbach%2FVWsFriend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tillsteinbach%2FVWsFriend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tillsteinbach%2FVWsFriend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tillsteinbach%2FVWsFriend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tillsteinbach","download_url":"https://codeload.github.com/tillsteinbach/VWsFriend/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254346624,"owners_count":22055808,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["car","docker","grafana","homekit","iobroker","volkswagen","volkswagen-carnet","volkswagen-weconnect"],"created_at":"2024-09-30T15:15:11.382Z","updated_at":"2025-05-15T13:05:35.410Z","avatar_url":"https://github.com/tillsteinbach.png","language":"Python","funding_links":["https://www.paypal.com/donate?hosted_button_id=2BVFF5GJ9SXAJ","https://github.com/sponsors/tillsteinbach"],"categories":[],"sub_categories":[],"readme":"# VWsFriend\n[![GitHub sourcecode](https://img.shields.io/badge/Source-GitHub-green)](https://github.com/tillsteinbach/VWsFriend/)\n[![GitHub release (latest by date)](https://img.shields.io/github/v/release/tillsteinbach/VWsFriend)](https://github.com/tillsteinbach/VWsFriend/releases/latest)\n[![GitHub](https://img.shields.io/github/license/tillsteinbach/VWsFriend)](https://github.com/tillsteinbach/VWsFriend/blob/master/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/tillsteinbach/VWsFriend)](https://github.com/tillsteinbach/VWsFriend/issues)\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/vwsfriend?label=PyPI%20Downloads)](https://pypi.org/project/vwsfriend/)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/vwsfriend)](https://pypi.org/project/vwsfriend/)\n[![Docker Image Size (latest semver)](https://img.shields.io/docker/image-size/tillsteinbach/vwsfriend?sort=semver)](https://hub.docker.com/r/tillsteinbach/vwsfriend)\n[![Docker Pulls](https://img.shields.io/docker/pulls/tillsteinbach/vwsfriend)](https://hub.docker.com/r/tillsteinbach/vwsfriend)\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[![Docker Compose CI](https://github.com/tillsteinbach/VWsFriend/actions/workflows/compose.yml/badge.svg)](https://github.com/tillsteinbach/VWsFriend/actions/workflows/build.yml)\n\nVolkswagen WeConnect© API visualization and control (HomeKit) inspired by TeslaMate https://docs.teslamate.org/\n\n## What it looks like\n\u003cimg src=\"https://raw.githubusercontent.com/tillsteinbach/VWsFriend/main/screenshots/teaser.gif\" width=\"100%\"\u003e\n\n## Requirements\n* Docker 20.10.10 or later (if you are new to Docker, see [Installing Docker and Docker Compose](https://docs.docker.com/engine/install/) or for [Raspberry Pi](https://dev.to/rohansawant/installing-docker-and-docker-compose-on-the-raspberry-pi-in-5-simple-steps-3mgl)), docker-compose needs to be at least version 1.27.0 (you can check with `docker compose --version`)\n* A Machine that's always on, so VWsFriend can continually fetch data\n* External internet access, to talk to the servers\n\n## Login \u0026 Consent\nVWsFriend 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 start\n* Clone or download the files [docker-compose.yml](https://raw.githubusercontent.com/tillsteinbach/VWsFriend/main/docker-compose.yml) and [.env](https://raw.githubusercontent.com/tillsteinbach/VWsFriend/main/.env)\n* To create myconfig.env copy [.env](https://raw.githubusercontent.com/tillsteinbach/VWsFriend/main/.env) file and make changes according to your needs\n* Start the stack using your configuration.\n```bash\ndocker compose --env-file ./myconfig.env up\n```\n\n* Open a browser to use the webinterface on http://IP-ADDRESS:4000\n* Open a browser to use grafana on http://IP-ADDRESS:3000 with the user and password you selected\n\n## More information\nMore information can be found in the Wiki: https://github.com/tillsteinbach/VWsFriend/wiki\n\n## Update\n* To update the running VWsFriend configuration to the latest version, run the following commands:\n```bash\ndocker compose pull\ndocker compose --env-file ./myconfig.env up\n```\n\n## Privacy\nDepending on the data provided by your car usage profiles of the cars users can be made (including the locations of trips, refueling and charging). If you need to protect the privacy of the cars users please add ` --privacy no-locations` to the `ADDITIONAL_PARAMETERS` in your myconfig.env file\n\n## ABPR (A better Route Planner) support\nVWsFriend supports sending its data to ABPR out of the box. You just have to generate a user-token in ABRP and configure it for your car in the UI.\nConnecting VWsFriend to ABRP enables you to use the current SoC, position, parking and charging state (feature availability depends on your car!) when planning routes in ABRP\n\n## VWsFriend with Apple Homekit support\n\u003cimg src=\"https://raw.githubusercontent.com/tillsteinbach/VWsFriend/main/screenshots/homekit.jpg\" width=\"200\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/tillsteinbach/VWsFriend/main/screenshots/homekit2.jpg\" width=\"200\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/tillsteinbach/VWsFriend/main/screenshots/homekit3.jpg\" width=\"200\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/tillsteinbach/VWsFriend/main/screenshots/homekit4.jpg\" width=\"200\"\u003e\n\n* Replace the docker-compose file by [docker-compose-homekit-host.yml](https://raw.githubusercontent.com/tillsteinbach/VWsFriend/main/docker-compose-homekit-host.yml) to use the homekit override\n```bash\ndocker compose -f docker-compose-homekit-host.yml --env-file ./myconfig.env up\n```\nThis will use host mode for vwsfriend. This is necessary as the bridge mode will not forward multicast which is necessary for Homekit to work.\nHost mode is not working on macOS. The reson is that the network is still virtualized. See also [Known Issues](#known-issues).\n\nIf you do not like to share the host network with vwsfriend you can use macvlan mode [docker-compose-homekit-macvlan.yml](https://raw.githubusercontent.com/tillsteinbach/VWsFriend/main/docker-compose-homekit-macvlan.yml):\n```bash\ndocker compose -f docker-compose-homekit-macvlan.yml --env-file ./myconfig.env up\n```\nIn macvlan mode VWsFriend will appear as a seperate computer in the network thus you also have to set HOMEKIT_IP to a free IP address in your network in the .env-file.\nHOMEKIT_MASK and HOMEKIT_GW need to be configured with the correct netmask and gateway settings for your network. \n\nIn macvlan mode you reach VWsFriends UI on the configured IP at port 4000\n\nMacvlan mode is not supported on macOS! See also [Known Issues](#known-issues).\n\n## VWsFriend with MQTT support\nVWsFriend also includes [WeConnect-MQTT](https://github.com/tillsteinbach/WeConnect-mqtt). This enables to use the data from the servers at the same time inside VWsFriend and with MQTT and thus saves additional requests and load on the server.\nIf you want to know how to configure MQTT, see here: [WeConnect-MQTT Readme](https://github.com/tillsteinbach/WeConnect-mqtt/blob/main/README.md)\nVWsFriend is using the same options as WeConnect-MQTT. Just select the options as described in WeConnect-MQTT and add those to the `ADDITIONAL_PARAMETERS`.\n\n## Automated Updates\nAs there are continuously updates to the WeConnect API VWsFriend my stop unexpectedly working. I try to push updates in this case as fast as possible. You can configure to get these updates automatically by adding watchtower to your docker-compose.yml file:\n```bash\nwatchtower:\n    image: containrrr/watchtower\n    volumes:\n      - /var/run/docker.sock:/var/run/docker.sock\n    command: --interval 3600 --cleanup\n```\nIf you want to be sure that the update only happens at a certain time of the day to prevent updating in times where you use the car you can also schedule update times like this:\n```bash\n    command: --schedule \"0 0 2 * * *\" --cleanup\n```\nThe example shifts the update time to 2:00 (UTC)\n\n## Automated Backups\nFor automated backups I recommend using [docker-volume-backup](https://github.com/offen/docker-volume-backup). You just need to add an additional service to your docker-compose.yml to allow it to make regular backups.\nThis example shows a configuration for daily backups on a webdav enabled NAS:\n```bash\nbackup:\n  image: offen/docker-volume-backup:latest\n  restart: always\n  environment:\n    WEBDAV_URL: https://mynas:5006\n    WEBDAV_URL_INSECURE: 'true'\n    WEBDAV_PATH: /home/backup/VWsFriend\n    WEBDAV_USERNAME: backupuser\n    WEBDAV_PASSWORD: secretbackuppassword\n  volumes:\n    - /var/run/docker.sock:/var/run/docker.sock:ro\n    - postgresdb_data:/backup/postgresdb-backup:ro\n    - grafana_data:/backup/grafana-backup:ro\n    - vwsfriend_data:/backup/vwsfriend-backup:ro\n```\ndocker-volume-backup supports various [backup locactions](https://offen.github.io/docker-volume-backup/recipes/) and can also enable [different retention policies](https://offen.github.io/docker-volume-backup/how-tos/define-different-retention-schedules.html).\n\n## Known Issues\n* On Raspberry Pi the library libseccomp2 needs to be at least 2.4.4. Most current images for the Raspberry Pi still ship an outdated version. You can update it like that:\n```bash\nsudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC 648ACFD622F3D138\necho \"deb http://deb.debian.org/debian buster-backports main\" | sudo tee -a /etc/apt/sources.list.d/buster-backports.list\nsudo apt update\nsudo apt install -t buster-backports libseccomp2\n```\n* Ironically you cannot host VWsFriend with Homekit support on a macOS machine. The reason is that there is no way to get the advertisements via multicast out of the container into the network. If you want to use the Homekit feature you have to host VWsFriend on a Linux machine. If someone is able to make a setup work on macOS, please let me know to allow me to update the documentation!\n\n## Open improvements\n* Deploy datasource and dashboard as grafana app (allows better control)\n* Change update frequency based on the cars state (more often when car is online)\n\n## Credits\n* Software used in VWsFriend:\n    * [Docker and Docker compose](https://www.docker.com/community/open-source)\n    * [PostgreSQL](https://www.postgresql.org)\n    * [Grafana](https://grafana.com)\n    * [HAP-python](https://github.com/ikalchev/HAP-python)\n    * And several more\n\n## Related projects\n- [WeConnect-cli](https://github.com/tillsteinbach/WeConnect-cli): A commandline interface to interact with WeConnect\n- [WeConnect-MQTT](https://github.com/tillsteinbach/WeConnect-mqtt): A MQTT Client that provides WeConnect data to the MQTT Broker 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- [IDDataLogger](https://github.com/robske110/IDDataLogger)(not maintaned by me): A data logger for Volkswagen ID vehicles written in PHP\n\n## Seat, Cupra, Skoda IV, ...\nNow owning a Skoda vehicle I'm about to make a rewrite of this library called [CarConnectivity](https://github.com/tillsteinbach/CarConnectivity), I hope this will be ready for a first release in early 2025\n\n## Other\nWe Connect© Volkswagen AG\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftillsteinbach%2Fvwsfriend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftillsteinbach%2Fvwsfriend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftillsteinbach%2Fvwsfriend/lists"}