myVAILLANT integration

@Jaybeam glad to hear it works! You would need to send me debug logs, then I may be able to tell what’s going on with those two sensors. Could you also let me know what devices you have installed, out of interest?

@pdd I send you a PM with a link to the log.

My equipment is all from Bulex:

  • Heater: Thema Condens F30/35
  • Controller: Red 5
  • Thermostat: MiPro Sense
  • Internet Module: MiLink v3

Greetings,
Rudy.

Hi @pdd , I’ve tried whith the latest update, but still some issues, here attached is the log.
One question, should I do what you asked @Jaybeam to do and review the line 87??

Thanks!!!

2023-08-06 11:32:40.195 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-06 11:32:40.496 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-06 11:32:40.530 WARNING (MainThread) [custom_components.mypyllant.binary_sensor] No system data, skipping binary sensors
2023-08-06 11:32:40.535 WARNING (MainThread) [custom_components.mypyllant.sensor] No system data, skipping sensors
2023-08-06 11:32:40.537 WARNING (MainThread) [custom_components.mypyllant.sensor] No daily data, skipping sensors
2023-08-06 11:32:40.539 WARNING (MainThread) [custom_components.mypyllant.climate] No system data, skipping climate
2023-08-06 11:32:40.540 WARNING (MainThread) [custom_components.mypyllant.water_heater] No system data, skipping water hearer
2023-08-06 11:33:07.342 DEBUG (MainThread) [custom_components.mypyllant] Creating API and logging in with [email protected] in realm spain
2023-08-06 11:33:08.690 DEBUG (MainThread) [custom_components.mypyllant] Refreshing SystemCoordinator
2023-08-06 11:33:08.690 DEBUG (MainThread) [custom_components.mypyllant] Starting async update data for SystemCoordinator
2023-08-06 11:33:08.691 DEBUG (MainThread) [custom_components.mypyllant] Waiting 119s until token refresh for [email protected]
2023-08-06 11:33:09.341 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-06 11:33:09.351 DEBUG (MainThread) [custom_components.mypyllant] Finished fetching myVAILLANT data in 0.661 seconds (success: False)
2023-08-06 11:33:09.352 DEBUG (MainThread) [custom_components.mypyllant] Refreshing DailyDataCoordinator
2023-08-06 11:33:09.352 DEBUG (MainThread) [custom_components.mypyllant] Starting async update data for DailyDataCoordinator
2023-08-06 11:33:09.352 DEBUG (MainThread) [custom_components.mypyllant] Waiting 119s until token refresh for [email protected]
2023-08-06 11:33:09.352 DEBUG (MainThread) [custom_components.mypyllant] Getting data from 2023-08-06 00:00:00 to 2023-08-07 00:00:00
2023-08-06 11:33:09.656 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-06 11:33:09.665 DEBUG (MainThread) [custom_components.mypyllant] Finished fetching myVAILLANT data in 0.313 seconds (success: False)
2023-08-06 11:33:09.667 WARNING (MainThread) [custom_components.mypyllant.binary_sensor] No system data, skipping binary sensors
2023-08-06 11:33:09.670 WARNING (MainThread) [custom_components.mypyllant.sensor] No system data, skipping sensors
2023-08-06 11:33:09.671 DEBUG (MainThread) [custom_components.mypyllant.sensor] Daily data: None
2023-08-06 11:33:09.671 WARNING (MainThread) [custom_components.mypyllant.sensor] No daily data, skipping sensors
2023-08-06 11:33:09.673 WARNING (MainThread) [custom_components.mypyllant.climate] No system data, skipping climate
2023-08-06 11:33:09.673 WARNING (MainThread) [custom_components.mypyllant.water_heater] No system data, skipping water hearer

The automation seems to be working quite well now. There are still some dead or unavailable entities for me, but otherwise no issues I can see.
The main problems that remain are with the myVaillant Platform itself, which just doesn’t allow you access to many lowlevel things like flow temp.
However, the fact that I can use Home Assistant to create a “sane” legionella disinfectant program (heating to 62°C once a week instead of 75) is already fantastic.

how do you make the heating to 62°C once a week instead of 75?

alias: Legionellenschutz
description: ""
trigger:
  - platform: time
    at: "10:00:00"
condition:
  - condition: time
    weekday:
      - sun
action:
  - service: water_heater.set_temperature
    data:
      temperature: 62
    target:
      entity_id: water_heater.domestic_hot_water_0
  - delay:
      hours: 8
      minutes: 0
      seconds: 0
      milliseconds: 0
  - service: water_heater.set_temperature
    data:
      temperature: 50
    target:
      entity_id: water_heater.domestic_hot_water_0
