Rolladensteuerung automatisieren in Home Assistant

Ich habe mir im letzten Jahr Aussenrollos der Firma CLIP’N’SHADE an vier Fenster verbaut und diese bereits in Home Assistant integriert. Nun fehlt mir nur noch eine Automatisierung um die Rollos zu steuern. Gerade im Sommer sollen die Rollos automatisch herunter fahren, damit die Hitze nicht in die Wohnung kommt. Da nicht immer jemand zu Hause ist, soll dieses natürlich automatisch passieren, aber auch nicht einfach zeitgesteuert. Also muss eine Rolladensteuerung her.

Was soll die Rolladensteuerung können:

  • Steuerung abhängig vom Sonnenstand (Azimut und Elevation)
  • Steuerung abhängig von der Innentemperatur
  • Reaktion auf das Wetter

Anhand der Webseite Sonnenverlauf, habe ich für mich den Azimut (Sonnenrichtung) bestimmt, in dem die Automatisierung arbeiten soll. Somit wird die Steuerung auch nur aktiv, wenn die Sonnen in die betreffenden Fenster scheint. Um die Daten der Sonne in Home Assistant nutzen zu können, verwende ich die Sun Integration. Ebenfalls sollen nur bei Sonnenschein oder bei teilweise bewölktem Himmel die Rollos schließen. Für die Wetterdaten nutze ich die OpenWeatherMap Integration. Bei Regen oder Windgeschwindigkeiten über 8m/s sollen die Rollos einfahren, damit sie nicht nass oder beschädigt werden.

Helfer

Ich hab erst mal damit begonnen mir einen Helfer zu bauen, der als Schalter dient und mir auch den aktuellen Zustand anzeigen soll. Geht dazu unter Einstellungen > Geräte & Dienste > Helfer > Helfer Erstellen und erzeugt einen Helfer vom Typ Schalter. Vergebt noch einen passenden Namen und ein passendes Symbol. Dieser Helfer wird durch ein Script und eine Automatisierung bedient und zeigt somit den Status an. Im Zustand Ein sind die Rollos geschlossen.

Rolladensteuerung per Automatisierung

Nun folgt die eigentliche automatische Rolladensteuerung. Eigentlich bin ich ein Freund von getrennten Automatisierung für das Ein- und Ausschalten, hier habe ich aber alles in eine Automatisierung gepackt. Die Automatisierung prüft den Zustand alle 15 Minuten. Zusätzlich wird die Automatisierung durch folgender Ereignisse getriggerd, durch welche die Rollos eingefahren werden, dazu wird die ID SunAway vergeben.:

  • Azimut über 260°
  • Elevation unter 20°
  • Wetter wechselt zu regnerisch
  • Windgeschwindigkeit über 8 m/s

OpenWeatherMap kennt dabei folgende Wetterzustände:

ZustandBeschreibung
clear-nightKlare Nacht
cloudyBewölkt
exceptionalExtremwetter
fogNebel
hailHagel
lightningGewitter
lightning-rainyGewitter und Regen
partlycloudyLeicht bewölkt
pouringStrömender Regen
rainyRain
snowySchnee
snowy-rainySchneeregen
sunnySonnenschein
windyWindig
windy-variantWindig and bewölkt
Rolladensteuerung Trigger

Anschließend wird geprüft ob die eigentlichen Bedingungen zur Steuerung aktiv sind oder ab durch SunAway getriggerd wurde. In meinem Fall wird bei einem Azimut zwischen 160° und 260° geschaltet und einer Elevation über 20°. Zusätzlich muss die Temperatur im Innenraum über 22°C liegen. Das Wetter muss sonnig und teilweise bewölkt sein, bei Windgeschwindigkeiten unter 8 m/s.

Nun kommen die eigentlichen Aktionen, welche die Automatisierung ausführt. Wenn der Auslöser SunAway war und die Rollos geschlossen sind, dann fahre sie hoch und betätige den Schalter. Ansonsten schließe die Rollos, sollten sie noch offen sein.

Rolladensteuerung Aktionen

Hier seht ihr meine Automatisierung als YAML-File, damit ihr seht was ich gemacht habe. Die Rollos werden über eine Szene angesteuert.

