Verflixte Automatisierungsregel

SaxnPaule

Admiral
Registriert
Okt. 2010
Beiträge
8.909
Hallo Community,

ich zerbreche mir seit ein paar Tagen den Kopf zu einer Regel, welche mir nicht gelingen will. Entweder ich sehe den Wald nicht oder es gibt tatsächlich keine Möglichkeit es nach meinen Wünschen abzubilden.

Ich möchte, dass die Rollläden zu einer bestimmten Zeit hochgehen, jedoch nie bevor es hell ist. Es soll also immer der spätere der beiden Trigger greifen.

Als Auslöser benötige ich somit die Zeit und den Sonnenaufgang.
Als Bedingung benötige ich abermals beides. Jedoch bekomme ich es nicht so gestrickt, dass alles in einer einzigen Automatisierung abgebildet werden kann.

Beispiel: Öffne die Rollläden um 07:00 oder bei Sonnenaufgang:
Führt im Sommer dazu, dass die Dinger schon um 5 hochfahren => FAIL
Führt im Winter dazu, dass die Dinger um 7 hochfahren, es draußen noch dunkel ist und mir die Nachbarn auf den Frühstückstisch gucken können => FAIL

Im Sommer sollen die Rollläden also durch die Uhrzeit geriggert werden, da es ja schon um 5 hell ist, im Winter jedoch durch den Sonnenaufgang.

Vielleicht hilft eine zusätzliche Variable das Rätsel zu lösen. Irgendwas, was die spätere Uhrzeit des Vergleichs Sonnenaufgang/07:00 hält, was man dann als Bedingung setzen könnte

System ist Home-Assistant. Sollte aber nebensächlich sein.


Wer weiß Rat?
 
Ich verstehe das noch nicht ganz. Du sagst du willst immer den späteren Zeitpunkt nutzen. Willst du das erst AB 7 Uhr die Rollläden hoch fahren oder das die spätestens UM 7 Uhr hochfahren?

Wenn ich mir dein Beispiel angucke würde ich statt einer ODER zu einer UND Verknüpfung raten sowie die aktuelle Zeit muss >= (größer gleich) 7 Uhr sein.

akt. Zeit >= 7:00 UND Sonnenaufgang

Im Sommer gehen die dann Punkt 7 hoch, da es schon hell ist.
Im Winter ist es um 7 Uhr noch dunkel, die Sonne geht aber erst um 8-9 Uhr auf, daher bleiben die Rolläden noch bis dahin unten.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: UK Monkey
IF(nach7 AND hell)?

Welche Sensoren/Variablen stehen zur Verfügung?
 
  • Gefällt mir
Reaktionen: UK Monkey
Wenn (Sonnenausgang > 7 Uhr) dann Sonnenaufgang sonst 7Uhr
 
  • Gefällt mir
Reaktionen: UK Monkey
Limmbo schrieb:
Willst du das erst AB 7 Uhr die Rollläden hoch fahren oder das die spätestens UM 7 Uhr hochfahren?
Ersteres. Ab um 7 sollen sie hochfahren.

Limmbo schrieb:
Wenn ich mir dein Beispiel angucke würde ich statt einer ODER zu einer UND Verknüpfung raten sowie die aktuelle Zeit muss >= (größer gleich) 7 Uhr sein.
Richtig. Die Frage ist aber WIE.

Limmbo schrieb:
Im Sommer gehen die dann Punkt 7 hoch, da es schon hell ist.
Im Winter ist es um 7 Uhr noch dunkel, die Sonne geht aber erst um 8-9 Uhr auf, daher bleiben die Rolläden noch bis dahin unten.
Genau das ist das Ziel.

Xiaolong schrieb:
IF(nach7 AND hell)?
Ja - Rein fachlich ist mir das vollkommen klar. Nun sag mir bitte, wie ich das als Bedingung im Home-Assistant in einer Automatisierung hinterlege.

@aronlad Es gibt im Home-Assistant kein If/Else sondern nur If. Klassisches IFTTT eben.
 
Wie ist die Regel denn aktuell gestrickt? Im Prinzip gelten ja zwei Voraussetzungen:
Im Sommer willst du, dass die Rollläden frühestens um 7 Uhr hochfahren. Im Winter möchtest du, dass die Rollläden nach 7 Uhr hochfahren, wenn der Sonnenaufgang auch nach 7 Uhr liegt.

Dunno, ob sich das tatsächlich SO detailliert mit EINER Regel abbilden lässt.
 
SaxnPaule schrieb:
Ja - Rein fachlich ist mir das vollkommen klar. Nun sag mir bitte, wie ich das als Bedingung im Home-Assistant in einer Automatisierung hinterlege.

Kommt dann vielleicht doch wieder auf die verwendete Software drauf an.

Grundsätzlich ist die Bedingung dann

akt. Zeit >= 7:00 UND akt. Zeit >= Sonnenaufgang
 
  • Gefällt mir
Reaktionen: UK Monkey und SaxnPaule
SaxnPaule schrieb:
@aronlad Es gibt im Home-Assistant kein If/Else sondern nur If. Klassisches IFTTT eben.
IF Sonnenaufgang kleiner/gleich 7 Öffne um 7
IF Sonnenaufgang größer als 7 Öffne zum Sonnenaufgang

In zwei Vorgänge splitten, der es wird immer nur dann einer getriggert

edit:
klar gibt es else
Code:
script:
  - if:
      - alias: "If no one is home"
        condition: state
        entity_id: zone.home
        state: 0
    then:
      - alias: "Then start cleaning already!"
        service: vacuum.start
        target:
          area_id: living_room
    # The `else` is fully optional and can be omitted
    else:
      - service: notify.notify
        data:
          message: "Skipped cleaning, someone is home!"
 
