thomasgermain / vaillant-component

Multimatic integration for Home Assistant (also compatible with sensoAPP)
MIT License
137 stars 24 forks source link

Unexpected error fetching multimatic data: None #48

Closed lecocqe closed 3 years ago

lecocqe commented 3 years ago

Hello,

since 14:30 i got 73 errors like this:

2021-04-16 14:21:07 ERROR (MainThread) [custom_components.multimatic.hub] Unexpected error fetching multimatic data: None

Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 173, in _async_refresh self.data = await self._async_update_data() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 143, in _async_update_data return await self.update_method() File "/config/custom_components/multimatic/hub.py", line 104, in _fetch_data system = await self._manager.get_system() File "/usr/local/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 97, in get_system zones = mapper.map_zones(full_system) File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mapper.py", line 219, in map_zones zone = map_zone(raw_zone) File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mapper.py", line 238, in map_zone active_function = ActiveFunction[configuration.get("active_function")] File "/usr/local/lib/python3.8/enum.py", line 387, in getitem return cls._membermap[name] KeyError: None

do you have an idea or is it at vaillant side ? image

thomasgermain commented 3 years ago

Hello Eric,

when did you migrate to 1.5.0 ? I'm already aware of this issue, I reached vaillant yesterday and they are checking (the API is returning wrong responses - missing active_function, operating_mode, etc.).

I also have the same kind of error from the android app: Screenshot_20210416-154118_multiMATIC

lecocqe commented 3 years ago

yesterday or the day before.

regards

Le ven. 16 avr. 2021 à 18:07, Thomas Germain @.***> a écrit :

Hello Eric,

when did you migrate to 1.5.0 ? I'm already aware of this issue, I reached vaillant yesterday and they are checking (the API is returning wrong responses - missing active_function, operating_mode, etc.).

I also have the same kind of error from the android app: [image: Screenshot_20210416-154118_multiMATIC] https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F12560542%2F115052605-6b983e80-9ede-11eb-8bec-55f51bfee566.png&data=04%7C01%7C%7C59f2bae9e5de43bbe3e208d900f1c3c7%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637541860645864492%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=pIO0QJRyZBHRNIPfXzhADK%2BNgmGVjXXF8KH%2Fqhu0oi8%3D&reserved=0

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fthomasgermain%2Fvaillant-component%2Fissues%2F48%23issuecomment-821282023&data=04%7C01%7C%7C59f2bae9e5de43bbe3e208d900f1c3c7%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637541860645874484%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=FIaf%2FRBHPZ%2BYV4mXjaS1n7AyPPMkUeqK1iL%2BniJy33s%3D&reserved=0, or unsubscribe https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAEOK7RWWZP72EK4KE3WCZHTTJBOE3ANCNFSM43BWT24Q&data=04%7C01%7C%7C59f2bae9e5de43bbe3e208d900f1c3c7%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637541860645884489%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Qbt%2FqIHSz9POcntjRVLEYzuh%2FIgp178MQob1Hi4S95s%3D&reserved=0 .

lecocqe commented 3 years ago

image as you can see, during this night, it was more stable. i change the polling from 2 minutes to 5 minutes, to see if it brings something.

thomasgermain commented 3 years ago

Yes, I also noticed that, there is something like a server restart every night at ~3:30am and it seems a bit more stable for few hours, but it's getting worse

lecocqe commented 3 years ago

image indeed. fyi, in the meantime, i updated to hacs1.6.0

thomasgermain commented 3 years ago

fyi, in the meantime, i updated to hacs1.6.0

