API library for Webasto ThermoConnect devices
Project description
This Python module provides access to controlling and reading states of Webasto heaters connected to https://my.webastoconnect.com
The API is reverse engineered, as Webasto doesn't want to contribute with documentation, to let us integrate this in to our own solutions, such as smart homes.
Hence:
!USE THIS MODULE AT YOU OWN RISK!
Installation
Run this command to install the latest release from the PyPI repository:
pip3 install pywebasto
Usage
The following example shows how to get the current temperature measurement from your connected device(s):
from pywebasto import WebastoConnect
webasto = WebastoConnect("your-email", "your-password")
webasto.connect()
webasto.update()
for id, device in webasto.devices.items():
print(f"Found device: {device.name} (ID: {device.device_id})")
print(f"Temperature: {device.temperature}")
More examples can be found in the test.pyfile
Available properties
This list indicates the available properties for a heater
| Property | Description | Type | Example |
|---|---|---|---|
| timeout_heat | Heat mode timeout in seconds | int | |
| timeout_ventilation | Ventilation mode timeout in seconds | int | |
| timeout_aux1 | AUX1 timeout in seconds | int | |
| timeout_aux2 | AUX2 timeout in seconds | int | |
| icon_heat | Icon used in the webinterface | str | car_heat |
| icon_vent | Icon used in the webinterface | str | |
| icon_aux1 | Icon used in the webinterface | str | |
| icon_aux2 | Icon used in the webinterface | str | |
| temperature | Measured temperature | int | 18 |
| voltage | Measured battery voltage | float | 12.4 |
| location | Location of the vehicle, if location is enabled.state indicating if location service is enabledlat and lon showing latitude and longitudetimestamp unix timestamp of last location update |
dict | {'state': 'ON', 'lat': 'x.xxxxxx', 'lon': 'x.xxxxxx', 'timestamp': 1766325670} |
| output_main | State of main output channel | bool | True |
| output_aux1 | State of AUX1 output channel | bool | False |
| output_aux2 | State of AUX2 output channel | bool | False |
| is_ventilation | Is the main output set to ventilation mode? | bool | False |
| temperature_unit | The configured temperature unit of the heater. Either °C or °F |
str | °C |
| hardware_version | Hardware version of the device | str | |
| software_version | Software (firmware) of the device | str | |
| software_variant | Software variant(?!) | str | |
| allow_location | Is location services enabled? | bool | True |
| low_voltage_cutoff | At this voltage, the heater will automatically turn off | float | 11.5 |
| temperature_compensation | The set deviation from actual to measured temperature | float | -4.0 |
| device_id | The API ID of the device | str | 9254659033752365 |
| name | Name of the device, as set in the app or webinterface | str | My heater device |
| output_main_name | Name of the main output channel | str | Primary |
| output_aux1_name | Name of AUX1 output channel | str | Output 1 |
| output_aux2_name | Name of AUX2 output channel | str | Output 2 |
| subscription_expiration | When the current subscription will expire | datetime | datetime.datetime(2025, 12, 21, 16, 6, 28, 254801) |
Functions
This list indicates the available functions
| Function | Description | Params |
|---|---|---|
| connect | Function used to connect to the API | |
| update | Fetch latest data from the API | device_id if set, only update this device |
| set_output_main | Set current state of main output | device send command to this device of WebastoDevice classstate bool indicating if it should be switched on (true) or off (false) |
| set_output_aux1 | Set current state of AUX1 output | device send command to this device of WebastoDevice classstate bool indicating if it should be switched on (true) or off (false) |
| set_output_aux2 | Set current state of AUX2 output | device send command to this device of WebastoDevice classstate bool indicating if it should be switched on (true) or off (false) |
| ventilation_mode | Switch main output to ventilation mode or heater mode | device send command to this device of WebastoDevice classstate bool indicating if it should be set to ventilation mode (true) or heater mode (false) |
| set_main_timeout | Set the timeout for auto off for the main output | device send command to this device of WebastoDevice classheater optional int indicating heater timeout in secondsventilation optional int indicating ventilation timeout in seconds |
| set_aux_timeout | Set the timeout for auto off for an AUX output | device send command to this device of WebastoDevice classtimeout int indicating timeout in secondsaux optional Outputs ENUM indicating AUX to be changed, default: Outputs.AUX1 |
| set_low_voltage_cutoff | Sets the minimum voltage before shutting off the device | device send command to this device of WebastoDevice classvalue minimum voltage as float |
| set_temperature_compensation | Set the temperature compensatioon for the device | device send command to this device of WebastoDevice classvalue temperature compensation as float |
My heater doesn't show up
If your heater doesn't show up in the module, please make sure it is connected to the e-mail used.
- Login to https://my.webastoconnect.com USING THE SAME EMAIL AND PASSWORD as used in the in this module
- Press
Account
Make sure your device is listed under devices
If your device is NOT listed under devices:
- Open the ThermoConnect app on your phone
- Select the missing device (If you have more than one connected)
- Click on the
"My Webasto Connectbutton in the lower left - Choose
Login with mobile browser - Login with your existing email and password
The device should now be linked to your email account and will show up at next run
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pywebasto-2.0.0.tar.gz.
File metadata
- Download URL: pywebasto-2.0.0.tar.gz
- Upload date:
- Size: 21.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.3 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58d85a24a561691a3e9a5234ef951919ad3c3f43f3429c918428e57e59c585d4
|
|
| MD5 |
75fdf93913999fa5c3c067e17e8f3619
|
|
| BLAKE2b-256 |
1382ed52a31f1c22076a74cbab07f6b17efa75237fd75b1811b71f76c2326f8e
|
File details
Details for the file pywebasto-2.0.0-py3-none-any.whl.
File metadata
- Download URL: pywebasto-2.0.0-py3-none-any.whl
- Upload date:
- Size: 21.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.3 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4e26c94df39725018d5de33411f58602a53717879d77961bad6943072c1ffe5
|
|
| MD5 |
e16fbcfcf0b66394e87122186cad9267
|
|
| BLAKE2b-256 |
e70767b26035fd4753a999c9b938c8a243f252b151a1e17b984f3d063a5f682a
|