Giter VIP home page Giter VIP logo

vaillant-component's People

Contributors

h4de5 avatar mdresen avatar mrbeepoint avatar pfriedrich84 avatar sylvainvh avatar thomasgermain avatar vit- avatar wrt54g avatar xaviergriffon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vaillant-component's Issues

custom_components/multimatic/sensor.py:127 - AttributeError: 'NoneType' object has no attribute 'unit

Running HA DC 2021.6.2, python 3.8.9, multimatic integration custom component v1.7.0b

`Logger: homeassistant
Source: custom_components/multimatic/sensor.py:127
Integration: Multimatic (documentation, issues)
First occurred: 21 juni 2021 15:46:34 (1 occurrences)
Last logged: 21 juni 2021 15:46: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 438, in _async_write_ha_state
device_class = self.device_class
File "/config/custom_components/multimatic/sensor.py", line 127, in device_class
return UNIT_TO_DEVICE_CLASS.get(self.report.unit, None)
AttributeError: 'NoneType' object has no attribute 'unit'
`

request_hvac_update failed - vaillant integration unavailable

Hello,

my vaillant integration is offline since over a day - I just checked the logfiles and this is what it says the following:


Logger: homeassistant.components.automation.refresh_vaillant_data
Source: custom_components/vaillant/hub.py:63
Integration: Automatisierung (documentation, issues)
First occurred: 9:00:00 (2 occurrences)
Last logged: 9:00:00

Refresh vaillant data: Error executing script. Unexpected error for call_service at pos 1: Expecting value: line 1 column 1 (char 0)
While executing automation automation.refresh_vaillant_data
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 206, in _async_step
    await getattr(
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 413, in _async_call_service_step
    await service_task
  File "/usr/src/homeassistant/homeassistant/core.py", line 1315, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1350, in _execute_service
    await handler.func(service_call)
  File "/config/custom_components/vaillant/service.py", line 155, in request_hvac_update
    await self._hub.request_hvac_update()
  File "/config/custom_components/vaillant/hub.py", line 63, in request_hvac_update
    await self._manager.request_hvac_update()
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 546, in request_hvac_update
    state = mapper.map_hvac_sync_state(await self._call_api(urls.hvac))
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 582, in _call_api
    return await self._connector.request(method, url, payload)
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/api/connector.py", line 169, in request
    await resp.json(content_type=None)
  File "/usr/local/lib/python3.8/site-packages/aiohttp/client_reqrep.py", line 1040, in json
    return loads(stripped.decode(encoding))
  File "/usr/local/lib/python3.8/json/__init__.py", line 357, in loads
    return _default_decoder.decode(s)
  File "/usr/local/lib/python3.8/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/local/lib/python3.8/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)


and 


Logger: custom_components.vaillant.hub
Source: custom_components/vaillant/hub.py:66
Integration: Vaillant (documentation)
First occurred: 0:00:00 (2 occurrences)
Last logged: 8:00:00
request_hvac_update is done too often

The mobile app seems to be able to connect just fine - so the device should be ok. I have an automation that does the request_hvac_update every hour just as recommended - which I reduced now to every 3 hours in case.

My guess is, that it does the refresh on every hass startup - and because I restart it during developing quite often, it somehow banned me :(

Did you ever encounter such behaviour? Did you solve it maybe?

One binary sensor for all errors

Hi
Now component generate each binary sensor for each error on boiler. But is any chance to change this in your component to generate one binary sensor which show all error in one ? becuase now i can not add sensors which now is no generated. I can add it to lovelace after create by component and when is available on boiler. This is no good,

No 'version' key in the manifest file

Cloned the latest repo and tried custom integration for Vaillant (VRC 700)

Found following in the log files (non-breaking warning):

2021-04-01 17:02:02 WARNING (MainThread) [homeassistant.loader] You are using a custom integration vaillant which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant 2021-04-01 17:02:02 WARNING (MainThread) [homeassistant.loader] No 'version' key in the manifest file for custom integration 'vaillant'. This will not be allowed in a future version of Home Assistant. Please report this to the maintainer of 'vaillant'

Senso app integration

I am able to test with senso app and VR921 and tried this pre-release:

Unfortunate after providing the login-in information the integration fails to load:

No 'version' key in the manifest file for custom integration 'multimatic'. As of Home Assistant 2021.6, this integration will no longer be loaded. Please report this to the maintainer of 'multimatic'
9:48:03 PM – (WARNING) loader.py
You are using a custom integration multimatic which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
9:48:03 PM – (WARNING) loader.py
Setup failed for vaillant: Integration not found.
9:48:02 PM – (ERROR) setup.py

Hope this helps troubleshooting further?!

custom_components/multimatic/sensor.py:103 AttributeError: 'NoneType' object has no attribute 'unit'

Have been getting this error for some time now. Running multimatic component v1.6.0, HA Container v2021.5.0

Logger: homeassistant
Source: custom_components/multimatic/sensor.py:103
Integration: Multimatic (documentation, issues)
First occurred: 23 mei 2021 19:23:57 (66 occurrences)
Last logged: 16:32:20

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 127, in _handle_refresh_interval
await self._async_refresh(log_failures=True, scheduled=True)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 259, in _async_refresh
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 319, in _handle_coordinator_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 334, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 378, 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'

Change from valiant to multimatic

Hi,
hopefully someone can help me.
I tried to make the changes you said:

Delete vaillant integration from HA UI
Delete vaillant folder from custom_component
Copy multimatic folder (from 1.5.0 release) and past it to custom_component
Restart HA

But I always get this Error after restart :

2021-06-15 12:14:42 ERROR (MainThread) [homeassistant.setup] Setup failed for vaillant: Integration not found.

QM_COOLING_FOR_X_DAYS disrupts component

When switching to cooling manually on the main thermostate "Kühlen Manuell für X Tage" I always disrupt the Vaillant component. The logs from HA are posted below:

Logger: homeassistant.helpers.entity
Source: custom_components/vaillant/hub.py:75
First occurred: 12:57:10 PM (107 occurrences)
Last logged: 4:32:20 PM

Update for water_heater.vaillant_control_dhw fails
Update for sensor.vaillant_domestichotwatertanktemperature fails
Update for binary_sensor.vaillant_control_dhw fails
Update for sensor.vaillant_outdoor_temperature fails
Update for binary_sensor.vaillant_system_update fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 279, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 470, in async_device_update
    await self.async_update()
  File "/config/custom_components/vaillant/entities.py", line 48, in async_update
    await self.hub.update_system()
  File "/config/custom_components/vaillant/hub.py", line 75, in _update_system
    self.system = await self._manager.get_system()
  File "/usr/local/lib/python3.7/site-packages/pymultimatic/systemmanager.py", line 87, in get_system
    quick_mode = mapper.map_quick_mode(full_system)
  File "/usr/local/lib/python3.7/site-packages/pymultimatic/model/mapper.py", line 20, in map_quick_mode
    mode = QuickModes.get(quick_mode.get("quickmode"))
  File "/usr/local/lib/python3.7/site-packages/pymultimatic/model/quick_mode.py", line 191, in get
    return cls._VALUES[name]
KeyError: 'QM_COOLING_FOR_X_DAYS' 

Is there a possibility to map this state "Kühlen für X Tage" to a supported HVAC state so that the component does not fail?

Regards

Setup failed for vaillant: 'Integration not found' after update HA Core

Hi,
I've update HA Core from core-2021.5.5 to core-2021.6.2
After restarting I have a notification:
The following integration and platform could not be set up: vaillant
The log shows:
Logger: homeassistant.setup Source: setup.py:172
I don't know if this refers to a file called 'setup.py'. In my vaillant folder under custom-components there is no setup.py:
Schermafbeelding 2021-06-06 om 19 20 03
I went back to core-2021.5.5 with the snapshot and everything started normally.
Gave it a 2th try to core-2021.6.2 and had again the same error.
Could it be that your integrations is no longer compatible with the new core version?
Is there anything I can do from my side to solve this issue?
If a can log something for you, please send intructions.
I hope this is soon resolved.

Kind regards,
Johan

Unable to fetch data from vaillant API, API says: {'errorCode': 'NullPointerException'}, status: 500

The components works for a few hours and after that I receive the following error every two minutes.

Here is the stacktrace:

2020-04-22 21:51:49 ERROR (MainThread) [custom_components.vaillant.hub] Unable to fetch data from vaillant API, API says: {'errorCode': 'NullPointerException'}, status: 500
Traceback (most recent call last):
File "/config/custom_components/vaillant/hub.py", line 67, in _update_system
self.system = await self._manager.get_system()
File "/usr/local/lib/python3.7/site-packages/pymultimatic/systemmanager.py", line 77, in get_system
hvac_state = await hvac_state_req
File "/usr/local/lib/python3.7/site-packages/pymultimatic/systemmanager.py", line 582, in _call_api
return await self._connector.request(method, url, payload)
File "/usr/local/lib/python3.7/site-packages/pymultimatic/api/connector.py", line 171, in request
payload=payload)
pymultimatic.api.error.ApiError: Cannot get https://smart.vaillant.com/mobile/api/v4/facilities/XXX/hvacstate/v1/overview
2020-04-22 21:53:51 ERROR (MainThread) [custom_components.vaillant.hub] Unable to fetch data from vaillant API, API says: {'errorCode': 'NullPointerException'}, status: 500
Traceback (most recent call last):
File "/config/custom_components/vaillant/hub.py", line 67, in _update_system
self.system = await self._manager.get_system()
File "/usr/local/lib/python3.7/site-packages/pymultimatic/systemmanager.py", line 77, in get_system
hvac_state = await hvac_state_req
File "/usr/local/lib/python3.7/site-packages/pymultimatic/systemmanager.py", line 582, in _call_api
return await self._connector.request(method, url, payload)
File "/usr/local/lib/python3.7/site-packages/pymultimatic/api/connector.py", line 171, in request
payload=payload)
pymultimatic.api.error.ApiError: Cannot get https://smart.vaillant.com/mobile/api/v4/facilities/XXX/hvacstate/v1/overview