I hope everything is working ? (What a shame a I don't have moved yet :smile: )

lecocqe commented 3 years ago

when communication is ok. it works fine. i had to replace the entity DHW from sensor to water_heater.

lecocqe commented 3 years ago

do you some news from vaillant side ? i also complains about this on the website of vaillant in belgium.

thomasgermain commented 3 years ago

do you some news from vaillant side ? i also complains about this on the website of vaillant in belgium.

I reached them via app-support@vaillant-group.com. But I only had 35 errors (from 3:30 am). But the problem is the way HA is designed.. if data fetching fails, all entities are considered unavailable

pepsonEL commented 3 years ago

Is any solution for it ? But on older version 1.5.0.b6 all working ok.

2021-04-22 22:58:29 ERROR (MainThread) [custom_components.multimatic.hub] Unexpected error fetching multimatic data: None
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 173, in _async_refresh
self.data = await self._async_update_data()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 143, in _async_update_data
return await self.update_method()
File "/config/custom_components/multimatic/hub.py", line 104, in _fetch_data
system = await self._manager.get_system()
File "/usr/local/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 97, in get_system
zones = mapper.map_zones(full_system)
File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mapper.py", line 219, in map_zones
zone = map_zone(raw_zone)
File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mapper.py", line 238, in map_zone
active_function = ActiveFunction[configuration.get("active_function")]
File "/usr/local/lib/python3.8/enum.py", line 387, in __getitem__
return cls._member_map_[name]
KeyError: None
lecocqe commented 3 years ago

hello,

same conclusion here. 1.5.0b6 works ok since I switch back. see last part of the graph.

best regards

Le jeu. 22 avr. 2021 à 22:59, pepsonEL @.***> a écrit :

Is any solution for it ? But on older version 1.5.0.b6 all working ok.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fthomasgermain%2Fvaillant-component%2Fissues%2F48%23issuecomment-825181331&data=04%7C01%7C%7Ce5c5eb65f6784d18e63008d905d178b9%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637547219490760039%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=jby5taa78hP8GOZ%2BIhWa%2FHq7Hve7U%2BITvn2NmeMwe%2Fg%3D&reserved=0, or unsubscribe https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAEOK7RSJJOV6QJO5HYUG6N3TKCEZXANCNFSM43BWT24Q&data=04%7C01%7C%7Ce5c5eb65f6784d18e63008d905d178b9%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637547219490770034%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=jWMPAJRGM2liBMTlCibqXGVmmCzOdUTQJO%2BZzC7PZOU%3D&reserved=0 .

thomasgermain commented 3 years ago

You both switched this morning ? Because it works better in the morning et it's geting worst during the day. Actually there is no difference between 1.5.0b6 and 1.5.0 (and also 1.6.1) from data fetching point of vieuw

lecocqe commented 3 years ago

hello,

I switched back before 3:30 (around 00:30). the last days, it becomes better around 3:30 and begins to degradate after 10:00. as you said, we have to wait this afternoon/evening to to be sure.

regards

Le ven. 23 avr. 2021 à 07:16, Thomas Germain @.***> a écrit :

You both switched this morning ? Because it works better in the morning et it's geting worst during the day. Actually there is no difference between 1.5.0b6 and 1.5.0 (and also 1.6.1) from data fetching point of vieuw

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fthomasgermain%2Fvaillant-component%2Fissues%2F48%23issuecomment-825392029&data=04%7C01%7C%7C69bbee7326e64c95b83908d90616e41c%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637547517649987051%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=6edVYxiHODK1EwX2RSTeqRAKmAKukA1QG%2FG%2BP5ojQzI%3D&reserved=0, or unsubscribe https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAEOK7RW4P6ZM4DI7E72HJCDTKD7BHANCNFSM43BWT24Q&data=04%7C01%7C%7C69bbee7326e64c95b83908d90616e41c%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637547517649997047%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=JqQbmWP35Pe2AXH61MtURBi6E6Yl6NuBUBLuU%2By827E%3D&reserved=0 .

pepsonEL commented 3 years ago

For me now also work ok. Time 10:20 AM

pt., 23 kwi 2021, 08:07 użytkownik Eric Lecocq @.***> napisał:

hello,

I switched back before 3:30 (around 00:30). the last days, it becomes better around 3:30 and begins to degradate after 10:00. as you said, we have to wait this afternoon/evening to to be sure.

regards

Le ven. 23 avr. 2021 à 07:16, Thomas Germain @.***> a écrit :

You both switched this morning ? Because it works better in the morning et it's geting worst during the day. Actually there is no difference between 1.5.0b6 and 1.5.0 (and also 1.6.1) from data fetching point of vieuw

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub < https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fthomasgermain%2Fvaillant-component%2Fissues%2F48%23issuecomment-825392029&data=04%7C01%7C%7C69bbee7326e64c95b83908d90616e41c%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637547517649987051%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=6edVYxiHODK1EwX2RSTeqRAKmAKukA1QG%2FG%2BP5ojQzI%3D&reserved=0 , or unsubscribe < https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAEOK7RW4P6ZM4DI7E72HJCDTKD7BHANCNFSM43BWT24Q&data=04%7C01%7C%7C69bbee7326e64c95b83908d90616e41c%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637547517649997047%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=JqQbmWP35Pe2AXH61MtURBi6E6Yl6NuBUBLuU%2By827E%3D&reserved=0

.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/thomasgermain/vaillant-component/issues/48#issuecomment-825413316, or unsubscribe https://github.com/notifications/unsubscribe-auth/ARD7GONZPICHK22QP2A5JCLTKEFDPANCNFSM43BWT24Q .

thomasgermain commented 3 years ago

Yes, same for me, no error so far (and I'm with the 1.6.0)

lecocqe commented 3 years ago

it seems to be more stable since friday, no ?

thomasgermain commented 3 years ago

it seems to be more stable since friday, no ?

yes, I can see there is less errors.

kamm0r commented 3 years ago

Hi, I experience some similar trouble too. After a while it return working. Sometime rebooting get success sometime doesn't....

2021-05-05 09:59:27 ERROR (MainThread) [custom_components.multimatic.hub] Unexpected error fetching multimatic data: None

Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 173, in _async_refresh self.data = await self._async_update_data() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 143, in _async_update_data return await self.update_method() File "/config/custom_components/multimatic/hub.py", line 104, in _fetch_data system = await self._manager.get_system() File "/usr/local/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 97, in get_system zones = mapper.map_zones(full_system) File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mapper.py", line 219, in map_zones zone = map_zone(raw_zone) File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mapper.py", line 238, in map_zone active_function = ActiveFunction[configuration.get("active_function")] File "/usr/local/lib/python3.8/enum.py", line 387, in getitem return cls._membermap[name] KeyError: None

Thanks for your great efforts.

multimatic ![multimatic1](https://user-images.githubusercontent.com/72215710/117113036-39198d00-ad8a-11eb-

9425-8b51601c2a77.png)

lecocqe commented 3 years ago

hello,

on my production 1.5.0b6 (HASSIO RPI3) (stable for days), i decided to update via HACS to 1.6.1... then directly it begins with errors...

to test, i made a new totally new installation of HASSIO on a virtualbox with components 1.6.1 (no HACS). I will share the results in the coming days.

regards

smmoroz commented 3 years ago

Hi,

I also have similar problem since I updated from 1.4.x to 1.6.1 via HACS. Here is my log:

Logger: custom_components.multimatic.hub
Source: custom_components/multimatic/hub.py:104
Integration: Multimatic (documentation, issues)
First occurred: 11:28:17 PM (5 occurrences)
Last logged: 11:40:21 PM

Unexpected error fetching multimatic data: None
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 151, in async_refresh
    self.data = await self._async_update_data()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 139, in _async_update_data
    return await self.update_method()
  File "/config/custom_components/multimatic/hub.py", line 104, in _fetch_data
    system = await self._manager.get_system()
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 103, in get_system
    dhw = mapper.map_dhw(full_system, live_report)
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mapper.py", line 334, in map_dhw
    hotwater = map_hot_water(full_system, live_report)
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mapper.py", line 317, in map_hot_water
    return _map_hot_water(raw_hot_water, dwh_id, live_report)
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mapper.py", line 420, in _map_hot_water
    func = _map_function(raw_hot_water, "mode")
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mapper.py", line 289, in _map_function
    operating_mode = OperatingModes.get(mode)
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mode.py", line 82, in get
    return cls._VALUES[name]
KeyError: None

It was way more stable with 1.4.x

smmoroz commented 3 years ago

Strangely enough, but since 6AM this morning everything works:

image

FYI, I moved to 1.6.1 last evening at about 10PM.

thomasgermain commented 3 years ago

@smmoroz thanks for your feedback. When you say it was more stable with 1.4.x, do you mean you also have errors with this version ?

lecocqe commented 3 years ago

ha on virtualbox runs fine for days. then I did the following on prod. uninstalled everything related to multimatic: hacs store, integration, files in custom components directory ... reboot en installed 1.6.1 via HACS and I had some errors in the beginning. but now stable since this morning (10:06).

smmoroz commented 3 years ago

@smmoroz thanks for your feedback. When you say it was more stable with 1.4.x, do you mean you also have errors with this version ?

@thomasgermain I was too optimistic. After about 12 hours of stable operation I have the issue again. See the pic below:

image

As for 1.4.x I didn't have the issue at this scale. From time to time I had unavailable sensors. But that was not annoying like with 1.6.1.

There are actually two different messages in the log:

Logger: custom_components.multimatic.hub
Source: custom_components/multimatic/hub.py:104
Integration: Multimatic (documentation, issues)
First occurred: May 7, 2021, 12:05:26 AM (93 occurrences)
Last logged: 11:16:16 AM

Unexpected error fetching multimatic data: None
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 151, in async_refresh
    self.data = await self._async_update_data()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 139, in _async_update_data
    return await self.update_method()
  File "/config/custom_components/multimatic/hub.py", line 104, in _fetch_data
    system = await self._manager.get_system()
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 97, in get_system
    zones = mapper.map_zones(full_system)
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mapper.py", line 219, in map_zones
    zone = map_zone(raw_zone)
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mapper.py", line 248, in map_zone
    func = _map_function(raw_heating, "setting")
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mapper.py", line 289, in _map_function
    operating_mode = OperatingModes.get(mode)
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mode.py", line 82, in get
    return cls._VALUES[name]
KeyError: None

and

Logger: custom_components.multimatic.hub
Source: custom_components/multimatic/hub.py:104
Integration: Multimatic (documentation, issues)
First occurred: May 7, 2021, 12:03:26 AM (250 occurrences)
Last logged: 11:14:16 AM

Unexpected error fetching multimatic data: None
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 151, in async_refresh
    self.data = await self._async_update_data()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 139, in _async_update_data
    return await self.update_method()
  File "/config/custom_components/multimatic/hub.py", line 104, in _fetch_data
    system = await self._manager.get_system()
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 97, in get_system
    zones = mapper.map_zones(full_system)
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mapper.py", line 219, in map_zones
    zone = map_zone(raw_zone)
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mapper.py", line 238, in map_zone
    active_function = ActiveFunction[configuration.get("active_function")]
  File "/usr/local/lib/python3.8/enum.py", line 387, in __getitem__
    return cls._member_map_[name]
KeyError: None
lecocqe commented 3 years ago

Hello,

for the follow-up, still errors but number is quite limited. image

have a nive day

thomasgermain commented 3 years ago

This is going crazy at my side.. (but as usual, it's getting better after ~3:30am server restart) image

lecocqe commented 3 years ago

exactly the same on my side, yesterday from 1:00 PM until 3:40 AM

lecocqe commented 3 years ago

hello, today it is catastrophic! at my side, Screenshot_20210512-223336

Wiggum127 commented 3 years ago

I'm experiencing the same behaviour. If there's anything I can do to help test or debug/log, let me know.

lecocqe commented 3 years ago

the stangest thing is that i put a little script in crontab (your minimalist script) just get data and put 2 values (outdoor + current temp on zone1) in txt file. there is no problem with it....

thomasgermain commented 3 years ago

the stangest thing is that i put a little script in crontab (your minimalist script) just get data and put 2 values (outdoor + current temp on zone1) in txt file. there is no problem with it....

How long have you ran it ? Because I'm able to reproduce it, I just have to let the script run and after ~30 min, errors start

lecocqe commented 3 years ago

18/05. see attached files

temperatures.txt

here script:

new 3.txt

running on a RPI3 with standard raspi os (not the one that runs hass os)

lecocqe commented 3 years ago

I don't know if it is a coincidence. but since i upgraded to the latest version core-2021.6.1. no error anymore.

Wiggum127 commented 3 years ago

Must be a coincidence. Upgraded to integration v1.6.1 and HA core-2021.6.2 and the errors persist

thomasgermain commented 3 years ago

I updated yesterday evening (saturday) and I still have errors. But since today (sunday) ~1pm no more errors

lecocqe commented 3 years ago

image here a view of the last seven days.

didiht commented 3 years ago

I have problems with version >= 1.5 in the same manner, but with worse result. Version 1.4 was stable.

After appearance of error with Unexpected error fetching multimatic data: None all multimatic sensors become unavailable until restart of homeassistant.

System: homeassistant 2021.6.3 (supervised). vaillant-component 1.6.2 (manually installed). As mentioned above the problem appears with 1.5 and later

Maybe there is a problem with the migration? Maybe I can help with more debugging information?

PS: Great Job, Thanks.

Following errors are in the log:

Logger: homeassistant
Source: custom_components/multimatic/sensor.py:103
Integration: Multimatic (documentation, issues)
First occurred: 14:10:34 (5 occurrences)
Last logged: 14:18:34

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 134, in _handle_refresh_interval
    await self._async_refresh(log_failures=True, scheduled=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 265, in _async_refresh
    update_callback()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 325, in _handle_coordinator_update
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 368, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 412, in _async_write_ha_state
    unit_of_measurement = self.unit_of_measurement
  File "/config/custom_components/multimatic/sensor.py", line 103, in unit_of_measurement
    return self.report.unit
AttributeError: 'NoneType' object has no attribute 'unit'
2021-06-08 11:52:34 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 134, in _handle_refresh_interval
    await self._async_refresh(log_failures=True, scheduled=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 265, in _async_refresh
    update_callback()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 325, in _handle_coordinator_update
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 368, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 402, in _async_write_ha_state
    state = self._stringify_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 374, in _stringify_state
    state = self.state
  File "/usr/src/homeassistant/homeassistant/components/binary_sensor/__init__.py", line 162, in state
    return STATE_ON if self.is_on else STATE_OFF
  File "/config/custom_components/multimatic/binary_sensor.py", line 80, in is_on
    self.active_mode.current == OperatingModes.ON
  File "/config/custom_components/multimatic/binary_sensor.py", line 93, in active_mode
    return self.coordinator.data.get_active_mode_circulation()
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/system.py", line 228, in get_active_mode_circulation
    return circulation.active_mode
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/common.py", line 52, in active_mode
    setting = self.time_program.get_for(datetime.now())
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/timeprogram.py", line 107, in get_for
    tp_day = self.days[day]
KeyError: 'tuesday'
Logger: custom_components.multimatic.hub
Source: custom_components/multimatic/hub.py:104
Integration: Multimatic (documentation, issues)
First occurred: 13:56:34 (5 occurrences)
Last logged: 14:04:34
Unexpected error fetching multimatic data: None

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 187, in _async_refresh
    self.data = await self._async_update_data()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 147, in _async_update_data
    return await self.update_method()
  File "/config/custom_components/multimatic/hub.py", line 104, in _fetch_data
    system = await self._manager.get_system()
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 97, in get_system
    zones = mapper.map_zones(full_system)
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mapper.py", line 219, in map_zones
    zone = map_zone(raw_zone)
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mapper.py", line 238, in map_zone
    active_function = ActiveFunction[configuration.get("active_function")]
  File "/usr/local/lib/python3.8/enum.py", line 387, in __getitem__
    return cls._member_map_[name]
KeyError: None
thomasgermain commented 3 years ago

Just released 1.7.0b0 see https://github.com/thomasgermain/vaillant-component/releases/tag/1.7.0b0 It should fix the issue (or at least reduce it). You can see it through HACS, if you enable beta (I tested it for 2 days and I didn't have any error, expect around 3:30).

Wiggum127 commented 3 years ago

Upgraded to latest and greatest of HA DC (v2021.6.2) and multimatic (v1.7.0b0 via git clone) in the custom_components dir.

It resulted in all multimatic related entities being duplicated. I removed the duplicate multimatic entities which were not working, resulting in a set the full set of entities being operational.

Will keep an eye on the logs and revert back in case something pops up.

I enabled HACS beta versions but did not find any trace of multimatic or vaillant.

thomasgermain commented 3 years ago

Thanks ! (For HACS? you have to install the repo https://hacs.xyz/docs/faq/custom_repositories/)

luisdomg commented 3 years ago

As I had the issue, I updated to v1.7.0b1 via HACS, entities did not appear. I checked the logs, this is the first error, the rest I attached them:

2021-06-22 01:35:23 ERROR (MainThread) [custom_components.multimatic.coordinator] Error with multimatic API: Cannot validate response from https://smart.vaillant.com/mobile/api/v4/facilities: Key 'body' error:
Key 'facilitiesList' error:
Or({'serialNumber': And(<class 'str'>, <built-in function len>), 'name': And(<class 'str'>, <built-in function len>), 'responsibleCountryCode': And(<class 'str'>, <built-in function len>), 'supportedBrand': And(<class 'str'>, <built-in function len>), 'firmwareVersion': And(<class 'str'>, <built-in function len>), 'capabilities': [And(<class 'str'>, <built-in function len>)], 'networkInformation': {'macAddressEthernet': And(<class 'str'>, <built-in function len>), 'macAddressWifiAccessPoint': And(<class 'str'>, <built-in function len>), 'macAddressWifiClient': And(<class 'str'>, <built-in function len>)}}) did not validate {'serialNumber': '11111100201911170933116274N4', 'name': 'Caldera', 'responsibleCountryCode': 'ES', 'supportedBrand': 'GREEN_BRAND_COMPATIBLE', 'capabilities': ['SYSTEMCONTROL_MULTIMATIC'], 'networkInformation': {'macAddressEthernet': '84:c3:e8:00:79:6e'}, 'firmwareVersion': '0331.20.07'}
Key 'networkInformation' error:
Missing keys: 'macAddressWifiAccessPoint', 'macAddressWifiClient', status: 200, response: {'body': {'facilitiesList': [{'serialNumber': '21164500201971170933016274N4', 'name': 'Caldera', 'responsibleCountryCode': 'ES', 'supportedBrand': 'GREEN_BRAND_COMPATIBLE', 'capabilities': ['SYSTEMCONTROL_MULTIMATIC'], 'networkInformation': {'macAddressEthernet': '84:c3:e8:00:79:6e'}, 'firmwareVersion': '0331.20.07'}]}, 'meta': {}}
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/schema.py", line 396, in validate
    nvalue = Schema(svalue, error=e, ignore_extra_keys=i).validate(value)
  File "/usr/local/lib/python3.8/site-packages/schema.py", line 357, in validate
    return type(data)(o.validate(d) for d in data)
  File "/usr/local/lib/python3.8/site-packages/schema.py", line 357, in <genexpr>
    return type(data)(o.validate(d) for d in data)
  File "/usr/local/lib/python3.8/site-packages/schema.py", line 165, in validate
    raise SchemaError(
schema.SchemaError: Or({'serialNumber': And(<class 'str'>, <built-in function len>), 'name': And(<class 'str'>, <built-in function len>), 'responsibleCountryCode': And(<class 'str'>, <built-in function len>), 'supportedBrand': And(<class 'str'>, <built-in function len>), 'firmwareVersion': And(<class 'str'>, <built-in function len>), 'capabilities': [And(<class 'str'>, <built-in function len>)], 'networkInformation': {'macAddressEthernet': And(<class 'str'>, <built-in function len>), 'macAddressWifiAccessPoint': And(<class 'str'>, <built-in function len>), 'macAddressWifiClient': And(<class 'str'>, <built-in function len>)}}) did not validate {'serialNumber': '11111100201911170933116274N4', 'name': 'Caldera', 'responsibleCountryCode': 'ES', 'supportedBrand': 'GREEN_BRAND_COMPATIBLE', 'capabilities': ['SYSTEMCONTROL_MULTIMATIC'], 'networkInformation': {'macAddressEthernet': '84:c3:e8:00:79:6e'}, 'firmwareVersion': '0331.20.07'}
Key 'networkInformation' error:
Missing keys: 'macAddressWifiAccessPoint', 'macAddressWifiClient'

I tried with v1.7.0b0 with the same results, and went back to v1.6

lecocqe commented 3 years ago

I also had this type of errors. i tried a lot of things... finallly when tried to delete integration, add integration (version 1.7.0.B.1). it's ok to add integration (user, psw, serial no) but after a (short) while, logs are full of "authentication" errors.

Wiggum127 commented 3 years ago

This one seems to persists with v1.7.0b

Logger: custom_components.multimatic.coordinator Source: custom_components/multimatic/coordinator.py:106 Integration: Multimatic (documentation, issues) First occurred: 21 juni 2021 15:22:31 (284 occurrences) Last logged: 12:18:54

Unexpected error fetching multimatic data: Traceback (most recent call last): File "/usr/local/lib/python3.8/site-packages/schema.py", line 396, in validate nvalue = Schema(svalue, error=e, ignore_extra_keys=i).validate(value) File "/usr/local/lib/python3.8/site-packages/schema.py", line 357, in validate return type(data)(o.validate(d) for d in data) File "/usr/local/lib/python3.8/site-packages/schema.py", line 357, in return type(data)(o.validate(d) for d in data) File "/usr/local/lib/python3.8/site-packages/schema.py", line 165, in validate raise SchemaError( schema.SchemaError: Or(Schema({'_id': And(<class 'str'>, ), 'configuration': {'name': And(<class 'str'>, ), Optional('enabled'): <class 'bool'>, Optional('inside_temperature'): Or(<class 'int'>, <class 'float'>), 'active_function': And(<class 'str'>, ), 'quick_veto': {'active': <class 'bool'>, 'setpoint_temperature': Or(<class 'int'>, <class 'float'>)}, Optional('quickmode'): Schema({Optional('quickmode'): And(<class 'str'>, ), Optional('duration'): Or(<class 'int'>, <class 'float'>)})}, Optional('currently_controlled_by'): Schema({'name': And(<class 'str'>, ), Optional('link'): {Optional('rel'): <class 'str'>, 'resourceLink': <class 'str'>, Optional('name'): <class 'str'>}}), Optional('heating'): Schema({'configuration': {Or('mode', 'operation_mode', 'operationMode'): And(<class 'str'>, ), Optional(Or('setpoint_temperature', 'temperature_setpoint', 'temperatureSetpoint', 'day_level')): Or(<class 'int'>, <class 'float'>), Optional(Or('setback_temperature', 'night_level')): Or(<class 'int'>, <class 'float'>), Optional('day_level'): <class 'int'>, Optional('night_level'): <class 'int'>}, 'timeprogram': Schema({'monday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'tuesday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'wednesday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'thursday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'friday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'saturday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'sunday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}]})}), Optional('cooling'): Schema({'configuration': {Or('mode', 'operation_mode', 'operationMode'): And(<class 'str'>, ), Optional(Or('setpoint_temperature', 'temperature_setpoint', 'temperatureSetpoint', 'day_level')): Or(<class 'int'>, <class 'float'>), Optional(Or('setback_temperature', 'night_level')): Or(<class 'int'>, <class 'float'>), Optional('day_level'): <class 'int'>, Optional('night_level'): <class 'int'>}, 'timeprogram': Schema({'monday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'tuesday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'wednesday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'thursday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'friday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'saturday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'sunday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}]})})})) did not validate {'heating': {'configuration': {'mode': 'AUTO', 'setback_temperature': 15.0, 'setpoint_temperature': 21.0}, 'timeprogram': {'monday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:00', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}], 'tuesday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:00', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}], 'wednesday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:00', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}], 'thursday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:00', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}], 'friday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:00', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}], 'saturday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:30', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}], 'sunday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:30', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}]}}, '_id': 'Control_ZO1'} Missing key: 'configuration'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/local/lib/python3.8/site-packages/schema.py", line 396, in validate nvalue = Schema(svalue, error=e, ignore_extra_keys=i).validate(value) File "/usr/local/lib/python3.8/site-packages/schema.py", line 400, in validate raise SchemaError([message] + x.autos, [e.format(data) if e else None] + x.errors) schema.SchemaError: Key 'zones' error: Or(Schema({'_id': And(<class 'str'>, ), 'configuration': {'name': And(<class 'str'>, ), Optional('enabled'): <class 'bool'>, Optional('inside_temperature'): Or(<class 'int'>, <class 'float'>), 'active_function': And(<class 'str'>, ), 'quick_veto': {'active': <class 'bool'>, 'setpoint_temperature': Or(<class 'int'>, <class 'float'>)}, Optional('quickmode'): Schema({Optional('quickmode'): And(<class 'str'>, ), Optional('duration'): Or(<class 'int'>, <class 'float'>)})}, Optional('currently_controlled_by'): Schema({'name': And(<class 'str'>, ), Optional('link'): {Optional('rel'): <class 'str'>, 'resourceLink': <class 'str'>, Optional('name'): <class 'str'>}}), Optional('heating'): Schema({'configuration': {Or('mode', 'operation_mode', 'operationMode'): And(<class 'str'>, ), Optional(Or('setpoint_temperature', 'temperature_setpoint', 'temperatureSetpoint', 'day_level')): Or(<class 'int'>, <class 'float'>), Optional(Or('setback_temperature', 'night_level')): Or(<class 'int'>, <class 'float'>), Optional('day_level'): <class 'int'>, Optional('night_level'): <class 'int'>}, 'timeprogram': Schema({'monday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'tuesday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'wednesday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'thursday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'friday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'saturday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'sunday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}]})}), Optional('cooling'): Schema({'configuration': {Or('mode', 'operation_mode', 'operationMode'): And(<class 'str'>, ), Optional(Or('setpoint_temperature', 'temperature_setpoint', 'temperatureSetpoint', 'day_level')): Or(<class 'int'>, <class 'float'>), Optional(Or('setback_temperature', 'night_level')): Or(<class 'int'>, <class 'float'>), Optional('day_level'): <class 'int'>, Optional('night_level'): <class 'int'>}, 'timeprogram': Schema({'monday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'tuesday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'wednesday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'thursday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'friday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'saturday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'sunday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}]})})})) did not validate {'heating': {'configuration': {'mode': 'AUTO', 'setback_temperature': 15.0, 'setpoint_temperature': 21.0}, 'timeprogram': {'monday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:00', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}], 'tuesday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:00', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}], 'wednesday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:00', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}], 'thursday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:00', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}], 'friday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:00', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}], 'saturday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:30', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}], 'sunday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:30', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}]}}, '_id': 'Control_ZO1'} Missing key: 'configuration'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/local/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 721, in _validate_schema return schema.validate(response) File "/usr/local/lib/python3.8/site-packages/schema.py", line 400, in validate raise SchemaError([message] + x.autos, [e.format(data) if e else None] + x.errors) schema.SchemaError: Key 'body' error: Key 'zones' error: Or(Schema({'_id': And(<class 'str'>, ), 'configuration': {'name': And(<class 'str'>, ), Optional('enabled'): <class 'bool'>, Optional('inside_temperature'): Or(<class 'int'>, <class 'float'>), 'active_function': And(<class 'str'>, ), 'quick_veto': {'active': <class 'bool'>, 'setpoint_temperature': Or(<class 'int'>, <class 'float'>)}, Optional('quickmode'): Schema({Optional('quickmode'): And(<class 'str'>, ), Optional('duration'): Or(<class 'int'>, <class 'float'>)})}, Optional('currently_controlled_by'): Schema({'name': And(<class 'str'>, ), Optional('link'): {Optional('rel'): <class 'str'>, 'resourceLink': <class 'str'>, Optional('name'): <class 'str'>}}), Optional('heating'): Schema({'configuration': {Or('mode', 'operation_mode', 'operationMode'): And(<class 'str'>, ), Optional(Or('setpoint_temperature', 'temperature_setpoint', 'temperatureSetpoint', 'day_level')): Or(<class 'int'>, <class 'float'>), Optional(Or('setback_temperature', 'night_level')): Or(<class 'int'>, <class 'float'>), Optional('day_level'): <class 'int'>, Optional('night_level'): <class 'int'>}, 'timeprogram': Schema({'monday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'tuesday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'wednesday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'thursday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'friday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'saturday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'sunday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}]})}), Optional('cooling'): Schema({'configuration': {Or('mode', 'operation_mode', 'operationMode'): And(<class 'str'>, ), Optional(Or('setpoint_temperature', 'temperature_setpoint', 'temperatureSetpoint', 'day_level')): Or(<class 'int'>, <class 'float'>), Optional(Or('setback_temperature', 'night_level')): Or(<class 'int'>, <class 'float'>), Optional('day_level'): <class 'int'>, Optional('night_level'): <class 'int'>}, 'timeprogram': Schema({'monday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'tuesday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'wednesday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'thursday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'friday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'saturday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}], 'sunday': [{'startTime': And(<class 'str'>, ), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, ), Optional('mode'): And(<class 'str'>, )}]})})})) did not validate {'heating': {'configuration': {'mode': 'AUTO', 'setback_temperature': 15.0, 'setpoint_temperature': 21.0}, 'timeprogram': {'monday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:00', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}], 'tuesday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:00', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}], 'wednesday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:00', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}], 'thursday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:00', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}], 'friday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:00', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}], 'saturday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:30', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}], 'sunday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '07:30', 'setting': 'DAY'}, {'startTime': '22:50', 'setting': 'NIGHT'}]}}, '_id': 'Control_ZO1'} Missing key: 'configuration'

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 187, in _async_refresh self.data = await self._async_update_data() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 147, in _async_update_data return await self.update_method() File "/config/custom_components/multimatic/coordinator.py", line 106, in _fetch_data system = await self._manager.get_system() File "/usr/local/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 127, in get_system facilities, full_system, live_report, hvac_state, gateway = await asyncio.gather( File "/usr/local/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 43, in wrapper return await func(*args, **kwargs) File "/usr/local/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 715, in _call_api return await self._validate_schema(schema, response) File "/usr/local/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 723, in _validate_schema raise WrongResponseError(message='Cannot validate response from vaillant', pymultimatic.api.error.WrongResponseError

lecocqe commented 3 years ago

now i updated correctly all seems ok but i got error, see attach. i replaced my serial by "myserial"

image

file:1.7.0B1.txt

thomasgermain commented 3 years ago

new release https://github.com/thomasgermain/vaillant-component/releases/tag/1.7.0b2 should reduce the amount of error, see release details

Wiggum127 commented 3 years ago

Just installed v1.7.0b3 via HACS. Will keep you posted on any errors.

lecocqe commented 3 years ago

installed 1.7.0b3 yesterday (22:00). this seems to be more stable. but still getting errors (exemple today from 8:46 until 10:14) image

thomasgermain commented 3 years ago

You have to look at the error. I had a lot of authentication issue between 8:30 and 10:00 even the app was not working.

thomasgermain commented 3 years ago

I'm gonna close this one, to me I did my best to reduce to number of errors and also, if there is an error, only few entities are unavailable. I also want a clean status of issues before releasing 1.7.0 (non beta :smile:).

Feel free to open a new issue if the problem occurs again

lecocqe commented 3 years ago

OK. you're right.

moreover, since 2 days, situation is very stable. 🤞