myVAILLANT integration

Seems Cooling Mode with our heat pump breaks the integration…

1 Like

Great to see that there is an integration for the myVAILLANT app. I’m always a little cautious to install something that relies on internet and the goodwill of the vendor.

Are there some “LOCAL only” approaches which directly connect to the devices?

1 Like

Not sure if @pdd is taking a break at the moment and I hope all is OK but sadly the Github has been quiet since early May despite quite a few reports of the integration failing to find any devices or entities, presumably due to one or two elements in the setup that the integration doesn’t know how to handle. Hopefully he picks it up again soon as I’ve really missed having HA heating integration since I moved our heating away from a third party controller onto Vaillant controls last year.

2 Likes

There is a third party hardware adapter you can use - it’s wired to the ebus terminals. They’re made in batches so if you place an order it takes a few months to arrive. HA has an add-on that can link to it. It is a bit technically challenging but I now have live data coming from the heat pump and I can write to a few settings. ebus adapter link

The ebusd project is well known, but it is apparently quite difficult to make it do anything useful. I am still hoping Vaillant will open up to third party control more over time. Their declared goal with myVaillant was to eventually offer Smart Home integration after all. Currently though, even their own app hardly works

Greetings! Great integration, I have 35 entities available over 6 devices. I’m not however getting the energy information coming through (for heating or hot water). I have an Arotherm Plus, VR720 and VR921. Is there anything I can try to force more info in to HA do you think?

There’s a new beta version that’s hopefully gonna fix the issue with cooling states for everyone. Been busy, and only just activated cooling in my own setup at home.

@GrogSym energy information may also be fixed. Remains to be seen if the values coming in from the API match what’s shown in the app.

i asked this on github, but can we control the circulation pump ? no sense in running that when heat is not produced

@pdd: I just have a short question regarding your integration. In all of your “Tested setups” there is at least one controller (sensoXXX). Is this necessary to run this integration or would it be enough to use the integration together with a sensoNET VR 921 which is connected to the boiler?
I just want to update the heating modes dynamically (holiday mode or if there house is empty to stop warm water etc.)

@svb91 I don’t know, but I guess if your setup is supported by Vaillant it should work in the app and then probably in my integration.

@boelle I don’t have a circulation pump in my setup, so I don’t know if that could be implemented. Is there an action in the app to turn the pump on and off?

@pdd I live in Belgium where Saunier Duval is sold under it’s sub brand Bulex. As BilalHP I also have a MiSense Pro and a MiLink v3. Since a couple of days I was migrated to the Migo Link app.
Would it be possible to check if I can get support in your add-on? My login link is This
Thank you!

Greetings, Rudy.

@Jaybeam I added a prerelease with experimental support, I have no way of testing it though. Bulex seems to be the only sub-brand that doesn’t have a login per country, so I made that field optional.

1 Like

@pdd Philipp, thank you for the swift reply and added integration of Bulex.

However, after installing the beta I get an error in home assistant when I want to add the integration.
The error is: “Config flow could not be loaded: 500 Internal Server Error Server got itself in trouble”

It doesn’t mather iff Install it manually or with HACS.
I have debug enabled for the logging but there I can’t find any error related to mypyllant in the log after the error occured. With version 3.2 reïnstalled I don’t get that error, but In the logs I do see errors consurning the login.

Would you like me to send you the log to see iff you can find something?

Greetings,
Rudy.

Hi @pdd Philipp, thank you for the effort in creating this integration.

As some other users reported previously, and because I’ve not seen any reply, I wanted to check how to deal with the problem of the Hub being correctly connected, but showing 0 instances.
For troubleshooting, I’ve tried version 2.0 and 3.2, and I’m having the same issue. I’m using myVAILLANT app on the phone, and a few months ago I had the SensoApp (I think it was called that way!)

@Jaybeam my bad, the config flow was broken. Please try again in the latest prerelease.

@david.depedro I would need some logs, with debug logging turned on. There’s a section on that in the readme. There’s no telling what the Vaillant API returns for different setups, unfortunately.

@pdd Thanks Philipp for another update. I downloaded b1 and when trying to install using Saunier i get following error:

