Home - rmalbrecht/VaillantCloud GitHub Wiki
This Home Assistant component interfaces with the myVAILLANT API (and branded versions of it, such as the MiGo Link app from Saunier Duval & Bulex). It uses the myPyllant Python library.
This is a fork of the original myPyllant Integration from Signalkraft. I changed the integrations and libraries names to avoid collisions.
1. Install the Home Assistant Community Store (HACS)
2. Search for VaillantCloud Integrations in HACS and download it
3. Restart Home Assistant
4. Add the VaillantCloud integration
5. Sign in with the email & password you used in the myVAILLANT app (or MiGo app for Saunier Duval)
-
❄️☀️ Climate Controls
Supports climate & hot water controls, as well as ventilation and circulation pumps → Read more
-
:material-thermostat-auto:{ .lg .middle } Set Modes & Temperatures
Control operating modes, target temperature, and presets such as holiday more or quick veto → Read more
-
📆 Change Schedules
Set the schedule for climate zones, water heaters, and circulation pumps with a custom service or in the Home Assistant calendar → Read more
-
💹 Track Data over Time
Track sensor information of devices, such as temperature, humidity, operating mode, energy usage, or energy efficiency
-
🔨 Diagnostic Data
See diagnostic information, such as flow temperature, firmware versions, or water pressure. Even values that are not available in the app, such as the current heating curve. → Read more
-
:material-home-automation:{ .lg .middle } Services & Automations
Custom services to set holiday mode or quick veto temperature overrides, and their duration → Read more
- Vaillant aroTHERM plus heatpump + sensoCOMFORT VRC 720 + sensoNET VR 921
- Vaillant ECOTEC PLUS boiler + VR940F + sensoCOMFORT
- Vaillant ECOTEC PLUS boiler + VRT380f + sensoNET
- Vaillant ECOTEC PLUS VCW20/1 boiler + sensoCOMFORT VRC 720 + sensoNET VR 921
- Vaillant ECOTEC PLUS 296/5-5 (R6) + sensoCOMFORT VRC 720/2 + VR 70 (2 circuits) + sensoNET VR 921
- Vaillant ecoVIT + VIH R/6 uniSTORE + VR920
- Saunier Duval DUOMAX F30 90 + MISET Radio + MiLink V3
- Bulex Thema Condens F30/35 + Red 5 + MiPro Sense + MiLink v3
After setting up the integration, you can configure it further in Settings → Devices & Services → myVAILLANT → Configure.
:Wait interval between updating (most) sensors. The energy data and efficiency sensors are controlled by the next option. Setting this too low can cause "quota exceeded" errors.
You should restart Home Assistant after changing this setting.
⚙️ Default is 60 seconds.
:Wait interval between updating sensors with hourly data. Default is off, because querying for energy data can get you blocked by Vaillant quite easily ("quota exceeded" errors).
Most users seem to be OK with 7200s (2 hours) or more.
You can also schedule your own updates with an automation, for example once a day just before midnight:
description: "Update VaillantCloud energy data at midnight"
mode: single
triggers:
- trigger: time
at: "23:59:00"
conditions: []
actions:
- action: homeassistant.update_entity
metadata: {}
data:
entity_id:
- sensor.home_heating_energy_efficiency
You only need to update one of the energy entities, all of the other ones will automatically update as well. To reduce API queries and avoid getting blocked, you should disable energy entities in HA that you are not interested in.
You should restart Home Assistant after changing this setting.
⚙️ Default is off.
:How long to wait between making a request (i.e. setting target temperature) and refreshing data. The Vaillant API takes some time to return the updated values. Setting this too low will return the old values.
⚙️ Default is 5 seconds.
:When setting the temperature with the climate controls, the integration uses the "quick veto" feature of the myVAILLANT app by default.
With this option you can set for how long the temperature should stay set, before returning to the default value.
⚙️ Default is 3 hours.
:When the away mode preset is activated, this duration is used to for the end date.
⚙️ Default is 365 days.
:When away mode is activated without a temperature (for example with the away mode switch), this value is set for all zones.
⚙️ Default is 10.0°C.
:When raising or lowering the desired temperature in the myVAILLANT app, it sets a quick veto mode for a limited time with that new temperature, if the zone is in time controlled mode. If you want to permanently change the desired temperature, you need to update the time schedule.
By default, this integration has the same behavior. But when enabling this option, the Home Assistant climate controls instead overwrite the temperatures set in the time schedule with the new value.
⚙️ Default is off.
If quick veto is active, the climate controls will always set the quick veto temperature.
:Fetches real-time statistics from the system. This includes on/off cycles and operation time. If you see 404 errors in your logs after enabling this, your system doesn't support this data. It's best to turn it off again.
⚙️ Default is off.
:Fetches real-time power usage of the system. If you see 404 errors in your logs after enabling this, your system doesn't support this data. It's best to turn it off again.
⚙️ Default is off.
:The country you registered your myVAILLANT account in. The list of options is limited to known supported countries.
:Brand of your HVAC equipment and app, pick Saunier Duval if you use the MiGo Link app.
"Missing a Country?"**
If a country is missing, please open a pull request agains the myVaillant library.
Your HVAC system might differ from the ones in Tested Setups above. If you don't see any entities, or get an error during setup, please check Debugging and create an issue. With debugging enabled, there's a chance to find the culprit in the data returned by the myVAILLANT API and fix it.
The API this integration uses sometimes goes down. Before reporting an issue, check if the myVAILLANT app works normally. If it doesn't, there's nothing we can do about it.
If you would like to request a new feature, please check that it's available in the myVAILLANT app first. Some data (for example quiet mode or legionella protection) are not available in the app, and therefore can't be supported by this integration.
Home Assistant has certain pre-defined modes, that can't be changed.
How Vaillant reports energy data, and how Home Assistant deals with sensor data is not a good match:
- Vaillant's API provides energy data in hourly increments, some time after the full hour has passed (let's say at 10:30am for the energy data from 9-10am)
- This integration fetches energy data every hour, for the current day, up to the current time
- Depending on when your HA schedules this hourly update, it may happen right after Vaillant provides the new hourly data, or almost an hour later
- Home Assistant doesn't support setting a past date for a sensor reading, the value is always displayed at the time when it was saved
- Home Assistant also doesn't let you pick when to schedule the hourly update exactly, it depends on when the integration was initialized
- Data for the whole day is fetched, so that the total is correct even if the API is temporarily unavailable, or the integration misses an hour window for some other reason
- Worst case, you end up with a 30min delay from Vaillant and a 59min delay from the integration: Your energy data from 9-10am will show up at 11:29am. Best case is probably around 10:30am.
- After midnight, the integration will fetch data for the new day, which will be empty until the first full hour + delay has passed
- If you have new energy data between 11pm and midnight, it won't show up in your total for the previous day
Home Assistant would need to allow setting a timestamp with each new energy value, to improve this situation. The delay would still be there, but at least the values would be displayed at the correct time.
You can lower the update interval for fetching energy data, to minimize the delay between Vaillant's updates and HA. But it's not recommended, since it's a lot of data to fetch and Vaillant may ban you temporarily with 'quota exceeded' errors.
To fix data loss around midnight, the integration could fetch a longer period of time (for example a whole month). But then the sensor would no longer show a daily total, which would potentially mess with users' setups. The change from daily to monthly would also show up as a strange spike of energy usage when the update is done.