alias: Rollo_WZ
description: ""
trigger:
  - platform: time_pattern
    minutes: /15
  - platform: numeric_state
    entity_id:
      - sun.sun
    attribute: azimuth
    above: 260
    id: SunAway
  - platform: numeric_state
    entity_id:
      - sun.sun
    attribute: elevation
    below: 10
    id: SunAway
  - platform: state
    entity_id:
      - sensor.openweathermap_condition
    to: rainy
    id: SunAway
  - platform: numeric_state
    entity_id:
      - sensor.openweathermap_wind_speed
    above: 8
    id: SunAway
condition:
  - condition: or
    conditions:
      - condition: and
        conditions:
          - condition: numeric_state
            entity_id: sun.sun
            attribute: azimuth
            above: 160
            below: 260
          - condition: numeric_state
            entity_id: sensor.innen_temperature
            above: 22
          - condition: or
            conditions:
              - condition: state
                state: sunny
                entity_id: sensor.openweathermap_condition
              - condition: state
                state: partlycloudy
                entity_id: sensor.openweathermap_condition
          - condition: numeric_state
            entity_id: sun.sun
            attribute: elevation
            above: 10
          - condition: numeric_state
            entity_id: sensor.openweathermap_wind_speed
            below: 8
      - condition: trigger
        id:
          - SunAway
action:
  - if:
      - condition: trigger
        id:
          - SunAway
    then:
      - if:
          - condition: state
            entity_id: input_boolean.rollo_wz_geschlossen
            state: "on"
        then:
          - service: input_boolean.turn_off
            target:
              entity_id:
                - input_boolean.rollo_wz_geschlossen
            data: {}
          - service: scene.turn_on
            metadata: {}
            target:
              entity_id: scene.rolladen_hoch
    else:
      - if:
          - condition: state
            entity_id: input_boolean.rollo_wz_geschlossen
            state: "off"
        then:
          - service: input_boolean.turn_on
            target:
              entity_id:
                - input_boolean.rollo_wz_geschlossen
            data: {}
          - service: scene.turn_on
            metadata: {}
            target:
              entity_id: scene.rolladen_runter
mode: single

Script

Folgendes Script verwende ich um die Rollos manuell über einen Button zu steuern. Wenn die Rollos offen sind, wird der Schalter aktiviert und die Szene zum Schließen der Rollos aktiviert. Sind die Rollos geschlossen, ist es umgekehrt.

alias: Rolladen_WZ
sequence:
  - if:
      - condition: state
        entity_id: input_boolean.rollo_wz_geschlossen
        state: "off"
    then:
      - service: input_boolean.turn_on
        target:
          entity_id: input_boolean.rollo_wz_geschlossen
        data: {}
      - service: scene.turn_on
        metadata: {}
        target:
          entity_id: scene.rolladen_runter
    else:
      - service: input_boolean.turn_off
        target:
          entity_id: input_boolean.rollo_wz_geschlossen
        data: {}
      - service: scene.turn_on
        metadata: {}
        target:
          entity_id: scene.rolladen_hoch
mode: single
icon: mdi:roller-shade

Rolladensteuerung per Button

Rolladensteuerung Button

Folgenden Button habe ich in mein Dashboard integriert. Abhängig vom Zustand des oben erstellten Helfers, ändert sich das Symbol und die Farbe. Durch betätigen des Buttons startet das zuvor erstelltes Script und man kann die Rollos somit manuell ansteuern. Für den Button verwende ich Button Card, welches ihr per HACS einfach installieren könnt. Die manuelle Steuerung wird durch die Automatisierung überschrieben, hier könnte man mit einem zusätzlichen Schalter Abhilfe schaffen. Die SunAway Konditionen sollten aber trotzdem greifen.

type: custom:button-card
entity: input_boolean.rollo_wz_geschlossen
show_name: false
tap_action:
  action: call-service
  service: script.rolladen_wz
  data:
    entity_id: input_boolean.rollo_wz_geschlossen
state:
  - value: 'on'
    icon: mdi:roller-shade-closed
    color: red
  - value: 'off'
    icon: mdi:roller-shade
    color: green
size: 90px

Gerade bei Home Assistant gilt: Viele Wege führen nach Rom. Daher seht das hier eher als Anregung an für eure eigene, individuelle Steuerung. Die Anzahl der verschiedenen Steuerungen ist groß und jeder hat andere Bedürfnisse. Anfänglich müsst ihr auch etwas durch die Werte testen, bis ihr die für euch optimalen Einstellungen gefunden habt. Ich bin damit noch nicht fertig.

Ich hoffe ich konnte euch ein paar Anregungen liefern und ihr behaltet im Sommer einen kühlen Kopf.

Schreibe einen Kommentar