Closed dupondje closed 3 years ago
Do you have hotwater in your installation ?
I do have. It provides hotwater and heating.
Do you have any time program configured ? It sounds you don't have it
For heating there is a time program configured (but disabled at this moment, as its running permanent night mode).
There is another error popping up which shows the time programs btw:
Key 'zones' error:
Or(Schema(Or(Schema({'_id': And(<class 'str'>, <built-in function len>), 'configuration': Schema({'name': And(<class 'str'>, <built-in function len>), Optional('enabled'): <class 'bool'>, Optional('inside_temperature'): Or(<class 'int'>, <class 'float'>), Optional('active_function'): And(<class 'str'>, <built-in function len>), Optional('quick_veto'): {'active': <class 'bool'>, 'setpoint_temperature': Or(<class 'int'>, <class 'float'>)}, Optional('quickmode'): Schema({Optional('quickmode'): And(<class 'str'>, <built-in function len>), Optional('duration'): Or(<class 'int'>, <class 'float'>)})}), Optional('currently_controlled_by'): Schema({'name': And(And(<class 'str'>, <built-in function len>), <function <lambda> at 0x7f407ffd84c0>), 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'>, <built-in function len>), 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'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'tuesday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'wednesday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'thursday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'friday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'saturday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'sunday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}]})}), Optional('cooling'): Schema({'configuration': {Or('mode', 'operation_mode', 'operationMode'): And(<class 'str'>, <built-in function len>), 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'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'tuesday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'wednesday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'thursday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'friday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'saturday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'sunday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}]})})}), Schema({'_id': And(<class 'str'>, <built-in function len>), Optional('configuration'): Schema({'name': And(<class 'str'>, <built-in function len>), Optional('enabled'): <class 'bool'>, Optional('inside_temperature'): Or(<class 'int'>, <class 'float'>), Optional('active_function'): And(<class 'str'>, <built-in function len>), Optional('quick_veto'): {'active': <class 'bool'>, 'setpoint_temperature': Or(<class 'int'>, <class 'float'>)}, Optional('quickmode'): Schema({Optional('quickmode'): And(<class 'str'>, <built-in function len>), 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'>, <built-in function len>), 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'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'tuesday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'wednesday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'thursday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'friday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'saturday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'sunday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}]})}), Optional('cooling'): Schema({Optional('configuration'): {Or('mode', 'operation_mode', 'operationMode'): And(<class 'str'>, <built-in function len>), 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'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'tuesday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'wednesday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'thursday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'friday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'saturday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'sunday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}]})})})))) did not validate {'heating': {'timeprogram': {'monday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '06:00', 'setting': 'DAY'}, {'startTime': '08:00', 'setting': 'NIGHT'}, {'startTime': '16:40', 'setting': 'DAY'}, {'startTime': '22:00', 'setting': 'NIGHT'}], 'tuesday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '06:00', 'setting': 'DAY'}, {'startTime': '22:00', 'setting': 'NIGHT'}], 'wednesday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '06:00', 'setting': 'DAY'}, {'startTime': '22:00', 'setting': 'NIGHT'}], 'thursday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '06:00', 'setting': 'DAY'}, {'startTime': '08:00', 'setting': 'NIGHT'}, {'startTime': '16:30', 'setting': 'DAY'}, {'startTime': '22:00', 'setting': 'NIGHT'}], 'friday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '06:00', 'setting': 'DAY'}, {'startTime': '08:00', 'setting': 'NIGHT'}, {'startTime': '18:30', 'setting': 'DAY'}, {'startTime': '22:00', 'setting': 'NIGHT'}], 'saturday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '06:00', 'setting': 'DAY'}, {'startTime': '10:00', 'setting': 'NIGHT'}, {'startTime': '18:00', 'setting': 'DAY'}, {'startTime': '21:40', 'setting': 'NIGHT'}], 'sunday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '06:30', 'setting': 'DAY'}, {'startTime': '10:50', 'setting': 'NIGHT'}, {'startTime': '17:00', 'setting': 'DAY'}, {'startTime': '21:30', 'setting': 'NIGHT'}]}}, '_id': 'Control_ZO1'}
Or(Schema({'_id': And(<class 'str'>, <built-in function len>), 'configuration': Schema({'name': And(<class 'str'>, <built-in function len>), Optional('enabled'): <class 'bool'>, Optional('inside_temperature'): Or(<class 'int'>, <class 'float'>), Optional('active_function'): And(<class 'str'>, <built-in function len>), Optional('quick_veto'): {'active': <class 'bool'>, 'setpoint_temperature': Or(<class 'int'>, <class 'float'>)}, Optional('quickmode'): Schema({Optional('quickmode'): And(<class 'str'>, <built-in function len>), Optional('duration'): Or(<class 'int'>, <class 'float'>)})}), Optional('currently_controlled_by'): Schema({'name': And(And(<class 'str'>, <built-in function len>), <function <lambda> at 0x7f407ffd84c0>), 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'>, <built-in function len>), 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'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'tuesday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'wednesday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'thursday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'friday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'saturday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'sunday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}]})}), Optional('cooling'): Schema({'configuration': {Or('mode', 'operation_mode', 'operationMode'): And(<class 'str'>, <built-in function len>), 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'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'tuesday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'wednesday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'thursday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'friday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'saturday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'sunday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}]})})}), Schema({'_id': And(<class 'str'>, <built-in function len>), Optional('configuration'): Schema({'name': And(<class 'str'>, <built-in function len>), Optional('enabled'): <class 'bool'>, Optional('inside_temperature'): Or(<class 'int'>, <class 'float'>), Optional('active_function'): And(<class 'str'>, <built-in function len>), Optional('quick_veto'): {'active': <class 'bool'>, 'setpoint_temperature': Or(<class 'int'>, <class 'float'>)}, Optional('quickmode'): Schema({Optional('quickmode'): And(<class 'str'>, <built-in function len>), 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'>, <built-in function len>), 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'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'tuesday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'wednesday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'thursday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'friday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'saturday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'sunday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}]})}), Optional('cooling'): Schema({Optional('configuration'): {Or('mode', 'operation_mode', 'operationMode'): And(<class 'str'>, <built-in function len>), 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'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'tuesday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'wednesday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'thursday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'friday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'saturday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}], 'sunday': [{'startTime': And(<class 'str'>, <built-in function len>), Optional('temperatureSetpoint'): Or(<class 'int'>, <class 'float'>), Optional('setting'): And(<class 'str'>, <built-in function len>), Optional('mode'): And(<class 'str'>, <built-in function len>)}]})})})) did not validate {'heating': {'timeprogram': {'monday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '06:00', 'setting': 'DAY'}, {'startTime': '08:00', 'setting': 'NIGHT'}, {'startTime': '16:40', 'setting': 'DAY'}, {'startTime': '22:00', 'setting': 'NIGHT'}], 'tuesday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '06:00', 'setting': 'DAY'}, {'startTime': '22:00', 'setting': 'NIGHT'}], 'wednesday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '06:00', 'setting': 'DAY'}, {'startTime': '22:00', 'setting': 'NIGHT'}], 'thursday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '06:00', 'setting': 'DAY'}, {'startTime': '08:00', 'setting': 'NIGHT'}, {'startTime': '16:30', 'setting': 'DAY'}, {'startTime': '22:00', 'setting': 'NIGHT'}], 'friday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '06:00', 'setting': 'DAY'}, {'startTime': '08:00', 'setting': 'NIGHT'}, {'startTime': '18:30', 'setting': 'DAY'}, {'startTime': '22:00', 'setting': 'NIGHT'}], 'saturday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '06:00', 'setting': 'DAY'}, {'startTime': '10:00', 'setting': 'NIGHT'}, {'startTime': '18:00', 'setting': 'DAY'}, {'startTime': '21:40', 'setting': 'NIGHT'}], 'sunday': [{'startTime': '00:00', 'setting': 'NIGHT'}, {'startTime': '06:30', 'setting': 'DAY'}, {'startTime': '10:50', 'setting': 'NIGHT'}, {'startTime': '17:00', 'setting': 'DAY'}, {'startTime': '21:30', 'setting': 'NIGHT'}]}}, '_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 "/opt/homeassistant/lib/python3.8/site-packages/homeassistant/helpers/update_coordinator.py", line 187, in _async_refresh
self.data = await self._async_update_data()
File "/opt/homeassistant/lib/python3.8/site-packages/homeassistant/helpers/update_coordinator.py", line 147, in _async_update_data
return await self.update_method()
File "/home/homeassistant/.homeassistant/custom_components/multimatic/coordinator.py", line 108, in _fetch_data
system = await self._manager.get_system()
File "/opt/homeassistant/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 126, in get_system
facilities, full_system, live_report, hvac_state, gateway = await asyncio.gather(
File "/opt/homeassistant/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 43, in wrapper
return await func(*args, **kwargs)
File "/opt/homeassistant/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 732, in _call_api
return await self._validate_schema(schema, response, url)
File "/opt/homeassistant/lib/python3.8/site-packages/pymultimatic/systemmanager.py", line 740, in _validate_schema
raise WrongResponseError(message=f'Cannot validate response from {url}: {err.code}',
pymultimatic.api.error.WrongResponseError
For heating there is a time program configured (but disabled at this moment, as its running permanent night mode).
But do you have a time program configured for your hot water ?
But do you have a time program configured for your hot water ?
A time program for hot water? How would that work? It produces hot water when it's needed...
Through multimatic app, you can configure when you want the water to heat (same as the heating actually). For example, I asked the water to heat at 50°C between 6:30am and 7:30am and 7:00pm, and 8:00pm. Outside these timeframes, I don't need hot water.
I guess that is when you have a boiler? Here it's just on-demand hot water without a boiler.
Aaah, didn't know it was possible, I'll have a look for the next beta
Aaah, didn't know it was possible, I'll have a look for the next beta
That's quite common no? :) It's called a 'doorstromer' in dutch.
Aaah, didn't know it was possible, I'll have a look for the next beta
That's quite common no? :) It's called a 'doorstromer' in dutch.
Well yeah, this is quite common, but I didn't know it was possible inside the vaillant system :)
By the way, what are you able to do with your water heater through through multimatic app ? Also, are you able to provide the result of this call: GET https://smart.vaillant.com/mobile/api/v4/facilities/{serial_id}/systemcontrol/v1/dhw, so I'm sure how to handle your case :)
I can put it off, on or Auto. And enter a time program it seems. But nothing is set there. Also I'm able to set the water temperature.
The call gives me an "NOT_AUTHORIZED". I need to do another call first?
I created a script: for windows (powershell): https://github.com/thomasgermain/pymultiMATIC/blob/v0_5_0/script/print_response.ps1 for linux: https://github.com/thomasgermain/pymultiMATIC/blob/v0_5_0/script/print_response.sh.
You have to provide your username, password and the url for which the response will be printed:
sh print_response.sh user passw https://smart.vaillant.com/mobile/api/v4/facilities/{serial_id}/systemcontrol/v1/dhw
or for windows: ./print_response.ps1 user passw https://smart.vaillant.com/mobile/api/v4/facilities/{serial_id}/systemcontrol/v1/dhw
.
Don't forget to remove some private info (like serial number).
Let me know if it works
That worked!
"body": [
{
"hotwater": {
"configuration": {
"operation_mode": "AUTO",
"temperature_setpoint": 60
}
},
"circulation": {
"configuration": {
"operationMode": "AUTO"
}
},
"_id": "Control_DHW"
}
],
"meta": {
"resourceState": [
{
"state": "SYNCED",
"timestamp": 1624477418615,
"link": {
"rel": "self",
"resourceLink": "/facilities/xxxxxxx/systemcontrol/v1/dhw/Control_DHW/circulation/configuration"
}
},
{
"state": "SYNCED",
"timestamp": 1624470169435,
"link": {
"rel": "self",
"resourceLink": "/facilities/xxxxxx/systemcontrol/v1/dhw/Control_DHW/hotwater/configuration"
}
}
]
}
}
Ok, thanks, I'll see what I can do, but I think you will only be able to set the target temperature. I guess that if you turn it ON, it won't have any effect ? And does the target temperature have any effect ? (I mean if you set it on 80 °C, will it really heat the water to 80 ?)
Setting it to ON doesn't do anything it seems. Changing temperature changes indeed how hot it heats the water.
Release https://github.com/thomasgermain/vaillant-component/releases/tag/1.7.0b2 should fix the issue, could you confirm ?
Well everything broke now :( 2021-06-30 09:56:27 WARNING (MainThread) [homeassistant.config_entries] Config entry 'Multimatic' for multimatic integration not ready yet: Cannot get https://smart.vaillant.com/mobile/api/v4/facilities/xxxxx/rbr/v1/rooms; Retrying in background
If I do the call manually it returns: {"errorCode":"ROOM_BY_ROOM_NOT_SUPPORTED_BY_FACILITY"}
Ok thanks,
what do you mean by everything is broken ? you should have all your entities and maybe some log errors related to the rooms
Could you provide me the full error log ?
Everything shows as unavailable.
And the logs for multimatic only show the following: 2021-06-30 10:16:23 INFO (MainThread) [homeassistant.setup] Setting up multimatic 2021-06-30 10:16:23 INFO (MainThread) [homeassistant.setup] Setup of domain multimatic took 0.0 seconds 2021-06-30 10:16:24 WARNING (MainThread) [homeassistant.config_entries] Config entry 'Multimatic' for multimatic integration not ready yet: Cannot get https://smart.vaillant.com/mobile/api/v4/facilities/xxxx/systemcontrol/v1/zones; Retrying in background
But wait, what kind of installation do you have ?Do you only have the water heater ? Can you rerun the script but with this url: https://smart.vaillant.com/mobile/api/v4/facilities/xxxx/systemcontrol/v1/zones ?
Thanks !
I have this one:
Config entry 'Multimatic' for multimatic integration not ready yet: Cannot get https://smart.vaillant.com/mobile/api/v4/facilities/xxxxx/rbr/v1/rooms
I saw somewhere that you wrote that's a warning if you don't have ambisense but in my case (I don't have ambisense yet) all entities are unavailable. I'm back to b1
But wait, what kind of installation do you have ?Do you only have the water heater ? Can you rerun the script but with this url: https://smart.vaillant.com/mobile/api/v4/facilities/xxxx/systemcontrol/v1/zones ?
Its heating + hot water.
That call returns: {"errorCode":"UPDATE_PENDING"}
But now I open the app, and it suddenly seems to start upgrading the whole system (its showing the gateway is getting updated). Maybe some calls triggered this? I'll come back when the update is completed!
Update seems to be completed. But same error on the rooms call, and everything unavailable.
ok, will try to provide a fix this evening, thanks for your feedback
Stripped the rooms call out of the code, and it works like before now. But this bug is still not fixed:
2021-06-30 12:40:52 ERROR (MainThread) [homeassistant.components.binary_sensor] Error adding entities for domain binary_sensor with platform multimatic
Traceback (most recent call last):
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 89, in is_on
a_mode = self.active_mode
File "/home/homeassistant/.homeassistant/custom_components/multimatic/binary_sensor.py", line 107, in active_mode
return self.coordinator.api.get_active_mode(self.coordinator.data.circulation)
File "/home/homeassistant/.homeassistant/custom_components/multimatic/coordinator.py", line 165, in get_active_mode
return multimatic_utils.active_mode_for(
File "/opt/homeassistant/lib/python3.8/site-packages/pymultimatic/utils/__init__.py", line 28, in active_mode_for
return _method_by_component[comp.__class__.__name__](comp, holiday, quick_mode)
File "/opt/homeassistant/lib/python3.8/site-packages/pymultimatic/utils/__init__.py", line 129, in _active_mode_for_circulation
return circulation.active_mode
File "/opt/homeassistant/lib/python3.8/site-packages/pymultimatic/model/dhw.py", line 64, in active_mode
return super().active_mode
File "/opt/homeassistant/lib/python3.8/site-packages/pymultimatic/model/common.py", line 51, in active_mode
setting = self.time_program.get_for(datetime.now())
File "/opt/homeassistant/lib/python3.8/site-packages/pymultimatic/model/timeprogram.py", line 105, in get_for
tp_day = self.days[day]
KeyError: 'wednesday'
release https://github.com/thomasgermain/vaillant-component/releases/tag/1.7.0b3 should eventually fix it
Seems to work fine now :)
With a VR900 it can't seem to create all the sensors: