Frage zum Aufbau einer Automation an konkretem Beispiel

Ich möchte mir eine Automation erstellen, die mich Benachrichtigt, wenn ich lüften muss.
Für das Badezimmer gilt:

Die Automation soll auslösen, wenn zwei Bedingungen erfüllt sind.
  1. Die Luftfeuchtigkeit liegt über 70%
  2. Die Differenz der absoluten Luftfeuchtigkeit zu Aussen ist über 4

Soweit kein Problem.

Jetzt habe ich aber mehrere Räume. Das heißt, die Automation soll auch auslösen, wenn die Bedingungen im Keller oder in der Küche erfüllt sind.
Wenn die Bedingungen erfüllt sind, soll lediglich der Raumname in ein textinput geschrieben werden.

Wie kann ich das Lösen?

Da ich eine Benachrichtigung über alle Räume hinweg möchte, will ich alles in eine Automation packen.

Wie würdet ihr die Automation aufbauen?

Gruß Tommes

Hallo,

ich habe etwas ähnliches für meine diversen Rauchmelder gemacht.
Ich bekomme eine Benachrichtigung, wenn Rauch erkannt wurde mit der Info, welcher Rauchmelder anschlägt.

alias: Rauch erkannt
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.smokey_flur_eg_smoke
      - binary_sensor.smokey_flur_keller_smoke
      - binary_sensor.smokey_flur_og_smoke
      - binary_sensor.smokey_k1_smoke
      - binary_sensor.smokey_sz_smoke
      - binary_sensor.smokey_wk_smoke
    from: "off"
    to: "on"
conditions: []
actions:
  - action: notify.mobile_app_frank_smartphone
    metadata: {}
    data:
      message: >-
        "Achtung! Rauch wurde im {{ trigger.to_state.attributes.friendly_name }}
        erkannt!"
      title: "Rauchmelder meldet:"
mode: single

Vielleicht bringt dich das ein wenig weiter…

Bringt mir nicht viel, da bei mir pro Raum zwei Bedingungen erfüllt sein müssen um die Automation auszulösen.

Trotzdem danke.

Moin,
eine sehr interessante Anwendung der Trigger-Aktion. Gibt es irgendwo eine Liste der möglichen Atrribute?

Du könntest dir pro Raum einen Helfer erstellen, der durch die Automation eingeschaltet wird. Wenn dieser an ist, dann wird der Raum in der Nachricht aufgeführt. Am Ende muß der Helfer dann wieder ausgeschaltet werden:

Bedingung Bad1 und Bedingung Bad2 erfüllt, dann Helfer Bad an

Oder Bedingung Keller1 und Bedinung Keller2 erfüllt, dann Helfer Keller an. usw.
Am Ende dann im Nachrichtentext je nach eingeschaltetem Helfer die Raumbezeichnung(en) ausgeben.

{{ if(is_state('sensor.bad_lueften', 'on'), 'Bad', '') }} ## für jeden Sensor einfügen

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)

https://www.home-assistant.io/docs/automation/templating/#state

Verstehe ich nicht… wie soll das in der Automation gehen?

Im DANN-Bereich der Automatisierung mit Aktion → Boolesche Eingabe einschalten. Dein Helfer muss vom Format input_boolean sein.

Poste doch mal deinen Code, den du schon hast.

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

Ich habe noch keinen konkreten Code hierzu. Wollte hier erst grundsätzlich klären, wie ich die Automation aufbaue.

Im DANN-Bereich der Automatisierung mit Aktion → Boolesche Eingabe einschalten. Dein Helfer muss vom Format input_boolean sein.

Wie kann denn das in EINER Automation gehen, wenn ich darin mehrere Zimmer abhandeln will.

Im WENN-Bereich brauche ich folgende Logik

Zimmer 1 L UND Zimmer 1 R wahr
ODER
Zimmer 2 L UND Zimmer 2 R wahr
ODER
Zimmer 3 L UND Zimmer 3 R wahr

Wie wäre es denn, wenn Du es über den “Auswählen”-Baustein machst, dann kannst du doch die verschiedenen Kombinationen abbilden und entsprechende Aktionen auslösen.

LG Pit

Hier hast Du doch schon eine sehr ähnliche Automatisierung als Steilvorlage.
Stammt ja zum größten Teil aus Deiner Feder.

Alle Trigger rein packen und dann mit Wenn Dann unter Berücksichtigung von einer oder mehreren Bedingungen Deine Aktion ausführen.

Gruß
Osorkon

Ich kann mich noch nicht daran gewöhnen, die Bedingungen im DANN-Block zu definieren. :upside_down_face:

Ich probiere mich mal…

Update:
So, hier ist nun mein Kunstwerk. :peacock:

Zu den Startuhrzeiten, oder wenn die maximale Luftfeuchtigkeit 5 Minuten über dem Grenzwert ist wird ausgelöst.
Dann wird geprüft, ob Wochenende oder Werktag ist und entsprechende Zeiten definiert.

