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 %}