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: input_number.heatpump_temperature smart_heating_templates_library: module: templatelibrary class: TemplateLibrary priority: 1 templates_library: clim_conditions: local_expressions: temp_threshold: "sleeping_in_the_room ? 0 : (ext_temperature >= 35 ? 0.5 : 1)" 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 ? target_temperature : (target_temperature + temp_threshold))" - 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 and not (sleeping_in_the_room or (occupied_tonight and binary_sensor.day_interval_night)) - not binary_sensor.someone_home - 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 occupied_tonight: input_boolean.desk_occupied_tonight stay_on_while_sleeping: false virtual_sensors: sensors: value_selector.desk_heatpump_fan_mode: auto: binary_sensor.heatpump_winter_mode or room_temperature > target_temperature + 1 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: control_mode_selector: sensor: input_select.desk_heatpump_override reset_events: - good_morning - good_bye quick_resume: sensor: binary_sensor.desk_heatpump_quick_resume reset_events: 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 occupied_tonight: input_boolean.bedroom_occupied_tonight stay_on_while_sleeping: false virtual_sensors: sensors: value_selector.bedroom_heatpump_fan_mode: auto: binary_sensor.heatpump_winter_mode or room_temperature > target_temperature + 1 quiet: True target_temperature: sensor.target_temperature_heatpump # + 0.5 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_events: good_morning control_mode_selector: sensor: input_select.bedroom_heatpump_override reset_events: - good_morning - good_bye 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 binary_sensor.living_room_cant_open_window: binary_sensor.is_living_room_sleeping or binary_sensor.projector_on value_selector.living_room_heatpump_fan_mode: auto: binary_sensor.heatpump_winter_mode or room_temperature > target_temperature + 1 quiet: True 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.living_room_cant_open_window sleeping_in_the_room: binary_sensor.is_living_room_sleeping quick_resume: binary_sensor.living_room_heatpump_quick_resume occupied_tonight: input_boolean.living_room_occupied_tonight stay_on_while_sleeping: false target_temperature: sensor.target_temperature_heatpump + 0.5 hvac_mode: "binary_sensor.heatpump_winter_mode ? 'heat' : 'cool'" fan_mode: sensor.living_room_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: control_mode_selector: sensor: input_select.living_room_heatpump_override reset_events: - good_morning - good_bye quick_resume: sensor: binary_sensor.living_room_heatpump_quick_resume reset_events: good_morning