In den Actions wird zuerst die Textvariable gelöscht und dann Raum für Raum geprüft, Luftfeuchtigkeit UND absolute Luftfeuchtigkeit über dem Grenzwert liegen. Falls ja, wird der Raumname in die Textvariable geschrieben.

Wenn die Textvariable leer ist Ende, ansonsten wenn nicht wird eine Nachricht ans Smartphone mit den einzelnen Raumnamen geschickt.

alias: Benachrichtigung Lüften
description: ""
triggers:
  - entity_id:
      - sensor.maximale_luftfeuchtigkeit_innen
    above: input_number.grenzwert_abs_luftfeuchtigkeit
    trigger: numeric_state
    for:
      hours: 0
      minutes: 5
      seconds: 0
    alias: Sobald max Luftfeuchtigkeit für 5 Min über Grenzwert
  - trigger: time
    at: "09:00:00"
  - trigger: time
    at: "06:30:00"
conditions:
  - alias: Unterscheidung Wochentag Wochenende
    condition: or
    conditions:
      - condition: and
        conditions:
          - condition: state
            entity_id: binary_sensor.workday_werktag_sensor
            state: "on"
          - condition: time
            after: "06:30:00"
            before: "21:00:00"
        alias: Wochentag
      - condition: and
        conditions:
          - condition: state
            entity_id: binary_sensor.workday_werktag_sensor
            state: "off"
          - condition: time
            after: "09:00:00"
            before: "21:00:00"
        alias: Wochenende
    enabled: true
actions:
  - action: input_text.set_value
    data:
      entity_id: input_text.raumezumluften
      value: ""
    alias: Textvariable Räume leeren
  - alias: Prüfung Bad zu feucht
    if:
      - condition: numeric_state
        entity_id: sensor.differenz_absolute_luftfeuchtigkeit_bad_aussen
        above: input_number.grenzwert_differenz_abs_luftfeuchtigkeit
        alias: Diff Luftfeuchtigkeit größer Grenzwert
      - condition: numeric_state
        entity_id: sensor.temperatur_bad_humidity
        above: input_number.grenzwert_luftfeuchtigkeit
        alias: Luftfeuchtigkeit größer Grenzwert
    then:
      - data:
          entity_id: input_text.raumezumluften
          value: |
            {{ states('input_text.raumezumluften') }} Bad
        action: input_text.set_value
        alias: Textvariable füllen
  - alias: Prüfung Waschküche zu feucht
    if:
      - condition: numeric_state
        entity_id: sensor.differenz_absolute_luftfeuchtigkeit_waschkuche_aussen
        above: input_number.grenzwert_differenz_abs_luftfeuchtigkeit
        alias: Diff Luftfeuchtigkeit größer Grenzwert
      - condition: numeric_state
        entity_id: sensor.temperatur_waschkuche_humidity
        above: input_number.grenzwert_luftfeuchtigkeit
        alias: Luftfeuchtigkeit größer Grenzwert
    then:
      - data:
          entity_id: input_text.raumezumluften
          value: |
            {{ states('input_text.raumezumluften') }} Waschküche
        action: input_text.set_value
        alias: Textvariable füllen
  - alias: Prüfung Kellerzimmer zu feucht
    if:
      - condition: numeric_state
        entity_id: sensor.differenz_absolute_luftfeuchtigkeit_kellerzimmer_aussen
        above: input_number.grenzwert_differenz_abs_luftfeuchtigkeit
        alias: Diff Luftfeuchtigkeit größer Grenzwert
      - condition: numeric_state
        entity_id: sensor.temperatur_kellerzimmer_humidity
        above: input_number.grenzwert_luftfeuchtigkeit
        alias: Luftfeuchtigkeit größer Grenzwert
    then:
      - data:
          entity_id: input_text.raumezumluften
          value: |
            {{ states('input_text.raumezumluften') }} Kellerzimmer
        action: input_text.set_value
        alias: Textvariable füllen
  - alias: Prüfung Küche zu feucht
    if:
      - condition: numeric_state
        entity_id: sensor.differenz_absolute_luftfeuchtigkeit_kuche_aussen
        above: input_number.grenzwert_differenz_abs_luftfeuchtigkeit
        alias: Diff Luftfeuchtigkeit größer Grenzwert
      - condition: numeric_state
        entity_id: sensor.temperatur_kuche_humidity
        above: input_number.grenzwert_luftfeuchtigkeit
        alias: Luftfeuchtigkeit größer Grenzwert
    then:
      - data:
          entity_id: input_text.raumezumluften
          value: |
            {{ states('input_text.raumezumluften') }} Küche
        action: input_text.set_value
        alias: Textvariable füllen
  - alias: Prüfen ob Textvariable leer ist
    if:
      - condition: state
        entity_id: input_text.raumezumluften
        state: ""
    then: []
    else:
      - action: notify.mobile_app_xq_cq54
        metadata: {}
        data:
          message: >-
            Es ist jetzt {{ now().strftime('%H:%M') }} bitte fogende Räume
            lüften: {{ states('input_text.raumezumluften') }}
        alias: Benachrichtigung auf Handy
mode: single

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