Auswahl in einer Automation einfügen

Guten Morgen,

meine Frage bezieht sich auf eine Auswahl (ID) die ich mal versuchen möchte.

Als Auslöser habe ich die Sache mit den ID schon gefunden, nun finde ich aber unten für die Aktion nichts, wo ich die beiden erstellten Auslöser (An und Aus) einfügen kann.

Was mache ich da vielleicht falsch?

Füge bei der Aktion ein Coose/Auswählen ein. Dort kannst du deine Trigger dann per “ausgelöst durch” verwenden.

Alternativ geht auch ein wenn/dann und als Bedingung ein “ausgelöst durch”

Hallo und vielen Dank,

sie startet nun und die erste Aktion wird ausgeführt. Die Meldung wird versandt.

Wenn die Pumpe dann auch wirklich eingeschaltet ist, sollte eigentlich die Aktion 2 ausgeführt werden und eine weitere Meldung verschicken. Dies wird aber nicht gemacht. Auch die dritte Meldung kommt nach Ausschalten der Pumpe nicht an.

Muss ich vielleicht den Modus auf “neu starten” setzen? Oder was mache ich falsch?

alias: Alarm Meldung Wasserstand am Erker an pushover
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.wassersensor_erker
    from: null
    to: "off"
    id: An
    for:
      hours: 0
      minutes: 0
      seconds: 5
  - platform: state
    entity_id:
      - binary_sensor.wassersensor_erker
    id: Aus
    from: null
    to: "on"
    for:
      hours: 0
      minutes: 0
      seconds: 5
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - An
        sequence:
          - service: notify.pushover
            data:
              message: Wasserstand am Erker hoch gemeldet.
              title: Pumpe wird gestartet.....
              data:
                sound: vibrate
                priority: 2
                retry: 30
                expire: 0
      - conditions:
          - condition: trigger
            id:
              - An
          - condition: device
            type: is_on
            device_id: 9bef419d8508dcf943f8e62c6338119a
            entity_id: 40ace684beb32e0f85c0926628046be1
            domain: switch
        sequence:
          - service: notify.pushover
            data:
              message: Wasserstand weiterhin hoch
              title: Pumpe ist nun eingeschaltet worden!
              data:
                sound: vibrate
                priority: 2
                retry: 30
                expire: 0
      - conditions:
          - condition: trigger
            id:
              - Aus
          - condition: device
            type: is_off
            device_id: 9bef419d8508dcf943f8e62c6338119a
            entity_id: 40ace684beb32e0f85c0926628046be1
            domain: switch
        sequence:
          - service: notify.pushover
            data:
              message: Wasserstand am Erker wieder unten.
              title: Pumpe war insgesamt 10 Minuten eingeschaltet!
              data:
                sound: vibrate
                priority: 2
                retry: 30
                expire: 0
mode: single

Du triggerst von null zu off/on, daher kommt die zweite Meldung nicht. Entferne das from, dann sollte das triggern gehen.
Oder setzt du den binary_sensor irgendwie zwischenzeitlich auf null?
Ebenfalls löst der Trigger nur beim Wechsel des Status aus, soll heißen, wenn sie einmal an ist, triggert die Automation nicht noch einmal auf “An”, daher wird dein zweiter Abschnitt nicht ausgelöst.
Auch bin ich mir nicht sicher, ob man bei einem choose überhaupt zweimal den gleichen Trigger nehmen kann, oder ob dann immer nur der erste ausgeführt wird.

Könnte ich das dann vielleicht geschickter anderweitig lösen?

Womit triggerst du denn das ein/ausschalten der Pumpe?
Hier verschickst du nur Nachrichten.
Möglicherweise kannst du das in die an/aus Automatisierung hinzufügen.
Oder dann auf Laufzeit der Pumpe triggern, um zu zeigen, dass sie noch läuft.

Komisch das das aus der yaml nicht erkenntlich ist. In der Übersicht sieht es so aus:

Das hier ist aber nur das triggern auf einen Wassersensor.
Die Pumpe selbst dürfte das device sein, welches du in den Aktionen als Bedingung drin hast, aber nirgends in der sequence um sie ein oder auszuschalten

Ah sorry, das ist als Direktverknüpfung in der CCU3 hinterlegt. Nachlauf 10 Minuten:

Vielleicht hast Du eine Idee, wie ich das besser lösen kann. Ich möchte eben folgendes erstellen, bzw. 3 Nachrichten versenden.

  1. Nachricht - Durch aufgrund Meldung Wassersensor eine Meldung versendet wird, “Wasser ist hoch, Pumpen müssen laufen”

  2. Meldung soll dann versendet werden, wenn die Pumpen auch wirklich angelaufen sind, bzw. alufen

  3. Meldung - wenn die Pumpen wieder aus sind

Das heißt also, die Pumpe läuft immer 10 Minuten, egal, ob der Pegel vorher wieder unter den Auslösestand gefallen ist?

Dann würde ich die folgenden trigger verwenden:

trigger:
  - platform: state
    entity_id:
      - binary_sensor.wassersensor_erker
    to: "off"
    id: An
    for:
      hours: 0
      minutes: 0
      seconds: 5
  - platform: state
    entity_id:
      - switch.pumpe
    from: "off"
    to: "on"
    id: running
  - platform: state
    entity_id:
      - switch.pumpe
    from: "on"
    to: "off"
    id: Aus

Bei ID “An” die erste Nachricht für Pumpe startet, bei “running” das “Pumpen gestartet” und bei “Aus” Pumpen sind aus

1 „Gefällt mir“

Ja korrekt. 10 Minuten Nachlauf also. Der Sensor gibt sozusagen einen Notwasserstand an. Durch 10 Minuten Pumpe an ist der Pegel Erfahrungsgemäß wieder da wo er sein sollte.

