Automation Markisen Steuerung/Blueprint gesucht

Ich bin auf der Suche meine Markise zu steuern. Wind/Regensensor Netatmo sowie Helligkeitssensor ist vorhanden. Evtl. die Wetterdaten noch dazu einbauen wär schön.
Da ich vom Homee umsteige und ich es da mit vielen Automationen bisher habe hier die Frage ob es was eleganteres gibt.

Danke!

Grundsätzlich würde ich sagen, kannst Du alles mit einer Automatisierung abbilden, was Du vom Ablauf her logisch beschreiben kannst.

Wenn Du mir mal beschreibst, was wann und wie ablaufen soll, kann ich mir mal an einem BluePrint versuchen.

Eine große Auswahl an Blueprints findest Du hier.

Einfach mal suchen, vielleicht findest Du da was passendes.

Gruß
Osorkon

Also folgendes:

  • Markise nach Helligkeit ausfahren/einfahren
  • Evtl auch nach Wettervorhersage auffahren oder nicht(Schnee/Wind)
  • Bei Wind/Regen einfahren bzw. nicht ausfahren
  • Ausschalter für Wartung (oder Automation deaktiviert reicht auch)

Muss es den unbedingt ein Blueprint sein?
Wieviele Markisen hast Du den?
Normalerweise setzt Du einen Blueprint ein, wenn ein und die gleiche Aufgabe mehrmals Verwendung findet.
Als Bsp. die Rollladen Steuerung

Hier mal eine Bsp. Automatisierung:

alias: Markise bei Wind und Regen einfahren
description: ""
mode: single
triggers:
  - entity_id: sensor.ws_wind_gust
    above: 26
    id: wind
    trigger: numeric_state
  - entity_id: binary_sensor.regenmelder_smart_implant_regen
    to: "on"
    id: regen
    trigger: state
conditions:
  - condition: state
    entity_id: cover.markise
    state: open
actions:
  - target:
      entity_id: cover.markise
    data: {}
    action: cover.close_cover
  - choose:
      - conditions:
          - condition: trigger
            id: wind
        sequence:
          - data:
              message: Markise wird automatisch eingefahren.
              title: Windböen über 25km/h!
            action: notify.telegram_all
      - conditions:
          - condition: trigger
            id: regen
        sequence:
          - data:
              message: Markise wird automatisch eingefahren.
              title: Es fängt an zu regnen!
            action: notify.telegram_all
    default: []

Damit die Markise bei wechselnder Bewölkung nicht ständig ein- und ausfahren tut, solltest Du nicht bei jeder Helligkeitänderung die Markisse ansteuern, sondern z.B. Wenn Helligkeit für x min über X bzw. unter Y als Auslöser verwenden.

Eine Vorhersage würde ich nicht empfehlen, sondern die realen Wetterbedingungen verwenden. Im Winter würde ich die Sonne erst gar nicht aussperren. Also eventuell das Ausfahren nur wenn Außentemperatur höher als x.

Gruß
Osorkon

Die letzte Zeit nutze ich bei solchen Fragen gerne ChatGPT - das liefert oft erstaunlich gute Ergebnisse. Hier z.B den Blueprint:

blueprint:
  name: Markisensteuerung basierend auf Wetterbedingungen
  description: Steuerung der Markise abhängig von Sonnenstand, Windgeschwindigkeit und Regen.
  domain: automation
  input:
    sun_sensor:
      name: Sonnenstand-Sensor
      description: Wähle den Sensor aus, der den Sonnenstand misst (z. B. Lux oder Position).
      selector:
        entity:
          domain: sensor
    wind_sensor:
      name: Windgeschwindigkeit-Sensor
      description: Wähle den Sensor für die Windgeschwindigkeit.
      selector:
        entity:
          domain: sensor
    rain_sensor:
      name: Regensensor
      description: Sensor, der anzeigt, ob es regnet (optional).
      selector:
        entity:
          domain: sensor
          optional: true
    cover_device:
      name: Markise
      description: Wähle das Gerät zur Steuerung der Markise.
      selector:
        entity:
          domain: cover
    lux_threshold:
      name: Sonnenlicht-Schwellenwert
      description: Schwellenwert (Lux), ab dem die Markise ausgefahren wird.
      default: 20000
      selector:
        number:
          min: 0
          max: 100000
          unit_of_measurement: "lx"
    wind_threshold:
      name: Maximale Windgeschwindigkeit
      description: Maximale Windgeschwindigkeit (m/s), bevor die Markise eingefahren wird.
      default: 10
      selector:
        number:
          min: 0
          max: 50
          unit_of_measurement: "m/s"
