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