Home Assistant Benachrichtigungen, wenn du heimkommst!

Keine Lust mehr unterwegs benachrichtigt zu werden, wenn die Waschmaschine fertig ist? In diesem Video zeige ich dir, wie du in Home Assistant Benachrichtigungen so einrichtest, dass sie genau dann gesendet werden, wenn jemand nach Hause kommt – perfekt für den Empfang wichtiger Nachrichten im richtigen Moment :raised_hands:

Blog-Post:

4 „Gefällt mir“

Das ist doch sowas ähnliches oder?

iq_notify kann auch strikt Nachrichten trennen, je nach dem Status der zu benachrichtigen Personen.

So sehr ich den Ansatz aus dem Video mag mit den “zwischengespeicherten” Nachrichten wenn keiner Zuhause ist, die dann bei Heimkehr verschickt werden…
Bei uns gibt es eigentlich keine strikte Auftrennung zwischen einen “Hauptempfänger” der Nachrichten… und wenn der “Hauptempfänger” nicht da ist, dann erst geht alles eine zweite Person.
Zusätzlich kommt in meinem persönlichen Szenario noch eine dritte Person ins Spiel, die ebenfalls die wichtigsten Nachrichten erhalten soll - mag aber auch daran liegen, dass alle Personen im Haushalt extrem technikaffin sind :smiley:

Das würde mit der Lösung aus dem Video und stark erweiterten Optionen zwar ebenfalls funktionieren, würde das Ganze aber für mein Szenario schon ganz schön “aufblähen”.

Zumindest zum jetzigen Zeitpunkt werde ich persönlich weiter auf iq_notify setzen, da ich hier mit einer schlanken Integration an mein Ziel komme.
Aber cool zu wissen, wie man hier im Falle eines Falles eine Alternative schaffen könnte :+1:

Also leide konnte ich das Problem mit der Liste das Per TTS nur eines angesagt wird nicht beheben hier mein versuch

service: tts.cloud_say
data_template:
  entity_id: media_player.tab_s8_ultra_von_jona
  message: >
    {% set messages = state_attr('sensor.pending_notification_sensor', 'list')
    %} {% if messages and messages | length > 0 %}
      {{ messages | join('. ') }}
    {% else %}
      Keine neuen Nachrichten.
    {% endif %}
enabled: true

Vielleicht kann mir jemand weiterhelfen :slight_smile:
er sagt hier immer keine neuen Nachrichten an obwohl welche in der Liste waren ( irgendo ist ein Fehler)

Hallo,
ich bekomme den Binary-Sensor „ist jemand zu Hause“ leider nicht hin, der wird offensichtlich nicht erkannt. Meine Better Thermostat Blueprint Automationen funktionieren daher alle nicht. Immer wieder gingen die Temperaturen wieder auf 17 grad (nicht anwesend Temperatur). Erst als ich diese geändert habe, blieb die Temperatur auf 22 grad. Was habe ich falsch gemacht? Habe schon alles mögliche an Varianten versucht.

  - binary_sensor:
             # Dieses Sensor ist an, wenn jemand zu Hause ist
      - name: Ist jemand zuhause
        unique_id: "isAnyoneAtHome"
        state: >
            {{ is_state('person.tim', 'zuhause')
               or is_state('person.sabrina', 'zuhause')
               or is_state('person.milena', 'zuhause')
               or is_state('person.emma', 'zuhause') }}

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

dürfte falsch sein. home wäre richtig.

Mach es doch über die grafische Oberfläche: Einstellungen - Helfer - Template - Binärsensor

Wäre es nicht einfacher zone.home auf > 0 zu prüfen? :face_with_raised_eyebrow:

Guten Tag,

