We have a TEK10 home which can sometimes get to warm due to the sun.
Still we want to use the sun as a part of the heating of the house in wintertime.
The solution we chose was screens for the windows.
It also keeps the mosquitoes out when opening the windows and less reflections when watching movies in the summertime – all together a win win.
For this solution we are using this Somfy integration and Aqara vibration sensor for register the tilt when opening/closing windows.
Based on lux values from light sensor in the garden screens triggers positioning of the screens.
Automation:
# 1st floor screen state - alias: 1st floor screen state id: 1st_floor_screen_state trigger: - platform: time_pattern minutes: 1 - platform: state entity_id: sensor.living_room_window_state to: "True" - platform: state entity_id: sensor.kitchen_window_state to: "True" - platform: state entity_id: sensor.living_room_window_state to: "False" - platform: state entity_id: sensor.kitchen_window_state to: "False" - platform: state entity_id: media_player.mediacenter to: 'off' - platform: state entity_id: media_player.mediacenter to: 'playing' - platform: state entity_id: switch.living_room_media to: 'on' - platform: state entity_id: switch.living_room_media to: 'off' - platform: state entity_id: input_boolean.vacation_mode to: 'on' - platform: state entity_id: input_boolean.vacation_mode to: 'off' action: - choose: # 100 % open screens - conditions: - condition: and conditions: - condition: numeric_state entity_id: sensor.garden_illuminance_lux below: 2000 - condition: state entity_id: media_player.mediacenter state: 'off' - condition: state entity_id: switch.living_room_switch state: 'off' - condition: state entity_id: input_boolean.1st_floor_manual_screens state: 'off' - condition: state entity_id: sensor.living_room_window_state state: "False" - condition: state entity_id: sensor.kitchen_window_state state: "False" sequence: - service: script.turn_on data: entity_id: script.1st_floor_screen_position_100_pct - delay: seconds: 900 # 75 % open screens - conditions: - condition: and conditions: - condition: numeric_state entity_id: sensor.garden_illuminance_lux above: 2000 below: 3999 - condition: numeric_state entity_id: sensor.living_room_thermostat_temperature_air above: 24.5 - condition: numeric_state entity_id: sensor.garden_motion_sensor_temperature above: 0 - condition: state entity_id: media_player.mediacenter state: 'off' - condition: state entity_id: switch.living_room_switch state: 'off' - condition: state entity_id: input_boolean.1st_floor_manual_screens state: 'off' - condition: state entity_id: sensor.living_room_window_state state: "False" - condition: state entity_id: sensor.kitchen_window_state state: "False" sequence: - service: script.turn_on data: entity_id: script.1st_floor_screen_position_75_pct - delay: seconds: 1800 # 50 % open screens - conditions: - condition: and conditions: - condition: numeric_state entity_id: sensor.garden_illuminance_lux above: 4000 below: 7999 - condition: numeric_state entity_id: sensor.living_room_thermostat_temperature_air above: 23.5 - condition: numeric_state entity_id: sensor.garden_temperature above: 0 - condition: state entity_id: media_player.mediacenter state: 'off' - condition: state entity_id: switch.living_room_switch state: 'off' - condition: state entity_id: input_boolean.1st_floor_manual_screens state: 'off' - condition: state entity_id: sensor.living_room_window_state state: "False" - condition: state entity_id: sensor.kitchen_window_state state: "False" sequence: - service: script.turn_on data: entity_id: script.1st_floor_screen_position_50_pct - delay: seconds: 1800 # Closed screens - conditions: - condition: and conditions: - condition: numeric_state entity_id: sensor.garden_illuminance_lux above: 8000 - condition: numeric_state entity_id: sensor.living_room_thermostat_temperature_air above: 23 - condition: numeric_state entity_id: sensor.garden_temperature above: 0 - condition: state entity_id: input_boolean.1st_floor_manual_screens state: 'off' sequence: - service: script.turn_on data: entity_id: script.1st_floor_screen_position_0_pct - delay: seconds: 900 - conditions: - condition: and conditions: - condition: numeric_state entity_id: sensor.garden_illuminance_lux above: 200 below: 2000 - condition: state entity_id: media_player.mediacenter state: 'playing' - condition: state entity_id: input_boolean.1st_floor_manual_screens state: 'off' - condition: state entity_id: sensor.living_room_window_state state: "False" - condition: state entity_id: sensor.kitchen_window_state state: "False" sequence: - service: script.turn_on data: entity_id: script.1st_floor_media_screen_position_0_pct - delay: seconds: 900 - conditions: - condition: and conditions: - condition: numeric_state entity_id: sensor.garden_illuminance_lux above: 200 below: 2000 - condition: state entity_id: switch.living_room_switch state: 'on' - condition: state entity_id: input_boolean.1st_floor_manual_screens state: 'off' - condition: state entity_id: sensor.living_room_window_state state: "False" - condition: state entity_id: sensor.kitchen_window_state state: "False" sequence: - service: script.turn_on data: entity_id: script.1st_floor_media_screen_position_0_pct - delay: seconds: 900 - conditions: - condition: and conditions: - condition: numeric_state entity_id: sensor.garden_illuminance_lux below: 2000 - condition: state entity_id: media_player.mediacenter state: 'off' - condition: state entity_id: switch.living_room_switch state: 'off' - condition: state entity_id: sensor.living_room_window_state state: "True" - condition: state entity_id: sensor.kitchen_window_state state: "False" sequence: - service: script.turn_on data: entity_id: script.1st_floor_living_room_sofa_screen_position_0_pct - conditions: - condition: and conditions: - condition: numeric_state entity_id: sensor.garden_illuminance_lux above: 2000 below: 5999 - condition: state entity_id: media_player.mediacenter state: 'off' - condition: state entity_id: switch.living_room_media state: 'off' - condition: state entity_id: input_boolean.1st_floor_manual_screens state: 'off' - condition: state entity_id: sensor.living_room_window_state state: "True" - condition: state entity_id: sensor.kitchen_window_state state: "False" sequence: - service: script.turn_on data: entity_id: script.1st_floor_screen_position_75pct_living_room_sofa_0_pct - conditions: - condition: and conditions: - condition: numeric_state entity_id: sensor.garden_illuminance_lux above: 6000 below: 7999 - condition: state entity_id: media_player.mediacenter state: 'off' - condition: state entity_id: switch.living_room_media state: 'off' - condition: state entity_id: input_boolean.1st_floor_manual_screens state: 'off' - condition: state entity_id: sensor.living_room_window_state state: "True" - condition: state entity_id: sensor.kitchen_window_state state: "False" sequence: - service: script.turn_on data: entity_id: script.1st_floor_screen_position_50_pct_living_room_sofa_0_pct - conditions: - condition: and conditions: - condition: state entity_id: media_player.mediacenter state: 'off' - condition: state entity_id: switch.living_room_switch state: 'off' - condition: state entity_id: sensor.kitchen_window_state state: "True" - condition: state entity_id: sensor.living_room_window_state state: "False" sequence: - service: script.turn_on data: entity_id: script.1st_floor_kitchen_screen_position_0_pct - conditions: - condition: and conditions: - condition: numeric_state entity_id: sensor.garden_illuminance_lux above: 2000 below: 5999 - condition: state entity_id: media_player.mediacenter state: 'off' - condition: state entity_id: switch.living_room_media state: 'off' - condition: state entity_id: input_boolean.1st_floor_manual_screens state: 'off' - condition: state entity_id: sensor.living_room_window_state state: "False" - condition: state entity_id: sensor.kitchen_window_state state: "True" sequence: - service: script.turn_on data: entity_id: script.1st_floor_screen_position_75_pct_kitchen_0_pct - conditions: - condition: and conditions: - condition: numeric_state entity_id: sensor.garden_illuminance_lux above: 6000 below: 7999 - condition: state entity_id: media_player.mediacenter state: 'off' - condition: state entity_id: switch.living_room_media state: 'off' - condition: state entity_id: input_boolean.1st_floor_manual_screens state: 'off' - condition: state entity_id: sensor.living_room_window_state state: "False" - condition: state entity_id: sensor.kitchen_window_state state: "True" sequence: - service: script.turn_on data: entity_id: script.1st_floor_screen_position_50_pct_kitchen_0_pct - conditions: - condition: and conditions: - condition: state entity_id: sensor.kitchen_window_state state: "True" - condition: state entity_id: sensor.living_room_window_state state: "True" sequence: - service: script.turn_on data: entity_id: script.1st_floor_living_room_sofa_and_kitchen_screen_position_0_pct
Script:
1st_floor_screen_position_100_pct: alias: 1st floor screen position 100 percent sequence: - service: cover.set_cover_position data: entity_id: - cover.kitchen - cover.garden_door_left - cover.garden_door_right - cover.living_room_sofa position: 100 1st_floor_screen_position_75_pct: alias: 1st floor screen position 75 percent sequence: - service: cover.set_cover_position data: entity_id: - cover.kitchen - cover.garden_door_left - cover.garden_door_right - cover.living_room_sofa position: 75 1st_floor_screen_position_75pct_living_room_sofa_0_pct: alias: 1st floor screen position 75 percent living room sofa 0 percent sequence: - service: cover.set_cover_position data: entity_id: - cover.kitchen - cover.garden_door_left - cover.garden_door_right position: 70 - service: cover.set_cover_position data: entity_id: - cover.living_room_sofa position: 0 1st_floor_screen_position_75_pct_kitchen_0_pct: alias: 1st floor screen position 75 percent kitchen 0 percent sequence: - service: cover.set_cover_position data: entity_id: - cover.garden_door_left - cover.garden_door_right - cover.living_room_sofa position: 70 - service: cover.set_cover_position data: entity_id: - cover.kitchen position: 0 1st_floor_screen_position_50_pct: alias: 1st floor screen position 50 percent sequence: - service: cover.set_cover_position data: entity_id: - cover.kitchen - cover.garden_door_left - cover.garden_door_right - cover.living_room_sofa position: 50 1st_floor_screen_position_50_pct_living_room_sofa_0_pct: alias: 1st floor screen position 50 percent living room sofa 0 percent sequence: - service: cover.set_cover_position data: entity_id: - cover.kitchen - cover.garden_door_left - cover.garden_door_right position: 50 - service: cover.set_cover_position data: entity_id: - cover.living_room_sofa position: 0 1st_floor_screen_position_50_pct_kitchen_0_pct: alias: 1st floor screen position 50 percent kitchen 0 percent sequence: - service: cover.set_cover_position data: entity_id: - cover.garden_door_left - cover.garden_door_right - cover.living_room_sofa position: 50 - service: cover.set_cover_position data: entity_id: - cover.kitchen position: 0 1st_floor_screen_position_0_pct: alias: 1st floor screen position 0 percent sequence: - service: cover.set_cover_position data: entity_id: - cover.kitchen - cover.garden_door_left - cover.garden_door_right - cover.living_room_sofa position: 0 1st_floor_living_room_sofa_screen_position_0_pct: alias: 1st floor living room sofa screen position 0 percent sequence: - service: cover.set_cover_position data: entity_id: - cover.living_room_sofa position: 0 1st_floor_kitchen_screen_position_0_pct: alias: 1st floor kitchen screen position 0 percent sequence: - service: cover.set_cover_position data: entity_id: - cover.kitchen position: 0 1st_floor_living_room_sofa_and_kitchen_screen_position_0_pct: alias: 1st floor living room sofa and kitchen screen position 0 percent sequence: - service: cover.set_cover_position data: entity_id: - cover.living_room_sofa - cover.kitchen position: 0 1st_floor_media_screen_position_0_pct: alias: 1st floor media screen position 0 percent sequence: - service: cover.set_cover_position data: entity_id: - cover.garden_door_right - cover.living_room_sofa position: 0
Sensor:
# Living room window open/closed - platform: template sensors: living_room_window_state: friendly_name: Living room window state value_template: "{{states.binary_sensor.living_room_window_vibration_vibration.attributes.angle_y | int >= 80 }}" icon_template: >- {%- if states.binary_sensor.living_room_window_vibration_vibration.attributes.angle_y | int >= 80 -%} {{ 'mdi:window-open-variant' }} {%- else -%} {{ 'mdi:window-closed-variant' }} {% endif %} # Kitchen window open/closed - platform: template sensors: kitchen_window_state: friendly_name: Kitchen window state value_template: "{{states.binary_sensor.kitchen_window_vibration_vibration.attributes.angle_y | int >= 80 }}" icon_template: >- {%- if states.binary_sensor.kitchen_window_vibration_vibration.attributes.angle_y | int >= 80 -%} {{ 'mdi:window-open-variant' }} {%- else -%} {{ 'mdi:window-closed-variant' }} {% endif %}