Zeitabfrage "nach" und nicht "um"

Hallo,
ich habe ein kleines Problem mit Zeitschaltung bei meiner Nachteinspeisung.
Das Ziel ist, dass sich diese einschaltet wenn die Zeit nach 19:00 Uhr ist und die Leistung an Ch3 unter 20W fällt. Abschalten soll sie 05:30 (funktioniert).
Ich habe dafür 3 Trigger angelegt mit entsprechenden IDs. Zeit und Leistung sind mittels &- Glied verknüpft. Nun das Problem. Es schaltet nicht ein, da die Automation ja genau 19:00 haben will.
Gibt es eine Lösung? Oder muss ich mittels Helfer ein Zeitraster anlegen von 19:00 Uhr bis 05:30 Uhr ?

Anbei der Yaml Ausschnitt der Trigger.

Vielen Dank

alias: Nacht
description: ""
trigger:
  - platform: time
    at: "19:00:00"
    id: NE_EIN
  - platform: time
    at: "05:30:00"
    id: NE_AUS
  - platform: numeric_state
    entity_id:
      - sensor.bw1_ch3_power
    below: 20
    id: NE_EIN_Oder
condition: []

Schreib so.
Als Trigger die Zeit.
Unter “Dann mache” eine “wenn” Bedingung.
Da eine “Und” Bedingung rein.
Schmeis den Code komplett in den Yaml Modus und schalte dann auf visuell.

description: ""
mode: single
trigger:
  - platform: time
    at: "19:00:00"
    id: Zeit an
  - platform: time
    at: "05:00:00"
    id: Zeit aus
condition: []
action:
  - if:
      - condition: and
        conditions:
          - condition: trigger
            id:
              - Zeit an
          - condition: numeric_state
            entity_id: Dein Sensor Ch3
            below: 20
    then: []
  - if:
      - condition: and
        conditions:
          - condition: trigger
            id:
              - Zeit aus
    then: []

Auslöser sind Ereignisse, z.B. es ist 19 Uhr.
Nach 19 Uhr ist kein Ereignis, sondern ein Zustand, das wäre dann eine Bedingung.

Du musst zum Einschalten beide Auslöser verwenden.

  • 19 Uhr
    Und
  • Leistung sinkt unter 20 W

Und als Bedingung:

  • Nach 19 Uhr und vor 05:30
    Und
  • Leistung unter 20 W

Gruß
Osorkon

Also so?

alias: Nacht
description: ""
trigger:
  - platform: time
    at: "19:00:00"
    id: Einzeit_ID
  - platform: time
    at: "05:30:00"
    id: Auszeit_ID
  - platform: numeric_state
    entity_id:
      - sensor.bw1_ch3_power
    below: 20
    id: Power_ID
condition:
  - condition: and
    conditions:
      - condition: time
        after: "19:00:00"
        before: "05:30:00"
      - condition: numeric_state
        entity_id: sensor.bw1_ch3_power
        below: 20
action:
  - choose:
      - conditions:
          - alias: "Zeit und Leistungsunterschreitung erfüllt "
            condition: and
            conditions:
              - alias: "Zeitabfrage "
                condition: trigger
                id:
                  - Einzeit_ID
              - condition: trigger
                id:
                  - Power_ID
                alias: Powerunterschreitung
        sequence:
          - type: turn_on
            device_id: 5aff2cd81b7ff372e4821388b320c635
            entity_id: 6064051603a4818400d3122a76b629de
            domain: switch
      - conditions:
          - condition: trigger
            id:
              - Auszeit_ID
        sequence:
          - type: turn_off
            device_id: 5aff2cd81b7ff372e4821388b320c635
            entity_id: 6064051603a4818400d3122a76b629de
            domain: switch
mode: single

Nein, nicht ganz!

Die globalen Bedingungen müssen weg. Da sie sonst für beide Optionen gültig sind.
Also die jeweiligen Bedingungen den einzelnen Optionen zuordnen.