Several times I received a message that my login and password were not correct, although they are definitely correct. I can reconnect with them after reboot.

Update for sensor.vaillant_outdoor_temperature fails

Cloned the latest repo and tried custom integration for Vaillant (VRC 700)

Found following in the log files (error):

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 277, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 473, in async_device_update
    raise exc
  File "/config/custom_components/vaillant/entities.py", line 46, in async_update
    await self.hub.update_system()
  File "/config/custom_components/vaillant/hub.py", line 77, in _update_system
    self.system = await self._manager.get_system()
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 94, in get_system
    zones = mapper.map_zones(full_system)
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mapper.py", line 214, in map_zones
    zone = map_zone(raw_zone)
  File "/usr/local/lib/python3.8/site-packages/pymultimatic/model/mapper.py", line 233, 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

QM_COOLING_FOR_X_DAYS return unknown error

I use your integration for a year.
After you released the cooling feature I want to add this in my homeassistant.
But I do not get it running.

At the moment I run the version 1.6.2. With other versions it does not run with other versions either.

If I want to set the quick mode for QM_COOLING_FOR_X_DAYS with this service call:

service: multimatic.set_quick_mode
data:
quick_mode: QM_COOLING_FOR_X_DAYS

I get this error message in the UI:

Failed to call service multimatic.set_quick_mode. Unknown error

See the attached traceback of the homeassistant log:

Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 25, in _handle_async_response
await func(hass, connection, msg)
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 525, in handle_execute_script
await script_obj.async_run(msg.get("variables"), context=context)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1216, in async_run
await asyncio.shield(run.async_run())
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 350, in async_run
await self._async_step(log_exceptions=False)
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 368, in _async_step
await getattr(self, handler)()
File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 568, in _async_call_service_step
await service_task
File "/usr/src/homeassistant/homeassistant/core.py", line 1491, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1526, in _execute_service
await handler.job.target(service_call)
File "/config/custom_components/multimatic/service.py", line 99, in service_call
await method(data=call.data)
File "/config/custom_components/multimatic/service.py", line 123, in set_quick_mode
await self._hub.set_quick_mode(quick_mode)
File "/config/custom_components/multimatic/hub.py", line 325, in set_quick_mode
await self._manager.set_quick_mode(qmode)
File "/usr/local/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 195, in set_quick_mode
await self._call_api(
File "/usr/local/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 664, in _call_api
return await self._connector.request(method, url, payload)
File "/usr/local/lib/python3.8/site-packages/pymultimatic/api/connector.py", line 171, in request
raise ApiError('Cannot ' + method + ' ' + url, response=resp,
pymultimatic.api.error.ApiError: Cannot put https://smart.vaillant.com/mobile/api/v4/facilities/{SERIALNUMBER}/systemcontrol/v1/configuration/quickmode

I removed the serialnumber from the API call with {SERIALNUMBER}
Other Quick modes work.

I hope you can help me or give a hint how to use this quick mode

Unexpected error fetching multimatic data: None

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.member_map[name]
KeyError: None

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

Failed to set up

Hello hello,
Since the (super nice) integration changes from vaillant to multimatic I have stability issues.
I have to uninstall, reinstall reinsert my credentials (user, pass and really long serial number) and reallocate my devices to the right rooms.
I tried the ‘reinstall’ option in hacs but it does not work, I really have to remove and reinstall.
I’m using last ha version with a dedicated multimatic user.
Before going more into details, did you noticed the same bewavior with other users?
I’m using hotwater_boost and a lot of ambisense valves.
It was really stable before

See details bellow.

have a nice day,
Ludovic

core-2021.7.1
Supervisor 2021.06.8
Home Assistant OS 6.1
Multimatic version 1.6.2. I saw version 1.7.0 was released 11h ago? I'll try.
fbadd39c8ee3558166063ee69ecd6cb73851830e

2021-07-11 08:20:01 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration multimatic which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2021-07-11 08:22:27 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Multimatic for multimatic
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/aiohttp/connector.py", line 969, in _wrap_create_connection
return await self._loop.create_connection(*args, **kwargs) # type: ignore # noqa
File "/usr/local/lib/python3.9/asyncio/base_events.py", line 1081, in create_connection
transport, protocol = await self._create_connection_transport(
File "/usr/local/lib/python3.9/asyncio/base_events.py", line 1111, in _create_connection_transport
await waiter
File "/usr/local/lib/python3.9/asyncio/selector_events.py", line 918, in write
n = self._sock.send(data)
ConnectionResetError: [Errno 104] Connection reset by peer
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 293, in async_setup
result = await component.async_setup_entry(hass, self) # type: ignore
File "/config/custom_components/multimatic/init.py", line 25, in async_setup_entry
await api.authenticate()
File "/config/custom_components/multimatic/hub.py", line 79, in authenticate
return await self._manager.login(True)
File "/usr/local/lib/python3.9/site-packages/pymultimatic/systemmanager.py", line 60, in login
return await self._connector.login(force_login)
File "/usr/local/lib/python3.9/site-packages/pymultimatic/api/connector.py", line 67, in login
token = await self._token()
File "/usr/local/lib/python3.9/site-packages/pymultimatic/api/connector.py", line 106, in _token
token_res = await self._session.post(url=urls.new_token(),
File "/usr/local/lib/python3.9/site-packages/aiohttp/client.py", line 520, in _request
conn = await self._connector.connect(
File "/usr/local/lib/python3.9/site-packages/aiohttp/connector.py", line 535, in connect
proto = await self._create_connection(req, traces, timeout)
File "/usr/local/lib/python3.9/site-packages/aiohttp/connector.py", line 892, in _create_connection
_, proto = await self._create_direct_connection(req, traces, timeout)
File "/usr/local/lib/python3.9/site-packages/aiohttp/connector.py", line 1051, in _create_direct_connection
raise last_exc
File "/usr/local/lib/python3.9/site-packages/aiohttp/connector.py", line 1020, in _create_direct_connection
transp, proto = await self._wrap_create_connection(
File "/usr/local/lib/python3.9/site-packages/aiohttp/connector.py", line 975, in _wrap_create_connection
raise client_error(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host smart.vaillant.com:443 ssl:default [Connection reset by peer]
2021-07-11 08:23:08 ERROR (SyncWorker_3) [homeassistant.components.command_line] Command failed: cat /sys/class/thermal/thermal_zone0/temp

Best way to update to new version(s)...

Hello Thomas,

what is the best way to update to new version ?

  • copy the new files into "custom_components"
    OR
  • delete the integration, copy new files and then re-add integration ?

thank you for your great work.

EL

Multiple instances of the integration

Hi,

I just installed your component, and it connected to my system.
I have 2 different vaillant-boilers. both have a VR 920 so, I can control both via the multimatic app.
In home assistant it sees 2 devices. HA or the component named one multimatic and another VR920.
On the integrations pages it says there are 11 entities. But some are from the one boiler, some for the other.
Can I do something to fix this behaviour. If you need more information please do say so... I'm no developpper at all, but I'll do my best.

No show info from time to time

WHen i installed Multimatic by HACS i have a problem. After reboot HA show all data ok. But after some time not show data on entieties multimatic. WHen i use old version by custom_components 1.5.0 b6 all works ok. Now still is a problem. After reboot HA again show all data and after some time again problem....

set_holiday_mode service: time conversion issue

Hi,

I can't use set_holiday_mode service. I first tried this:
service_1

I got this error:

2020-05-17 19:36:55 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection.2820788336] unconverted data remains: T00:00:00.000Z
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 130, in handle_call_service
connection.context(msg),
File "/usr/src/homeassistant/homeassistant/core.py", line 1247, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1282, in _execute_service
await handler.func(service_call)
File "/config/custom_components/vaillant/service.py", line 109, in set_holiday_mode
start = datetime.strptime(start_str, "%Y-%m-%d")
File "/usr/local/lib/python3.7/_strptime.py", line 577, in _strptime_datetime
tt, fraction, gmtoff_fraction = _strptime(data_string, format)
File "/usr/local/lib/python3.7/_strptime.py", line 362, in _strptime
data_string[found.end():])
ValueError: unconverted data remains: T00:00:00.000Z

After that I removed T00:00:00.000Z. But the error still remains.

support for starting criculation

@h4de5, it would be better to talk about that here 😃

So you are talking about the circulation of the domestic hot water right ? I just check and this is not possible to control the circulation through the API. maybe you can have a look at hotwater boost, according to the doc, it sets the circulation ON

Error while setting up multimatic platform for fan multimatic/fan.py:22 NoneType' object has no attribute 'ventilation'

Seeing a specific error related to fan.py

Running HA Container, 2021.5.0, and latest version of multimatic custom component (v1.6.1).

`Logger: homeassistant.components.fan
Source: custom_components/multimatic/fan.py:22
Integration: Ventilator (documentation, issues)
First occurred: 17:40:05 (1 occurrences)
Last logged: 17:40:05

Error while setting up multimatic platform for fan
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 231, in _async_setup_platform
await asyncio.shield(task)
File "/config/custom_components/multimatic/fan.py", line 22, in async_setup_entry
if hub.data.ventilation:
AttributeError: 'NoneType' object has no attribute 'ventilation'`

Error [custom_components.vaillant.hub] Enable to fetch data from vaillant API

Hi,
this component is awesome, so thanks for that! I am seeing constant errors with pymultimatic though:

2020-03-20 08:28:21 ERROR (MainThread) [custom_components.vaillant.hub] Enable to fetch data from vaillant API Traceback (most recent call last): File "/config/custom_components/vaillant/hub.py", line 45, in _update_system self.system = await system_coro File "/usr/local/lib/python3.7/site-packages/pymultimatic/systemmanager.py", line 77, in get_system hvac_state = await hvac_state_req File "/usr/local/lib/python3.7/site-packages/pymultimatic/systemmanager.py", line 582, in _call_api return await self._connector.request(method, url, payload) File "/usr/local/lib/python3.7/site-packages/pymultimatic/api/connector.py", line 171, in request payload=payload) pymultimatic.api.error.ApiError: Cannot get https://smart.vaillant.com/mobile/api/v4/facilities/xxx/hvacstate/v1/overview

Not sure if it's polling too often and if there is a setting to reduce polling frequency in order to try to fix this error.
Once this error comes up it's repeating itself around every 2 minutes and the component is no longer updating the values.

Unknown model

Hi. I have multimatic integration 1.7.0b3 on my Home Assistant. And in home assistant in configuration>devices when i see my device vaillany has UNKNOWN model for this. Good will be if it show in this name example Vaillant or model boiler.... It will looks better. Please think about it.
unknown_model

Hotwater without timeprogram

With a VR900 it can't seem to create all the sensors:

2021-06-22 15:47:25 ERROR (MainThread) [homeassistant.components.binary_sensor] Error while setting up multimatic platform for binary_sensor
Traceback (most recent call last):
  File "/opt/homeassistant/lib/python3.8/site-packages/homeassistant/helpers/entity_platform.py", line 258, in _async_setup_platform
    await asyncio.gather(*pending)
  File "/opt/homeassistant/lib/python3.8/site-packages/homeassistant/helpers/entity_platform.py", line 383, in async_add_entities
    await asyncio.gather(*tasks)
  File "/opt/homeassistant/lib/python3.8/site-packages/homeassistant/helpers/entity_platform.py", line 588, in _async_add_entity
    await entity.add_to_platform_finish()
  File "/opt/homeassistant/lib/python3.8/site-packages/homeassistant/helpers/entity.py", line 615, in add_to_platform_finish
    self.async_write_ha_state()
  File "/opt/homeassistant/lib/python3.8/site-packages/homeassistant/helpers/entity.py", line 368, in async_write_ha_state
    self._async_write_ha_state()
  File "/opt/homeassistant/lib/python3.8/site-packages/homeassistant/helpers/entity.py", line 402, in _async_write_ha_state
    state = self._stringify_state()
  File "/opt/homeassistant/lib/python3.8/site-packages/homeassistant/helpers/entity.py", line 374, in _stringify_state
    state = self.state
  File "/opt/homeassistant/lib/python3.8/site-packages/homeassistant/components/binary_sensor/__init__.py", line 162, in state
    return STATE_ON if self.is_on else STATE_OFF
  File "/home/homeassistant/.homeassistant/custom_components/multimatic/binary_sensor.py", line 77, in is_on
    a_mode = self.active_mode
  File "/home/homeassistant/.homeassistant/custom_components/multimatic/binary_sensor.py", line 95, in active_mode
    return self.coordinator.data.get_active_mode_circulation()
  File "/opt/homeassistant/lib/python3.8/site-packages/pymultimatic/model/system.py", line 228, in get_active_mode_circulation
    return circulation.active_mode
  File "/opt/homeassistant/lib/python3.8/site-packages/pymultimatic/model/common.py", line 52, in active_mode
    setting = self.time_program.get_for(datetime.now())
  File "/opt/homeassistant/lib/python3.8/site-packages/pymultimatic/model/timeprogram.py", line 107, in get_for
    tp_day = self.days[day]
KeyError: 'tuesday'

Migrate to HA 0.110

File "/config/custom_components/vaillant/sensor.py", line 34, in async_setup_entry
  for report in hub.system.reports:
AttributeError: 'NoneType' object has no attribute 'reports'
  File "/config/custom_components/vaillant/water_heater.py", line 40, in async_setup_entry
    if hub.system.dhw.hotwater:
AttributeError: 'NoneType' object has no attribute 'dhw'

ClimateDevice is deprecated, modify VaillantClimate to extend ClimateEntity
ClimateDevice is deprecated, modify RoomClimate to extend ClimateEntity
ClimateDevice is deprecated, modify ZoneClimate to extend ClimateEntity

WaterHeaterDevice is deprecated, modify VaillantWaterHeater to extend WaterHeaterEntity

BinarySensorDevice is deprecated, modify BoxOnline to extend BinarySensorEntity
BinarySensorDevice is deprecated, modify BoilerError to extend BinarySensorEntity
BinarySensorDevice is deprecated, modify VaillantSystemError to extend BinarySensorEntity
BinarySensorDevice is deprecated, modify HolidayModeSensor to extend BinarySensorEntity
BinarySensorDevice is deprecated, modify QuickModeSensor to extend BinarySensorEntity

vaillant: the '.translations' directory has been moved, the new name is 'translations', starting with Home Assistant 0.111 your translations will no longer load if you do not move/rename this

Manual cooling days

If i set my multimatic to manual cooling, i get the state attribute cooling_for_x_days A standard Lovelace card would show the following:

image

Is there any way to actually get the number of the days?

HA-Error: Integration of the vaillant-component in home assistent

Environment:
Home Assistant 0.96.5
Vaillant-component 0.96

I copied the vaillant-component files to my home-assistant (raspberry pi: /config/custom_components/vaillant).
The Configuration /config/configuration.yaml:

vaillant:
  username: "myemail"
  password: "mypassword"

After restart of HA i get the following HA-error:

Setup failed for vaillant: No setup function defined.
13:37 setup.py (ERROR)

What is going wrong?

ActiveFunction KeyError None

The integration crashes within few minutes after startup with the following exception:

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

Support for VMS8D

Hi! At home we have a Vaillant heat pump setup but also a VSM8D solar system. The multimatic app does not show any information about the VMS8D but I guess the information should be available within the eBus system, right?

Is there any possibility to get the information from the VMS8D into Home Assistent?

Feature: Add a way to set DAY/NIGHT level for ventilation

I managed to connect my RecoVair ventilation system with the VR32 bus connector to the ebus.
I can now steer the ventilation via the app. Unfortunately there seems to be no parameter for configuring the bypass function, just ventilation levels for day and night timer program and ventilation boost as quick mode.
I attached the system.json.txt which shows the relevant data in case you want to include ventilation in the component.

Unexpected error fetching multimatic_zones data - custom_components/multimatic/coordinator.py:94

Running HA Docker 2021.7.0, multimatic v1.7.0.4b

After restart, the custom component throws following error:

`Logger: custom_components.multimatic.coordinator
Source: custom_components/multimatic/coordinator.py:94
Integration: Multimatic (documentation, issues)
First occurred: 11:52:30 (1 occurrences)
Last logged: 11:52:30

Unexpected error fetching multimatic_zones data:
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/schema.py", line 396, in validate
nvalue = Schema(svalue, error=e, ignore_extra_keys=i).validate(value)
File "/usr/local/lib/python3.9/site-packages/schema.py", line 357, in validate
return type(data)(o.validate(d) for d in data)
File "/usr/local/lib/python3.9/site-packages/schema.py", line 357, in
return type(data)(o.validate(d) for d in data)
File "/usr/local/lib/python3.9/site-packages/schema.py", line 165, in validate
raise SchemaError(
schema.SchemaError: Or(Schema(Or(Schema({'_id': And(<class 'str'>, ), 'configuration': Schema({'name': And(<class 'str'>, ), Optional('enabled'): <class 'bool'>, Optional('inside_temperature'): Or(<class 'int'>, <class 'float'>), Optional('active_function'): And(<class 'str'>, ), Optional('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(And(<class 'str'>, ), <function at 0x6d186fa0>), 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'>, )}]})})}), Schema({'_id': And(<class 'str'>, ), Optional('configuration'): Schema({'name': And(<class 'str'>, ), Optional('enabled'): <class 'bool'>, Optional('inside_temperature'): Or(<class 'int'>, <class 'float'>), Optional('active_function'): And(<class 'str'>, ), Optional('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'>)})}), 'currently_controlled_by': Schema({'name': Or('RBR', 'rbr'), Optional('link'): {Optional('rel'): <class 'str'>, 'resourceLink': <class 'str'>, Optional('name'): <class 'str'>}}), Optional('heating'): Schema({Optional('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'>}, Optional('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({Optional('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'>}, Optional('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': {'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'}]}}, 'configuration': {'name': 'BENEDEN ', 'enabled': True, 'active_function': 'STANDBY', 'inside_temperature': 23.6, 'quick_veto': {'active': False, 'setpoint_temperature': 21.0}}, '_id': 'Control_ZO1'}
Or(Schema({'_id': And(<class 'str'>, ), 'configuration': Schema({'name': And(<class 'str'>, ), Optional('enabled'): <class 'bool'>, Optional('inside_temperature'): Or(<class 'int'>, <class 'float'>), Optional('active_function'): And(<class 'str'>, ), Optional('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(And(<class 'str'>, ), <function at 0x6d186fa0>), 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'>, )}]})})}), Schema({'_id': And(<class 'str'>, ), Optional('configuration'): Schema({'name': And(<class 'str'>, ), Optional('enabled'): <class 'bool'>, Optional('inside_temperature'): Or(<class 'int'>, <class 'float'>), Optional('active_function'): And(<class 'str'>, ), Optional('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'>)})}), 'currently_controlled_by': Schema({'name': Or('RBR', 'rbr'), Optional('link'): {Optional('rel'): <class 'str'>, 'resourceLink': <class 'str'>, Optional('name'): <class 'str'>}}), Optional('heating'): Schema({Optional('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'>}, Optional('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({Optional('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'>}, Optional('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': {'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'}]}}, 'configuration': {'name': 'BENEDEN ', 'enabled': True, 'active_function': 'STANDBY', 'inside_temperature': 23.6, 'quick_veto': {'active': False, 'setpoint_temperature': 21.0}}, '_id': 'Control_ZO1'}
Key 'heating' error:
Missing key: 'configuration'
Missing key: 'currently_controlled_by'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/pymultimatic/systemmanager.py", line 823, in _validate_schema
return schema.validate(response)
File "/usr/local/lib/python3.9/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:
Or(Schema(Or(Schema({'_id': And(<class 'str'>, ), 'configuration': Schema({'name': And(<class 'str'>, ), Optional('enabled'): <class 'bool'>, Optional('inside_temperature'): Or(<class 'int'>, <class 'float'>), Optional('active_function'): And(<class 'str'>, ), Optional('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(And(<class 'str'>, ), <function at 0x6d186fa0>), 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'>, )}]})})}), Schema({'_id': And(<class 'str'>, ), Optional('configuration'): Schema({'name': And(<class 'str'>, ), Optional('enabled'): <class 'bool'>, Optional('inside_temperature'): Or(<class 'int'>, <class 'float'>), Optional('active_function'): And(<class 'str'>, ), Optional('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'>)})}), 'currently_controlled_by': Schema({'name': Or('RBR', 'rbr'), Optional('link'): {Optional('rel'): <class 'str'>, 'resourceLink': <class 'str'>, Optional('name'): <class 'str'>}}), Optional('heating'): Schema({Optional('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'>}, Optional('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({Optional('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'>}, Optional('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': {'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'}]}}, 'configuration': {'name': 'BENEDEN ', 'enabled': True, 'active_function': 'STANDBY', 'inside_temperature': 23.6, 'quick_veto': {'active': False, 'setpoint_temperature': 21.0}}, '_id': 'Control_ZO1'}
Or(Schema({'_id': And(<class 'str'>, ), 'configuration': Schema({'name': And(<class 'str'>, ), Optional('enabled'): <class 'bool'>, Optional('inside_temperature'): Or(<class 'int'>, <class 'float'>), Optional('active_function'): And(<class 'str'>, ), Optional('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(And(<class 'str'>, ), <function at 0x6d186fa0>), 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'>, )}]})})}), Schema({'_id': And(<class 'str'>, ), Optional('configuration'): Schema({'name': And(<class 'str'>, ), Optional('enabled'): <class 'bool'>, Optional('inside_temperature'): Or(<class 'int'>, <class 'float'>), Optional('active_function'): And(<class 'str'>, ), Optional('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'>)})}), 'currently_controlled_by': Schema({'name': Or('RBR', 'rbr'), Optional('link'): {Optional('rel'): <class 'str'>, 'resourceLink': <class 'str'>, Optional('name'): <class 'str'>}}), Optional('heating'): Schema({Optional('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'>}, Optional('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({Optional('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'>}, Optional('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': {'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'}]}}, 'configuration': {'name': 'BENEDEN ', 'enabled': True, 'active_function': 'STANDBY', 'inside_temperature': 23.6, 'quick_veto': {'active': False, 'setpoint_temperature': 21.0}}, '_id': 'Control_ZO1'}
Key 'heating' error:
Missing key: 'configuration'
Missing key: 'currently_controlled_by'

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 503, in _fetch_data_if_needed
return await self._fetch_data()
File "/config/custom_components/multimatic/coordinator.py", line 496, in _fetch_data
return await getattr(self.api, self._method)()
File "/config/custom_components/multimatic/coordinator.py", line 94, in get_zones
return await self._manager.get_zones()
File "/usr/local/lib/python3.9/site-packages/pymultimatic/systemmanager.py", line 42, in wrapper
return await func(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/pymultimatic/systemmanager.py", line 347, in get_zones
rooms = await self._call_api(urls.zones, schema=schemas.ZONE_LIST)
File "/usr/local/lib/python3.9/site-packages/pymultimatic/systemmanager.py", line 79, in wrapper
return await func(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/pymultimatic/systemmanager.py", line 817, in _call_api
return await self._validate_schema(schema, response, url)
File "/usr/local/lib/python3.9/site-packages/pymultimatic/systemmanager.py", line 825, in _validate_schema
raise WrongResponseError(
pymultimatic.api.error.WrongResponseError
`

Error while updating sensor

2020-10-28 23:07:24 ERROR (MainThread) [homeassistant.helpers.entity] Update for sensor.vaillant_waterpressuresensor fails
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 278, in async_update_ha_state
await self.async_device_update()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 469, in async_device_update
await self.async_update() # type: ignore
File "/config/custom_components/vaillant/entities.py", line 47, in async_update
await self.vaillant_update()
File "/config/custom_components/vaillant/sensor.py", line 92, in vaillant_update
self.report = self._find_report()
File "/config/custom_components/vaillant/sensor.py", line 96, in _find_report
if self.report.id == report.id:

HistoryGraph for working status of water heater and heating

Hello, first of all, thank you for this great work on this integration.

Is it possible to read out the status if heating and hot water are currently in operation, i.e. whether the system is currently running?

I would like to have a historygraph like the one for the status of the circulation.

Service to get/set date and time

Hi, Thomas,

From time to time my VRC700 resets date/time to default values. As far as I know, VRC700 doesn't have any battery inside. It uses large capacitor instead. Thus as capacitor degrades with time, there could be issues with the date/time settings.

VRC700/VR920 doesn't use NTP or similar protocol to set date/time. Thus after every reset I have to manually set date/time. It is possible to do via Mobile app. There should be an API call for this.

Is it possible to add a special HA service to your component to get/set date/time from Vaillant hardware?

Best regards,
Sergey.

How to deal with system errors?

I have a VR921 connected to Home Assistant using your fantastic component. I'm trying to find out how to deal with errors in the heating system.

Right now for example, there is a F.900 error that I can see in system.errors when using pymultimatic. I also saw that a binary sensor called binary_sensor.vaillant_error_f_900 is currently available in Home Assistant. But I assume the sensor will become unavailable when the error is fixed.

I'm not an HA expert and I can't see how I could set up something in HA that would alert me if there are any problems with the heating system. It feels cumbersome to watch all possible sensors for all available error codes. Is there a way to have a sensor that tells me if there are any errors at the moment, and ideally give me a list of these errors (possibly in a different sensor)? Or maybe there is a better way to approach this?

Thanks for your help and your work on this!

custom_components/multimatic/coordinator.py:126 - Error with multimatic API: Cannot validate response from vaillant

HA DC 2021.6.2, python 3.8.9, multimatic v1.7.0b

Logger: custom_components.multimatic.coordinator
Source: custom_components/multimatic/coordinator.py:126
Integration: Multimatic (documentation, issues)
First occurred: 21 juni 2021 15:22:30 (312 occurrences)
Last logged: 12:18:53

Error with multimatic API: Cannot validate response from vaillant, status: 200, response: {'body': {'zones': [{'heating': {'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'}, {'heating': {'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_ZO2'}], 'configuration': {'eco_mode': False, 'holidaymode': {'active': False, 'start_date': '2019-12-31', 'end_date': '2020-01-01', 'temperature_setpoint': 5.0}}, 'status': {'datetime': '2021-06-22T14:05:15.000Z', 'outside_temperature': 17.8}, 'parameters': [{'name': 'HEATING', 'definition': {'values': ['NIGHT', 'DAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/timeprogram'}}, {'name': 'HEATING', 'definition': {'values': ['NIGHT', 'DAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/timeprogram'}}, {'name': 'COOLING', 'definition': {'values': ['OFF', 'ON']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/cooling/timeprogram'}}, {'name': 'COOLING', 'definition': {'values': ['OFF', 'ON']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/cooling/timeprogram'}}, {'name': 'HOTWATER', 'definition': {'values': ['OFF', 'ON']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/hotwater/timeprogram'}}, {'name': 'CIRCULATION_PUMP', 'definition': {'values': ['OFF', 'ON']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/circulation/timeprogram'}}, {'name': 'VENTILATION', 'definition': {'values': ['NIGHT', 'DAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/ventilation/Control_SYS_MultiMatic/fan/timeprogram'}}, {'name': 'Bedrijfsmodus: koelen', 'definition': {'values': []}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/cooling/configuration/mode'}}, {'name': 'Dag gewenste kamertemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/configuration/setpoint_temperature'}}, {'name': 'Dagtemperatuur koelen', 'definition': {'min': 15.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/cooling/configuration/setpoint_temperature'}}, {'name': 'Modus verwarmen', 'definition': {'values': ['AUTO', 'SETBACK', 'OFF']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/configuration/mode'}}, {'name': 'Nachttemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/configuration/setback_temperature'}}, {'name': 'Quick Veto gewenste kamertemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/configuration/quick_veto'}}, {'name': 'Speciale modus die werd geactiveerd', 'definition': {'values': ['NO_QUICK_MODE', 'QM_PARTY', 'QM_VENTILATION_BOOST', 'QM_ONE_DAY_AT_HOME', 'QM_ONE_DAY_AWAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/configuration/quickmode'}}, {'name': 'Bedrijfsmodus: koelen', 'definition': {'values': []}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/cooling/configuration/mode'}}, {'name': 'Dag gewenste kamertemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/configuration/setpoint_temperature'}}, {'name': 'Dagtemperatuur koelen', 'definition': {'min': 15.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/cooling/configuration/setpoint_temperature'}}, {'name': 'Modus verwarmen', 'definition': {'values': ['AUTO', 'SETBACK', 'OFF']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/configuration/mode'}}, {'name': 'Nachttemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/configuration/setback_temperature'}}, {'name': 'Quick Veto gewenste kamertemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/configuration/quick_veto'}}, {'name': 'Speciale modus die werd geactiveerd', 'definition': {'values': ['NO_QUICK_MODE', 'QM_PARTY', 'QM_VENTILATION_BOOST', 'QM_ONE_DAY_AT_HOME', 'QM_ONE_DAY_AWAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/configuration/quickmode'}}, {'name': 'Modus warmwatercircuit', 'definition': {'values': ['AUTO', 'DAY', 'OFF']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/hotwater/configuration/operation_mode'}}, {'name': 'Bedrijfsmodus: ventileren', 'definition': {'values': ['AUTO', 'NIGHT', 'DAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/ventilation/Control_SYS_MultiMatic/fan/configuration/operation_mode'}}, {'name': 'Gewenste kamertemperatuur voor dagen buitenshuis', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 1.0}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration/holidaymode'}}, {'name': 'Maximale ventilatiestand dag', 'definition': {'min': 1.0, 'max': 6.0, 'stepsize': 1.0}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/ventilation/Control_SYS_MultiMatic/fan/configuration/day_level'}}, {'name': 'Maximale ventilatiestand nacht', 'definition': {'min': 1.0, 'max': 6.0, 'stepsize': 1.0}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/ventilation/Control_SYS_MultiMatic/fan/configuration/night_level'}}, {'name': 'Speciale modus die werd geactiveerd', 'definition': {'values': ['NO_QUICK_MODE', 'QM_PARTY', 'QM_VENTILATION_BOOST', 'QM_ONE_DAY_AT_HOME', 'QM_ONE_DAY_AWAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration/quickmode'}}], 'dhw': [{'hotwater': {'timeprogram': {'monday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'tuesday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'wednesday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'thursday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'friday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'saturday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:30', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'sunday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:30', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}]}}, 'circulation': {'configuration': {'operationMode': 'AUTO'}, 'timeprogram': {'monday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'tuesday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'wednesday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'thursday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'friday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'saturday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'sunday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}]}}, '_id': 'Control_DHW'}]}, 'meta': {'resourceState': [{'state': 'SYNCED', 'timestamp': 1624363514365, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/status'}}, {'state': 'OUTDATED', 'timestamp': 1624363570150, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624363514365, 'link': {'rel': 'child', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration/holidaymode'}}, {'state': 'SYNCED', 'timestamp': 1624363431833, 'link': {'rel': 'child', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration/quickmode'}}, {'state': 'INITIALIZING', 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624370448000, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/timeprogram'}}, {'state': 'INITIALIZING', 'link': {'rel': 'child', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/configuration/quick_veto'}}, {'state': 'INITIALIZING', 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/configuration'}}, {'state': 'INITIALIZING', 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624370448000, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/timeprogram'}}, {'state': 'SYNCED', 'timestamp': 1624363462369, 'link': {'rel': 'child', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/configuration/quick_veto'}}, {'state': 'INITIALIZING', 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624370930288, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/circulation/configuration'}}, {'state': 'INITIALIZING', 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/hotwater/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624370448000, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/circulation/timeprogram'}}, {'state': 'SYNCED', 'timestamp': 1624370448000, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/hotwater/timeprogram'}}]}}
Error with multimatic API: Cannot validate response from vaillant, status: 200, response: {'body': {'zones': [{'heating': {'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'}, {'heating': {'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_ZO2'}], 'configuration': {'eco_mode': False, 'holidaymode': {'active': False, 'start_date': '2019-12-31', 'end_date': '2020-01-01', 'temperature_setpoint': 5.0}}, 'status': {'datetime': '2021-06-22T14:05:15.000Z', 'outside_temperature': 17.8}, 'parameters': [{'name': 'HEATING', 'definition': {'values': ['NIGHT', 'DAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/timeprogram'}}, {'name': 'HEATING', 'definition': {'values': ['NIGHT', 'DAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/timeprogram'}}, {'name': 'COOLING', 'definition': {'values': ['OFF', 'ON']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/cooling/timeprogram'}}, {'name': 'COOLING', 'definition': {'values': ['OFF', 'ON']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/cooling/timeprogram'}}, {'name': 'HOTWATER', 'definition': {'values': ['OFF', 'ON']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/hotwater/timeprogram'}}, {'name': 'CIRCULATION_PUMP', 'definition': {'values': ['OFF', 'ON']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/circulation/timeprogram'}}, {'name': 'VENTILATION', 'definition': {'values': ['NIGHT', 'DAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/ventilation/Control_SYS_MultiMatic/fan/timeprogram'}}, {'name': 'Bedrijfsmodus: koelen', 'definition': {'values': []}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/cooling/configuration/mode'}}, {'name': 'Dag gewenste kamertemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/configuration/setpoint_temperature'}}, {'name': 'Dagtemperatuur koelen', 'definition': {'min': 15.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/cooling/configuration/setpoint_temperature'}}, {'name': 'Modus verwarmen', 'definition': {'values': ['AUTO', 'SETBACK', 'OFF']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/configuration/mode'}}, {'name': 'Nachttemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/configuration/setback_temperature'}}, {'name': 'Quick Veto gewenste kamertemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/configuration/quick_veto'}}, {'name': 'Speciale modus die werd geactiveerd', 'definition': {'values': ['NO_QUICK_MODE', 'QM_PARTY', 'QM_VENTILATION_BOOST', 'QM_ONE_DAY_AT_HOME', 'QM_ONE_DAY_AWAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/configuration/quickmode'}}, {'name': 'Bedrijfsmodus: koelen', 'definition': {'values': []}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/cooling/configuration/mode'}}, {'name': 'Dag gewenste kamertemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/configuration/setpoint_temperature'}}, {'name': 'Dagtemperatuur koelen', 'definition': {'min': 15.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/cooling/configuration/setpoint_temperature'}}, {'name': 'Modus verwarmen', 'definition': {'values': ['AUTO', 'SETBACK', 'OFF']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/configuration/mode'}}, {'name': 'Nachttemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/configuration/setback_temperature'}}, {'name': 'Quick Veto gewenste kamertemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/configuration/quick_veto'}}, {'name': 'Speciale modus die werd geactiveerd', 'definition': {'values': ['NO_QUICK_MODE', 'QM_PARTY', 'QM_VENTILATION_BOOST', 'QM_ONE_DAY_AT_HOME', 'QM_ONE_DAY_AWAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/configuration/quickmode'}}, {'name': 'Modus warmwatercircuit', 'definition': {'values': ['AUTO', 'DAY', 'OFF']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/hotwater/configuration/operation_mode'}}, {'name': 'Bedrijfsmodus: ventileren', 'definition': {'values': ['AUTO', 'NIGHT', 'DAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/ventilation/Control_SYS_MultiMatic/fan/configuration/operation_mode'}}, {'name': 'Gewenste kamertemperatuur voor dagen buitenshuis', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 1.0}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration/holidaymode'}}, {'name': 'Maximale ventilatiestand dag', 'definition': {'min': 1.0, 'max': 6.0, 'stepsize': 1.0}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/ventilation/Control_SYS_MultiMatic/fan/configuration/day_level'}}, {'name': 'Maximale ventilatiestand nacht', 'definition': {'min': 1.0, 'max': 6.0, 'stepsize': 1.0}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/ventilation/Control_SYS_MultiMatic/fan/configuration/night_level'}}, {'name': 'Speciale modus die werd geactiveerd', 'definition': {'values': ['NO_QUICK_MODE', 'QM_PARTY', 'QM_VENTILATION_BOOST', 'QM_ONE_DAY_AT_HOME', 'QM_ONE_DAY_AWAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration/quickmode'}}], 'dhw': [{'hotwater': {'timeprogram': {'monday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'tuesday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'wednesday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'thursday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'friday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'saturday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:30', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'sunday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:30', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}]}}, 'circulation': {'configuration': {'operationMode': 'AUTO'}, 'timeprogram': {'monday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'tuesday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'wednesday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'thursday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'friday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'saturday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'sunday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}]}}, '_id': 'Control_DHW'}]}, 'meta': {'resourceState': [{'state': 'OUTDATED', 'timestamp': 1624363514365, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/status'}}, {'state': 'INITIALIZING', 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration'}}, {'state': 'OUTDATED', 'timestamp': 1624363514365, 'link': {'rel': 'child', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration/holidaymode'}}, {'state': 'OUTDATED', 'timestamp': 1624363431833, 'link': {'rel': 'child', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration/quickmode'}}, {'state': 'INITIALIZING', 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624370948000, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/timeprogram'}}, {'state': 'INITIALIZING', 'link': {'rel': 'child', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/configuration/quick_veto'}}, {'state': 'INITIALIZING', 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/configuration'}}, {'state': 'INITIALIZING', 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624370948000, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/timeprogram'}}, {'state': 'OUTDATED', 'timestamp': 1624363462369, 'link': {'rel': 'child', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/configuration/quick_veto'}}, {'state': 'INITIALIZING', 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624371050307, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/circulation/configuration'}}, {'state': 'INITIALIZING', 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/hotwater/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624370948000, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/circulation/timeprogram'}}, {'state': 'SYNCED', 'timestamp': 1624370948000, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/hotwater/timeprogram'}}]}}
Error with multimatic API: Cannot validate response from vaillant, status: 200, response: {'body': {'zones': [{'heating': {'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'}]}}, 'configuration': {'name': 'BENEDEN ', 'enabled': True, 'active_function': 'STANDBY', 'inside_temperature': 23.4, 'quick_veto': {'active': False, 'setpoint_temperature': 16.0}}, '_id': 'Control_ZO1'}, {'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'}]}}, 'configuration': {'name': 'BOVEN ', 'enabled': True, 'active_function': 'HEATING', 'inside_temperature': 23.4, 'quick_veto': {'active': False, 'setpoint_temperature': 21.0}}, '_id': 'Control_ZO2'}], 'configuration': {'eco_mode': False, 'holidaymode': {'active': False, 'start_date': '2019-12-31', 'end_date': '2020-01-01', 'temperature_setpoint': 5.0}}, 'status': {'datetime': '2021-06-22T14:11:38.000Z', 'outside_temperature': 17.8}, 'parameters': [{'name': 'HEATING', 'definition': {'values': ['NIGHT', 'DAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/timeprogram'}}, {'name': 'HEATING', 'definition': {'values': ['NIGHT', 'DAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/timeprogram'}}, {'name': 'COOLING', 'definition': {'values': ['OFF', 'ON']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/cooling/timeprogram'}}, {'name': 'COOLING', 'definition': {'values': ['OFF', 'ON']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/cooling/timeprogram'}}, {'name': 'HOTWATER', 'definition': {'values': ['OFF', 'ON']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/hotwater/timeprogram'}}, {'name': 'CIRCULATION_PUMP', 'definition': {'values': ['OFF', 'ON']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/circulation/timeprogram'}}, {'name': 'VENTILATION', 'definition': {'values': ['NIGHT', 'DAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/ventilation/Control_SYS_MultiMatic/fan/timeprogram'}}, {'name': 'Bedrijfsmodus: koelen', 'definition': {'values': []}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/cooling/configuration/mode'}}, {'name': 'Dag gewenste kamertemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/configuration/setpoint_temperature'}}, {'name': 'Dagtemperatuur koelen', 'definition': {'min': 15.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/cooling/configuration/setpoint_temperature'}}, {'name': 'Modus verwarmen', 'definition': {'values': ['AUTO', 'SETBACK', 'OFF']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/configuration/mode'}}, {'name': 'Nachttemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/configuration/setback_temperature'}}, {'name': 'Quick Veto gewenste kamertemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/configuration/quick_veto'}}, {'name': 'Speciale modus die werd geactiveerd', 'definition': {'values': ['NO_QUICK_MODE', 'QM_PARTY', 'QM_VENTILATION_BOOST', 'QM_ONE_DAY_AT_HOME', 'QM_ONE_DAY_AWAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/configuration/quickmode'}}, {'name': 'Bedrijfsmodus: koelen', 'definition': {'values': []}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/cooling/configuration/mode'}}, {'name': 'Dag gewenste kamertemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/configuration/setpoint_temperature'}}, {'name': 'Dagtemperatuur koelen', 'definition': {'min': 15.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/cooling/configuration/setpoint_temperature'}}, {'name': 'Modus verwarmen', 'definition': {'values': ['AUTO', 'SETBACK', 'OFF']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/configuration/mode'}}, {'name': 'Nachttemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/configuration/setback_temperature'}}, {'name': 'Quick Veto gewenste kamertemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/configuration/quick_veto'}}, {'name': 'Speciale modus die werd geactiveerd', 'definition': {'values': ['NO_QUICK_MODE', 'QM_PARTY', 'QM_VENTILATION_BOOST', 'QM_ONE_DAY_AT_HOME', 'QM_ONE_DAY_AWAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/configuration/quickmode'}}, {'name': 'Modus warmwatercircuit', 'definition': {'values': ['AUTO', 'DAY', 'OFF']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/hotwater/configuration/operation_mode'}}, {'name': 'Bedrijfsmodus: ventileren', 'definition': {'values': ['AUTO', 'NIGHT', 'DAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/ventilation/Control_SYS_MultiMatic/fan/configuration/operation_mode'}}, {'name': 'Gewenste kamertemperatuur voor dagen buitenshuis', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 1.0}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration/holidaymode'}}, {'name': 'Maximale ventilatiestand dag', 'definition': {'min': 1.0, 'max': 6.0, 'stepsize': 1.0}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/ventilation/Control_SYS_MultiMatic/fan/configuration/day_level'}}, {'name': 'Maximale ventilatiestand nacht', 'definition': {'min': 1.0, 'max': 6.0, 'stepsize': 1.0}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/ventilation/Control_SYS_MultiMatic/fan/configuration/night_level'}}, {'name': 'Speciale modus die werd geactiveerd', 'definition': {'values': ['NO_QUICK_MODE', 'QM_PARTY', 'QM_VENTILATION_BOOST', 'QM_ONE_DAY_AT_HOME', 'QM_ONE_DAY_AWAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration/quickmode'}}], 'dhw': [{'hotwater': {'timeprogram': {'monday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'tuesday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'wednesday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'thursday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'friday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'saturday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:30', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'sunday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:30', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}]}}, 'circulation': {'configuration': {'operationMode': 'AUTO'}, 'timeprogram': {'monday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'tuesday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'wednesday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'thursday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'friday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'saturday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'sunday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}]}}, '_id': 'Control_DHW'}]}, 'meta': {'resourceState': [{'state': 'OUTDATED', 'timestamp': 1624363897214, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/status'}}, {'state': 'OUTDATED', 'timestamp': 1624363897214, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration'}}, {'state': 'OUTDATED', 'timestamp': 1624363897214, 'link': {'rel': 'child', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration/holidaymode'}}, {'state': 'OUTDATED', 'timestamp': 1624363431833, 'link': {'rel': 'child', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration/quickmode'}}, {'state': 'INITIALIZING', 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624370948000, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/timeprogram'}}, {'state': 'OUTDATED', 'timestamp': 1624361504029, 'link': {'rel': 'child', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/configuration/quick_veto'}}, {'state': 'OUTDATED', 'timestamp': 1624363570150, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/configuration'}}, {'state': 'OUTDATED', 'timestamp': 1624363941560, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624370948000, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/timeprogram'}}, {'state': 'OUTDATED', 'timestamp': 1624363462369, 'link': {'rel': 'child', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/configuration/quick_veto'}}, {'state': 'OUTDATED', 'timestamp': 1624363941560, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624371171313, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/circulation/configuration'}}, {'state': 'INITIALIZING', 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/hotwater/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624370948000, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/circulation/timeprogram'}}, {'state': 'SYNCED', 'timestamp': 1624370948000, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/hotwater/timeprogram'}}]}}
Error with multimatic API: Cannot validate response from vaillant, status: 200, response: {'body': {'zones': [{'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'}]}}, 'configuration': {'name': 'BENEDEN ', 'enabled': True, 'active_function': 'STANDBY', 'inside_temperature': 23.4, 'quick_veto': {'active': False, 'setpoint_temperature': 16.0}}, '_id': 'Control_ZO1'}, {'heating': {'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_ZO2'}], 'configuration': {'eco_mode': False, 'holidaymode': {'active': False, 'start_date': '2019-12-31', 'end_date': '2020-01-01', 'temperature_setpoint': 5.0}}, 'status': {'datetime': '2021-06-22T14:11:38.000Z', 'outside_temperature': 18.0}, 'parameters': [{'name': 'HEATING', 'definition': {'values': ['NIGHT', 'DAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/timeprogram'}}, {'name': 'HEATING', 'definition': {'values': ['NIGHT', 'DAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/timeprogram'}}, {'name': 'COOLING', 'definition': {'values': ['OFF', 'ON']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/cooling/timeprogram'}}, {'name': 'COOLING', 'definition': {'values': ['OFF', 'ON']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/cooling/timeprogram'}}, {'name': 'HOTWATER', 'definition': {'values': ['OFF', 'ON']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/hotwater/timeprogram'}}, {'name': 'CIRCULATION_PUMP', 'definition': {'values': ['OFF', 'ON']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/circulation/timeprogram'}}, {'name': 'VENTILATION', 'definition': {'values': ['NIGHT', 'DAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/ventilation/Control_SYS_MultiMatic/fan/timeprogram'}}, {'name': 'Bedrijfsmodus: koelen', 'definition': {'values': []}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/cooling/configuration/mode'}}, {'name': 'Dag gewenste kamertemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/configuration/setpoint_temperature'}}, {'name': 'Dagtemperatuur koelen', 'definition': {'min': 15.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/cooling/configuration/setpoint_temperature'}}, {'name': 'Modus verwarmen', 'definition': {'values': ['AUTO', 'SETBACK', 'OFF']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/configuration/mode'}}, {'name': 'Nachttemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/configuration/setback_temperature'}}, {'name': 'Quick Veto gewenste kamertemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/configuration/quick_veto'}}, {'name': 'Speciale modus die werd geactiveerd', 'definition': {'values': ['NO_QUICK_MODE', 'QM_PARTY', 'QM_VENTILATION_BOOST', 'QM_ONE_DAY_AT_HOME', 'QM_ONE_DAY_AWAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/configuration/quickmode'}}, {'name': 'Bedrijfsmodus: koelen', 'definition': {'values': []}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/cooling/configuration/mode'}}, {'name': 'Dag gewenste kamertemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/configuration/setpoint_temperature'}}, {'name': 'Dagtemperatuur koelen', 'definition': {'min': 15.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/cooling/configuration/setpoint_temperature'}}, {'name': 'Modus verwarmen', 'definition': {'values': ['AUTO', 'SETBACK', 'OFF']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/configuration/mode'}}, {'name': 'Nachttemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/configuration/setback_temperature'}}, {'name': 'Quick Veto gewenste kamertemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/configuration/quick_veto'}}, {'name': 'Speciale modus die werd geactiveerd', 'definition': {'values': ['NO_QUICK_MODE', 'QM_PARTY', 'QM_VENTILATION_BOOST', 'QM_ONE_DAY_AT_HOME', 'QM_ONE_DAY_AWAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/configuration/quickmode'}}, {'name': 'Modus warmwatercircuit', 'definition': {'values': ['AUTO', 'DAY', 'OFF']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/hotwater/configuration/operation_mode'}}, {'name': 'Bedrijfsmodus: ventileren', 'definition': {'values': ['AUTO', 'NIGHT', 'DAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/ventilation/Control_SYS_MultiMatic/fan/configuration/operation_mode'}}, {'name': 'Gewenste kamertemperatuur voor dagen buitenshuis', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 1.0}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration/holidaymode'}}, {'name': 'Maximale ventilatiestand dag', 'definition': {'min': 1.0, 'max': 6.0, 'stepsize': 1.0}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/ventilation/Control_SYS_MultiMatic/fan/configuration/day_level'}}, {'name': 'Maximale ventilatiestand nacht', 'definition': {'min': 1.0, 'max': 6.0, 'stepsize': 1.0}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/ventilation/Control_SYS_MultiMatic/fan/configuration/night_level'}}, {'name': 'Speciale modus die werd geactiveerd', 'definition': {'values': ['NO_QUICK_MODE', 'QM_PARTY', 'QM_VENTILATION_BOOST', 'QM_ONE_DAY_AT_HOME', 'QM_ONE_DAY_AWAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration/quickmode'}}], 'dhw': [{'hotwater': {'configuration': {'operation_mode': 'AUTO', 'temperature_setpoint': 55.0}, 'timeprogram': {'monday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'tuesday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'wednesday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'thursday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'friday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'saturday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:30', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'sunday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:30', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}]}}, 'circulation': {'configuration': {'operationMode': 'AUTO'}, 'timeprogram': {'monday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'tuesday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'wednesday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'thursday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'friday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'saturday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'sunday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}]}}, '_id': 'Control_DHW'}]}, 'meta': {'resourceState': [{'state': 'SYNCED', 'timestamp': 1624364032482, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/status'}}, {'state': 'OUTDATED', 'timestamp': 1624364032482, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624364032482, 'link': {'rel': 'child', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration/holidaymode'}}, {'state': 'SYNCED', 'timestamp': 1624364032482, 'link': {'rel': 'child', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration/quickmode'}}, {'state': 'OUTDATED', 'timestamp': 1624364006180, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624370948000, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/timeprogram'}}, {'state': 'OUTDATED', 'timestamp': 1624361504029, 'link': {'rel': 'child', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/configuration/quick_veto'}}, {'state': 'OUTDATED', 'timestamp': 1624364006180, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/configuration'}}, {'state': 'INITIALIZING', 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624370948000, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/timeprogram'}}, {'state': 'SYNCED', 'timestamp': 1624364062894, 'link': {'rel': 'child', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/configuration/quick_veto'}}, {'state': 'INITIALIZING', 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624371292314, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/circulation/configuration'}}, {'state': 'OUTDATED', 'timestamp': 1624363988996, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/hotwater/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624370948000, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/circulation/timeprogram'}}, {'state': 'SYNCED', 'timestamp': 1624370948000, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/hotwater/timeprogram'}}]}}
Error with multimatic API: Cannot validate response from vaillant, status: 200, response: {'body': {'zones': [{'heating': {'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'}]}}, 'configuration': {'name': 'BENEDEN ', 'enabled': True, 'active_function': 'STANDBY', 'inside_temperature': 23.4, 'quick_veto': {'active': False, 'setpoint_temperature': 16.0}}, '_id': 'Control_ZO1'}, {'heating': {'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_ZO2'}], 'configuration': {'eco_mode': False, 'holidaymode': {'active': False, 'start_date': '2019-12-31', 'end_date': '2020-01-01', 'temperature_setpoint': 5.0}}, 'status': {'datetime': '2021-06-22T14:17:16.000Z', 'outside_temperature': 18.0}, 'parameters': [{'name': 'HEATING', 'definition': {'values': ['NIGHT', 'DAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/timeprogram'}}, {'name': 'HEATING', 'definition': {'values': ['NIGHT', 'DAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/timeprogram'}}, {'name': 'COOLING', 'definition': {'values': ['OFF', 'ON']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/cooling/timeprogram'}}, {'name': 'COOLING', 'definition': {'values': ['OFF', 'ON']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/cooling/timeprogram'}}, {'name': 'HOTWATER', 'definition': {'values': ['OFF', 'ON']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/hotwater/timeprogram'}}, {'name': 'CIRCULATION_PUMP', 'definition': {'values': ['OFF', 'ON']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/circulation/timeprogram'}}, {'name': 'VENTILATION', 'definition': {'values': ['NIGHT', 'DAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/ventilation/Control_SYS_MultiMatic/fan/timeprogram'}}, {'name': 'Bedrijfsmodus: koelen', 'definition': {'values': []}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/cooling/configuration/mode'}}, {'name': 'Dag gewenste kamertemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/configuration/setpoint_temperature'}}, {'name': 'Dagtemperatuur koelen', 'definition': {'min': 15.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/cooling/configuration/setpoint_temperature'}}, {'name': 'Modus verwarmen', 'definition': {'values': ['AUTO', 'SETBACK', 'OFF']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/configuration/mode'}}, {'name': 'Nachttemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/configuration/setback_temperature'}}, {'name': 'Quick Veto gewenste kamertemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/configuration/quick_veto'}}, {'name': 'Speciale modus die werd geactiveerd', 'definition': {'values': ['NO_QUICK_MODE', 'QM_PARTY', 'QM_VENTILATION_BOOST', 'QM_ONE_DAY_AT_HOME', 'QM_ONE_DAY_AWAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/configuration/quickmode'}}, {'name': 'Bedrijfsmodus: koelen', 'definition': {'values': []}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/cooling/configuration/mode'}}, {'name': 'Dag gewenste kamertemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/configuration/setpoint_temperature'}}, {'name': 'Dagtemperatuur koelen', 'definition': {'min': 15.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/cooling/configuration/setpoint_temperature'}}, {'name': 'Modus verwarmen', 'definition': {'values': ['AUTO', 'SETBACK', 'OFF']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/configuration/mode'}}, {'name': 'Nachttemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/configuration/setback_temperature'}}, {'name': 'Quick Veto gewenste kamertemperatuur', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 0.5}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/configuration/quick_veto'}}, {'name': 'Speciale modus die werd geactiveerd', 'definition': {'values': ['NO_QUICK_MODE', 'QM_PARTY', 'QM_VENTILATION_BOOST', 'QM_ONE_DAY_AT_HOME', 'QM_ONE_DAY_AWAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/configuration/quickmode'}}, {'name': 'Modus warmwatercircuit', 'definition': {'values': ['AUTO', 'DAY', 'OFF']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/hotwater/configuration/operation_mode'}}, {'name': 'Bedrijfsmodus: ventileren', 'definition': {'values': ['AUTO', 'NIGHT', 'DAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/ventilation/Control_SYS_MultiMatic/fan/configuration/operation_mode'}}, {'name': 'Gewenste kamertemperatuur voor dagen buitenshuis', 'definition': {'min': 5.0, 'max': 30.0, 'stepsize': 1.0}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration/holidaymode'}}, {'name': 'Maximale ventilatiestand dag', 'definition': {'min': 1.0, 'max': 6.0, 'stepsize': 1.0}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/ventilation/Control_SYS_MultiMatic/fan/configuration/day_level'}}, {'name': 'Maximale ventilatiestand nacht', 'definition': {'min': 1.0, 'max': 6.0, 'stepsize': 1.0}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/ventilation/Control_SYS_MultiMatic/fan/configuration/night_level'}}, {'name': 'Speciale modus die werd geactiveerd', 'definition': {'values': ['NO_QUICK_MODE', 'QM_PARTY', 'QM_VENTILATION_BOOST', 'QM_ONE_DAY_AT_HOME', 'QM_ONE_DAY_AWAY']}, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration/quickmode'}}], 'dhw': [{'hotwater': {'timeprogram': {'monday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'tuesday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'wednesday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'thursday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'friday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:00', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'saturday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:30', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}], 'sunday': [{'startTime': '00:00', 'mode': 'OFF'}, {'startTime': '07:30', 'mode': 'ON'}, {'startTime': '22:50', 'mode': 'OFF'}]}}, 'circulation': {'configuration': {'operationMode': 'AUTO'}, 'timeprogram': {'monday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'tuesday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'wednesday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'thursday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'friday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'saturday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}], 'sunday': [{'startTime': '00:00', 'setting': 'OFF'}, {'startTime': '07:00', 'setting': 'ON'}, {'startTime': '22:50', 'setting': 'OFF'}]}}, '_id': 'Control_DHW'}]}, 'meta': {'resourceState': [{'state': 'SYNCED', 'timestamp': 1624364239547, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/status'}}, {'state': 'OUTDATED', 'timestamp': 1624364287312, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624364239547, 'link': {'rel': 'child', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration/holidaymode'}}, {'state': 'SYNCED', 'timestamp': 1624364032482, 'link': {'rel': 'child', 'resourceLink': '/facilities/xx/systemcontrol/v1/configuration/quickmode'}}, {'state': 'INITIALIZING', 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624371407000, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/heating/timeprogram'}}, {'state': 'OUTDATED', 'timestamp': 1624361504029, 'link': {'rel': 'child', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/configuration/quick_veto'}}, {'state': 'OUTDATED', 'timestamp': 1624364287312, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO1/configuration'}}, {'state': 'INITIALIZING', 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624371407000, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/heating/timeprogram'}}, {'state': 'SYNCED', 'timestamp': 1624364062894, 'link': {'rel': 'child', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/configuration/quick_veto'}}, {'state': 'INITIALIZING', 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/zones/Control_ZO2/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624371533292, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/circulation/configuration'}}, {'state': 'INITIALIZING', 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/hotwater/configuration'}}, {'state': 'SYNCED', 'timestamp': 1624371407000, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/circulation/timeprogram'}}, {'state': 'SYNCED', 'timestamp': 1624371407000, 'link': {'rel': 'self', 'resourceLink': '/facilities/xx/systemcontrol/v1/dhw/Control_DHW/hotwater/timeprogram'}}]}}

