Automation getriggert über Sonnen Auf,- und Untergang funktioniert auf einmal nicht mehr

Guten Morgen Zusammen,

ich hatte mir vor einigen Zeit zwei Automationen geschrieben, die fürs Wohnzimmer und Küche dasselbe machen sollen:

Bei Sonnenuntergang +/- Offest Rollos runter af X%
Bei Sonnenaufgang +/- Offest Rollos auf.

Es hat sogar funktioniert, bis vor einiger Zeit.
Ich bin nicht sicher, ob das manuelle Zumachen der Rollos im Vorfeld die Automatio beeinträchtigt.

Ich hatte gestern Nacht gegen 24.00 die Bedingung
"Ausgelöst durch “es wird dinkel” getestet (RMT->Testen)
und diese Bedingung wurde komischerweise nicht erfüllt, egal wie ich mit dem Offset gespielt habe. Stockdunkel war es alle Mal.

So sieht die Automation aus. Fällt Euch etwas auf, was die Automation zerstört?

Wohnzimmer:

alias: Rollos Wohnzimmer bei Sonnenunter,- und Aufgang
description: Fährt die Rollos WZ runter bei Sonnenuntergang und Aus bei Sonnenaufgang
trigger:
  - platform: sun
    event: sunset
    offset: "00:10"
    id: es wird dunkel
  - platform: sun
    event: sunrise
    id: es wird hell
    offset: "-01:00"
condition: []
action:
  - if:
      - condition: trigger
        id:
          - es wird dunkel
      - condition: state
        entity_id: cover.rollos_wohnzimmer
        state: open
    then:
      - service: cover.set_cover_position
        data:
          position: 50
        target:
          entity_id:
            - cover.shellyplus2pm_a0a3b35b2714
            - cover.shellyplus2pm_a0a3b3e57394
  - if:
      - condition: trigger
        id:
          - es wird hell
    then:
      - service: cover.open_cover
        data: {}
        target:
          entity_id:
            - cover.shellyplus2pm_a0a3b35b2714
            - cover.shellyplus2pm_a0a3b3e57394
mode: single

Küche:

alias: Rollos Küche bei Sonnenunter,- und Aufgang
description: Fährt die Rollos Küche runter bei Sonnenuntergang und Aus bei Sonnenaufgang
trigger:
  - platform: sun
    event: sunset
    offset: "00:20"
    id: es wird dunkel
  - platform: sun
    event: sunrise
    offset: "00:00"
    id: es wird hell
condition: []
action:
  - if:
      - condition: trigger
        id:
          - es wird dunkel
      - condition: device
        device_id: 1a0fd4d4b569a8b53a442bbcfc2d6768
        domain: cover
        entity_id: 1b489ccc1c5a867f31c2801b955aabba
        type: is_open
    then:
      - service: cover.set_cover_position
        target:
          entity_id: cover.shellyplus2pm_a0a3b36852f4
        data:
          position: 40
  - if:
      - condition: trigger
        id:
          - es wird hell
      - condition: device
        device_id: 1a0fd4d4b569a8b53a442bbcfc2d6768
        domain: cover
        entity_id: 1b489ccc1c5a867f31c2801b955aabba
        type: is_position
        above: 2
    then:
      - service: cover.open_cover
        target:
          entity_id: cover.shellyplus2pm_a0a3b36852f4
        data: {}
mode: single

Danke und Gruß

Alex.

Was meinst Du mit getestet?!
Deine Automatisierung löst genau 2 mal am Tag aus, nicht mehr und nicht weniger.

  • Sonnenuntegang + 00:10
  • Sonnenaufgang - 01:00

Wenn Du die Automatisierung manuell ausführen tust, wird immer nichts passieren, da der Trigger fehlt.

Gruß
Osorkon

getestet mit:

Ich dachte mir, wenn ich nach dem Sonnenuntergang teste, soll es immer erfüllt sein, weil danach…
Wenn ich Dich richtig verstehe kann diese Bedienung nur ein Mal erfüllt sein, und zwar Sonnenuntegangszeit +/- eingestellter Offset. Richtig?

OK, dann weiss ich nun warum der Test misslungen ist.
Aber warum funktioniert denn die Automation nicht?

Rollos bleiben einfach oben. Das Lustige ist, das hat früher funktioniert.
Das einzige was dazu kam, ist vielleicht die Automation zum Rollos schließen und öffnen bei einem gewissen Sonnenstand im Wohnzimmer.
Aber zum Zeitpunkt des Sonnenunterganges ist das Rollo ja bereits auf.

VG

Alex

Was sagt den der Ablauf (Trace) der Automatisierung dazu?

Wird nicht ausgelöst oder wird nicht ausgeführt?

Gruß
Osorkon

Oh oh.


getestet habe ich gegen 24.00

Ich habe dringenden Verdacht, dass ich schon und dann noch geschlafen habe, als die Ausführung stattfand.

Ich gucke mal, wann heute die Sonne untergeht und Morgen aufgeht und ändere Offset, dass ich die Aktion miterleben kann.

Danke für den Hinweis mit den Traces. Wusste ich noch nicht :handshake:t3:

PS.

Hier noch in der Reihenfolge Rückwährts:
entweder lese ich das falsch oder hier ist etwas durcheinander.
Wenn es dunkel ist sollen Rolls runter, wenn es hell wird dann wieder hoch





Du hast zwei IF Abfragen hintereinander.
Wenn du dir den Trace ansiehst, kannst du erkennen, dass jeweisl nur eine der beiden IF durchlaufen wird, die andere nicht.

Als Beispiel mal den hier:

Der Trigger war das “es wird hell” und daher wird die Automation um 4:18 ausgelöst und die zweite IF durchlaufen. Dort wird bei der Prüfung dann true stehen.

Anstelle der beiden IF hintereinander könntest du auch eine “Auswählen (Choose)” Aktion verwenden.

Übrigens: Ein Offset von z.B. “00:20” sind 20 Sekunden. Für 20 Minuten müsstest du “00:20:00” schrieben.

Mann kann so viele Wenn Dann Bausteinen wie mann will hintereinander verwenden.

Es wird jede einzelne Wenn Dann durchlaufen. Und wenn die Bedingung erfüllt ist (Wenn), die zugehörige Aktion (Dann) ausgeführt.

Da die Bedingung in diesem Fall die Trigger ID ist, kann immer nur eine der Wenn Dann Aktionen zum tragen kommen.
Ob zwei mal Wenn Dann oder Auswählen und 2 Optionen. Beides führt zum Ziel.

Wobei bei Auswählen immer nur eine der Optionen ausgeführt wird, sobald die Bedingung erfüllt ist. Danach werden die restlichen Optionen nicht mehr durchlaufen. Es wird von oben nach unten abgearbeitet. Das würde aber in diese Fall keinen Rolle spielen.

Gruß
Osorkon

@Osorkon also, deutet deine Erklärung darauf hin, dass es bei mir richtig sein könnte.
Siehst Du irgendwo einen Fehler, oder erscheinen die Traces plausibel?
Danke und VG
Alex

EDIT.

Habe beide Aktionen, WZ und Küche auf dieselbe Uhrzeit eingestellt (Sonnenuntergang-Offset).

In Wohnzimmer sind Rollos obern geblieben, in der Küche hingegen gingen sie tatsächlich runter.
Was ist den der Unterschied? (für mich nur in dem wie der Befehl zum Schließen aussieht)


In beiden Fällen wird die Aktion ausgeführt, nur scheint Dein Rolladen nicht zu reagieren.

Kannst die Rollläden sonst problemlos bedienen und die gewünschte Position fahren?

Gruß
Osorkon

Hinten auf Trace-Zeitleiste kannst Du Schritt für Schritt nachvollziehen was Deine Automatisierung warum getan hat…

1 „Gefällt mir“

Ja, mit Alexa z.B., hat aber mit HA nichts zu tun vermutlich, da läuft das Befehl dran vorbei.
Ich habe eine andre Aktion für Rollos WZ, die die Rollos nach der Sonneneinstrahlung runter fährt auf gewisse Position, diese funktioniert (wieder, nachdem Open Weather Map API auf 3.0 aktualisiert wurde).
Hier die Automation:

alias: Rollo_WZ test
description: Test
trigger:
  - platform: time_pattern
    minutes: /15
  - platform: numeric_state
    entity_id:
      - sun.sun
    attribute: azimuth
    above: 283
    id: SunAway
  - platform: numeric_state
    entity_id:
      - sun.sun
    attribute: elevation
    below: 13
    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: 250
            below: 283
          - condition: numeric_state
            entity_id: sensor.innen_temperature
            above: 22
            enabled: false
          - 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: 13
          - condition: numeric_state
            entity_id: sensor.openweathermap_wind_speed
            below: 8
            enabled: false
          - condition: state
            entity_id: input_boolean.sonnen_position_steuerung
            state: "on"
      - condition: trigger
        id:
          - SunAway
action:
  - if:
      - condition: trigger
        id:
          - SunAway
    then:
      - if:
          - condition: state
            state: "on"
            entity_id: input_boolean.rollo_wz
        then:
          - service: input_boolean.turn_off
            target:
              entity_id:
                - input_boolean.rollo_wz_geschlossen
            data: {}
          - device_id: 1c0c0612bae425b39181dc6cd7728433
            domain: cover
            entity_id: a184aba36596841330dcdbf9d3b0a3cd
            type: set_position
            position: 100
          - device_id: 57fad283c2bbdeace39789c86d465318
            domain: cover
            entity_id: cb5788647a6c916439e13cc84f0b3507
            type: set_position
            position: 100
    else:
      - if:
          - condition: state
            entity_id: input_boolean.rollo_wz
            state: "off"
        then:
          - service: switch.turn_on
            metadata: {}
            data: {}
            *target:*
*              entity_id: input_boolean.rollo_wz*
*          - device_id: 1c0c0612bae425b39181dc6cd7728433*
*            domain: cover*
*            entity_id: a184aba36596841330dcdbf9d3b0a3cd*
*            type: set_position*
*            position: 57*
*          - device_id: 57fad283c2bbdeace39789c86d465318*
*            domain: cover*
*            entity_id: cb5788647a6c916439e13cc84f0b3507*
*            type: set_position*
*            position: 57*
mode: single

Ich habe die Zeilen markiert, die das ausführen.
Die Automation habe ich jedoch woanders aufgeschnappt und auf mich angepasst :face_with_hand_over_mouth:

Habe nun die Ansteuerung der Rollos von der Entität aufs Gerät umgeändert, wie in der obigen Automation. (nun anderes als in der Küchen-Automation.) Mal sehen.

Gibt es eine Möglichkeit, die Aktion zu simulieren ohne auf das Eintreten des Ereignisses warten zu müssen?

Danke und VG

Alex.

Geräte verwenden würde ich nicht empfehlen. Allein schon wegen der Lesbarkeit und der Möglichkeit Geräte beliebig zu ersetzen.
Sollte aber generell kein unterschied ausmachen.

Deine definierte Aktion in der Automatisierungen, kannst ja über die 3 Punkte ausführen. Oder den jeweiligen Dienst über:
Entwicklungswerkzeuge → Dienste
ausführen.

Gruß
Osorkon

1 „Gefällt mir“

Du hast beschrieben, wie man die Aktion/Dienst prüft, und das quasi ohne Trigger bzw. Bedingung zu haben, richtig? Quasi Trigger, bzw Bedienungsunabhängig?

Ich meinte eher die ganze Automatisierung testen in dem man den Trigger bzw. die Bedingungen “vorgaukelt”.
Wenn ich eine neue Automation erstelle, dann weiss ich ja nicht, ob die funktionieren würde oder nicht, als Ganzes so zu sagen, als Zusammenspiel der Trigger, Bedingungen und Aktionen.

Da Du mit Sonnenaufgang bzw. Sonnenuntergang als Auslöser arbeiten tust.
Kannst Den Trigger nicht einfach simulieren in dem Du den Status eines Sensors manuell setzen tust.