Super vielen Dank das hat super geklappt. Läuft so wie ich es mir erhofft habe.

Würde gerne dazu eine weitere Frage stellen:

Ich würde gern die Direktverknüpfung aus der CCU3 löschen und als Automation in HA einbauen.

Wie lautet die Automation, wenn als Trigger der Wassersensor sein soll, der die Pumpe sofort einschaltet und erst nach dem der Wassersensor wieder aus ist, einen Nachlauf von 5 Minuten der Pumpe einstellt?

Als Trigger nimmst du deinen Wassersensor.
Bei erkanntem Wasser kannst du die 5 Sekunden drin lassen oder den Zeitraum auch entfernen, dann schaltet er (mehr oder weniger) sofort die Pumpe an.
Der zweite Trigger ist dann der Wechsel zu kein Wasserkontakt für 5 Minuten.
Bei der Aktion dann jeweils Pumpe an bzw. aus.

Muss ich das oben mit ID machen und unten auch?

So?

alias: "Alarm Erker Pumpe wegen Wassersensor einschalten "
description: ""
trigger:
  - type: not_opened
    platform: device
    device_id: 979062863e888c7fb35646175ccbe474
    entity_id: 4c865f3a5b0ff3fae28f711964b62384
    domain: binary_sensor
    for:
      hours: 0
      minutes: 0
      seconds: 5
    id: "on"
  - type: opened
    platform: device
    device_id: 979062863e888c7fb35646175ccbe474
    entity_id: 4c865f3a5b0ff3fae28f711964b62384
    domain: binary_sensor
    for:
      hours: 0
      minutes: 5
      seconds: 0
    id: "off"
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - "on"
        sequence:
          - type: turn_on
            device_id: 9bef419d8508dcf943f8e62c6338119a
            entity_id: 40ace684beb32e0f85c0926628046be1
            domain: switch
      - conditions:
          - condition: trigger
            id:
              - "off"
        sequence:
          - type: turn_off
            device_id: 9bef419d8508dcf943f8e62c6338119a
            entity_id: 40ace684beb32e0f85c0926628046be1
            domain: switch
mode: single

Ja, du musst bei den triggern und den Aktionen mit den IDs arbeiten.
Allerdings würde ich versuchen, mit den Entitäten zu arbeiten und nicht mit den Geräten.

OK. Das werde ich dann mal versuchen.

Warum wäre es besser mit den Entitäten, statt mit den Geräten zu arbeiten?

Geräte-IDs sind einmalig. Wenn es mal kaputt gehen sollte, musst du deine Automatisierung anpassen.
Bei Verwendung der Entität kannst du ein neues einfach wieder so nennen wie das alte und die Automatisierung funktioniert ohne Änderung.

Ach so. Vielen Dank für die Hinweise.

Nachtrag:

Mir ist noch etwas ganz wichtig. Ich stelle ja unter den Triggern die Zeit ein, wie lange die Pumpe laufen soll. Wie hier:

  - type: opened
    platform: device
    device_id: 979062863e888c7fb35646175ccbe474
    entity_id: 4c865f3a5b0ff3fae28f711964b62384
    domain: binary_sensor
    for:
      hours: 0
      minutes: 5
      seconds: 0
    id: "off"

Kann ich diese eingestellte Zeit (for:) irgendwie unten in den Aktionen abfragen?

Ich verschicke ja Nachrichten, wenn die Pumpe einschaltet oder ausschaltet. Wenn sie dann ausschaltet, soll in der Nachricht so etwas wie:

Pumpe lief x Minuten stehen.

Nachtrag:

Ich habe es nun versucht mit history_stats. Einen Sensor für die letzten 10 Minuten angelegt. In meiner Nachricht soll dieser Inhalt des Sensors (die Minuten) verschickt werden. Wie erhalte ich diesen Wert? Mit

{{states.sensor.erker_pumpe_laufzeit_letzte_10_minuten}}

Wirft er mir nur Müll aus, obwohl der aktuelle Wert bei 0.03 liegt!

Du kannst dir einen Helfer “input_datetime.xxx” anlgen, in den du beim starten die aktuelle Uhrzeit und Datum einträgst.
Zur Trigger-ID “An” dann diese Aktion ergänzen:

service: input_datetime.set_datetime
target:
  entity_id: input_datetime.test1
data:
  datetime: "{{ now() }}"

Beim Stopp der Pumpe ( Trigger off) ziehst du diesen Wert dann von dem jetzigen Zeitpunkt ab und gibst ihn aus.
Den entsprechenden Message-Code dann bei dir in deine Message einfügen. Für den Test habe ich es in eine Persistent gepackt

service: persistent_notification.create
metadata: {}
data:
  message: |
    {% set dauer = (as_timestamp(now()) - as_timestamp(states('input_datetime.test1'))) | timestamp_utc | as_timestamp | int %}
    {% set dauer_min = (dauer / 60) | int %}
    {% set dauer_sec = (dauer - dauer_min * 60) | int  %}
    {% set ausgabe = '' %}
    {% if dauer_min >= 1 %}
      {% set ausgabe = dauer_min | string + ' Minute und' %}
      {% if dauer_min > 1 %}
        {% set ausgabe = ausgabe | replace('Minute','Minuten') %}
      {% endif %}
    {% endif %}
    {% set ausgabe = ausgabe + ' '+ dauer_sec | string + ' Sekunden' %}
    Die Pumpe lief für {{ ausgabe }}

image

Das Ergebnis sieht echt perfekt aus.

Aber ich muss vor jedem Start der Pumpe manuell die aktuelle Uhrzeit und das Datum eingeben?