All Projects → tillsteinbach → WeConnect-cli

tillsteinbach / WeConnect-cli

Licence: MIT license
Commandline Interface to interact with the Volkswagen WeConnect Services

Programming Languages

python
139335 projects - #7 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to WeConnect-cli

WeConnect-mqtt
MQTT Client that publishes data from Volkswagen WeConnect
Stars: ✭ 14 (-48.15%)
Mutual labels:  telemetry, volkswagen, telemetry-data, carnet, weconnect, telemetry-client, volkswagen-carnet, volkswagen-weconnect
WeConnect-python
Python API for the Volkswagen WeConnect Services
Stars: ✭ 27 (+0%)
Mutual labels:  telemetry, volkswagen, telemetry-data, carnet, weconnect, volkswagen-carnet, volkswagen-weconnect
VWsFriend
VW WeConnect visualization and control
Stars: ✭ 130 (+381.48%)
Mutual labels:  volkswagen, volkswagen-carnet, volkswagen-weconnect
IDDataLogger
A DataLogger for Volkwagen ID vehicles. Includes an iOS Widget. Works with VW ID.3 and ID.4 vehicles.
Stars: ✭ 76 (+181.48%)
Mutual labels:  volkswagen, volkswagen-weconnect
wifiqr
Create a QR code with your Wi-Fi login details
Stars: ✭ 207 (+666.67%)
Mutual labels:  command-line-tool
telemetry collector
build telemetry software stack for Cisco nx-os, support both telemetry dial-out and gNMI dial-in
Stars: ✭ 39 (+44.44%)
Mutual labels:  telemetry
cati
Cati Unix Package Manager
Stars: ✭ 19 (-29.63%)
Mutual labels:  command-line-tool
node-banner
Easily integrate ASCII flavored banners to your CLI tool
Stars: ✭ 18 (-33.33%)
Mutual labels:  command-line-tool
content-downloader
Python package to download files on any topic in bulk.
Stars: ✭ 102 (+277.78%)
Mutual labels:  command-line-tool
pprzlink
Message and communication library for the Paparazzi UAV system
Stars: ✭ 17 (-37.04%)
Mutual labels:  telemetry
dotfiles
dotfiles symbolic links management CLI
Stars: ✭ 156 (+477.78%)
Mutual labels:  command-line-tool
cybr-cli
A "Swiss Army Knife" command-line interface (CLI) for easy human and non-human interaction with @cyberark suite of products.
Stars: ✭ 45 (+66.67%)
Mutual labels:  command-line-tool
newrelic-telemetry-sdk-java
Java library for sending telemetry data to New Relic
Stars: ✭ 34 (+25.93%)
Mutual labels:  telemetry
reviewio
code review stats for
Stars: ✭ 22 (-18.52%)
Mutual labels:  command-line-tool
PowerColorLS
PowerShell script to display a colorized directory and file listing with icons
Stars: ✭ 35 (+29.63%)
Mutual labels:  command-line-tool
QGISFMV
QGIS Full Motion Video (FMV)
Stars: ✭ 104 (+285.19%)
Mutual labels:  telemetry
dr scaffold
scaffold django rest apis like a champion 🚀
Stars: ✭ 116 (+329.63%)
Mutual labels:  command-line-tool
grift
swift dependency graph visualizer tool
Stars: ✭ 26 (-3.7%)
Mutual labels:  command-line-tool
audio-playback
Ruby/Command Line Audio File Player
Stars: ✭ 20 (-25.93%)
Mutual labels:  command-line-tool
Mercury-GS
An Open Source Program that allows users to interact with a Spacecraft in a lab environment, pre-launch.
Stars: ✭ 18 (-33.33%)
Mutual labels:  telemetry

WeConnect-cli

GitHub sourcecode GitHub release (latest by date) GitHub GitHub issues PyPI - Downloads PyPI - Python Version Donate at PayPal Sponsor at Github

Commandline Interface to interact with the Volkswagen WeConnect Services

What is the purpose?

If you want to query data from weconnect you can use this command line interface to query the service. This commandline interface behaves like a user using the WeConnect ID App and the WeConnect secion on myvolkswagen.de. Use this if you want to work with the data from WeConnect.

