Rollo um 06:30 oder bei Sonnenaufgang

kann mir jemand kurz Hilfestellung geben.

unsere Rollos sollen um 06:30 geöffnet werden, wenn der aktuelle Sonnenaufgang vor 06:30 liegt und wenn er nach 06:30 liegt, dann zum Zeitpunkt des Sonnenaufgangs.
Hier mal meine aktuelle Automation, die den Sonnenaufgang aber bisher noch unberücksichtigt lässt.

alias: Rollos @06:30
description: alle Rollos Mo-Fr um 06:30 öffnen
trigger:
  - platform: time
    at: "06:30:00"
condition:
  - condition: time
    weekday:
      - mon
      - tue
      - wed
      - thu
      - fri
  - condition: state
    entity_id: input_boolean.helfer_ferien
    state: "off"
action:
  - service: button.press
    data: {}
    target:
      entity_id: button.10002c9922_6

der zusätzlich eingebaute helfer_ferien, chekt noch, ob wir gerade Ferien haben - das tut hier aber nichts zur Sache -

Wenn du mit verschiedenen Bedingungen arbeiten willst, brauchst du 2 Automationen (oder du arbeitest bei Aktionen mit If/Else).

  1. Automation:
    Trigger 6:30
    Bedingung:
condition: sun
after: sunrise
  1. Automation:
    Trigger:
platform: sun
event: sunrise
offset: 0

Oder halt mit if/else und Tigger IDs:

alias: Rollos @06:30
description: alle Rollos Mo-Fr um 06:30 öffnen
trigger:
  - platform: time
    at: "06:30:00"
    id: nach_sonnenaufgang
  - platform: sun
    event: sunrise
    offset: 0
    id: zum_sonnenaufgang
condition:
  - condition: time
    weekday:
      - mon
      - tue
      - wed
      - thu
      - fri
  - condition: state
    entity_id: input_boolean.helfer_ferien
    state: "off"
action:
  - if:
      - condition: trigger
        id:
          - nach_sonnenaufgang
      - condition: sun
        after: sunrise
    then:
      - service: button.press
        data: {}
        target:
          entity_id: button.10002c9922_6
  - if:
      - condition: trigger
        id:
          - zum_sonnenaufgang
    then:
      - service: button.press
        data: {}
        target:
          entity_id: button.10002c9922_6

Ist jetzt auf die schnelle, ich hab’s nicht getestet

1 „Gefällt mir“

Man benötigt keine weitere Automation. Du kannst einfach einen (oder mehr) weiteren Auslöser hinzufügen. Bedenke nur das auch der sich an die Bedingungen richten wird.
(so wie das 2te Beispiel von @maxe )

Egal welcher Auslöser zuerst eintrifft, dieser wird dann die Automation ausführen.

Man könnte höchstens noch in der Aktion abfragen ob das Rollo bereits geöffnet wurde und somit eine weitere Ausführung der Automation unterbinden.

Durch das If wird die Aktion ja nur ausgeführt, wenn die Bedingungen stimmen.

das ist leider nicht möglich denn es gibt keine Rückmeldung, ob ein Öffnen erfolgreich war oder in welcher Position sich das Rolle aktuell befindet.

das würde mir glaube ich am besten gefallen, allerding kenn ich diese if - else - then Konstruktion nicht.

Und diese IDs: “nach_sonnenaufgang” oder “zum_sonnenaufgang” sind das Sprungziele oder der Name einer zusätzlichen Automation?

Schau dir den Code von oben an bzw. nimm ihn als Automation.

Hi,

so kannst Du es auch machen:

alias: Rollos @06:30
description: alle Rollos Mo-Fr um 06:30 öffnen
trigger:
  - platform: sun
    event: sunrise
    offset: 0
condition:
  - condition: time
    weekday:
      - mon
      - tue
      - wed
      - thu
      - fri
  - condition: state
    entity_id: input_boolean.helfer_ferien
    state: "off"
action:
  - if:
      - condition: time
        before: "06:30:00"
    then:
      - wait_for_trigger:
          - platform: time
            at: "06:30:00"
  - service: button.press
    data: {}
    target:
      entity_id: button.10002c9922_6
mode: single

Wenn es zum Sonnenaufgang noch vor 6:30 Uhr ist, dann wird bis 6:30 Uhr gewartet, ansonsten gehen die Rollos gleich hoch.

danke für Deinen Vorschlag, das erscheint mir die einfachste Variante zu sein. Werde ich mal so eingeben, ob es funktioniert werde ich aber erst feststellen können, wenn der Herbst/Winter kommt. Aktuell ist der Sonnenaufgang um 06:09 und dann kommt nochmal die Zeitumstellung.

Mich fasziniert immer wieder neu, was man mit HA alles machen kann im Vergleich zu meinem alten SmartHome.

Auf lange Sicht möchte ich vielleicht eine Sache noch verbessern: Den 433MHz Sender. Der läuft nicht immer optimal, was aber sicherlich an diesen sonoff RF bridges liegt. Gibt es dafür eine bessere Alternative?

Ja, HA macht schon Spaß. Ich hab selbst keine 433-MHz-Geräte und kenne mich mit der entsprechenden Hardware für HA nicht aus. Wär vielleicht was für einen neuen Thread.

jetzt komme ich hierauf zurück, diese Automation war bisher noch im Ferien-Programm-Modus, jetzt soll sie korrekt laufen, was sie nicht tut, denn es passiert gar nichts.

Nochmals das Szenario:
bei Sonnenaufgang
aber nur wenn es Di, Mi oder Do ist
aber nur wenn es keine Ferien sind
aber nur wenn es kein Feiertag ist