ich stecke etwas fest und finde irgendwie keinen Anfang.

  1. In dem Video wird beschrieben ich kann den Name von meinem Gerät unter Entwicklerwerkzeuge > Dienste anschauen. Aber ich habe den Reiter “Dienste” gar nicht. Die Mobile App läuft auf meinem Gerät und die Erkennung wo ich bin auch. Fehlt noch ein anderer Dienst?
    Ich habe bisher noch gar nichts mit Benachrichtigungen gemacht.

  2. In der configuration.yaml soll man den is_state für die Person auswählen. Ist es der Benutzername (also ‘person.martinh’, ‘home’) oder der Name (‘person.Martin_Nachname’, ‘home’)?

Evtl. kann mir jemand kurz unter die Arme greifen.

Viele Grüße
Martin

Edit zu 1.:
Hab es hier . Der Punkt ist nun bei “Aktionen” nicht mehr bei Dienste.

Danke. Das mit „home“ war es (sorry für die Späte Rückmeldung)

Leider muss ich mich nochmal melden, da es bei mir teilweise nicht funktioniert.

Habe alles wie im Video eingerichtet und an die eigenen Geräte angepasst. Beim Test kommt bei mir aber nie eine Nachricht an, das Skript “Notify Me” macht nichts, "Notify Wife funktioniert einwandfrei. Habe auch testweise schon das Handy in der YAML ausgetauscht auf das meinerTochter, ohne Erfolg. Eine Testnachricht direkt an mein Handy funktionierte ebenfalls, halt nur nicht über das Script. Alle Handys sind natürlich beim Testen zu Hause gewesen. Hat jemand eine Idee, habe es stundenlang versucht?