Requirements

You need to install python 3 on your system: How to install python

Login & Consent

WeConnect-cli is based on the new WeConnect ID 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 WeConnect ID interface. Easiest to do so is by installing the WeConnect ID 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-cli, the easiest way is to obtain it from PyPI. Just install instead using:

pip3 install weconnect-cli

Updates

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

pip3 install weconnect-cli --upgrade

How to use

Start weconnect-cli from the commandline, by default you will enter the interactive shell:

weconnect-cli --username [email protected] --password test123

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

weconnect-cli --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)

weconnect-cli --username [email protected] --password test123 list
/vehicles/WVWABCE1ZSD057394
/vehicles/WVWABCE1ZSD057394/vin
/vehicles/WVWABCE1ZSD057394/role
/vehicles/WVWABCE1ZSD057394/enrollmentStatus
/vehicles/WVWABCE1ZSD057394/model
/vehicles/WVWABCE1ZSD057394/nickname
/vehicles/WVWABCE1ZSD057394/capabilities
...

You can then pass the addresses to the "get" command:

weconnect-cli --username [email protected] --password test123 get /vehicles/WVWABCE1ZSD057394/model
ID.3

or the "set" command:

weconnect-cli --username [email protected] --password test123 set /vehicles/WVWABCE1ZSD057394/controls/climatisation stop

The "events" command allows you to monitor what is happening on the WeConnect Interface:

weconnect-cli --username [email protected] --password test123 events
2021-05-26 16:49:58.698570: /vehicles/WVWABCE1ZSD057394/access/accessStatus/overallStatus: new value: unsafe
2021-05-26 16:49:58.698751: /vehicles/WVWABCE1ZSD057394/access/accessStatus/doors/bonnet/lockState: new value: unknown lock state
2021-05-26 16:49:58.698800: /vehicles/WVWABCE1ZSD057394/access/accessStatus/doors/bonnet/openState: new value: closed
2021-05-26 16:49:58.698980: /vehicles/WVWABCE1ZSD057394/access/accessStatus/doors/frontLeft/lockState: new value: unlocked
2021-05-26 16:49:58.699056: /vehicles/WVWABCE1ZSD057394/access/accessStatus/doors/frontLeft/openState: new value: closed

Charging Stations

To obtain data for charging stations you have to add a location to search for in geo coordinates and a search radius in meters:

weconnect-cli --chargingLocation 52.437132 10.796628 --chargingLocationRadius=500 get /chargingStations
ID:                  40a4b8d3-d534-422c-9cd8-81bbfa5b578f
Name:                VW Group Oebisfelder Straße Parkhaus Ost
Operator:            VW Group (Id: edd03be9-2df7-4fe3-be32-1573ba91aac0)
Latitude:            52.4370178
Longitude:           10.7977292
Distance:            76m
Address:             Oebisfelder Straße 1, 38448 Wolfsburg, Deutschland
Max. Charging Power: 50.0kW
Charging Spots: 2 items
	Availability: OCCUPIED
	Max. Charging Power: 22.0kW
	Connectors: 1 items
		Plug Type: Type2
		Max. Charging Power: 22.0kW

	Availability: AVAILABLE
	Max. Charging Power: 50.0kW
	Connectors: 1 items
		Plug Type: CCS
		Max. Charging Power: 50.0kW

Authentification:    RFID, APP, UNKNOWN, UNKNOWN
Options:             weCharge partner;

Interactive Shell

You can also use an interactive shell:

weconnect-cli --username [email protected] --password test123 shell
Welcome! Type ? to list commands
[email protected]@weconnect-sh:/$update
update done
[email protected]@weconnect-sh:/$cd vehicles
[email protected]@weconnect-sh:/vehicles$ ls
..
WVWABCE1ZSD057394
WVWABCE13SD057505
[email protected]@weconnect-sh:/vehicles$ cd /vehicles/WVWABCE13SD057505/status/parkingPosition
[email protected]@weconnect-sh:/vehicles/WVWABCE13SD057505/status/parkingPosition$ cat
[parkingPosition] (last captured 2021-06-01T19:05:04+00:00)
	Latitude: 51.674535
	Longitude: 16.154376