This error originated from a custom integration.

Logger: custom_components.mypyllant.config_flow
Source: custom_components/mypyllant/config_flow.py:78
Integration: myVAILLANT (documentation, issues)
First occurred: 07:24:03 (1 occurrences)
Last logged: 07:24:03

Unexpected exception
Traceback (most recent call last):
  File "/config/custom_components/mypyllant/config_flow.py", line 167, in async_step_user
    username = await validate_input(self.hass, user_input)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/mypyllant/config_flow.py", line 78, in validate_input
    api = MyPyllantAPI(
          ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 77, in __init__
    raise ValueError(
ValueError: Invalid country, Saunier Duval only supports austria, czechrepublic, finland, france, greece, hungary, italy, lithuania, poland, portugal, romania, slovakia, spain

When I use Vaillant I get an error but noyhing in the logs:

Authentication failed, check your username and password and make sure you selected the right country and device brand

Greetings,
Rudy.

@pdd Philipp,

Installing with HACS didn’t work correctly > It never gave me the option to select Bulex.
So removed the HACS install and downloaded the files manualy from the Bulex repo.

Now I was able to install and select bulex when loading the integration.

Now that the intgrartion is running I get this error:

This error originated from a custom integration.

Logger: homeassistant.config_entries
Source: custom_components/mypyllant/__init__.py:46
Integration: myVAILLANT (documentation, issues)
First occurred: 20:09:49 (1 occurrences)
Last logged: 20:09:49

Error setting up entry [email protected] for mypyllant
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 388, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/mypyllant/__init__.py", line 46, in async_setup_entry
    api = MyPyllantAPI(
          ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 87, in __init__
    if country and country not in COUNTRIES[brand].keys():
                                  ~~~~~~~~~^^^^^^^
KeyError: 'bulex'

Greetings,
Rudy.

Hi @pdd Philipp, thanks again for the mega support :wink:

Here is the debug log:

2023-08-02 18:14:09.391 DEBUG (MainThread) [custom_components.mypyllant] Creating API and logging in with [email protected] in realm spain
2023-08-02 18:14:12.648 DEBUG (MainThread) [custom_components.mypyllant] Refreshing SystemCoordinator
2023-08-02 18:14:12.648 DEBUG (MainThread) [custom_components.mypyllant] Starting async update data for SystemCoordinator
2023-08-02 18:14:12.648 DEBUG (MainThread) [custom_components.mypyllant] Waiting 119s until token refresh for [email protected]
2023-08-02 18:14:13.287 ERROR (MainThread) [custom_components.mypyllant] Unexpected error fetching myVAILLANT data: 1 validation error for Device
product_name
  none is not an allowed value (type=type_error.none.not_allowed)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 283, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/mypyllant/__init__.py", line 134, in _async_update_data
    data = [
           ^
  File "/config/custom_components/mypyllant/__init__.py", line 134, in <listcomp>
    data = [
           ^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 265, in get_systems
    system = System(
             ^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/models.py", line 170, in __init__
    self.devices = [
                   ^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/models.py", line 171, in <listcomp>
    Device(system_id=self.id, type=k, **v) for k, v in self._raw_devices
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "pydantic/main.py", line 341, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for Device
product_name
  none is not an allowed value (type=type_error.none.not_allowed)
2023-08-02 18:14:13.300 DEBUG (MainThread) [custom_components.mypyllant] Finished fetching myVAILLANT data in 0.652 seconds (success: False)
2023-08-02 18:14:13.300 DEBUG (MainThread) [custom_components.mypyllant] Refreshing DailyDataCoordinator
2023-08-02 18:14:13.301 DEBUG (MainThread) [custom_components.mypyllant] Starting async update data for DailyDataCoordinator
2023-08-02 18:14:13.301 DEBUG (MainThread) [custom_components.mypyllant] Waiting 119s until token refresh for [email protected]
2023-08-02 18:14:13.301 DEBUG (MainThread) [custom_components.mypyllant] Getting data from 2023-08-02 00:00:00 to 2023-08-03 00:00:00
2023-08-02 18:14:13.585 ERROR (MainThread) [custom_components.mypyllant] Unexpected error fetching myVAILLANT data: 1 validation error for Device
product_name
  none is not an allowed value (type=type_error.none.not_allowed)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 283, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/mypyllant/__init__.py", line 153, in _async_update_data
    async for system in await self.hass.async_add_executor_job(
  File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 265, in get_systems
    system = System(
             ^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/models.py", line 170, in __init__
    self.devices = [
                   ^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/models.py", line 171, in <listcomp>
    Device(system_id=self.id, type=k, **v) for k, v in self._raw_devices
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "pydantic/main.py", line 341, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for Device
product_name
  none is not an allowed value (type=type_error.none.not_allowed)
2023-08-02 18:14:13.590 DEBUG (MainThread) [custom_components.mypyllant] Finished fetching myVAILLANT data in 0.289 seconds (success: False)
2023-08-02 18:14:13.600 WARNING (MainThread) [custom_components.mypyllant.binary_sensor] No system data, skipping binary sensors
2023-08-02 18:14:13.616 WARNING (MainThread) [custom_components.mypyllant.sensor] No system data, skipping sensors
2023-08-02 18:14:13.617 DEBUG (MainThread) [custom_components.mypyllant.sensor] Daily data: None
2023-08-02 18:14:13.617 WARNING (MainThread) [custom_components.mypyllant.sensor] No daily data, skipping sensors
2023-08-02 18:14:13.618 WARNING (MainThread) [custom_components.mypyllant.climate] No system data, skipping climate
2023-08-02 18:14:13.620 WARNING (MainThread) [custom_components.mypyllant.water_heater] No system data, skipping water hearer

@Jaybeam @david.depedro there’s a chance both of these issues are resolved in the latest prerelease.

Hi @pdd unfortunately, I’m still experiencing the same issue. I have downloaded the latest version (v.0.4.0.2b) and it seems to be facing the same issue. I have taken some logs again in case this could help you to track where the error may be appearing:

If there is anything I can do to help you, please, let me know! I really believe this integration is a game-changer! Thanks again for your extraordinary support!

2023-08-03 18:04:46.478 ERROR (MainThread) [custom_components.mypyllant] Unexpected error fetching myVAILLANT data: 1 validation error for Device
product_name
  none is not an allowed value (type=type_error.none.not_allowed)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 283, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/mypyllant/__init__.py", line 136, in _async_update_data
    data = [
           ^
  File "/config/custom_components/mypyllant/__init__.py", line 136, in <listcomp>
    data = [
           ^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 281, in get_systems
    system = System(
             ^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/models.py", line 170, in __init__
    self.devices = [
                   ^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/models.py", line 171, in <listcomp>
    Device(system_id=self.id, type=k, **v) for k, v in self._raw_devices
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "pydantic/main.py", line 341, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for Device
product_name
  none is not an allowed value (type=type_error.none.not_allowed)
2023-08-03 18:04:46.769 ERROR (MainThread) [custom_components.mypyllant] Unexpected error fetching myVAILLANT data: 1 validation error for Device
product_name
  none is not an allowed value (type=type_error.none.not_allowed)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 283, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/mypyllant/__init__.py", line 155, in _async_update_data
    async for system in await self.hass.async_add_executor_job(
  File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 281, in get_systems
    system = System(
             ^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/models.py", line 170, in __init__
    self.devices = [
                   ^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/models.py", line 171, in <listcomp>
    Device(system_id=self.id, type=k, **v) for k, v in self._raw_devices
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "pydantic/main.py", line 341, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for Device
product_name
  none is not an allowed value (type=type_error.none.not_allowed)
2023-08-03 18:04:46.793 WARNING (MainThread) [custom_components.mypyllant.binary_sensor] No system data, skipping binary sensors
2023-08-03 18:04:46.802 WARNING (MainThread) [custom_components.mypyllant.sensor] No system data, skipping sensors
2023-08-03 18:04:46.804 WARNING (MainThread) [custom_components.mypyllant.sensor] No daily data, skipping sensors
2023-08-03 18:04:46.806 WARNING (MainThread) [custom_components.mypyllant.climate] No system data, skipping climate
2023-08-03 18:04:46.815 WARNING (MainThread) [custom_components.mypyllant.water_heater] No system data, skipping water hearer
2023-08-03 18:05:12.118 DEBUG (MainThread) [custom_components.mypyllant] Creating API and logging in with [email protected] in realm spain
2023-08-03 18:05:13.594 DEBUG (MainThread) [custom_components.mypyllant] Refreshing SystemCoordinator
2023-08-03 18:05:13.595 DEBUG (MainThread) [custom_components.mypyllant] Starting async update data for SystemCoordinator
2023-08-03 18:05:13.595 DEBUG (MainThread) [custom_components.mypyllant] Waiting 119s until token refresh for [email protected]
2023-08-03 18:05:14.258 ERROR (MainThread) [custom_components.mypyllant] Unexpected error fetching myVAILLANT data: 1 validation error for Device
product_name
  none is not an allowed value (type=type_error.none.not_allowed)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 283, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/mypyllant/__init__.py", line 136, in _async_update_data
    data = [
           ^
  File "/config/custom_components/mypyllant/__init__.py", line 136, in <listcomp>
    data = [
           ^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 281, in get_systems
    system = System(
             ^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/models.py", line 170, in __init__
    self.devices = [
                   ^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/models.py", line 171, in <listcomp>
    Device(system_id=self.id, type=k, **v) for k, v in self._raw_devices
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "pydantic/main.py", line 341, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for Device
product_name
  none is not an allowed value (type=type_error.none.not_allowed)
2023-08-03 18:05:14.269 DEBUG (MainThread) [custom_components.mypyllant] Finished fetching myVAILLANT data in 0.674 seconds (success: False)
2023-08-03 18:05:14.270 DEBUG (MainThread) [custom_components.mypyllant] Refreshing DailyDataCoordinator
2023-08-03 18:05:14.270 DEBUG (MainThread) [custom_components.mypyllant] Starting async update data for DailyDataCoordinator
2023-08-03 18:05:14.270 DEBUG (MainThread) [custom_components.mypyllant] Waiting 119s until token refresh for [email protected]
2023-08-03 18:05:14.270 DEBUG (MainThread) [custom_components.mypyllant] Getting data from 2023-08-03 00:00:00 to 2023-08-04 00:00:00
2023-08-03 18:05:14.549 ERROR (MainThread) [custom_components.mypyllant] Unexpected error fetching myVAILLANT data: 1 validation error for Device
product_name
  none is not an allowed value (type=type_error.none.not_allowed)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 283, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/mypyllant/__init__.py", line 155, in _async_update_data
    async for system in await self.hass.async_add_executor_job(
  File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 281, in get_systems
    system = System(
             ^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/models.py", line 170, in __init__
    self.devices = [
                   ^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/models.py", line 171, in <listcomp>
    Device(system_id=self.id, type=k, **v) for k, v in self._raw_devices
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "pydantic/main.py", line 341, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for Device
product_name
  none is not an allowed value (type=type_error.none.not_allowed)
2023-08-03 18:05:14.559 DEBUG (MainThread) [custom_components.mypyllant] Finished fetching myVAILLANT data in 0.289 seconds (success: False)
2023-08-03 18:05:14.560 WARNING (MainThread) [custom_components.mypyllant.binary_sensor] No system data, skipping binary sensors
2023-08-03 18:05:14.561 WARNING (MainThread) [custom_components.mypyllant.sensor] No system data, skipping sensors
2023-08-03 18:05:14.563 DEBUG (MainThread) [custom_components.mypyllant.sensor] Daily data: None
2023-08-03 18:05:14.563 WARNING (MainThread) [custom_components.mypyllant.sensor] No daily data, skipping sensors
2023-08-03 18:05:14.564 WARNING (MainThread) [custom_components.mypyllant.climate] No system data, skipping climate
2023-08-03 18:05:14.565 WARNING (MainThread) [custom_components.mypyllant.water_heater] No system data, skipping water hearer