Die Trigger ID’s für die Auslöser 19 Uhr und Leistung sinkt unter 20 W, müssen gleich lauten.
Wenn Du diese unterschiedlich benenne tust, musst Du diese als Bedingung mit oder verknüpfen.

Gruß
Osorkon

das kann schlanker angelegt werden.

Einschalten

  • Bedingung < 20 Watt
  • Condition nach 19:00 und vor 5:30
    ??? Warum die Zeit als Auslöser wenn es sowieso in der Bedingung ist. Du schreibst dass es NACH 19:00 passieren soll wenn die Einspeisung unter 20 Watt ist.

Willst du auch einschalten wenn es genau 19 Uhr ist und die Einspeisung genau um 19:00 schon unter 20 Watt ist? Das steht so nicht da, aber willst du vermutlich auch.

Für den Fall würde ich eine separate Automatisierung machen da es schlanker ist, und leichter zu verstehen. Ich würde nicht alles in eine rein machen weil du dann mit UND/ODER die eventualitäten abarbeiten musst.

Einschalten

  • Bedingung exakt 19:00
  • Condition < 20 Watt.

Ausschalten

  • Bedingung nach 5:30
  • Condition: Einspeisung ist eingeschlatet (ggf. optional, man könnte immer ausschalten egal ob aktuell ein- oder ausgeschaltet ist)

Zeiten anders da ich es getestet hab …

alias: testday
description: ""
trigger:
  - platform: numeric_state
    entity_id:
      - sensor.hmburo_desired_temperature
    below: 20
condition:
  - condition: time
    after: "19:00:00"
    before: "10:30:00"
action:
  - type: turn_on
    device_id: 400340b4ed03c60020474699966430c5
    entity_id: fca04423386f43e1732ae01f11570083
    domain: switch
mode: single

Gut ich habe jetzt mal die erste Lösung umgesetzt. Ich melde mich morgen ob es geklappt hat.

Danke schonmal

Auslöser sind ODER und nicht UND. Sollte aber trotzdem so funktionieren

Du musst zum Einschalten beide Auslöser verwenden.

19 Uhr
ODER
Leistung sinkt unter 20 W

Und als Bedingung:

Nach 19 Uhr und vor 05:30
UND
Leistung unter 20 W

So der erste Test ( Vorschlag von Tialk) funktioniert nicht. Da wird es 19:00 Uhr, aber die Leistung ist noch über dem Min. Das war gestern erst gegen 20:30 erreicht. Hat also nicht eingeschalten.

Jetzt habe ich es so:

alias: Nachteinspeisung
description: ""
trigger:
  - platform: time
    at: "19:00:00"
    id: Zeit an
  - platform: time
    at: "05:00:00"
    id: Zeit aus
  - platform: numeric_state
    entity_id:
      - sensor.bw1_ch3_power
    below: 40
    alias: Power unter Min
    id: Leistung
condition: []
action:
  - if:
      - condition: or
        conditions:
          - condition: trigger
            id:
              - Zeit an
          - condition: trigger
            id:
              - Leistung
        alias: "Leistung oder Zeit "
      - alias: Zeitabfrage 19-530
        condition: and
        conditions:
          - condition: time
            after: "19:00:00"
            before: "05:30:00"
          - condition: trigger
            id:
              - Leistung
    then:
      - type: turn_on
        device_id: 5aff2cd81b7ff372e4821388b320c635
        entity_id: 6064051603a4818400d3122a76b629de
        domain: switch
    alias: Einschalten
  - if:
      - condition: trigger
        id:
          - Zeit aus
    then:
      - type: turn_off
        device_id: 5aff2cd81b7ff372e4821388b320c635
        entity_id: 6064051603a4818400d3122a76b629de
        domain: switch
    alias: Ausschalten
mode: single

Mal sehen was heute Abend passiert.
Irgendwie glaube ich das ich mich total verannt habe und den Wald vor lauter Bäumen nicht mehr sehe. :smile:

- condition: or
        conditions:
          - condition: trigger
            id:
              - Zeit an
          - condition: trigger
            id:
              - Leistung