trigger:
  - platform: state
    entity_id: !input sun_sensor
  - platform: state
    entity_id: !input wind_sensor
  - platform: state
    entity_id: !input rain_sensor
condition: []
action:
  - choose:
      - conditions:
          - condition: numeric_state
            entity_id: !input sun_sensor
            above: !input lux_threshold
          - condition: numeric_state
            entity_id: !input wind_sensor
            below: !input wind_threshold
          - condition: state
            entity_id: !input rain_sensor
            state: "off"
        sequence:
          - service: cover.open_cover
            target:
              entity_id: !input cover_device
      - conditions:
          - condition: numeric_state
            entity_id: !input wind_sensor
            above: !input wind_threshold
        sequence:
          - service: cover.close_cover
            target:
              entity_id: !input cover_device
      - conditions:
          - condition: state
            entity_id: !input rain_sensor
            state: "on"
        sequence:
          - service: cover.close_cover
            target:
              entity_id: !input cover_device
  default: []

man kann ChatGPT auch fragen, den Code zu erweitern:

  • Zeitsteuerung hinzufügen: Automatisch einfahren bei Sonnenuntergang.
  • Manuelle Steuerung: Option für manuelles Übersteuern der Automation.
  • Mehr Bedingungen: Hinzufügen von Temperatur oder Wettervorhersagen.
    Viel Erfolg beim Umsetzen

Ich hab mich auch mal mit KI versucht bei Microsoft Copilot, echt erstaundlich, hier Die Automation aber diese sagt beim Speichern diese Fehlermeldung"Message malformed: extra keys not allowed @ data[‚automation‘]". hier die Automation und Hilfee :):

automation:
  - alias: "Markise einfahren bei Sturm oder Regen"
    trigger:
      - platform: numeric_state
        entity_id: sensor.windmesser_windgeschwindigkeit
        above: 14  # Passe diesen Wert an deine Anforderungen an
      - platform: numeric_state
        entity_id: sensor.regensensor_niederschlagsmenge_letzte_stunde
        above: 0  # Passe diesen Wert an deine Anforderungen an
      - platform: numeric_state
        entity_id: sensor.windmesser_boenstarke
        above: 30  # Passe diesen Wert an deine Anforderungen an
    condition:
      - condition: sun
        after: sunrise
        before: sunset
    action:
      - service: cover.close_cover
        target:
          entity_id: switch.markise_wintergarten_einfahren_switch_0
  - alias: "Markise ausfahren bei gutem Wetter"
    trigger:
      - platform: numeric_state
        entity_id: sensor.windmesser_windgeschwindigkeit
        below: 12
        for:
          minutes: 30
      - platform: numeric_state
        entity_id: sensor.regensensor_niederschlagsmenge_letzte_stunde
        below: 0.1
        for:
          minutes: 30
      - platform: numeric_state
        entity_id: sensor.windmesser_boenstarke
        below: 15
        for:
          minutes: 30
    condition:
      - condition: sun
        after: sunrise
        before: sunset
    action:
      - service: cover.open_cover
        target:
          entity_id: switch.markise_wintergarten_ausfahren_switch_0
 - alias: "Markise manuell ausfahren"
    trigger:
      - platform: state
        entity_id: input_boolean.markise_wintergarten_ausfahren_virtuell
        to: "on"
    condition:
      - condition: sun
        after: sunrise
        before: sunset
    action:
      - service: cover.open_cover
        target:
          entity_id: switch.markise_wintergarten_ausfahren_switch_0
  - alias: "Markise manuell einfahren"
    trigger:
      - platform: state
        entity_id: input_boolean.markise_wintergarten_einfahren_virtuell
        to: "on"
    action:
      - service: cover.close_cover
        target:
          entity_id: witch.markise_wintergarten_einfahren_switch_0
    trigger:
      - platform: sun
        event: sunset
    action:
      - service: cover.close_cover
        target:
          entity_id: switch.markise_wintergarten_einfahren_switch_0