append_pending_notification:
  alias: Append pending notification
  icon: mdi:notification-clear-all
  mode: parallel
  max: 10
  fields:
    title:
      name: Title
      description: Notification title
      required: true
    message:
      name: Message
      description: Notification message
      required: true
    data:
      name: Data
      description: Additional notification data
      required: false
      advanced: true
      default: {}
  sequence:
  - alias: Set variables
    variables:
      appending_notification:
        title: '{{ title|default(None, true) }}'
        message: '{{ message|default('''', true) }}'
        data: '{{ data|default({}) }}'
        timestamp: '{{ now() }}'
      pending_notifications: '{{ (state_attr(''sensor.pending_notification_sensor'',
        ''list'') | default([], true)) + [appending_notification]}}'
  - event: set_entity_value
    event_data:
      entity_id: sensor.pending_notification_sensor
      state: '{{ pending_notifications|length }}'
      attr:
        list: '{{ pending_notifications }}'
notify_me:
  alias: Notify Me
  icon: mdi:notification-clear-all
  mode: parallel
  max: 10
  fields:
    title:
      name: Title
      description: Notification title
      required: true
    message:
      name: Message
      description: Notification message
      required: true
    data:
      name: Data
      description: Additional notification data
      required: false
      advanced: true
      default: {}
  sequence:
  - service: notify.mobile_app_banana_joe
    data:
      title: '{{ title }}'
      message: '{{ message }}'
      data: '{{ data |default({}) }}'
notify_those_at_home:
  alias: Notify people at home
  icon: mdi:notification-clear-all
  mode: parallel
  max: 10
  fields:
    title:
      selector:
        text:
      name: Title
      description: Notification title
      default: Die Wäsche ist fertig!
      required: true
    message:
      selector:
        text:
      name: Message
      description: Notification message
      default: Die Waschmaschine kann geleert werden!
      required: true
    data:
      selector:
        text:
      name: Data
      description: Additional notification data
  sequence:
  - choose:
    - conditions:
      - condition: template
        value_template: '{{ is_state(''person.tim'', ''home'') }}'
      sequence:
      - service: script.notify_me
        data:
          title: '{{ title }}'
          message: '{{ message }}'
          data: '{{ data |default({}) }}'
    - conditions:
      - condition: template
        value_template: '{{ is_state(''person.sabrina'', ''home'') }}'
      sequence:
      - service: script.notify_wife
        data:
          title: '{{ title }}'
          message: '{{ message }}'
          data: '{{ data |default({}) }}'
    - conditions:
      - condition: template
        value_template: '{{ is_state(''binary_sensor.ist_jemand_zuhause'', ''off'')
          }}'
      sequence:
      - service: script.append_pending_notification
        data:
          title: '{{ title }}'
          message: '{{ message }}'
          data: '{{ data |default({}) }}'
    default: []
notify_wife:
  alias: Notify Wife
  sequence:
  - service: notify.mobile_app_iphone_von_drops
    data:
      title: '{{ title }}'
      message: '{{ message }}'
      data: '{{ data |default({}) }}'
  icon: mdi:notification-clear-all
  mode: parallel
  max: 10
  fields:
    title:
      name: Title
      description: Notification title
      required: true
    message:
      name: Message
      description: Notification message
      required: true
    data:
      name: Data
      description: Additional notification data
      required: false
      advanced: true
      default: {}

Hat keiner eine Idee oder kann mir zumindest einen Lösungsweg aufzeigen?

Die YAML Snippets sind ja schon ein wenig in die Jahre gekommen und Home Assistant hat sich entsprechend weiter entwickelt.
Wenn man also das YAML in die UI eines neuen Skripts kopiert, und dann zurück in den Visuellen Editor umschaltet, sieht man das die Felder z.B. nicht als solche erkannt werden, da die “selector:” Angaben fehlen.

Bis auf den “Pending Notification Sensor” sollte man alles andere über die UI erstellen können.

Bin noch dabei das ganze mit 2025.9.4 bei mir ans laufen zu bekommen.

seit dem letzten Updates scheint das nicht mehr zu funktionieren, vor kurzem hat es noch sehr gut geklappt, aber jetzt bekomme ich die Fehlermeldung

Die Aktion script.notify_people_at_home_neu konnte nicht ausgeführt werden.
expected dict for dictionary value @ data['data'].
Got None

Hat jemand eine Idee?

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)
s.a.: (Neues Update & Features - Hier in der Community 🫶)

Ich habe mir jetzt ein eigenes System erstellt, welches uns benachrichtigt, wenn wir zu hause sind bzw. nach hause kommen…

Der Vorteil ist auch, dass es deutlich schlanker ist, als das was Simon vor 2 Jahren geschrieben hat :slight_smile:

Ich möchte es einmal mit euch Teilen…

Es besteht lediglich aus 2 Skripten und einer Automation. Es werden jedoch weiterhin die von Simon erstellen binary_sensor.ist_jemand_zuhause und sensor.pending_notification_sensor verwendet. Die müssen stehen bleiben oder wie in Simons Tutorial erstellt werden.

dieses Script ist der “Pförtner” dieses entscheidet, ob eine Nachricht gespeichert wird, oder zugestellt wird

alias: Benachrichtige Personen die zuhause sind
description: >-
  Hauptskript: Entscheidet, ob eine Nachricht sofort gesendet oder gespeichert
  wird.
fields:
  title:
    name: Titel
    description: Der Titel der Benachrichtigung (z.B. Ally oder Waschmaschine)
    example: Hunde-Alarm
    selector:
      text: null
    required: true
  message:
    name: Nachricht
    description: Der eigentliche Text der Nachricht
    example: Ally hat das Wohnzimmer verlassen.
    selector:
      text:
        multiline: true
    required: true
  data:
    name: Zusatzdaten
    description: Optionale Daten (z.B. Bilder oder Klick-Aktionen)
    default: {}
    selector:
      object: null
  ausgabegerate_echos:
    name: Ausgabegerate (Echos)
    required: true
    description: Welche Alexa soll sprechen? (z.B. media_player.echo_studio_wohnzimmer)
    selector:
      target:
        entity:
          domain: media_player
          integration: alexa_media
sequence:
  - variables:
      ziel_liste: >-
        {% set entities = ausgabegerate_echos.entity_id %} {% if entities is
        string

        %}
          - {{ entities }}
        {% else %}
          {% for e in entities %}
          - {{ e }}
          {% endfor %}
        {% endif %}
  - choose:
      - conditions:
          - condition: state
            entity_id: binary_sensor.ist_jemand_zuhause
            state: "off"
        sequence:
          - action: script.nachricht_im_speicher_ablegen
            data:
              title: "{{ title }}"
              message: "{{ message }}"
              data: "{{ data if data is mapping else {} }}"
      - conditions:
          - condition: state
            entity_id: binary_sensor.ist_jemand_zuhause
            state: "on"
        sequence:
          - parallel:
              - if:
                  - condition: state
                    entity_id: person.dennis_2
                    state: home
                then:
                  - action: notify.mobile_app_pixel_9_pro
                    data:
                      title: "{{ title }}"
                      message: "{{ message }}"
                      data: |-
                        {% set extras = data if data is mapping else {} %}
                        {% set priority_stuff = {
                          "priority": "high",
                          "ttl": 0,
                          "importance": "high",
                          "push": {"priority": "high"}
                        } %}
                        {{ dict(priority_stuff, **extras) }}
              - if:
                  - condition: state
                    entity_id: person.christos
                    state: home
                then:
                  - action: notify.mobile_app_chros_handy
                    data:
                      title: "{{ title }}"
                      message: "{{ message }}"
                      data: |-
                        {% set extras = data if data is mapping else {} %}
                        {% set priority_stuff = {
                          "priority": "high",
                          "ttl": 0,
                          "importance": "high",
                          "push": {"priority": "high"}
                        } %}
                        {{ dict(priority_stuff, **extras) }}
              - action: notify.alexa_media
                data:
                  message: "{{ title }}: {{ message }}"
                  data:
                    type: announce
                  target: "{{ ausgabegerate_echos.entity_id }}"


Dieses Script ist dafür da, damit die Nachrichten gespeichert werden.

alias: Nachricht im Speicher ablegen
description: Speichert eine Nachricht im Sensor, wenn niemand zu Hause ist.
fields:
  title:
    name: Titel
  message:
    name: Nachricht
  data:
    name: Zusatzdaten
    default: {}
sequence:
  - event: set_entity_value
    event_data:
      entity_id: sensor.pending_notification_sensor
      state: "{{ (states('sensor.pending_notification_sensor') | int(0)) + 1 }}"
      attr:
        list: >
          {% set current = state_attr('sensor.pending_notification_sensor',
          'list') | default([], true) %} {% set new_entry = {
            'title': title,
            'message': message,
            'data': data if data is mapping else {}
          } %} {{ current + [new_entry] }}

Zu guter letzt die Automation, die beim Heimkommen die Nachrichten dann zeitverzögert zustellt:

alias: Zustellung verpasster Nachrichten bei Heimkehr
description: Geht alle gespeicherten Nachrichten durch und sendet sie einzeln.
triggers:
  - entity_id: binary_sensor.ist_jemand_zuhause
    from: "off"
    to: "on"
    trigger: state
conditions:
  - condition: numeric_state
    entity_id: sensor.pending_notification_sensor
    above: 0
actions:
  - repeat:
      for_each: >-
        {{ state_attr('sensor.pending_notification_sensor', 'list') |
        default([], true) }}
      sequence:
        - action: script.benachrichtige_personen_die_zuhause_sind
          data:
            title: "🏠 Verpasst: {{ repeat.item.title }}"
            message: "{{ repeat.item.message }}"
            data: "{{ repeat.item.data | default({}) }}"
        - delay: "00:00:01"
  - event: set_entity_value
    event_data:
      entity_id: sensor.pending_notification_sensor
      state: 0
      attr:
        list: []

Ich habe die bei mir nun auch mit “Verpasst:” ergänzt damit man auch gleich sieht, dass dies “aufgelaufene” Benachrichtigungen sind und nicht aktuell - Zudem habe ich noch die Ausgabe auf meine Echos hinzugefügt.

Es braucht noch etwas feinschliff aber dies Funktioniert sehr gut und ist deutlich schlanker als die damalige Lösung :slight_smile: