Benötige Automation für Wassermelder Gruppe wo der Gerätename enthalten ist

Hallo,

ich bin auf der Siche nach einer Automation, die aus einer Gruppe eine Benachrichtigung sendet, indem der Gerätenamen oder die Edentität entalten ist.

Ich könnte jetzt für jeden Wassermelder eine Automation erstellen wenn Wasser dann sende Benachrichtigung. Eleganter wäre es jedoch, wenn ein Gerät aus der Gruppe Wassermelder Alarm gibt eine Benachrichtigung mit dem auslösenden Gerät zu senden. Dann hätte ich nur eine Automation.

Hat schon wer so was umgesetzt?

Hallo @mosmax und Herzlich Willkommen bei den SmartHome for Dummies.

Hier geht es zwar um Rauchmelder, aber das Prinzip ist identisch.

Gruß
Osorkon

1 „Gefällt mir“

Hi Osorkon,

Habs versucht aber beim Test der Benachtrichtigung kommt das:

alias: Sicherheit - Wasser entdeckt
description: ""
triggers:
  - entity_id:
      - binary_sensor.gruppe_wassermelder
    to: "on"
    trigger: state
conditions: []
actions:
  - data:
      message: >-
        {% for entity in trigger.to_state.attributes.entity_id %} {% if
        states(entity) == 'on' %} {{ state_attr(entity,'friendly_name') }} 
        meldet Rauchalarm!  {% endif %} {% endfor %}
      title: Wasser endeckt!
      data:
        sound: persistent
        priority: 2
        retry: 60
        expire: 3600
    action: notify.pushover
mode: single

Wenn Du Aktionen verwenden tust, die vom Trigger (Auslöser) anhängig sind, kannst Du diese auf diesem Weg nicht testen, da der Trigger fehlt.

Du musst den Trigger simulieren.

Entwicklungswerkzeuge - > Zustände → Zustand setzen.

Und den Zustand für einen der binär Sensoren auf „on“ setzen.

Siehe auch:

Gruß
Osorkon

Ich habe es mit dem Wassermelder selbst gestestet aber der Fehler ist hier:

Ausgeführt: 22. November 2024 um 12:14:40
Fehler: Action notify.pushover not found
Ergebnis:

params:
domain: notify
service: pushover
service_data:
message: Wassermelder Bad meldet Rauchalarm!
title: Wasser endeckt!
data:
sound: persistent
priority: 2
retry: 60
expire: 3600
target: {}
running_script: false

Hast Du den Notify Pushover Dienst bei Dir eingerichtet und heißt dieser bei Dir auch notify.pushover?

Gruß
Osorkon

äm nö, was ist das?:sweat_smile:

Du verwendest als Aktion den notify.pushover den hast Du wahrscheinlich einfach 1:1 aus meiner Beispiel Automatisierung übernomen.

Wenn Du Pushover als Benachrichtigungsdienst verwenden willst. Bedarf es nicht nur der App auf Deinem Handy, sondern Du musst auch die Pushover Integration in Home Assistant einrichten.

Was hast Du den als Notifyer in Home Assistant eingerichtet, bzw. was möchtest Du den für welche verwenden?

Gruß
Osorkon

Was ist denn ein Notifyer? Ich habe zwei Handys und möchte auf diesen eine Benachrichtigung. Desshalb war ja meine andere Frage ob man Benachrichtgungsgruppen erstellen kann.

Benachrichtigungsgruppe 1 für wichtige Meldungen mit aufhebung der Stummschaltung

  1. Benachrichtigungsgruppe für normale Meldungen.
    Bisher trage ich jedes Handy einzeln ein als Aktion Benachrichtigung senden.

Hast du eine Anleitung wie man Pushover einrichtet?

Hier meinne aktuelle Automation:

alias: Sicherheit - Wasser entdeckt
description: „“
triggers:

  • entity_id:
    • binary_sensor.gruppe_wassermelder
      to: „on“
      trigger: state
      conditions:
      actions:
  • action: notify.mobile_app_mosmax_iphone
    metadata: {}
    data:
    data:
    push:
    sound:
    name: default
    critical: 1
    volume: 1
    message: Wassermelder meldet Wasser
    mode: single

Also Du möchtest die den Notiyer der Home Assistant Companion App verwenden. Wenn Die HA App auf dem Handy installiert ist, werden die jeweiligen Notify automatisch angelegt.

Gehe mal in die Entwicklungswerkzege → Aktionen
Und gebe notify ein.
Bekommst Du eine Auswahl aller bereits eingercihten Notify Dienste.

Wie Du eine Notify Gruppe erstellen tust, habe ich Dir ja im anderen Thread verlinkt.

Hier mal ein Bsp. Du hast zwei Benachrichtigungsdienste welche Du in einen Gruppe Zusammenfassen willst.

  • notify.mobile_app_mosmax_iphone
  • notify.mobile_app_xyz

In der configuration.yaml erstellst Du folgende Zeile:

#configuration.yaml
notify: !include notify.yaml