eine Aktion bedingt ausführen
wenn es vor 6:30 ist

öffne alle Rollos.

heute war Sonnenaufgang um 07:23, die Rollos sagen, daß sie hoch gegangen sind. Der Trace von der Automation auch…

trotzdem waren sie unten … entweder stimmt die Programmierung nicht oder gerade zu der Zeit waren beide Sonoff RF bridges, die per 433MHz die Rollos steuern unpässlich :slight_smile:

In deiner Automation wird ja bei Sonnenaufgang getriggert. Aber nur vor 6:30 Uhr die Aktion ausgeführt. Kann also für 7:23 Uhr nicht passen.

Deine Anforderung hast du ja so gestellt:

Trigger:
Sunrise

Bedingungen:
Di, Mi, Do. vor 6:30 Uhr
input_boolean.helfer_ferien off
Workday-Sensor on

Aktion:
Wenn Sonnenaufgang vor 6:30 Uhr, dann bis 6:30 Uhr warten und button drücken.

Nach 6:30 Uhr passiert also gar nix mehr.

Du bräuchtest imho 2 Trigger mit 2 Optionen:

  1. Option um 6:30 Uhr, aber nur wenn die Sonne schon aufgegangen ist
  2. Option bei Sonnenaufgang, aber nur nach 6:30 Uhr
alias: Rollos @06:30
description: alle Rollos Mo-Fr um 06:30 öffnen
trigger:
  - platform: sun
    event: sunrise
    offset: 0
    id: Sonnenaufgang
  - platform: time
    at: "06:30:00"
    id: Uhrzeit
condition:
  - condition: time
    weekday:
      - tue
      - wed
      - thu
  - condition: state
    entity_id: input_boolean.helfer_ferien
    state: "off"
  - condition: state
    entity_id: binary_sensor.workday_sensor
    state: "on"
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Uhrzeit
          - condition: sun
            after: sunrise
        sequence:
          - data: {}
            target:
              entity_id: button.10002c9922_6
            action: button.press
      - conditions:
          - condition: trigger
            id:
              - Sonnenaufgang
          - condition: time
            after: "06:29:59"
        sequence:
          - data: {}
            target:
              entity_id: button.10002c9922_6
            action: button.press
mode: single

Automatisierung ist ungetestet.

bist Du sicher?

bei Sonnenaufgang um 07:23 wird das mit dem Warten falls der Sonnenaufgang vor 06:30 war doch einfach übersprungen, oder nicht
der Trace oben zeigt zumindest, daß die Autonation bis Ende durchgelaufen ist und die Rollos hoch gefahren sind.
Ich warte mal ab, was morgen passiert …

Wenn du es nach @HeikoBauer Vorlage machen willst, fehlt nach dem Warte auf Trigger noch die Aktion. Und zusätzlich die Else Aktion:

alias: Rollos @06:30
description: alle Rollos Mo-Fr um 06:30 öffnen
trigger:
  - platform: sun
    event: sunrise
    offset: 0
condition:
  - condition: time
    weekday:
      - tue
      - wed
      - thu
  - condition: state
    entity_id: input_boolean.helfer_ferien
    state: "off"
action:
  - if:
      - condition: time
        before: "06:30:00"
    then:
      - wait_for_trigger:
          - platform: time
            at: "06:30:00"
      - data: {}
        target:
          entity_id: button.10002c9922_6
        action: button.press
    else:
      - data: {}
        target:
          entity_id: button.10002c9922_6
        action: button.press
mode: single

ja das stimmt, es gibt kein “Else” was doch dazu führt, daß zur ersten Aktion gesprungen wird…

bitte mal den o.g. Trace anschauen, da sieht man es auch.

Ihr macht das ganz schön kompliziert?!
Mit warten auf Trigger würde ich erst gar nicht arbeiten. Und Auswahl mit 2 Optionen ist auch nicht notwendig. Ist ja in beiden Fällen die gleiche Aktion.

Rollladen morgens bei Sonnenaufgang, jedoch nicht vor 06:30 öffnen:

description: ''
mode: single
trigger:
  - platform: state
    entity_id:
      - sun.sun
    to: above_horizon
  - platform: time
    at: '06:30:00'
condition:
  - condition: time
    weekday:
      - tue
      - wed
      - thu
  - condition: state
    entity_id: input_boolean.helfer_ferien
    state: "off"
  - condition: state
    entity_id: binary_sensor.workday_sensor
    state: "on"
  - condition: time
    after: '06:30:00'
  - condition: state
    entity_id: sun.sun
    state: above_horizon
action:
  - data: {}
    target:
      entity_id: button.10002c9922_6
    action: button.press

Gruß
Osorkon

und Du machst es zu einfach :grinning:
in Deiner Automation passiert nichts, wenn der Sonnenaufgang nach 06:30 passiert …
kann ich aber gerne mal ausprobieren …

Selbstverständlich passier was!
Der Rolladen fährt hoch, bzw. der Button wird gedrückt.

Auslöser: Sone steigt über den Horizont.

Bedingung: nach 06:30 und Sonnen steht über dem Horizont, sind beide erfüllt. :wink:`

Gruß
Osorkon

@Osorkon viele Wege führen nach Rom.
In deiner Automatisierung ist aber auch noch ein kleiner Fehler … Trigger 6:30, Bedingung after 6:30 :stuck_out_tongue_winking_eye:

Was ist damit verkehrt?

Gruß
Osorkon

Um 6:30:00 kann es nicht nach 6:30:00 sein oder vertue ich mich da?