mode: single
1 Like

Thanks. i will try it

edit

it dont work with senso app :-/

why the delay on 8 hours … 2 hours should be fine ?

Sure, two hours would also be fine. The 8 hours are/were for future experiments where the actual time the hot water preparation starts might not be at 10:00.
There is room for refinement after all, like having the hot water production start at the cheapest (energy price) or most efficient (warmest) time of day. I didn’t go there yet, because I wanted to keep ot simple and foolproof for now. This configuration has been working flawlessly for me for a couple of weeks now, so please let me know how it runs for you and if you have any clever ideas to improve on it.

1 Like

thanks, but it dont work with senso app :-/

when I get the vialliant app (denmark) I will also make hotwater to 62degress in the cheapest hours.

This integration is for myVaillant only, so it won’t work with the Senso integration. I had to wait until Vaillant had switched me over to the new system before I could use it.

1 Like

Hey @pdd sorry to insist, but just checking if you saw my last message or if you have any other tips to try this. Thanks for your huge support and work!!

@david.depedro I must have picked an old version for the latest release, the underlying library wasn’t updated. Try Release v0.4.0b4 · signalkraft/mypyllant-component · GitHub please!

@CommanderROR thanks for the automation template, I added it in the new documentation page: Automations - myPyllant Library & Home Assistant Component

1 Like

@pdd SUCCESS!!! Thanks a lot for all the support, let me know if you need any logs or information!

Since summer will eventually move over into autumn and the pesky little thing called “heating” will have to commence again…I think it might be time to start thinking about how best to optimise our heat pumps with HA Automations.

I am currently beta testing the Tado Heat Pump Connector, but while it has a lot of potential to do what I want, the actual development work from Tado appears to be going very slowly.

That’s why I am starting to think about doing my own DIY approach.
My target is to mainly aim at efficiency, so essentially raise the temp slightly when it’s more efficient to heat and let it droop when it’s very cold outside and the efficiency is worse. Optimising according to price would also be easy, but that’s a secondary goal for me since I have a 10kWh battery and can store electricity when it’s cheap and use it when it’s more expensive.

I will be away next week, but maybe we can do a little brainstorming over the next few weeks and figure something out? I am definitely not the best HA automation creator, but will try to pitch in.

That’s an interesting idea, some thoughts:

  • Maybe a custom service could control the heating schedule and raise / lower target temperatures based on the weather forecast, current outdoor temps, indoor temps, and maybe some factors that model the COP and heat loss
  • The service receives all this data as input params (including target climate / hot water entities that it should control). It can be triggered hourly, or based on a change in temperature, or whatever you want
  • It could also be a separate HVAC mode that has all these params as options in the integration
  • Based on the more dynamic target temperature, the built in control loop of the heat pump would keep doing its thing with outdoor temperature, indoor temperature, efficiency curves, necessary flow temperature, etc
  • The same could work for hot water, but maybe without delays since you wouldn’t want a cold shower just because there’s warmer weather later in the day - however you could use a warm evening to put extra heat into your hot water tank if the next morning is a lot colder
  • Price of energy, battery levels, and solar power could also factor into this - but there seems to be some support for that from Vaillant, so I guess there’s no need?
  • There’s a chance that your heat pump freaks out and keeps cycling on and off because this new control loop is overreacting, or not dealing well with edge cases. It should probably error out when there’s too many commands or state changes detected in a short period of time
  • The target temps should probably be set as temporary overwrites (quick veto, or hot water boost), so in the event of a failure in this whole setup, the heat pump just falls back to its default schedule and nobody needs to open a Github issue because my code is buggy and their hous is freezing
1 Like

That sounds very cool and also way beyond my capabilities…🫣

One question though…you write that Vaillant has some support for batteries, solar irradiation and dynamic prices…but as far as I am aware they don’t. The only method of doing anything at all “smart” with Vaillant is by using eebus but that is only supported by SMA as far as I know.

Bonjour @pdd ,

Le service « myVAILLANT : Set quick veto » permet de choisir le temps de programmation, mais uniquement sur les heures, serait-il possible de rajouter les minutes ?.
Merci

Bonjour à tous,

J’ai une MiLink v3 mais SR 921 et non VR 921 ce plugin ne fonctionne pas!!!
Via l’application MiControl c’est OK

L’application MiGo link ne prend pas cette passerelle.

Avez-vous des idées ?

Eric

Would this integration also work when a VR70 controller is included in the installation with 2 zones (floor heating and radiator heated rooms)?