heating_sensors: module: virtualsensors class: VirtualSensorsApp priority: 10 # default priority app is 50, since most of them require sensors created by virtual sensors, it's important that virtual_sensors start first sensors: binary_sensor.heatpump_winter_mode: trigger_conditions: false #sensor.month >= 10 or sensor.month <= 4 value_selector.target_temperature_heatpump: attributes: unit_of_measurement: °C device_class: temperature icon: mdi:thermometer values: winter_mode: conditions: binary_sensor.heatpump_winter_mode value: 18 default: conditions: True value: 27 smart_heating_templates_library: module: templatelibrary class: TemplateLibrary priority: 1 templates_library: clim_conditions: trigger_conditions: - "not binary_sensor.heatpump_winter_mode and (ext_temperature >= room_temperature or ext_temperature >= target_temperature or cant_open_window) and room_temperature >= ((quick_resume or sleeping_in_the_room)? target_temperature : (target_temperature + 1))" - not binary_sensor.heatpump_winter_mode and self and (ext_temperature >= target_temperature or cant_open_window) - binary_sensor.heatpump_winter_mode and room_temperature <= (target_temperature - 1) and ext_temperature <= 10 - binary_sensor.heatpump_winter_mode and self and room_temperature < target_temperature blocking_conditions: - binary_sensor.is_everybody_sleeping and not sleeping_in_the_room and not stay_on_while_sleeping - not room_occupancy - not binary_sensor.someone_home #and not (binary_sensor.someone_in_town and sensor.day_interval == 'Nuit') - window_open desk_heatpump: module: smartheatpump class: SmartHeatpump entity: climate.desk_heatpump templates_library: smart_heating_templates_library constants: window_open: binary_sensor.desk_window ext_temperature: sensor.ext_front_temperature room_temperature: sensor.desk_temperature room_occupancy: binary_sensor.desk_occupancy target_temperature: sensor.target_temperature_heatpump cant_open_window: binary_sensor.is_desk_sleeping sleeping_in_the_room: binary_sensor.is_desk_sleeping quick_resume: binary_sensor.desk_heatpump_quick_resume stay_on_while_sleeping: false virtual_sensors: sensors: value_selector.desk_heatpump_fan_mode: auto: binary_sensor.heatpump_winter_mode quiet: True target_temperature: sensor.target_temperature_heatpump hvac_mode: "binary_sensor.heatpump_winter_mode ? 'heat' : 'cool'" fan_mode: sensor.desk_heatpump_fan_mode smart_conditions: callback_delay: 10 # on the morning it can happen that we ask to start and stop the heat pump immediately afterwards which in result in the heat pump ignoring the second command template_conditions: quick_resume: sensor: binary_sensor.desk_heatpump_quick_resume reset_event: good_morning #input_buttons: # turn_on: input_button.clim_du_bureau_turn_on # turn_off: input_button.clim_du_bureau_turn_off bedroom_heatpump: module: smartheatpump class: SmartHeatpump entity: climate.bedroom_heatpump templates_library: smart_heating_templates_library constants: window_open: binary_sensor.bedroom_french_door ext_temperature: sensor.ext_front_temperature room_temperature: sensor.bedroom_temperature room_occupancy: binary_sensor.bedroom_occupancy target_temperature: sensor.target_temperature_heatpump cant_open_window: binary_sensor.is_bedroom_sleeping sleeping_in_the_room: binary_sensor.is_bedroom_sleeping quick_resume: binary_sensor.bedroom_heatpump_quick_resume stay_on_while_sleeping: true virtual_sensors: sensors: value_selector.bedroom_heatpump_fan_mode: auto: binary_sensor.heatpump_winter_mode quiet: True target_temperature: sensor.target_temperature_heatpump hvac_mode: "binary_sensor.heatpump_winter_mode ? 'heat' : 'cool'" fan_mode: sensor.bedroom_heatpump_fan_mode smart_conditions: callback_delay: 10 # on the morning it can happen that we ask to start and stop the heat pump immediately afterwards which in result in the heat pump ignoring the second command template_conditions: quick_resume: sensor: binary_sensor.bedroom_heatpump_quick_resume reset_event: good_morning living_room_heatpump: module: smartheatpump class: SmartHeatpump entity: climate.living_room_heatpump templates_library: smart_heating_templates_library virtual_sensors: sensors: binary_sensor.living_room_any_window_open: binary_sensor.living_room_french_door or binary_sensor.living_room_window constants: window_open: binary_sensor.living_room_any_window_open ext_temperature: sensor.ext_front_temperature room_temperature: sensor.living_room_temperature room_occupancy: binary_sensor.living_room_occupancy target_temperature: sensor.target_temperature_heatpump cant_open_window: binary_sensor.is_living_room_sleeping sleeping_in_the_room: binary_sensor.is_living_room_sleeping quick_resume: binary_sensor.living_room_heatpump_quick_resume stay_on_while_sleeping: false target_temperature: sensor.target_temperature_heatpump hvac_mode: "binary_sensor.heatpump_winter_mode ? 'heat' : 'cool'" smart_conditions: callback_delay: 10 # on the morning it can happen that we ask to start and stop the heat pump immediately afterwards which in result in the heat pump ignoring the second command template_conditions: quick_resume: sensor: binary_sensor.living_room_heatpump_quick_resume reset_event: good_morning