MySkoda integration using the API that the MySkoda App uses.
Status: This project is a new implementation of a relatively new API. Consider this code alpha.
Contributions are welcomed, both as issues, but more as pull requests :)
Please join our Discord and help development by providing feedback and details about the vehicles you are using.
You can help us translate your MySkoda integration into your language! Just join our Crowdin project If your desired language is not available, please open an issue and let us know about it!
- Software Version
- Battery Percentage
- Charging Power
- Remaining Distance
- Target Battery Percentage
- Milage
- Charge Type
- Charging State
- Remaining Charging Time
- Last Updated
- Maintenance Interval
- Oil Service Interval
- Fuel Level
- Combustion range
- Electric range
- Charger Connected
- Charger Locked
- Everything Locked
- Doors Locked
- Doors Open
- Windows Open
- Trunk Open
- Bonnet Open
- Lights On
- Door Open Front Left
- Door Open Front Right
- Door Open Rear Left
- Door Open Rear Right
- Window Open Front Left
- Window Open Front Right
- Window Open Rear Left
- Window Open Rear Right
- Window Heating
- Reduced Current
- Battery Care Mode
- Doors
- AC when Unlocked
- AC without External Power
- Left Seat Heating with AC
- Right Seat Heating with AC
- Window Heating with AC
- Honk and Flash
- Flash
- Generate Fixtures (deprecated, use Device Diagnostics instead)
- Air conditioning is exposed as climate.
- Auxiliary heater is exposed as climate.
- Charging Limit
- Heater Duration
Location of vehicles are exposed as device trackers. While the vehicle is moving the Skoda API does not return GPS coordinates and the device tracker will report the location vehicle_in_motion
.
If you need a binary sensor to report if the vehicle is in motion this can be achieve using a template binary sensor for e.g.
{% if states('device_tracker.skoda_enyaq_position') == 'vehicle_in_motion' %}
True
{% endif %}
To make sure updates end up in the car the way intended by the you, we throttle all equal changes to the car for 30s. Simply put: You can change a setting in the car once every 30s, but you can change multiple settings in sequence.
So:
- If you change the seat-heating to on, you can immediately change the window-heating to on as well.
- If you change the seat-heating to on, you cannot turn it back off again for 30s
The requests will silently be ignored by HomeAssistant, so make sure you wait at least 30s before sending another request
If you become the owner of an additional vehicle and that gets added to the same MySkoda account: Congrats! In order for the integration to discover this new vehicle, you will need to reload the integration or restart HomeAssistant
You can manually install this integration as an custom_component under Home Assistant or install it using HACS (Home Assistant Community Store).
- Download the
myskoda
repository or folder. - Copy the
custom_components/myskoda
folder from the downloaded files. - Paste the
myskoda
folder into your Home Assistant's custom components directory:- Path:
<home_assistant_folder>/custom_components/myskoda
- Path:
- Restart Home Assistant to load the new integration.
The myskoda
repository is also compatible with HACS (Home Assistant Community Store), making installation and updates easier.
- Install HACS (if not already installed):
- Follow instructions here: HACS Installation Guide
- Add
myskoda
Repository to HACS:- In Home Assistant, go to HACS > Settings tab.
- Select Custom Repositories and add the repository URL
https://github.com/skodaconnect/homeassistant-myskoda
.
- Install
myskoda
from HACS:- After adding the repository, find and install
myskoda
under the HACS integrations.
- After adding the repository, find and install
- Restart Home Assistant.
Following these steps should successfully install the myskoda
integration for use with your Home Assistant setup.
For more guidance on HACS, you can refer to the HACS Getting Started Guide.
For comprehensive debug logging you can add this to your <config dir>/configuration.yaml
:
logger:
default: info
logs:
myskoda: debug
myskoda.mqtt: debug
myskoda.rest_api: debug
custom_components.myskoda: debug
custom_components.myskoda.climate: debug
custom_components.myskoda.lock: debug
custom_components.myskoda.device_tracker: debug
custom_components.myskoda.switch: debug
custom_components.myskoda.binary_sensor: debug
custom_components.myskoda.sensor: debug
custom_components.myskoda.number: debug
custom_components.myskoda.image: debug
Pick any of the subjects from the example. If you want to enable full debugging, you only need myskoda and custom_components.myskoda.
-
myskoda: Set the debug level for the MySkoda library. This handles all the communication with MySkoda.
-
myskoda.mqtt: Set the debug level for the MQTT class of the MySkoda library. This handles the push-messages sent from MySkoda to the integration, notifying of changes to/in the car.
-
myskoda.rest_api: Set the debug level for the REST API of the MySkoda library. This handles all the pull-messages the integration fetches from MySkoda.
-
custom_components.myskoda: Set debug level for the custom component. The communication between hass and library.
-
custom_components.myskoda.XYZ Sets debug level for individual entity types in the custom component.
This integration does not poll at a set interval, instead when the last update has been a while, we request new information from MySkoda. The reason for this is that cars emit a lot of events when they are operating, and we use these events to partially update the car information.
When the car is quiet for a period we call the POLLING INTERVAL, we will request a full update of the car.
By default, this POLLING INTERVAL is set to 30 minutes. You can tune this to anything between 1 and 1440 minutes (1 day) by filling in the desired value in Integrations > MySkoda > Hubs > Select your account > Configure
You can disable polling completely and use automations to update the data from MySkoda. In order to do this, disable polling in the integration, and call the following action:
action: homeassistant.update_entity
target:
entity_id: device_tracker.skoda_4ever
For some operations, such as locking and unlocking doors, it is required to fill in the S-PIN that you have set for privileged access to your car via the App. This integration does not support setting the S-PIN yet. Fill in the required S-PIN in Settings > Integrations > MySkoda > Configuration > S-PIN and after a few seconds you will have the options available in HomeAssistant.
The opposite to S-PIN is read-only mode. In this mode, all buttons, switches and other functionality that allows you to change settings remotely are disabled. In order not to accidentally delete data, we do not delete the entities
Also, if you disable read-only mode, the buttons, switches, etc will become available again.
The Generate Fixtures button allows users to generate car-related fixtures directly from the Home Assistant UI without requiring the use of myskoda[cli].
When pressed, the button triggers the fixture generation process, and the generated fixtures are logged at the Info level in the Home Assistant Core log. Upon successful completion, a notification is displayed in the UI to inform the user that the fixtures have been successfully generated.
This feature simplifies the process of creating fixtures by providing a user-friendly interface for initiating the operation.
In addition to Generate Fixtures feature which generates the vehicle fixtures into Home Assitant Core log, the Diagnostics feature allows you to directly download diagnostic data for sharing in issue reports. Providing diagnostics data when reporting an issue helps developers diagnose and resolve your problem more efficiently.
You can download the diagnostics data as a text file from the device page or the integrations dashboard.
Diagnostics file include:
- Home Assistant version and details
- List of installed components and their versions
- MySkoda integration version and details
- Anonymized vehicle fixtures from the MySkoda API. (fixtures can be found under the
data
key in the diagnostics response)
Note: Vehicle fixtures are responses from all available MySkoda API endpoints always returned in both raw and serialized format.
This Homeassistant integration uses an unofficial API client for the Skoda API and is not affiliated with, endorsed by, or associated with Skoda Auto or any of its subsidiaries.
Use this project at your own risk. Skoda Auto may update or modify its API without notice, which could render this integration inoperative or non-compliant. The maintainers of this project are not responsible for any misuse, legal implications, or damages arising from its use.
Ensure compliance with Skoda Auto's terms of service and any applicable laws when using this software.