Dann erstellst Du Dir einen neue Datei notify.yaml im gleichen Ordner wo sich auch die configuration.yaml befindet. Und fügst folgenden Inhalt ein.

#notify.yaml
- name: mobile_app_all
  platform: group
  services:
    - service: mobile_app_mosmax_iphone
    - service: mobile_app_xyz

Speichern und unter Entwicklungswerkzeuge → YAML, die Konfiguration prüfen.
Und anschließend Home Assistant Neustarten.

Nun kannst Du als Aktion den neuen Notifer notify.mobile_app_all verwenden.

Die Dokue habe ich Dir oben ebenfalls verlinkt.

Einstellungen → Geräte & Dienste → + INTEGRATION HINZUFÜGEN - > Pushover

Bitte YAML als Code formatiert posten, ansonsten kann man den gar nicht oder nur sehr schlecht lesen, geschweige den irgendwelche Fehler finden.

Funktioniert den die Automatisierung wie gewünscht?

Gruß
Osorkon

hat funktioniert, danke! Wie baue ich das jetzt in das Script ein damit ich sehe welcher Wassermelder schuld war?

Du meinst wahrscheinlich eine Automatisierung und nicht Skript.
Die Unterschiede zwischen Automatisierung & Skripten habe ich mal hier versucht zu erklären.

Als Auslöser verwendest Du die Wassermelder Gruppe.

triggers:
  - trigger: state
    entity_id:
      - binary_sensor.wassermelder_gruppe
    from: "off"
    to: "on"

Als Aktion dann den Notify Gruppe mit dem Template als Message.

actions:
  - action: notify.mobile_app_all
    metadata: {}
    data:
      title: Wasserleckage entdeckt!
      message: >-
        {% for entity in trigger.to_state.attributes.entity_id %}
        {% if states(entity) == 'on' %}
        {{ state_attr(entity,'friendly_name')}}
        meldet Wasseralarm!
        {% endif %}
        {% endfor %}

Die ganze Automatisierung, sieht dann so aus:

alias: Test - Wasseralarm
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.wassermelder_gruppe
    from: "off"
    to: "on"
conditions: []
actions:
  - action: notify.mobile_app_all
    metadata: {}
    data:
      title: Wasserleckage endeckt!
      message: >-
        {% for entity in trigger.to_state.attributes.entity_id %}
        {% if states(entity) == 'on' %}
        {{ state_attr(entity,'friendly_name')}} 
        meldet Wasseralarm!
        {% endif %}
        {% endfor %}
mode: single

Die Entität binary_sensor.wassermelder_gruppe musst Du natürlich gegen Deinen eigene Entität der Gruppe ersetzen.
Sowie der von mitr verwendetet Notify notify.mobile_app_all durch Deinen eigenen ersetzen.

Gruß
Osorkon

Auch geklappt, danke! Kann ich die notify.yaml noch um weitere Gruppen ergänzen? z.B.:

- name: mobile_app_all
  platform: group
  services:
    - service: mobile_app_mosmax_iphone
    - service: mobile_app_mosmax_ipad
    - service: mobile_app_sabrina_iphone

- name: mobile_app_mosmax
  platform: group
  services:
    - service: mobile_app_mosmax_iphone
    - service: mobile_app_mosmax_ipad

Ja, Du kannst beliebig viele Gruppen anlegen.

Gruß
Osorkon

Noch eine Frage dazu - wenn ich die Wassermeldung als Kritische Meldung machen würde für ios aber mit dem yaml code bekomme ich keine Benachrichtigung mehr:

action: notify.mobile_app_mosmax
metadata: {}
data:
  title: Wasserleckage endeckt!
  message: >-
    {% for entity in trigger.to_state.attributes.entity_id %} {% if
    states(entity) == 'on' %} {{ state_attr(entity,'friendly_name')}}  meldet
    Wasseralarm! {% endif %} {% endfor %}
     data:
    push:
      sound:
        name: default
        critical: 1
        volume: 1

Sieht richtig aus.
Details kannst Du auch der Dokumentation entnehmen.

Gruß
Osorkon

Wenn ich das aber nach der Anleitung hinzufüge kommt das Nachrichtentext als ob kein Ende für die Nachricht in deinem Script wäre:

So hätte ich es eingetragen

	action: notify.mobile_app_mosmax
metadata: {}
data:
  title: Wasserleckage endeckt!
  message: >-
    {% for entity in trigger.to_state.attributes.entity_id %} {% if
    states(entity) == 'on' %} {{ state_attr(entity,'friendly_name')}}  meldet
    Wasseralarm! {% endif %} {% endfor %}
          data:
            push:
              sound:
                name: "default"
                critical: 1
                volume: 1.0

ok, so gehts:

action: notify.mobile_app_mosmax
metadata: {}
data:
  title: Wasserleckage endeckt!
  message: >-
    {% for entity in trigger.to_state.attributes.entity_id %} {% if
    states(entity) == 'on' %} {{ state_attr(entity,'friendly_name')}}  meldet
    Wasseralarm! {% endif %} {% endfor %}
  data:
    push:
      sound:
        name: "default"
        critical: 1
        volume: 1.0