Wo hast Du den versucht den Code einzufügen?
Doch nicht im grafischen Editor und dort in der yaml Ansicht?!

Den da kann es schon mal nicht funktionieren, da es sich um mehrere Automatisierungen handelt.

Wenn Du mir bis heute Abend Zeit lässt, bin nämlich grad unterwegs und am Handy ist es eine Qual, kann ich die das ganze zur einer Automatisierung zusammenfassen.

Gruß
Osorkon

:smiling_face_with_tear: Doch genau da - Grafische Ansicht und auf yaml umgestellt…

wo füg ich das ein? configuaretion.yaml?
hier wärde der passende yaml code mit den richtigen edentiitäten:

automation:
  - alias: "Markise einfahren bei Sturm oder Regen"
    trigger:
      - platform: numeric_state
        entity_id: sensor.windmesser_windgeschwindigkeit
        above: 14  # Passe diesen Wert an deine Anforderungen an
      - platform: numeric_state
        entity_id: sensor.regensensor_niederschlagsmenge_letzte_stunde
        above: 1  # Passe diesen Wert an deine Anforderungen an
      - platform: numeric_state
        entity_id: sensor.windmesser_boenstarke
        above: 30  # Passe diesen Wert an deine Anforderungen an
    action:
      - service: homeassistant.turn_on
        target:
          entity_id: switch.markise_wintergarten_einfahren_switch_0
  - alias: "Markise ausfahren bei gutem Wetter"
    trigger:
      - platform: numeric_state
        entity_id: ssensor.windmesser_windgeschwindigkeit
        below: 12
        for:
          minutes: 30
      - platform: numeric_state
        entity_id: sensor.regensensor_niederschlagsmenge_letzte_stunde
        below: 0.1
        for:
          minutes: 30
      - platform: numeric_state
        entity_id: sensor.windmesser_boenstarke
        below: 5
        for:
          minutes: 30
    condition:
      - condition: sun
        after: sunrise
        before: sunset
    action:
      - service: homeassistant.turn_on
        target:
          entity_id: switch.markise_wintergarten_ausfahren_switch_0
  - alias: "Markise manuell einfahren"
    trigger:
      - platform: state
        entity_id: input_boolean.markise_wintergarten_einfahren_virtuell
        to: "on"
    action:
      - service: homeassistant.turn_on
        target:
          entity_id: switch.markise_einfahren
  - alias: "Markise manuell ausfahren"
    trigger:
      - platform: state
        entity_id: input_boolean.markise_wintergarten_ausfahren_virtuell
        to: "on"
    condition:
      - condition: sun
        after: sunrise
        before: sunset
    action:
      - service: homeassistant.turn_on
        target:
          entity_id: sswitch.markise_wintergarten_ausfahren_switch_0
  - alias: "Markise einfahren bei Sonnenuntergang"
    trigger:
      - platform: sun
        event: sunset
    action:
      - service: homeassistant.turn_on
        target:
          entity_id: sinput_boolean.markise_wintergarten_einfahren_virtuell

hier wärde der passende yaml code:

Hier mal die Variante alles in einer Automatisiwrung zusammengefasst
Den Code einfach in der GUI in der YAML Ansicht einfügen.
Danach kannst Du in den grafischen Editor zurück wechseln und Dir den Aufbau anschauen.
Speicher nicht vergessen. :grinning:

description: ""
mode: single
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.windmesser_windgeschwindigkeit
    above: 14
    id: einfahren
  - trigger: numeric_state
    entity_id:
      - sensor.regensensor_niederschlagsmenge_letzte_stunde
    above: 1
    id: einfahren
  - trigger: numeric_state
    entity_id:
      - sensor.windmesser_boenstarke
    above: 30
    id: einfahren
  - trigger: numeric_state
    entity_id:
      - sensor.windmesser_windgeschwindigkeit
    id: ausfahren
    for:
      hours: 0
      minutes: 30
      seconds: 0
    below: 12
  - trigger: numeric_state
    entity_id:
      - sensor.regensensor_niederschlagsmenge_letzte_stunde
    id: ausfahren
    for:
      hours: 0
      minutes: 30
      seconds: 0
    below: 0.1
  - trigger: numeric_state
    entity_id:
      - sensor.windmesser_boenstarke
    id: ausfahren
    for:
      hours: 0
      minutes: 30
      seconds: 0
    below: 5
  - trigger: state
    entity_id:
      - input_boolean.markise_wintergarten_einfahren_virtuell
    to: "on"
    id: einfahren
    from: "off"
  - trigger: state
    entity_id:
      - input_boolean.markise_wintergarten_ausfahren_virtuell
    to: "on"
    from: "off"
    id: ausfahren
  - trigger: sun
    event: sunset
    offset: 0
    id: einfahren
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - einfahren
        sequence:
          - action: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: switch.markise_wintergarten_einfahren_switch_0
      - conditions:
          - condition: trigger
            id:
              - ausfahren
          - condition: sun
            before: sunset
            after: sunrise
          - condition: numeric_state
            entity_id: sensor.regensensor_niederschlagsmenge_letzte_stunde
            below: 0.1
          - condition: numeric_state
            entity_id: sensor.windmesser_boenstarke
            below: 5
          - condition: numeric_state
            entity_id: sensor.windmesser_windgeschwindigkeit
            below: 12
        sequence:
          - action: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: switch.markise_wintergarten_ausfahren_switch_0

BTW. Warum verwendest Du für Deine Markise einen Switch und keinen Roller Shutter?

Gruß
Osorkon

1 „Gefällt mir“

Weil ich eine Somfy habe und diese jeweils mit einem Shelly ansteuere für ausfahren und einfahren je einen damit das Alexa kann, in etwa
so

Ich hab die Bedingung bei deinem yaml Code noch verschoben auf ausfahren sonst fährt die Markise nicht ein wenn es unter 5 grad hat

alias: Markisensteuerung
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.windmesser_windgeschwindigkeit
    above: 10
    id: einfahren
  - trigger: numeric_state
    entity_id:
      - sensor.regensensor_niederschlagsmenge_letzte_stunde
    above: 0.1
    id: einfahren
  - trigger: numeric_state
    entity_id:
      - sensor.windmesser_boenstarke
    above: 25
    id: einfahren
  - trigger: numeric_state
    entity_id:
      - sensor.regensensor_niederschlagsmenge_letzte_stunde
    id: ausfahren
    for:
      hours: 0
      minutes: 30
      seconds: 0
    below: 0.1
  - trigger: numeric_state
    entity_id:
      - sensor.windmesser_boenstarke
    id: ausfahren
    for:
      hours: 0
      minutes: 30
      seconds: 0
    below: 15
  - trigger: numeric_state
    entity_id:
      - sensor.windmesser_windgeschwindigkeit
    id: ausfahren
    for:
      hours: 0
      minutes: 30
      seconds: 0
    below: 8
  - trigger: state
    entity_id:
      - input_boolean.markise_wintergarten_einfahren_virtuell
    to: "on"
    id: einfahren
    from: "off"
  - trigger: state
    entity_id:
      - input_boolean.markise_wintergarten_ausfahren_virtuell
    to: "on"
    from: "off"
    id: ausfahren
  - trigger: numeric_state
    entity_id:
      - sensor.regensensor_niederschlagsmenge_letzte_stunde
    id: einfahren
    below: 85
  - trigger: numeric_state
    entity_id:
      - sensor.helligkeit_wintergarten
    above: 95
    id: ausfahren
  - trigger: sun
    event: sunset
    offset: 0
    id: einfahren
  - trigger: numeric_state
    entity_id:
      - sensor.thermostat_wintergarten_wohnzimmer_air_temperature
    above: 24
    id: ausfahren
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - einfahren
        sequence:
          - type: turn_on
            device_id: 5a3bd4d2a868afc9386b98bb5aff17ca
            entity_id: c96cbde0244409e59285da4e2bfcf122
            domain: switch
      - conditions:
          - type: is_temperature
            condition: device
            device_id: f004c75b57f28d4e6e2105c55a6a306e
            entity_id: dbebdd9c7202ca1496a5cb26d274f5d3
            domain: sensor
            above: 5
            enabled: true
          - condition: trigger
            id:
              - ausfahren
          - condition: sun
            before: sunset
            after: sunrise
          - condition: numeric_state
            entity_id: sensor.regensensor_niederschlagsmenge_letzte_stunde
            below: 0.1
          - condition: numeric_state
            entity_id: sensor.windmesser_boenstarke
            below: 15
          - condition: numeric_state
            entity_id: sensor.windmesser_windgeschwindigkeit
            below: 12
        sequence:
          - type: turn_on
            device_id: 1a00f241ecdf53f420800fe65a4b68b0
            entity_id: a71b91c34696dd47620e4cf6c311ccb5
            domain: switch