[email protected]@weconnect-sh:/vehicles/WVWABCE13SD057505/parking/parkingPosition$ exit
Bye

Caching

By default weconnect-cli will cache (store) the data for 300 seconds before retrieving new data from the servers. This makes weconnect-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 --interval 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.

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

machine volkswagen.de
login [email protected]
password testpassword123

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

Images

You can also work with images from the API Either you have a look at the commandline

weconnect-cli get /vehicles/WVWABCE13SD057505/pictures/car
                                     zjo]?![[[[]!!??I*{{rlllcc?uzo7zjjuunT#Jwfy25Fmd
                                *JywJ##TTuua]1t7LLjLLLjz7ot[Ir]att11[[aaeeeeoooeozjzet[>
                             1T2p6p5Fmh4Jeut1eoeLT#nL1ou##jeLne]!]!1j[[][[[[[]]I}I][1tee?
                         =[nypmqgdXbbYgzaTuTfzI}}}I!t}jTwjjJL}llllc}Tz?I*}}*****ssr*}}I[1[l
                     rcsoCF6pmgddVhgg6aaCL1##1IIIIII}!ettTwt%%v%cr?]{eI{v%cccllrrrsr*I??aw!}
              Q@GEVgqTnw2yw##TTuuLjj7oaat[]!?IIIIII??!!!7nt{>="i%c{![oea[[taeeeeeeet1eeeetta]i
        a7uJCJ#nLjz7ot1]!?II}**{{srlllrs*}}}}}I?]1e7juLLLLzL1%}1[11teat!rI?I*{srlccvccls{{srri:
    ufzx%lrcv)<\)||"""""|||)\\<<>)%l{**{rs}[7u#TuLz77zjuTL7]I{lx%vi><<\)ii\\\\\\\\\<>>%rss*{cv"
  Ypje{cx%%%%%%v%xxxcccllrs{*?[ezLuTJwf36dGdFw6Vg#Ii\\)xlxi|///////////////////////++++;_'^\v)"
  Y&&F7t!I!?!?t1jt[[1ttttaju5hggV&DkgpdBDXSo}?ttr";:_..-^"|/==^^^^^^^^^;^;;;;;;;;;;;;^">i|__/\/
 #L#e]1*%v%ii\v<\>>ii%v%xclI1e1ajhZFuo#hS#[II*v/)l***c\,`:^^;;;;;;;;;;;;;^^^^==++/=,;/%s][c:;=^
33]||vrr***{*{{rxllrrrrrsrlrllrs{{{{***}I?}r%<"%r1}]ts]{\_;;;===++////""""""||||||/;^){s![!\"}r
]z}i:,:\EGPE6q6VE44d};^==^^=+/"|\ir*?!1tsc)|/=c1?*I]![[?{\,+""/////""|)\<>)vxcrs{***>)!?*}[%{oe
=/"\=^'^t77joo7nJwfyc_'::^+""|)\>%}????#a=""+/!I!*r1nIs!tv|<vxlr{*}I??!???}*{rlxv)<|^|]u{}7%?
>wt)=+^_-` `. .   . ._``://"/""|)\)ls{}!d{;\i%]!aos{e[*e7vl**{srlc%%vii))>><<\\/^;^^=/%1!oI"
 Ewz[><<<<<>)%{{srcv)v))vlrsrrrlll*e7zz7ei)I]{Ia71e{}IjT?)^;,:'_-`.              -^+///>xi/
   .g `:;==/\l[1[I%<)""""+///"||)|+====+="||/"v?l*e]]nf?|`                         `_:,'-
        `_''''':'_.                       -;+|\<vs*?Ic<^
                                            `:^^^=+=^:

but it makes more sense to save the image to a file:

weconnect-cli save /vehicles/WVWABCE13SD057505/pictures/car car.png
ls -alh car.png
-rw-r--r--  1 tillsteinbach  staff   135K  5 Jul 15:07 car.png

If there is information regarding door, light and window status provided for your car you can also use the 'status' picture

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

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.

Known Issues

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

Related Projects:

  • WeConnect-MQTT: MQTT Client that publishes data from Volkswagen WeConnect
  • 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-cli 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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].