Du könntest es hier etwas schlanker gestalten, indem du die beiden IDs gleich benennst.
Dann müsstest du

hier natürlich direkt die Leistung prüfen.

macht genau was du sagst. Es wurde 19:00 und die Bedingung wurde wahr. Der Trigger ändert sich erst wieder um 5:30 und wird dann falsch. Warum nicht die Eingangsleistung als Trigger?

Solche Dinge kannst du erstmal mit anderen Sensoren testen, irgend ein Heizkörper Thermostat, oder zur Not einen Helfer “Input_number”. Dann musst du nicht bis zum Abend warten sondern siehst sofort ob die Logik passt. < 20 Watt wird halt mit Heizkörper Solltemperatur < 20 Grad getestet.

:crayon:by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)

So würde ich die Automatisierung aufbauen.

Den switch.xyz müsst Du gegen Deine Switch Entität ersetzen.

alias: Nachteinspeisung
description: ""
trigger:
  - platform: time
    at: "19:00:00"
    id: einschalten
  - platform: time
    at: "05:00:00"
    id: ausschalten
  - platform: numeric_state
    entity_id:
      - sensor.bw1_ch3_power
    below: 40
    alias: Power unter Min
    id: einschalten
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - einschalten
          - condition: numeric_state
            entity_id: sensor.bw1_ch3_power
            below: 40
          - condition: state
            entity_id: switch.xyz
            state: "off"
          - condition: time
            after: "19:00:00"
            before: "05:30:00"
        sequence:
          - service: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: switch.xyz
      - conditions:
          - condition: trigger
            id:
              - ausschalten
          - condition: state
            entity_id: switch.xyz
            state: "on"
        sequence:
          - service: switch.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: switch.xyz
mode: single

Gruß
Osorkon

Hallo zusammen,
also alles was ich jetzt probiert hatte, hat nicht so funktioniert wie es sollte. Es wurde immer 19:00, aber als dann die Leistung unter 40 fiel passierte nix. Ich habe jetzt den Tipp benutzt nur die Leistung als Auslöser zu nehmen und siehe da es funktioniert so wie ich es mir vorgestellt habe.

Ich nutze jetzt praktisch den Leistungsabfall an Ch3 und knüpfe es mittels UND an die Zeit nach 19:00 und vor 05:30 zum Einschalten.
Ausgeschalten wird dann mittels Leistungsanstieg an Ch1, geknüpft mittels ODER Zeit nach 05:30 und vor 19:00 Uhr.

Hier nun meine finale Automatisierung:

alias: Nachteinspeisung
description: ""
trigger:
  - type: power
    platform: device
    device_id: 7e8082032eaab73e98b3726e4e4c916f
    entity_id: 596d9ccbc88fac81a857ea08f8ec031b
    domain: sensor
    below: 40
    alias: Einschaltleistung
    id: NE_EIN
  - type: power
    platform: device
    device_id: 7e8082032eaab73e98b3726e4e4c916f
    entity_id: 414a7e864ce3d86a9b375ad31a595ebe
    domain: sensor
    above: 40
    alias: Ausschaltleistung
    id: NE_AUS
condition: []
action:
  - if:
      - condition: and
        conditions:
          - condition: trigger
            id:
              - NE_EIN
          - condition: time
            after: "19:00:00"
            before: "05:30:00"
    then:
      - type: turn_on
        device_id: 5aff2cd81b7ff372e4821388b320c635
        entity_id: 6064051603a4818400d3122a76b629de
        domain: switch
    alias: Nachteinspeisung einschalten
  - if:
      - condition: or
        conditions:
          - condition: trigger
            id:
              - NE_AUS
          - condition: time
            after: "05:30:00"
            before: "19:00:00"
    then:
      - type: turn_off
        device_id: 5aff2cd81b7ff372e4821388b320c635
        entity_id: 6064051603a4818400d3122a76b629de
        domain: switch
    alias: Nachteinspeisung ausschalten
mode: single

Vielen Dank nochmal an Alle.
Wirklich ein tolles Forum!
Brian