mode: single

Habe mir erlaubt Dein YAML Code als Code zu formatieren.

Hatte in der Automatisierung keinen Temperatur Sensor verwenden.
Weder beim Ein noch beim Ausfahren.

Du hast noch weiter Auslöser hinzugefügt, diese aber nicht als Bedingung aufgeführt, ist das so gewollt?

Auch würde ich Dir empfehlen keinen Device ID’s zu verwenden, sondern nur Entitäten und Aktionen.

Gruß
Osorkon

stimmt, hab die Temperatur hinzugefügt dass dieser die MArkise ab 24 Grad im Wohnzimmer ausfährt und keine Bedingung dazu da ja die anderen Bedingungen passen müssen damit diese ausfährt oder versteh ich das falsch?

Die Device IDs macht HA automatisch wenn ich die Gafische Oberfläche in den Automationen verwende. Das ist dann bei allen so erstelleten Automationen von mir so. Kann ich das irgendwo umstellen oder muss ich manuell yamln? :slight_smile:
Ich hab mal die letzte Zeile von

        sequence:
          - type: turn_on
            device_id: 1a00f241ecdf53f420800fe65a4b68b0
            entity_id: a71b91c34696dd47620e4cf6c311ccb5
            domain: switch

auf

 sequence:
          - type: turn_on
            entity_id: switch.markise_wintergarten_ausfahren
            domain: switch

geändert und dann kann ichs wegen Fehler:
Message malformed: Unable to determine action @ data[‚actions‘][0][‚choose‘][1][‚sequence‘][0]

nicht speichern. Wie setz ich das dann richtig ein?

Weil Du das Gerät und keine Aktion auswählen tust.

Dann die Entität auswählen.

In Yaml sieht das dann so aus:

actions:
  - action: switch.turn_on
    metadata: {}
    data: {}
    target:
      entity_id: switch.abzugshaube

Gruß
Osorkon

und wie bekomme ich das als Auslöser hin?

Wenn ein Schalter eingeschaltet wird und Garagentor offen:

alias: Feuerwehreinsatz läuft
description: ""
triggers:
  - type: turned_on
    device_id: 61d3527872c89744f4f12ff8ef32da2e
    entity_id: 8ade30781762e0c419234837bc16813d
    domain: light
    trigger: device
conditions:
  - type: is_not_open
    condition: device
    device_id: ad73afca137d667fe6e4407da635d4d3
    entity_id: 530c28d8de3b1423d07512781793caea
    domain: binary_sensor

Was ist das Problem wenn hier Device ID’s verwendet werden?

Du hast das Gerät ausgewählt!!
Wähle eine Entität aus!

Gruß
Osorkon

ah jetzt - verstanden, danke! Dann ändere ich mal die 90 schon erstellten Automationen - soviel zu vorher :slight_smile:

Falls noch jemand Somfy hat und diese in HA integrieren will lokal
hier die Anleizung dazu