carconnectivity-cli 0.1a1__tar.gz → 0.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. {carconnectivity_cli-0.1a1 → carconnectivity_cli-0.3}/.github/workflows/build.yml +5 -0
  2. carconnectivity_cli-0.3/CHANGELOG.md +20 -0
  3. carconnectivity_cli-0.3/PKG-INFO +219 -0
  4. carconnectivity_cli-0.3/README.md +167 -0
  5. {carconnectivity_cli-0.1a1 → carconnectivity_cli-0.3}/pyproject.toml +13 -1
  6. carconnectivity_cli-0.3/setup_requirements.txt +3 -0
  7. {carconnectivity_cli-0.1a1 → carconnectivity_cli-0.3}/src/carconnectivity_cli/_version.py +9 -4
  8. {carconnectivity_cli-0.1a1 → carconnectivity_cli-0.3}/src/carconnectivity_cli/carconnectivity_cli_base.py +24 -18
  9. carconnectivity_cli-0.3/src/carconnectivity_cli.egg-info/PKG-INFO +219 -0
  10. {carconnectivity_cli-0.1a1 → carconnectivity_cli-0.3}/src/carconnectivity_cli.egg-info/SOURCES.txt +1 -0
  11. carconnectivity_cli-0.3/src/carconnectivity_cli.egg-info/requires.txt +11 -0
  12. carconnectivity_cli-0.1a1/PKG-INFO +0 -92
  13. carconnectivity_cli-0.1a1/README.md +0 -48
  14. carconnectivity_cli-0.1a1/setup_requirements.txt +0 -3
  15. carconnectivity_cli-0.1a1/src/carconnectivity_cli.egg-info/PKG-INFO +0 -92
  16. carconnectivity_cli-0.1a1/src/carconnectivity_cli.egg-info/requires.txt +0 -1
  17. {carconnectivity_cli-0.1a1 → carconnectivity_cli-0.3}/.flake8 +0 -0
  18. {carconnectivity_cli-0.1a1 → carconnectivity_cli-0.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  19. {carconnectivity_cli-0.1a1 → carconnectivity_cli-0.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  20. {carconnectivity_cli-0.1a1 → carconnectivity_cli-0.3}/.github/dependabot.yml +0 -0
  21. {carconnectivity_cli-0.1a1 → carconnectivity_cli-0.3}/.github/workflows/build_and_publish.yml +0 -0
  22. {carconnectivity_cli-0.1a1 → carconnectivity_cli-0.3}/.github/workflows/codeql-analysis.yml +0 -0
  23. {carconnectivity_cli-0.1a1 → carconnectivity_cli-0.3}/.gitignore +0 -0
  24. {carconnectivity_cli-0.1a1 → carconnectivity_cli-0.3}/LICENSE +0 -0
  25. {carconnectivity_cli-0.1a1 → carconnectivity_cli-0.3}/Makefile +0 -0
  26. {carconnectivity_cli-0.1a1 → carconnectivity_cli-0.3}/setup.cfg +0 -0
  27. {carconnectivity_cli-0.1a1 → carconnectivity_cli-0.3}/src/carconnectivity_cli/__init__.py +0 -0
  28. {carconnectivity_cli-0.1a1 → carconnectivity_cli-0.3}/src/carconnectivity_cli.egg-info/dependency_links.txt +0 -0
  29. {carconnectivity_cli-0.1a1 → carconnectivity_cli-0.3}/src/carconnectivity_cli.egg-info/entry_points.txt +0 -0
  30. {carconnectivity_cli-0.1a1 → carconnectivity_cli-0.3}/src/carconnectivity_cli.egg-info/top_level.txt +0 -0
@@ -10,10 +10,12 @@ on:
10
10
  paths:
11
11
  - .github/workflows/build.yml
12
12
  - '**.py'
13
+ - 'pyproject.toml'
13
14
  pull_request:
14
15
  paths:
15
16
  - .github/workflows/build.yml
16
17
  - '**.py'
18
+ - 'pyproject.toml'
17
19
 
18
20
  jobs:
19
21
  build-python:
@@ -39,6 +41,9 @@ jobs:
39
41
  - name: Install built package
40
42
  run: |
41
43
  pip install dist/*.whl
44
+ - name: Run
45
+ run: |
46
+ carconnectivity-cli --version
42
47
  - name: Lint
43
48
  run: |
44
49
  make lint
@@ -0,0 +1,20 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ ## [Unreleased]
6
+ - No unreleased changes so far
7
+
8
+ ## [0.3] - 2025-03-02
9
+ - Bump carconnectivity dependency to 0.4
10
+
11
+ ## [0.2] - 2025-02-19
12
+ - Bump carconnectivity dependency to 0.3
13
+
14
+ ## [0.1] - 2025-01-25
15
+ Initial release, let's go and give this to the public to try out...
16
+
17
+ [unreleased]: https://github.com/tillsteinbach/CarConnectivity-cli/compare/v0.3...HEAD
18
+ [0.3]: https://github.com/tillsteinbach/CarConnectivity-cli/releases/tag/v0.3
19
+ [0.2]: https://github.com/tillsteinbach/CarConnectivity-cli/releases/tag/v0.2
20
+ [0.1]: https://github.com/tillsteinbach/CarConnectivity-cli/releases/tag/v0.1
@@ -0,0 +1,219 @@
1
+ Metadata-Version: 2.2
2
+ Name: carconnectivity-cli
3
+ Version: 0.3
4
+ Summary: Library for retrieving information from car connectivity services
5
+ Author: Till Steinbach
6
+ License: MIT License
7
+
8
+ Copyright (c) 2021 Till Steinbach
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ Classifier: Development Status :: 3 - Alpha
29
+ Classifier: Environment :: Console
30
+ Classifier: License :: OSI Approved :: MIT License
31
+ Classifier: Intended Audience :: End Users/Desktop
32
+ Classifier: Intended Audience :: System Administrators
33
+ Classifier: Programming Language :: Python :: 3.9
34
+ Classifier: Programming Language :: Python :: 3.10
35
+ Classifier: Programming Language :: Python :: 3.11
36
+ Classifier: Programming Language :: Python :: 3.12
37
+ Classifier: Programming Language :: Python :: 3.13
38
+ Classifier: Topic :: Utilities
39
+ Classifier: Topic :: System :: Monitoring
40
+ Requires-Python: >=3.9
41
+ Description-Content-Type: text/markdown
42
+ License-File: LICENSE
43
+ Requires-Dist: carconnectivity>=0.4
44
+ Requires-Dist: argparse
45
+ Requires-Dist: JSON_minify~=0.3.0
46
+ Provides-Extra: connectors
47
+ Requires-Dist: carconnectivity-connector-volkswagen; extra == "connectors"
48
+ Requires-Dist: carconnectivity-connector-skoda; extra == "connectors"
49
+ Provides-Extra: plugins
50
+ Requires-Dist: carconnectivity-plugin-abrp; extra == "plugins"
51
+ Requires-Dist: carconnectivity-plugin-homekit; extra == "plugins"
52
+
53
+
54
+
55
+ # CarConnectivity Command Line Interface
56
+ [![GitHub sourcecode](https://img.shields.io/badge/Source-GitHub-green)](https://github.com/tillsteinbach/CarConnectivity-cli/)
57
+ [![GitHub release (latest by date)](https://img.shields.io/github/v/release/tillsteinbach/CarConnectivity-cli)](https://github.com/tillsteinbach/CarConnectivity-cli/releases/latest)
58
+ [![GitHub](https://img.shields.io/github/license/tillsteinbach/CarConnectivity-cli)](https://github.com/tillsteinbach/CarConnectivity-cli/blob/master/LICENSE)
59
+ [![GitHub issues](https://img.shields.io/github/issues/tillsteinbach/CarConnectivity-cli)](https://github.com/tillsteinbach/CarConnectivity-cli/issues)
60
+ [![PyPI - Downloads](https://img.shields.io/pypi/dm/carconnectivity-cli?label=PyPI%20Downloads)](https://pypi.org/project/carconnectivity-cli/)
61
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/carconnectivity-cli)](https://pypi.org/project/carconnectivity-cli/)
62
+ [![Donate at PayPal](https://img.shields.io/badge/Donate-PayPal-2997d8)](https://www.paypal.com/donate?hosted_button_id=2BVFF5GJ9SXAJ)
63
+ [![Sponsor at Github](https://img.shields.io/badge/Sponsor-GitHub-28a745)](https://github.com/sponsors/tillsteinbach)
64
+
65
+ ## CarConnectivity will become the successor of [WeConnect-python](https://github.com/tillsteinbach/WeConnect-python) in 2025 with similar functionality but support for other brands beyond Volkswagen!
66
+
67
+ ## Supported Car Brands
68
+ CarConenctivity uses a plugin architecture to enable access to the services of various brands. Currently known plugins are:
69
+
70
+ | Brand | Connector |
71
+ |-----------------------------------|---------------------------------------------------------------------------------------------------------------|
72
+ | Skoda | [CarConnectivity-connector-skoda](https://github.com/tillsteinbach/CarConnectivity-connector-skoda) |
73
+ | Volkswagen | [CarConnectivity-connector-volkswagen](https://github.com/tillsteinbach/CarConnectivity-connector-volkswagen) |
74
+ | [Tronity](https://www.tronity.io) | [CarConnectivity-connector-tronity](https://github.com/tillsteinbach/CarConnectivity-connector-tronity) |
75
+
76
+ If you know of a connector not listed here let me know and I will add it to the list.
77
+ 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
78
+
79
+ ## How to install
80
+ You first need a running [Python](https://www.python.org/downloads/) installation. Afterwards you can install CarConnectivity-cli with:
81
+ ```
82
+ pip install carconnectivity-cli
83
+ ```
84
+ You also need the right connector for your vehicle, e.g.
85
+ ```
86
+ pip install carconnectivity-connector-skoda
87
+ ```
88
+ or you installed CarConnectivity-cli with all known connectors and plugins:
89
+ ```
90
+ pip3 install 'carconnectivity-cli[connectors,plugins]'
91
+ ```
92
+ The plugins will then become active when you add them to your configuration.
93
+
94
+ ## How to use
95
+ Start by creating a carconnectivity.json configuration file
96
+
97
+ ### Configuration
98
+ In your carconnectivity.json configuration add a section for the connectors you like to use like this:
99
+ ```
100
+ {
101
+ "carConnectivity": {
102
+ "connectors": [
103
+ {
104
+ "type": "volkswagen",
105
+ "config": {
106
+ "username": "test@test.de"
107
+ "password": "testpassword123"
108
+ }
109
+ },
110
+ {
111
+ "type": "skoda",
112
+ "config": {
113
+ "username": "test@test.de"
114
+ "password": "testpassword123"
115
+ }
116
+ }
117
+ ]
118
+ }
119
+ }
120
+ ```
121
+ The detailed configuration options of the connectors can be found in their README files.
122
+
123
+ ### How to use the commandline interface
124
+ Start carconnectivity-cli from the commandline, by default you will enter the interactive shell:
125
+ ```bash
126
+ carconnectivity-cli mycarconnectivity_config.json
127
+ ```
128
+ You get all the usage information by using the --help command
129
+ ```bash
130
+ carconnectivity-cli mycarconnectivity_config.json --help
131
+ ```
132
+ 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)
133
+ ```bash
134
+ carconnectivity-cli mycarconnectivity_config.json list
135
+ /garage/WVWABCE1ZSD057394
136
+ /garage/WVWABCE1ZSD057394/vin
137
+ /garage/WVWABCE1ZSD057394/type
138
+ /garage/WVWABCE1ZSD057394/odometer
139
+ /garage/WVWABCE1ZSD057394/model
140
+ /garage/WVWABCE1ZSD057394/name
141
+ ...
142
+ ```
143
+ You can then pass the addresses to the "get" command:
144
+ ```bash
145
+ carconnectivity-cli mycarconnectivity_config.json get /garage/WVWABCE1ZSD057394/model
146
+ ID.3
147
+ ```
148
+ or the "set" command:
149
+ ```bash
150
+ carconnectivity-cli mycarconnectivity_config.json /garage/WVWABCE1ZSD057394/climatisation/command stop
151
+ ```
152
+ The "events" command allows you to monitor what is happening on the WeConnect Interface:
153
+ ```bash
154
+ carconnectivity-cli mycarconnectivity_config.json events
155
+ 2021-05-26 16:49:58.698570: /garage/WVWABCE1ZSD057394/doors/lock_state: new value: unlocked
156
+ 2021-05-26 16:49:58.698751: /garage/WVWABCE1ZSD057394/doors/bonnet/lock_state: new value: unknown lock state
157
+ 2021-05-26 16:49:58.698800: /garage/WVWABCE1ZSD057394/doors/bonnet/open_state: new value: closed
158
+ 2021-05-26 16:49:58.698980: /garage/WVWABCE1ZSD057394/doors/frontLeft/lock_state: new value: unlocked
159
+ 2021-05-26 16:49:58.699056: /garage/WVWABCE1ZSD057394/doors/frontLeft/open_state: new value: closed
160
+ ```
161
+
162
+ ### S-PIN
163
+ 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:
164
+
165
+ ### Interactive Shell
166
+ You can also use an interactive shell:
167
+ ```
168
+ carconnectivity-cli --username user@mail.de --password test123 shell
169
+ Welcome! Type ? to list commands
170
+ user@mail.de@weconnect-sh:/$update
171
+ update done
172
+ user@mail.de@weconnect-sh:/$cd garage
173
+ user@mail.de@weconnect-sh:/garage$ ls
174
+ ..
175
+ WVWABCE1ZSD057394
176
+ WVWABCE13SD057505
177
+ user@mail.de@weconnect-sh:/garage$ cd /garage/WVWABCE13SD057505/status/parkingPosition
178
+ user@mail.de@weconnect-sh:/garage/WVWABCE13SD057505/status/parkingPosition$ cat
179
+ [parkingPosition] (last captured 2021-06-01T19:05:04+00:00)
180
+ Latitude: 51.674535
181
+ Longitude: 16.154376
182
+ user@mail.de@weconnect-sh:/garage/WVWABCE13SD057505/parking/parkingPosition$ exit
183
+ Bye
184
+ ```
185
+ ### Caching
186
+ 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.
187
+
188
+ ### Credentials
189
+ 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):
190
+ ```
191
+ machine volkswagen.de
192
+ login test@test.de
193
+ password testpassword123
194
+ ```
195
+ You can also provide the location of the netrc file in the configuration.
196
+
197
+ The optional S-PIN needed for some commands can be provided in the account section:
198
+ ```
199
+ # For WeConnect
200
+ machine volkswagen.de
201
+ login test@test.de
202
+ password testpassword123
203
+ account 1234
204
+ ```
205
+
206
+ ## Tested with
207
+ - Volkswagen ID.3 Modelyear 2021
208
+ - Volkswagen Passat GTE Modelyear 2021
209
+ - Skoda Enyaq RS Modelyear 2025
210
+
211
+ ## Reporting Issues
212
+ Please feel free to open an issue at [GitHub Issue page](https://github.com/tillsteinbach/carconnectivity-cli/issues) to report problems you found.
213
+
214
+ ### Known Issues
215
+ - The Tool is in alpha state and may change unexpectedly at any time!
216
+
217
+ ## Related Projects:
218
+ - [CarConnectivity-plugin-mqtt](https://github.com/tillsteinbach/CarConnectivity-plugin-mqtt): MQTT Client that publishes data from CarConnectivity to any MQTT broker.
219
+ - [CarConnectivity](https://github.com/tillsteinbach/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](https://github.com/tillsteinbach/CarConnectivity).
@@ -0,0 +1,167 @@
1
+
2
+
3
+ # CarConnectivity Command Line Interface
4
+ [![GitHub sourcecode](https://img.shields.io/badge/Source-GitHub-green)](https://github.com/tillsteinbach/CarConnectivity-cli/)
5
+ [![GitHub release (latest by date)](https://img.shields.io/github/v/release/tillsteinbach/CarConnectivity-cli)](https://github.com/tillsteinbach/CarConnectivity-cli/releases/latest)
6
+ [![GitHub](https://img.shields.io/github/license/tillsteinbach/CarConnectivity-cli)](https://github.com/tillsteinbach/CarConnectivity-cli/blob/master/LICENSE)
7
+ [![GitHub issues](https://img.shields.io/github/issues/tillsteinbach/CarConnectivity-cli)](https://github.com/tillsteinbach/CarConnectivity-cli/issues)
8
+ [![PyPI - Downloads](https://img.shields.io/pypi/dm/carconnectivity-cli?label=PyPI%20Downloads)](https://pypi.org/project/carconnectivity-cli/)
9
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/carconnectivity-cli)](https://pypi.org/project/carconnectivity-cli/)
10
+ [![Donate at PayPal](https://img.shields.io/badge/Donate-PayPal-2997d8)](https://www.paypal.com/donate?hosted_button_id=2BVFF5GJ9SXAJ)
11
+ [![Sponsor at Github](https://img.shields.io/badge/Sponsor-GitHub-28a745)](https://github.com/sponsors/tillsteinbach)
12
+
13
+ ## CarConnectivity will become the successor of [WeConnect-python](https://github.com/tillsteinbach/WeConnect-python) in 2025 with similar functionality but support for other brands beyond Volkswagen!
14
+
15
+ ## Supported Car Brands
16
+ CarConenctivity uses a plugin architecture to enable access to the services of various brands. Currently known plugins are:
17
+
18
+ | Brand | Connector |
19
+ |-----------------------------------|---------------------------------------------------------------------------------------------------------------|
20
+ | Skoda | [CarConnectivity-connector-skoda](https://github.com/tillsteinbach/CarConnectivity-connector-skoda) |
21
+ | Volkswagen | [CarConnectivity-connector-volkswagen](https://github.com/tillsteinbach/CarConnectivity-connector-volkswagen) |
22
+ | [Tronity](https://www.tronity.io) | [CarConnectivity-connector-tronity](https://github.com/tillsteinbach/CarConnectivity-connector-tronity) |
23
+
24
+ If you know of a connector not listed here let me know and I will add it to the list.
25
+ 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
26
+
27
+ ## How to install
28
+ You first need a running [Python](https://www.python.org/downloads/) installation. Afterwards you can install CarConnectivity-cli with:
29
+ ```
30
+ pip install carconnectivity-cli
31
+ ```
32
+ You also need the right connector for your vehicle, e.g.
33
+ ```
34
+ pip install carconnectivity-connector-skoda
35
+ ```
36
+ or you installed CarConnectivity-cli with all known connectors and plugins:
37
+ ```
38
+ pip3 install 'carconnectivity-cli[connectors,plugins]'
39
+ ```
40
+ The plugins will then become active when you add them to your configuration.
41
+
42
+ ## How to use
43
+ Start by creating a carconnectivity.json configuration file
44
+
45
+ ### Configuration
46
+ In your carconnectivity.json configuration add a section for the connectors you like to use like this:
47
+ ```
48
+ {
49
+ "carConnectivity": {
50
+ "connectors": [
51
+ {
52
+ "type": "volkswagen",
53
+ "config": {
54
+ "username": "test@test.de"
55
+ "password": "testpassword123"
56
+ }
57
+ },
58
+ {
59
+ "type": "skoda",
60
+ "config": {
61
+ "username": "test@test.de"
62
+ "password": "testpassword123"
63
+ }
64
+ }
65
+ ]
66
+ }
67
+ }
68
+ ```
69
+ The detailed configuration options of the connectors can be found in their README files.
70
+
71
+ ### How to use the commandline interface
72
+ Start carconnectivity-cli from the commandline, by default you will enter the interactive shell:
73
+ ```bash
74
+ carconnectivity-cli mycarconnectivity_config.json
75
+ ```
76
+ You get all the usage information by using the --help command
77
+ ```bash
78
+ carconnectivity-cli mycarconnectivity_config.json --help
79
+ ```
80
+ 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)
81
+ ```bash
82
+ carconnectivity-cli mycarconnectivity_config.json list
83
+ /garage/WVWABCE1ZSD057394
84
+ /garage/WVWABCE1ZSD057394/vin
85
+ /garage/WVWABCE1ZSD057394/type
86
+ /garage/WVWABCE1ZSD057394/odometer
87
+ /garage/WVWABCE1ZSD057394/model
88
+ /garage/WVWABCE1ZSD057394/name
89
+ ...
90
+ ```
91
+ You can then pass the addresses to the "get" command:
92
+ ```bash
93
+ carconnectivity-cli mycarconnectivity_config.json get /garage/WVWABCE1ZSD057394/model
94
+ ID.3
95
+ ```
96
+ or the "set" command:
97
+ ```bash
98
+ carconnectivity-cli mycarconnectivity_config.json /garage/WVWABCE1ZSD057394/climatisation/command stop
99
+ ```
100
+ The "events" command allows you to monitor what is happening on the WeConnect Interface:
101
+ ```bash
102
+ carconnectivity-cli mycarconnectivity_config.json events
103
+ 2021-05-26 16:49:58.698570: /garage/WVWABCE1ZSD057394/doors/lock_state: new value: unlocked
104
+ 2021-05-26 16:49:58.698751: /garage/WVWABCE1ZSD057394/doors/bonnet/lock_state: new value: unknown lock state
105
+ 2021-05-26 16:49:58.698800: /garage/WVWABCE1ZSD057394/doors/bonnet/open_state: new value: closed
106
+ 2021-05-26 16:49:58.698980: /garage/WVWABCE1ZSD057394/doors/frontLeft/lock_state: new value: unlocked
107
+ 2021-05-26 16:49:58.699056: /garage/WVWABCE1ZSD057394/doors/frontLeft/open_state: new value: closed
108
+ ```
109
+
110
+ ### S-PIN
111
+ 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:
112
+
113
+ ### Interactive Shell
114
+ You can also use an interactive shell:
115
+ ```
116
+ carconnectivity-cli --username user@mail.de --password test123 shell
117
+ Welcome! Type ? to list commands
118
+ user@mail.de@weconnect-sh:/$update
119
+ update done
120
+ user@mail.de@weconnect-sh:/$cd garage
121
+ user@mail.de@weconnect-sh:/garage$ ls
122
+ ..
123
+ WVWABCE1ZSD057394
124
+ WVWABCE13SD057505
125
+ user@mail.de@weconnect-sh:/garage$ cd /garage/WVWABCE13SD057505/status/parkingPosition
126
+ user@mail.de@weconnect-sh:/garage/WVWABCE13SD057505/status/parkingPosition$ cat
127
+ [parkingPosition] (last captured 2021-06-01T19:05:04+00:00)
128
+ Latitude: 51.674535
129
+ Longitude: 16.154376
130
+ user@mail.de@weconnect-sh:/garage/WVWABCE13SD057505/parking/parkingPosition$ exit
131
+ Bye
132
+ ```
133
+ ### Caching
134
+ 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.
135
+
136
+ ### Credentials
137
+ 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):
138
+ ```
139
+ machine volkswagen.de
140
+ login test@test.de
141
+ password testpassword123
142
+ ```
143
+ You can also provide the location of the netrc file in the configuration.
144
+
145
+ The optional S-PIN needed for some commands can be provided in the account section:
146
+ ```
147
+ # For WeConnect
148
+ machine volkswagen.de
149
+ login test@test.de
150
+ password testpassword123
151
+ account 1234
152
+ ```
153
+
154
+ ## Tested with
155
+ - Volkswagen ID.3 Modelyear 2021
156
+ - Volkswagen Passat GTE Modelyear 2021
157
+ - Skoda Enyaq RS Modelyear 2025
158
+
159
+ ## Reporting Issues
160
+ Please feel free to open an issue at [GitHub Issue page](https://github.com/tillsteinbach/carconnectivity-cli/issues) to report problems you found.
161
+
162
+ ### Known Issues
163
+ - The Tool is in alpha state and may change unexpectedly at any time!
164
+
165
+ ## Related Projects:
166
+ - [CarConnectivity-plugin-mqtt](https://github.com/tillsteinbach/CarConnectivity-plugin-mqtt): MQTT Client that publishes data from CarConnectivity to any MQTT broker.
167
+ - [CarConnectivity](https://github.com/tillsteinbach/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](https://github.com/tillsteinbach/CarConnectivity).
@@ -14,7 +14,9 @@ authors = [
14
14
  { name = "Till Steinbach" }
15
15
  ]
16
16
  dependencies = [
17
- "argparse"
17
+ "carconnectivity>=0.4",
18
+ "argparse",
19
+ "JSON_minify~=0.3.0"
18
20
  ]
19
21
  readme = "README.md"
20
22
  license = { file = "LICENSE" }
@@ -33,6 +35,16 @@ classifiers = [
33
35
  'Topic :: System :: Monitoring',
34
36
  ]
35
37
 
38
+ [project.optional-dependencies]
39
+ connectors = [
40
+ 'carconnectivity-connector-volkswagen',
41
+ 'carconnectivity-connector-skoda',
42
+ ]
43
+ plugins = [
44
+ 'carconnectivity-plugin-abrp',
45
+ 'carconnectivity-plugin-homekit',
46
+ ]
47
+
36
48
  [project.urls]
37
49
 
38
50
  [project.scripts]
@@ -0,0 +1,3 @@
1
+ flake8~=7.1.2
2
+ pylint~=3.3.4
3
+ bandit~=1.8.3
@@ -1,8 +1,13 @@
1
- # file generated by setuptools_scm
1
+ # file generated by setuptools-scm
2
2
  # don't change, don't track in version control
3
+
4
+ __all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
5
+
3
6
  TYPE_CHECKING = False
4
7
  if TYPE_CHECKING:
5
- from typing import Tuple, Union
8
+ from typing import Tuple
9
+ from typing import Union
10
+
6
11
  VERSION_TUPLE = Tuple[Union[int, str], ...]
7
12
  else:
8
13
  VERSION_TUPLE = object
@@ -12,5 +17,5 @@ __version__: str
12
17
  __version_tuple__: VERSION_TUPLE
13
18
  version_tuple: VERSION_TUPLE
14
19
 
15
- __version__ = version = '0.1a1'
16
- __version_tuple__ = version_tuple = (0, 1)
20
+ __version__ = version = '0.3'
21
+ __version_tuple__ = version_tuple = (0, 3)
@@ -11,9 +11,12 @@ import tempfile
11
11
  import cmd
12
12
  import json
13
13
  import time
14
- from datetime import datetime
14
+ from datetime import datetime, timezone
15
15
 
16
- from carconnectivity import carconnectivity, errors, util, objects, attributes, observable
16
+ from json_minify import json_minify
17
+
18
+ from carconnectivity import carconnectivity, errors, util, objects, observable
19
+ from carconnectivity.attributes import GenericAttribute
17
20
  from carconnectivity._version import __version__ as __carconnectivity_version__
18
21
 
19
22
  from carconnectivity_cli._version import __version__
@@ -21,7 +24,6 @@ from carconnectivity_cli._version import __version__
21
24
  if TYPE_CHECKING:
22
25
  from typing import Literal, List
23
26
  from carconnectivity.objects import GenericObject
24
- from carconnectivity.attributes import GenericAttribute
25
27
 
26
28
  LOG_LEVELS = ["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"]
27
29
  DEFAULT_LOG_LEVEL = "ERROR"
@@ -124,9 +126,10 @@ def main() -> None: # noqa: C901 # pylint: disable=too-many-statements,too-many
124
126
  handler.addFilter(util.DuplicateFilter())
125
127
 
126
128
  try: # pylint: disable=too-many-nested-blocks
127
- with open(file=args.config, mode='r', encoding='utf-8') as config_file:
128
- config_dict = json.load(config_file)
129
- car_connectivity = carconnectivity.CarConnectivity(config=config_dict, tokenstore_file=args.tokenfile, cache_file=args.cachefile)
129
+ try:
130
+ with open(file=args.config, mode='r', encoding='utf-8') as config_file:
131
+ config_dict = json.loads(json_minify(config_file.read(), strip_space=False))
132
+ car_connectivity = carconnectivity.CarConnectivity(config=config_dict, tokenstore_file=args.tokenfile, cache_file=args.cachefile)
130
133
 
131
134
  if args.command == 'shell':
132
135
  try:
@@ -139,13 +142,13 @@ def main() -> None: # noqa: C901 # pylint: disable=too-many-statements,too-many
139
142
  all_elements: List[GenericAttribute] = car_connectivity.get_attributes(recursive=True)
140
143
  for element in all_elements:
141
144
  if args.setters:
142
- if isinstance(element, attributes.ChangeableAttribute):
145
+ if element.is_changeable:
143
146
  print(element.get_absolute_path())
144
147
  else:
145
148
  print(element.get_absolute_path())
146
149
  elif args.command == 'get':
147
150
  car_connectivity.fetch_all()
148
- element: carconnectivity.GenericObject | objects.GenericAttribute | bool = car_connectivity.get_by_path(args.id)
151
+ element: carconnectivity.GenericObject | GenericAttribute | bool = car_connectivity.get_by_path(args.id)
149
152
  if element:
150
153
  if args.format == Formats.STRING:
151
154
  if isinstance(element, dict):
@@ -162,10 +165,10 @@ def main() -> None: # noqa: C901 # pylint: disable=too-many-statements,too-many
162
165
  sys.exit('id not found')
163
166
  elif args.command == 'set':
164
167
  car_connectivity.fetch_all()
165
- element: carconnectivity.GenericObject | objects.GenericAttribute | bool = car_connectivity.get_by_path(args.id)
168
+ element: GenericObject | GenericAttribute | bool = car_connectivity.get_by_path(args.id)
166
169
  if element:
167
170
  try:
168
- if isinstance(element, attributes.ChangeableAttribute):
171
+ if isinstance(element, GenericAttribute) and element.is_changeable:
169
172
  element.value = args.value
170
173
  else:
171
174
  print(f'id {args.id} cannot be set. You can see all changeable entries with "list -s', file=sys.stderr)
@@ -183,21 +186,22 @@ def main() -> None: # noqa: C901 # pylint: disable=too-many-statements,too-many
183
186
  sys.exit('id not found')
184
187
  elif args.command == 'events':
185
188
  car_connectivity.startup()
189
+
186
190
  def observer(element, flags):
187
191
  if flags & observable.Observable.ObserverEvent.ENABLED:
188
- print(str(datetime.now()) + ': ' + element.get_absolute_path() + ': new object created')
192
+ print(str(datetime.now(tz=timezone.utc)) + ': ' + element.get_absolute_path() + ': new object created')
189
193
  elif flags & observable.Observable.ObserverEvent.DISABLED:
190
- print(str(datetime.now()) + ': ' + element.get_absolute_path() + ': object not available anymore')
194
+ print(str(datetime.now(tz=timezone.utc)) + ': ' + element.get_absolute_path() + ': object not available anymore')
191
195
  elif flags & observable.Observable.ObserverEvent.VALUE_CHANGED:
192
- print(str(datetime.now()) + ': ' + element.get_absolute_path() + ': new value: ' + str(element))
196
+ print(str(datetime.now(tz=timezone.utc)) + ': ' + element.get_absolute_path() + ': new value: ' + str(element))
193
197
  elif flags & observable.Observable.ObserverEvent.UPDATED_NEW_MEASUREMENT:
194
- print(str(datetime.now()) + ': ' + element.get_absolute_path()
198
+ print(str(datetime.now(tz=timezone.utc)) + ': ' + element.get_absolute_path()
195
199
  + ': was updated from vehicle but did not change: ' + str(element))
196
200
  elif flags & observable.Observable.ObserverEvent.UPDATED:
197
- print(str(datetime.now()) + ': ' + element.get_absolute_path()
201
+ print(str(datetime.now(tz=timezone.utc)) + ': ' + element.get_absolute_path()
198
202
  + ': was updated from server but did not change: ' + str(element))
199
203
  else:
200
- print(str(datetime.now()) + ' (' + str(flags) + '): '
204
+ print(str(datetime.now(tz=timezone.utc)) + ' (' + str(flags) + '): '
201
205
  + element.get_absolute_path() + ': ' + str(element))
202
206
  car_connectivity.add_observer(observer, observable.Observable.ObserverEvent.ALL,
203
207
  priority=observable.Observable.ObserverPriority.USER_MID)
@@ -209,8 +213,10 @@ def main() -> None: # noqa: C901 # pylint: disable=too-many-statements,too-many
209
213
  else:
210
214
  LOG.error('command not implemented')
211
215
  sys.exit('command not implemented')
212
-
213
216
  car_connectivity.shutdown()
217
+ except FileNotFoundError as e:
218
+ LOG.critical('Could not find configuration file %s (%s)', args.config, e)
219
+ sys.exit('Could not find configuration file')
214
220
  except json.JSONDecodeError as e:
215
221
  LOG.critical('Could not load configuration file %s (%s)', args.config, e)
216
222
  sys.exit('Could not load configuration file')
@@ -513,7 +519,7 @@ class CarConnectivityShell(cmd.Cmd):
513
519
  all_elements = self.pwd.get_attributes(recursive=True)
514
520
  for element in all_elements:
515
521
  if setters:
516
- if isinstance(element, attributes.ChangeableAttribute):
522
+ if isinstance(element, GenericAttribute) and element.is_changeable:
517
523
  print(element.get_absolute_path())
518
524
  else:
519
525
  print(element.get_absolute_path())
@@ -0,0 +1,219 @@
1
+ Metadata-Version: 2.2
2
+ Name: carconnectivity-cli
3
+ Version: 0.3
4
+ Summary: Library for retrieving information from car connectivity services
5
+ Author: Till Steinbach
6
+ License: MIT License
7
+
8
+ Copyright (c) 2021 Till Steinbach
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ Classifier: Development Status :: 3 - Alpha
29
+ Classifier: Environment :: Console
30
+ Classifier: License :: OSI Approved :: MIT License
31
+ Classifier: Intended Audience :: End Users/Desktop
32
+ Classifier: Intended Audience :: System Administrators
33
+ Classifier: Programming Language :: Python :: 3.9
34
+ Classifier: Programming Language :: Python :: 3.10
35
+ Classifier: Programming Language :: Python :: 3.11
36
+ Classifier: Programming Language :: Python :: 3.12
37
+ Classifier: Programming Language :: Python :: 3.13
38
+ Classifier: Topic :: Utilities
39
+ Classifier: Topic :: System :: Monitoring
40
+ Requires-Python: >=3.9
41
+ Description-Content-Type: text/markdown
42
+ License-File: LICENSE
43
+ Requires-Dist: carconnectivity>=0.4
44
+ Requires-Dist: argparse
45
+ Requires-Dist: JSON_minify~=0.3.0
46
+ Provides-Extra: connectors
47
+ Requires-Dist: carconnectivity-connector-volkswagen; extra == "connectors"
48
+ Requires-Dist: carconnectivity-connector-skoda; extra == "connectors"
49
+ Provides-Extra: plugins
50
+ Requires-Dist: carconnectivity-plugin-abrp; extra == "plugins"
51
+ Requires-Dist: carconnectivity-plugin-homekit; extra == "plugins"
52
+
53
+
54
+
55
+ # CarConnectivity Command Line Interface
56
+ [![GitHub sourcecode](https://img.shields.io/badge/Source-GitHub-green)](https://github.com/tillsteinbach/CarConnectivity-cli/)
57
+ [![GitHub release (latest by date)](https://img.shields.io/github/v/release/tillsteinbach/CarConnectivity-cli)](https://github.com/tillsteinbach/CarConnectivity-cli/releases/latest)
58
+ [![GitHub](https://img.shields.io/github/license/tillsteinbach/CarConnectivity-cli)](https://github.com/tillsteinbach/CarConnectivity-cli/blob/master/LICENSE)
59
+ [![GitHub issues](https://img.shields.io/github/issues/tillsteinbach/CarConnectivity-cli)](https://github.com/tillsteinbach/CarConnectivity-cli/issues)
60
+ [![PyPI - Downloads](https://img.shields.io/pypi/dm/carconnectivity-cli?label=PyPI%20Downloads)](https://pypi.org/project/carconnectivity-cli/)
61
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/carconnectivity-cli)](https://pypi.org/project/carconnectivity-cli/)
62
+ [![Donate at PayPal](https://img.shields.io/badge/Donate-PayPal-2997d8)](https://www.paypal.com/donate?hosted_button_id=2BVFF5GJ9SXAJ)
63
+ [![Sponsor at Github](https://img.shields.io/badge/Sponsor-GitHub-28a745)](https://github.com/sponsors/tillsteinbach)
64
+
65
+ ## CarConnectivity will become the successor of [WeConnect-python](https://github.com/tillsteinbach/WeConnect-python) in 2025 with similar functionality but support for other brands beyond Volkswagen!
66
+
67
+ ## Supported Car Brands
68
+ CarConenctivity uses a plugin architecture to enable access to the services of various brands. Currently known plugins are:
69
+
70
+ | Brand | Connector |
71
+ |-----------------------------------|---------------------------------------------------------------------------------------------------------------|
72
+ | Skoda | [CarConnectivity-connector-skoda](https://github.com/tillsteinbach/CarConnectivity-connector-skoda) |
73
+ | Volkswagen | [CarConnectivity-connector-volkswagen](https://github.com/tillsteinbach/CarConnectivity-connector-volkswagen) |
74
+ | [Tronity](https://www.tronity.io) | [CarConnectivity-connector-tronity](https://github.com/tillsteinbach/CarConnectivity-connector-tronity) |
75
+
76
+ If you know of a connector not listed here let me know and I will add it to the list.
77
+ 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
78
+
79
+ ## How to install
80
+ You first need a running [Python](https://www.python.org/downloads/) installation. Afterwards you can install CarConnectivity-cli with:
81
+ ```
82
+ pip install carconnectivity-cli
83
+ ```
84
+ You also need the right connector for your vehicle, e.g.
85
+ ```
86
+ pip install carconnectivity-connector-skoda
87
+ ```
88
+ or you installed CarConnectivity-cli with all known connectors and plugins:
89
+ ```
90
+ pip3 install 'carconnectivity-cli[connectors,plugins]'
91
+ ```
92
+ The plugins will then become active when you add them to your configuration.
93
+
94
+ ## How to use
95
+ Start by creating a carconnectivity.json configuration file
96
+
97
+ ### Configuration
98
+ In your carconnectivity.json configuration add a section for the connectors you like to use like this:
99
+ ```
100
+ {
101
+ "carConnectivity": {
102
+ "connectors": [
103
+ {
104
+ "type": "volkswagen",
105
+ "config": {
106
+ "username": "test@test.de"
107
+ "password": "testpassword123"
108
+ }
109
+ },
110
+ {
111
+ "type": "skoda",
112
+ "config": {
113
+ "username": "test@test.de"
114
+ "password": "testpassword123"
115
+ }
116
+ }
117
+ ]
118
+ }
119
+ }
120
+ ```
121
+ The detailed configuration options of the connectors can be found in their README files.
122
+
123
+ ### How to use the commandline interface
124
+ Start carconnectivity-cli from the commandline, by default you will enter the interactive shell:
125
+ ```bash
126
+ carconnectivity-cli mycarconnectivity_config.json
127
+ ```
128
+ You get all the usage information by using the --help command
129
+ ```bash
130
+ carconnectivity-cli mycarconnectivity_config.json --help
131
+ ```
132
+ 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)
133
+ ```bash
134
+ carconnectivity-cli mycarconnectivity_config.json list
135
+ /garage/WVWABCE1ZSD057394
136
+ /garage/WVWABCE1ZSD057394/vin
137
+ /garage/WVWABCE1ZSD057394/type
138
+ /garage/WVWABCE1ZSD057394/odometer
139
+ /garage/WVWABCE1ZSD057394/model
140
+ /garage/WVWABCE1ZSD057394/name
141
+ ...
142
+ ```
143
+ You can then pass the addresses to the "get" command:
144
+ ```bash
145
+ carconnectivity-cli mycarconnectivity_config.json get /garage/WVWABCE1ZSD057394/model
146
+ ID.3
147
+ ```
148
+ or the "set" command:
149
+ ```bash
150
+ carconnectivity-cli mycarconnectivity_config.json /garage/WVWABCE1ZSD057394/climatisation/command stop
151
+ ```
152
+ The "events" command allows you to monitor what is happening on the WeConnect Interface:
153
+ ```bash
154
+ carconnectivity-cli mycarconnectivity_config.json events
155
+ 2021-05-26 16:49:58.698570: /garage/WVWABCE1ZSD057394/doors/lock_state: new value: unlocked
156
+ 2021-05-26 16:49:58.698751: /garage/WVWABCE1ZSD057394/doors/bonnet/lock_state: new value: unknown lock state
157
+ 2021-05-26 16:49:58.698800: /garage/WVWABCE1ZSD057394/doors/bonnet/open_state: new value: closed
158
+ 2021-05-26 16:49:58.698980: /garage/WVWABCE1ZSD057394/doors/frontLeft/lock_state: new value: unlocked
159
+ 2021-05-26 16:49:58.699056: /garage/WVWABCE1ZSD057394/doors/frontLeft/open_state: new value: closed
160
+ ```
161
+
162
+ ### S-PIN
163
+ 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:
164
+
165
+ ### Interactive Shell
166
+ You can also use an interactive shell:
167
+ ```
168
+ carconnectivity-cli --username user@mail.de --password test123 shell
169
+ Welcome! Type ? to list commands
170
+ user@mail.de@weconnect-sh:/$update
171
+ update done
172
+ user@mail.de@weconnect-sh:/$cd garage
173
+ user@mail.de@weconnect-sh:/garage$ ls
174
+ ..
175
+ WVWABCE1ZSD057394
176
+ WVWABCE13SD057505
177
+ user@mail.de@weconnect-sh:/garage$ cd /garage/WVWABCE13SD057505/status/parkingPosition
178
+ user@mail.de@weconnect-sh:/garage/WVWABCE13SD057505/status/parkingPosition$ cat
179
+ [parkingPosition] (last captured 2021-06-01T19:05:04+00:00)
180
+ Latitude: 51.674535
181
+ Longitude: 16.154376
182
+ user@mail.de@weconnect-sh:/garage/WVWABCE13SD057505/parking/parkingPosition$ exit
183
+ Bye
184
+ ```
185
+ ### Caching
186
+ 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.
187
+
188
+ ### Credentials
189
+ 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):
190
+ ```
191
+ machine volkswagen.de
192
+ login test@test.de
193
+ password testpassword123
194
+ ```
195
+ You can also provide the location of the netrc file in the configuration.
196
+
197
+ The optional S-PIN needed for some commands can be provided in the account section:
198
+ ```
199
+ # For WeConnect
200
+ machine volkswagen.de
201
+ login test@test.de
202
+ password testpassword123
203
+ account 1234
204
+ ```
205
+
206
+ ## Tested with
207
+ - Volkswagen ID.3 Modelyear 2021
208
+ - Volkswagen Passat GTE Modelyear 2021
209
+ - Skoda Enyaq RS Modelyear 2025
210
+
211
+ ## Reporting Issues
212
+ Please feel free to open an issue at [GitHub Issue page](https://github.com/tillsteinbach/carconnectivity-cli/issues) to report problems you found.
213
+
214
+ ### Known Issues
215
+ - The Tool is in alpha state and may change unexpectedly at any time!
216
+
217
+ ## Related Projects:
218
+ - [CarConnectivity-plugin-mqtt](https://github.com/tillsteinbach/CarConnectivity-plugin-mqtt): MQTT Client that publishes data from CarConnectivity to any MQTT broker.
219
+ - [CarConnectivity](https://github.com/tillsteinbach/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](https://github.com/tillsteinbach/CarConnectivity).
@@ -1,5 +1,6 @@
1
1
  .flake8
2
2
  .gitignore
3
+ CHANGELOG.md
3
4
  LICENSE
4
5
  Makefile
5
6
  README.md
@@ -0,0 +1,11 @@
1
+ carconnectivity>=0.4
2
+ argparse
3
+ JSON_minify~=0.3.0
4
+
5
+ [connectors]
6
+ carconnectivity-connector-volkswagen
7
+ carconnectivity-connector-skoda
8
+
9
+ [plugins]
10
+ carconnectivity-plugin-abrp
11
+ carconnectivity-plugin-homekit
@@ -1,92 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: carconnectivity-cli
3
- Version: 0.1a1
4
- Summary: Library for retrieving information from car connectivity services
5
- Author: Till Steinbach
6
- License: MIT License
7
-
8
- Copyright (c) 2021 Till Steinbach
9
-
10
- Permission is hereby granted, free of charge, to any person obtaining a copy
11
- of this software and associated documentation files (the "Software"), to deal
12
- in the Software without restriction, including without limitation the rights
13
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
- copies of the Software, and to permit persons to whom the Software is
15
- furnished to do so, subject to the following conditions:
16
-
17
- The above copyright notice and this permission notice shall be included in all
18
- copies or substantial portions of the Software.
19
-
20
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
- SOFTWARE.
27
-
28
- Classifier: Development Status :: 3 - Alpha
29
- Classifier: Environment :: Console
30
- Classifier: License :: OSI Approved :: MIT License
31
- Classifier: Intended Audience :: End Users/Desktop
32
- Classifier: Intended Audience :: System Administrators
33
- Classifier: Programming Language :: Python :: 3.9
34
- Classifier: Programming Language :: Python :: 3.10
35
- Classifier: Programming Language :: Python :: 3.11
36
- Classifier: Programming Language :: Python :: 3.12
37
- Classifier: Programming Language :: Python :: 3.13
38
- Classifier: Topic :: Utilities
39
- Classifier: Topic :: System :: Monitoring
40
- Requires-Python: >=3.9
41
- Description-Content-Type: text/markdown
42
- License-File: LICENSE
43
- Requires-Dist: argparse
44
-
45
-
46
-
47
- # CarConnectivity Command Line Interface
48
- [![GitHub sourcecode](https://img.shields.io/badge/Source-GitHub-green)](https://github.com/tillsteinbach/CarConnectivity-cli/)
49
- [![GitHub release (latest by date)](https://img.shields.io/github/v/release/tillsteinbach/CarConnectivity-cli)](https://github.com/tillsteinbach/CarConnectivity-cli/releases/latest)
50
- [![GitHub](https://img.shields.io/github/license/tillsteinbach/CarConnectivity-cli)](https://github.com/tillsteinbach/CarConnectivity-cli/blob/master/LICENSE)
51
- [![GitHub issues](https://img.shields.io/github/issues/tillsteinbach/CarConnectivity-cli)](https://github.com/tillsteinbach/CarConnectivity-cli/issues)
52
- [![Donate at PayPal](https://img.shields.io/badge/Donate-PayPal-2997d8)](https://www.paypal.com/donate?hosted_button_id=2BVFF5GJ9SXAJ)
53
- [![Sponsor at Github](https://img.shields.io/badge/Sponsor-GitHub-28a745)](https://github.com/sponsors/tillsteinbach)
54
-
55
- ## CarConnectivity will become the successor of [WeConnect-python](https://github.com/tillsteinbach/WeConnect-python) in 2025 with similar functionality but support for other brands beyond Volkswagen!
56
-
57
- ## Supported Car Brands
58
- CarConenctivity uses a plugin architecture to enable access to the services of various brands. Currently known plugins are:
59
-
60
- | Brand | Connector |
61
- |------------|---------------------------------------------------------------------------------------------------------------|
62
- | Skoda | [CarConnectivity-connector-skoda](https://github.com/tillsteinbach/CarConnectivity-connector-skoda) |
63
- | Volkswagen | [CarConnectivity-connector-volkswagen](https://github.com/tillsteinbach/CarConnectivity-connector-volkswagen) |
64
-
65
- If you know of a connector not listed here let me know and I will add it to the list.
66
- 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
67
-
68
- ## Configuration
69
- In your carconnectivity.json configuration add a section for the connectors you like to use like this:
70
- ```
71
- {
72
- "carConnectivity": {
73
- "connectors": [
74
- {
75
- "type": "volkswagen",
76
- "config": {
77
- "username": "test@test.de"
78
- "password": "testpassword123"
79
- }
80
- },
81
- {
82
- "type": "skoda",
83
- "config": {
84
- "username": "test@test.de"
85
- "password": "testpassword123"
86
- }
87
- }
88
- ]
89
- }
90
- }
91
- ```
92
- The detailed configuration options of the connectors can be found in their README files.
@@ -1,48 +0,0 @@
1
-
2
-
3
- # CarConnectivity Command Line Interface
4
- [![GitHub sourcecode](https://img.shields.io/badge/Source-GitHub-green)](https://github.com/tillsteinbach/CarConnectivity-cli/)
5
- [![GitHub release (latest by date)](https://img.shields.io/github/v/release/tillsteinbach/CarConnectivity-cli)](https://github.com/tillsteinbach/CarConnectivity-cli/releases/latest)
6
- [![GitHub](https://img.shields.io/github/license/tillsteinbach/CarConnectivity-cli)](https://github.com/tillsteinbach/CarConnectivity-cli/blob/master/LICENSE)
7
- [![GitHub issues](https://img.shields.io/github/issues/tillsteinbach/CarConnectivity-cli)](https://github.com/tillsteinbach/CarConnectivity-cli/issues)
8
- [![Donate at PayPal](https://img.shields.io/badge/Donate-PayPal-2997d8)](https://www.paypal.com/donate?hosted_button_id=2BVFF5GJ9SXAJ)
9
- [![Sponsor at Github](https://img.shields.io/badge/Sponsor-GitHub-28a745)](https://github.com/sponsors/tillsteinbach)
10
-
11
- ## CarConnectivity will become the successor of [WeConnect-python](https://github.com/tillsteinbach/WeConnect-python) in 2025 with similar functionality but support for other brands beyond Volkswagen!
12
-
13
- ## Supported Car Brands
14
- CarConenctivity uses a plugin architecture to enable access to the services of various brands. Currently known plugins are:
15
-
16
- | Brand | Connector |
17
- |------------|---------------------------------------------------------------------------------------------------------------|
18
- | Skoda | [CarConnectivity-connector-skoda](https://github.com/tillsteinbach/CarConnectivity-connector-skoda) |
19
- | Volkswagen | [CarConnectivity-connector-volkswagen](https://github.com/tillsteinbach/CarConnectivity-connector-volkswagen) |
20
-
21
- If you know of a connector not listed here let me know and I will add it to the list.
22
- 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
23
-
24
- ## Configuration
25
- In your carconnectivity.json configuration add a section for the connectors you like to use like this:
26
- ```
27
- {
28
- "carConnectivity": {
29
- "connectors": [
30
- {
31
- "type": "volkswagen",
32
- "config": {
33
- "username": "test@test.de"
34
- "password": "testpassword123"
35
- }
36
- },
37
- {
38
- "type": "skoda",
39
- "config": {
40
- "username": "test@test.de"
41
- "password": "testpassword123"
42
- }
43
- }
44
- ]
45
- }
46
- }
47
- ```
48
- The detailed configuration options of the connectors can be found in their README files.
@@ -1,3 +0,0 @@
1
- flake8~=7.1.1
2
- pylint~=3.3.2
3
- bandit~=1.8.0
@@ -1,92 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: carconnectivity-cli
3
- Version: 0.1a1
4
- Summary: Library for retrieving information from car connectivity services
5
- Author: Till Steinbach
6
- License: MIT License
7
-
8
- Copyright (c) 2021 Till Steinbach
9
-
10
- Permission is hereby granted, free of charge, to any person obtaining a copy
11
- of this software and associated documentation files (the "Software"), to deal
12
- in the Software without restriction, including without limitation the rights
13
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
- copies of the Software, and to permit persons to whom the Software is
15
- furnished to do so, subject to the following conditions:
16
-
17
- The above copyright notice and this permission notice shall be included in all
18
- copies or substantial portions of the Software.
19
-
20
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
- SOFTWARE.
27
-
28
- Classifier: Development Status :: 3 - Alpha
29
- Classifier: Environment :: Console
30
- Classifier: License :: OSI Approved :: MIT License
31
- Classifier: Intended Audience :: End Users/Desktop
32
- Classifier: Intended Audience :: System Administrators
33
- Classifier: Programming Language :: Python :: 3.9
34
- Classifier: Programming Language :: Python :: 3.10
35
- Classifier: Programming Language :: Python :: 3.11
36
- Classifier: Programming Language :: Python :: 3.12
37
- Classifier: Programming Language :: Python :: 3.13
38
- Classifier: Topic :: Utilities
39
- Classifier: Topic :: System :: Monitoring
40
- Requires-Python: >=3.9
41
- Description-Content-Type: text/markdown
42
- License-File: LICENSE
43
- Requires-Dist: argparse
44
-
45
-
46
-
47
- # CarConnectivity Command Line Interface
48
- [![GitHub sourcecode](https://img.shields.io/badge/Source-GitHub-green)](https://github.com/tillsteinbach/CarConnectivity-cli/)
49
- [![GitHub release (latest by date)](https://img.shields.io/github/v/release/tillsteinbach/CarConnectivity-cli)](https://github.com/tillsteinbach/CarConnectivity-cli/releases/latest)
50
- [![GitHub](https://img.shields.io/github/license/tillsteinbach/CarConnectivity-cli)](https://github.com/tillsteinbach/CarConnectivity-cli/blob/master/LICENSE)
51
- [![GitHub issues](https://img.shields.io/github/issues/tillsteinbach/CarConnectivity-cli)](https://github.com/tillsteinbach/CarConnectivity-cli/issues)
52
- [![Donate at PayPal](https://img.shields.io/badge/Donate-PayPal-2997d8)](https://www.paypal.com/donate?hosted_button_id=2BVFF5GJ9SXAJ)
53
- [![Sponsor at Github](https://img.shields.io/badge/Sponsor-GitHub-28a745)](https://github.com/sponsors/tillsteinbach)
54
-
55
- ## CarConnectivity will become the successor of [WeConnect-python](https://github.com/tillsteinbach/WeConnect-python) in 2025 with similar functionality but support for other brands beyond Volkswagen!
56
-
57
- ## Supported Car Brands
58
- CarConenctivity uses a plugin architecture to enable access to the services of various brands. Currently known plugins are:
59
-
60
- | Brand | Connector |
61
- |------------|---------------------------------------------------------------------------------------------------------------|
62
- | Skoda | [CarConnectivity-connector-skoda](https://github.com/tillsteinbach/CarConnectivity-connector-skoda) |
63
- | Volkswagen | [CarConnectivity-connector-volkswagen](https://github.com/tillsteinbach/CarConnectivity-connector-volkswagen) |
64
-
65
- If you know of a connector not listed here let me know and I will add it to the list.
66
- 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
67
-
68
- ## Configuration
69
- In your carconnectivity.json configuration add a section for the connectors you like to use like this:
70
- ```
71
- {
72
- "carConnectivity": {
73
- "connectors": [
74
- {
75
- "type": "volkswagen",
76
- "config": {
77
- "username": "test@test.de"
78
- "password": "testpassword123"
79
- }
80
- },
81
- {
82
- "type": "skoda",
83
- "config": {
84
- "username": "test@test.de"
85
- "password": "testpassword123"
86
- }
87
- }
88
- ]
89
- }
90
- }
91
- ```
92
- The detailed configuration options of the connectors can be found in their README files.