Du kannst zum Test Zwecken eine Uhrzeit zusätzlich verwenden und vergibst diesem Auslöser einer Deiner Trigger ID‘s.

Gruß
Osorkon

1 „Gefällt mir“

Ich werd noch wannsinnig.
Endlich habe ich erreicht dass beide WZ-Rollos beim Sonnenuntergang - Offset auf 60% runterfahren, gleich nach 5 Min kamen sie von alleine wieder hoch (normal erst dann wenn Sonnenaufgang+/- Offset.

alias: Rollos Wohnzimmer bei Sonnenunter,- und Aufgang
description: Fährt die Rollos WZ runter bei Sonnenuntergang und Aus bei Sonnenaufgang
trigger:
  - platform: sun
    event: sunset
    offset: "-01:10:00"
    id: es wird dunkel
  - platform: sun
    event: sunrise
    id: es wird hell
    offset: "0:50:00"
condition: []
action:
  - if:
      - condition: trigger
        id:
          - es wird dunkel
      - condition: state
        entity_id: cover.rollos_wohnzimmer
        state: open
        enabled: false
    then:
      - device_id: 1c0c0612bae425b39181dc6cd7728433
        domain: cover
        entity_id: a184aba36596841330dcdbf9d3b0a3cd
        type: set_position
        position: 60
      - device_id: 57fad283c2bbdeace39789c86d465318
        domain: cover
        entity_id: cb5788647a6c916439e13cc84f0b3507
        type: set_position
        position: 60
  - if:
      - condition: trigger
        id:
          - es wird hell
    then:
      - device_id: 57fad283c2bbdeace39789c86d465318
        domain: cover
        entity_id: cb5788647a6c916439e13cc84f0b3507
        type: open
      - device_id: 1c0c0612bae425b39181dc6cd7728433
        domain: cover
        entity_id: a184aba36596841330dcdbf9d3b0a3cd
        type: open
mode: single

Rollos sind runtergefahren


…und dann gleich wieder hoch:


Es ist also nix passiert, warum die Rollos “von alleine” wieder hochgefahren sind.

Sieht Ihr etwas im Code, was sie dazu gezwungen hat?

Danke und Gruß

Alex

EDIT

Ich glaube ich weiss, was der Überltäter ist.
Ich habe vorhin geschrieben, dass ich eine SUN-Protection Automation am Laufen habe.
Sie guckt alle 15min nach den Kriterien und fährt die Rollos bei dem Sonnenstand über Elevation X und Asimut Y runter,
und dann andres herum, wenn sie meint, die Sonne sei weg, fährt sie die Rollos wieder hoch.
Ich denke, dieses Hochfahren bei der fehlenden Sonne (die Bedingung wird alle 15min geprüft) fährt meine durch die “Nachts”-Automation abgesenkte Rollos wieder hoch, weil die Sonne eben weg ist.

Leider passiert die Prüfung alle 15 min, so dass ich i nTraces nicht nachvollziehen kann, obs gestern Abend dem so wäre. Die Wahrscheinlichkeit ist aber hoch.

Hier die Automation:

alias: Rollo_WZ test
description: Test
trigger:
  - platform: time_pattern
    minutes: /15
  - platform: numeric_state
    entity_id:
      - sun.sun
    attribute: azimuth
    above: 283
    id: SunAway
  - platform: numeric_state
    entity_id:
      - sun.sun
    attribute: elevation
    below: 13
    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
    enabled: false
condition:
  - condition: or
    conditions:
      - condition: and
        conditions:
          - condition: numeric_state
            entity_id: sun.sun
            attribute: azimuth
            above: 250
            below: 283
          - condition: numeric_state
            entity_id: sensor.innen_temperature
            above: 22
            enabled: false
          - 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: 13
          - condition: numeric_state
            entity_id: sensor.openweathermap_wind_speed
            below: 8
            enabled: false
          - condition: state
            entity_id: input_boolean.sonnen_position_steuerung
            state: "on"
      - condition: trigger
        id:
          - SunAway
action:
  - if:
      - condition: trigger
        id:
          - SunAway
    then:
      - if:
          - condition: state
            state: "on"
            entity_id: input_boolean.rollo_wz
        then:
          - service: input_boolean.turn_off
            target:
              entity_id:
                - input_boolean.rollo_wz_geschlossen
            data: {}
          - device_id: 1c0c0612bae425b39181dc6cd7728433
            domain: cover
            entity_id: a184aba36596841330dcdbf9d3b0a3cd
            type: set_position
            position: 100
          - device_id: 57fad283c2bbdeace39789c86d465318
            domain: cover
            entity_id: cb5788647a6c916439e13cc84f0b3507
            type: set_position
            position: 100
    else:
      - if:
          - condition: state
            entity_id: input_boolean.rollo_wz
            state: "off"
        then:
          - service: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: input_boolean.rollo_wz
          - device_id: 1c0c0612bae425b39181dc6cd7728433
            domain: cover
            entity_id: a184aba36596841330dcdbf9d3b0a3cd
            type: set_position
            position: 57
          - device_id: 57fad283c2bbdeace39789c86d465318
            domain: cover
            entity_id: cb5788647a6c916439e13cc84f0b3507
            type: set_position
            position: 57
mode: single

Wie kann ich das Hochfahren nur dann erlauben, wenn Runterfahren exakt durch diese Automation ausgelöst ist und nicht durch irgendeine Andere oder gar von Hand?
Könnt ihr mir vielleicht was dazu schreiben bitte?

Danke und VG

Alex.

Leg Dir doch einen Helfer an, der die Automatisierung als Bedingung dann entsprechend blockieren kann.

1 „Gefällt mir“

Du meinst, den Helfer, der beim Ausführen der Nachts-Automation an geht, und im An Zustand die Sun-Protection Automation beim Ausführen blockiert?
Ganz einfach einen Schalter mit “input_button.xxxx” Entität?

So sieht das jetzt aus: beim Runterfahren der Rollos wird der Schalter auf AN gesetzt, beim Hochfahren wieder auf AUS.
Die Sun-Protection Automation hat eine zus. Bedingung erhalten, NUR WENN DER SCHALTER AUS IST auszulösen. Mal gucken.

alias: Rollos Wohnzimmer bei Sonnenunter,- und Aufgang
description: Fährt die Rollos WZ runter bei Sonnenuntergang und Aus bei Sonnenaufgang
trigger:
  - platform: sun
    event: sunset
    offset: "-01:10:00"
    id: es wird dunkel
  - platform: sun
    event: sunrise
    id: es wird hell
    offset: "0:50:00"
condition: []
action:
  - if:
      - condition: trigger
        id:
          - es wird dunkel
      - condition: state
        entity_id: cover.rollos_wohnzimmer
        state: open
        enabled: false
    then:
      - device_id: 1c0c0612bae425b39181dc6cd7728433
        domain: cover
        entity_id: a184aba36596841330dcdbf9d3b0a3cd
        type: set_position
        position: 60
      - device_id: 57fad283c2bbdeace39789c86d465318
        domain: cover
        entity_id: cb5788647a6c916439e13cc84f0b3507
        type: set_position
        position: 60
      *- service: switch.turn_on*
*        metadata: {}*
*        data: {}*
*        target:*
*          entity_id: input_boolean.helfer_automation_rollos_wz_sonnenuntergang*
  - if:
      - condition: trigger
        id:
          - es wird hell
    then:
      - device_id: 57fad283c2bbdeace39789c86d465318
        domain: cover
        entity_id: cb5788647a6c916439e13cc84f0b3507
        type: open
      - device_id: 1c0c0612bae425b39181dc6cd7728433
        domain: cover
        entity_id: a184aba36596841330dcdbf9d3b0a3cd
        type: open
      *- service: switch.turn_off*
*        metadata: {}*
*        data: {}*
*        target:*
*          entity_id: input_boolean.helfer_automation_rollos_wz_sonnenuntergang*
mode: single

@tarag Danke für den Tipp.

VG

Alex

Habe gestern und heute getestet. Geht Einwandfrei.