Report System errors into HA

your dump.py script (from https://github.com/thomasgermain/pymultiMATIC) reports the following results on a vaillant system error:

hvac.json

{
    "body": {
        "errorMessages": [
            {
                "deviceName": "flexoTHERM",
                "type": "ERROR",
                "title": "Hochdruckschalter",
                "statusCode": "F.731",
                "description": "K\u00e4ltemitteldruck zu hoch. Integrierter Hochdruckschalter hat bei 41,5 bar (g) ausgel\u00f6st. Nicht ausreichende Energieabgabe \u00fcber den jeweiligen Verdampfer.",
                "hint": "Geb\u00e4udekreis entl\u00fcften. Pr\u00fcfen: ausreichend hoher Volumenstrom (vergr\u00f6\u00dfern durch \u00d6ffnen von Einzelraumreglern bei Fu\u00dfbodenheizung), Schmutzsiebe, K\u00e4ltemitteldurchsatz (elektronisches Expansionsventil, Vier-Wege-Ventil, Filter). VWL (K\u00fchlbetrieb): L\u00fcftereinheit (Verschmutzung), Luftkan\u00e4le (Verschmutzung).",
                "timestamp": 1596538856405
            }
        ]
    },
    "meta": {
        "onlineStatus": {
            "status": "ONLINE"
        },
        "firmwareUpdateStatus": {
            "status": "UPDATE_NOT_PENDING"
        },
        "syncState": [
            {
                "state": "SYNCED",
                "timestamp": 1596551098508,
                "link": {
                    "rel": "self",
                    "resourceLink": "/facilities/SERIAL_NUMBER/hvacstate/v1/overview"
                }
            }
        ]
    }
}

it would be great if this information gets somehow transported into home-assistant - maybe as an binary_sensor with the message as attribute.

Feature request: Show humidity

It would be nice to show humidity in HA if present.

Here is the output of pymultimatic 0.3.2 script example, e.g. humidity=57
get_system_vaillant.txt

pymultimatic 0.4.0 raises exceptions due to missing 'timeprogram' in 'dhw'.

Thanks

custom_components/multimatic/coordinator.py:106 - pymultimatic.api.error.ApiError: Cannot get https://smart.vaillant.com/mobile/api/v4/facilities

Running HA DC 2021.6.2, python 3.8.9, multimatic integration custom component v1.7.0b

Logger: custom_components.multimatic.coordinator
Source: custom_components/multimatic/coordinator.py:106
Integration: Multimatic (documentation, issues)
First occurred: 01:34:26 (2 occurrences)
Last logged: 01:51:27

Unexpected error fetching multimatic data: Cannot get https://smart.vaillant.com/mobile/api/v4/facilities
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 47, in wrapper
raise ex
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 713, in _call_api
response = await self._connector.request(method, url, payload)
File "/usr/local/lib/python3.8/site-packages/pymultimatic/api/connector.py", line 174, in request
raise ApiError('Cannot ' + method + ' ' + url, response=await resp.text(),
pymultimatic.api.error.ApiError: Cannot get https://smart.vaillant.com/mobile/api/v4/facilities

Feature: get data from emf_report

The emf_report of pymultiMATIC reveals additional devices.
In my case a heat pump VWF 117/4 which provides sensor values for energy consumption and environmental yield.
Would be cool, if the component could provide these additional devices and sensors as well.

Great work, thanks a lot!
apfelmaennchen

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.