Zuletzt bearbeitet:
SaxnPaule schrieb:
Ja - Rein fachlich ist mir das vollkommen klar. Nun sag mir bitte, wie ich das als Bedingung im Home-Assistant in einer Automatisierung hinterlege.
Vielleicht mit Node-RED in HA? Warum nicht 2 Automatisierungen?
 
SaxnPaule schrieb:
Öffne die Rollläden um 07:00 oder bei Sonnenaufgang:
Führt im Sommer dazu, dass die Dinger schon um 5 hochfahren => FAIL
Das ist doch genau das nur mit AND statt OR?
 
@aronlad Das else ist in deinem Fall die Aktion, und nicht die Bedingung. In zwei Vorgänge splitten bedeutet zwei Automatisierungen. Genau das will ich eben nicht.

@derchris In zwei Vorgänge splitten wäre einfach. Aber das ist ja nicht das Ziel. Ich habe jetzt bereits ~80 Regeln und möchte ungern, dass da noch 8 weitere hinzukommen wegen solch einer Kleinigkeit. Zumal das ja nur ein Teil des Szenarios ist. Am Wochenende, im Fall von Urlaub oder Besuch sollen die Rollläden ja auch anders reagieren, was durch zusätzliche Variablen abgebildet ist. Aber das ist hier jetzt nicht das Thema.

@kachiri Aktuell steht sie es so aus:
Code:
trigger:
  - platform: sun
    event: sunrise
    offset: 0
  - platform: time
    at: "07:00:00"
condition:
  - condition: and
    conditions:
      - condition: state
        entity_id: input_boolean.holiday_mode
        state: "off"
      - condition: time
        after: "06:59:00"
        weekday:
          - fri
          - thu
          - wed
          - tue
          - mon

@Limmbo Ich glaube das ist die Lösung. Hatte bisher immer nur die Uhrzeit als Bedingung. Lass mal durchspielen:

Trigger:
Sommer => 05:00 (getriggert durch Sonnenaufgang)
So/Wi => 07:00 (getriggert durch Uhrzeit)
Winter => 08:15 (getriggert durch Sonnenaufgang)

Bedingung: Nach 06:59 UND Nach Sonnenaufgang dann resultiert das:
Sommer 05:00 => fährt nicht hoch (korrekt)
Sommer 07:00 => fährt hoch (korrekt)
Winter 07:00 => fährt nicht hoch (korrekt)
Winter 08:15 => fährt hoch (korrekt)

Ich denke das passt.

Code:
trigger:
  - platform: sun
    event: sunrise
    offset: "00:30"
  - platform: time
    at: "07:00:00"
condition:
  - condition: and
    conditions:
      - condition: state
        entity_id: input_boolean.holiday_mode
        state: "off"
      - condition: time
        after: "06:59:00"
        weekday:
          - fri
          - thu
          - wed
          - tue
          - mon
      - condition: sun
        after: sunrise
        after_offset: "00:30"

Es war also der Wald den ich nicht gesehen hab. Vielen Dank!
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Limmbo
SaxnPaule schrieb:
Am Wochenende, im Fall von Urlaub oder Besuch sollen die Rollläden ja auch anders reagieren, was durch zusätzliche Variablen abgebildet ist. Aber das ist hier jetzt nicht das Thema.
Hast du da ein Kalender für integriert, wenn ja wäre ich an den Lösungsweg interessiert :)
 
Nein, hab da einfach nur Schalter. "Ferien" mach ich auch an, wenn eins der Kinder krank ist. Ansonsten bleibt das Zimmer ja tagsüber "kalt". Muss da also etwas flexibel bleiben.

1682581241008.png


Sollte sich aber auch recht einfach automatisieren lassen: https://www.home-assistant.io/integrations/workday/
 
Du kannst dir auch einen Template Sensor bauen, der True ist wenn die Rollladen oben sein sollten und False wenn unten.
Den kannst du dann als Trigger nehmen.
Das Problem ist aber nicht trivial, weil Sonnenaufgang und Sonnenuntergang eben je nach Jahreszeit deutliche Helligkeitsunterschiede haben. Siehe dazu auch z. B. https://de.wikipedia.org/wiki/Dämmerung#Bürgerliche,_nautische,_astronomische_Dämmerung.

Die einzige richtige Lösung ist afaik ein Helligkeitssensor.
 
Crumar schrieb:
Das Problem ist aber nicht trivial, weil Sonnenaufgang und Sonnenuntergang eben je nach Jahreszeit deutliche Helligkeitsunterschiede haben.
Genau dafür habe ich ja den Offset von einer halben Stunde drin. Da ist es in jedem Fall hell ;)

Sonnenauf- bzw. Untergang ist auch nicht mit Dämmerung zu verwechseln. Der Sonnenaufgang beginnt, wenn die Sonne den Horizont berührt und endet, wenn die gesamte Sonnenscheibe über dem Horizont steht. Das dürfte nach 3 - 5 Minuten erledigt sein.

Helligkeitssensor wäre auch kein Problem. Die Info könnte ich von einem der Bewegungssensoren bekommen. Schießt in diesem Fall aber über das Ziel hinaus.
 
Zuletzt bearbeitet:
Also ich habe auch die halbe Stunde drin, und aus meiner Sicht ist das im Winter noch zu frueh.

Ja dann, einfach Template Sensor > 7 Uhr AND > Sonnenaufgang + 30
 
Ja, klar.
Code:
{{ states('sun.sun') == 'above_horizon' and now().hour > 7}}
1682584627567.png
 
Zurück
Oben