Home Assistant Live Activities: Waschmaschine, Saugroboter & E-Auto direkt auf dem Sperrbildschirm (iPhone & Android)

19. September 2026

Stell dir vor, du schaust kurz aufs Handy – und siehst ohne Entsperren direkt auf dem Sperrbildschirm: „Waschmaschine – noch 23 Minuten“, inklusive Fortschrittsbalken. Oder beim E-Auto: „Laden · 62 %“. Genau das machen Live Activities (iPhone) und Live Updates (Android) mit der Home-Assistant-App. Kein Suchen im Dashboard, kein Benachrichtigungs-Spam – nur eine kleine Karte, die sich von selbst aktualisiert.

In diesem Guide richten wir das Ganze Schritt für Schritt ein: vom ersten Test in zwei Minuten bis zur fertigen Waschmaschinen-Automation mit smarter Steckdose. Du brauchst keine Programmierkenntnisse – nur ein bisschen Copy & Paste.

Was sind Live Activities überhaupt?

Du kennst das von Lieferdiensten oder der Sport-App: Oben im Sperrbildschirm (und in der Dynamic Island beim iPhone) klebt eine kleine Karte, die den aktuellen Stand anzeigt – ohne dass ständig neue Benachrichtigungen aufploppen. Home Assistant kann das mit der aktuellen Companion-App auch. Die Karte wird per Push-Nachricht aus deinen Automationen gefüttert und lebt maximal 8 Stunden (Apple-Limit).

  • iPhone: Karte auf dem Sperrbildschirm + Dynamic Island (ab iPhone 14 Pro / alle iPhone 15 und neuer). Auf dem iPad gibt es keine Live Activities (Apple-Einschränkung).
  • Android: Angepinnt in der Benachrichtigungsleiste, auf dem Sperrbildschirm, dem Always-On-Display und als kleiner Chip in der Statusleiste.

Typische Einsätze: Waschmaschine/Trockner/Spülmaschine, Saugroboter, E-Auto-Ladung, 3D-Drucker, Alarmanlagen-Status, Paketlieferung, Timer aller Art.

Voraussetzungen (bitte kurz abhaken)

  • Home Assistant Core 2026.7 oder neuer (Einstellungen → Über prüfen).
  • Companion-App auf dem aktuellen Stand (App Store / Play Store).
  • iPhone: iOS 17.2 oder neuer. Unter iOS-Einstellungen → Home Assistant → Live-Aktivitäten muss der Schalter an sein.
  • Android: Android 16 oder neuer. Bei Samsung ggf. in den Entwickleroptionen „Live-Benachrichtigungen für alle Apps“ aktivieren.
  • Erreichbarkeit: Die App muss Home Assistant erreichen können, um Token auszutauschen – also entweder zuhause im WLAN oder unterwegs per Fernzugriff (Nabu Casa, VPN, eigene Domain). Ohne Verbindung startet keine Live Activity.
Wichtig: Beim allerersten Start fragt die App einmalig nach, ob du damit einverstanden bist, dass Inhalte ohne Entsperren sichtbar sind. Das musst du bestätigen, sonst passiert nichts.

Schritt 1: Den Namen deines Handys herausfinden

Jede Nachricht geht an eine Aktion namens notify.mobile_app_<dein_gerät>. Den Namen hast du beim Verbinden der App vergeben – meist so etwas wie notify.mobile_app_iphone_von_torsten.

  1. Öffne in Home Assistant Entwicklerwerkzeuge → Aktionen.
  2. Tippe in das Suchfeld „mobile_app“ – die Liste zeigt dir alle deine Handys.
  3. Merk dir den Namen deines Geräts. Den setzen wir gleich überall dort ein, wo unten notify.mobile_app_dein_handy steht.

Alternativ findest du ihn in der App unter Einstellungen → Companion App → Server & Geräte.

Schritt 2: Der 2-Minuten-Test

Bevor wir eine Automation bauen, testen wir die Live Activity direkt in den Entwicklerwerkzeugen. Wechsle bei Entwicklerwerkzeuge → Aktionen oben rechts in den YAML-Modus und füge das ein:

action: notify.mobile_app_dein_handy
data:
  title: „Waschmaschine"
  message: „Programm gestartet"
  data:
    tag: waschmaschine
    live_update: true

Auf „Aktion ausführen“ klicken – und auf dem Sperrbildschirm erscheint die Karte. Zwei Dinge sind hier entscheidend:

  • live_update: true sagt der App: „Zeig das als Live Activity, nicht als normale Benachrichtigung.“
  • tag ist der Name der Karte. Schickst du später eine Nachricht mit demselben Tag, wird die vorhandene Karte aktualisiert statt eine neue erstellt. Erlaubt sind Buchstaben, Zahlen, Bindestrich und Unterstrich (max. 64 Zeichen).

Android-Hinweis: Ohne title landet die Nachricht als normale Benachrichtigung. Also immer einen Titel setzen.

Schritt 3: Fortschrittsbalken und Timer dazu

Jetzt wird’s hübsch. Mit progress / progress_max bekommst du einen Balken, mit chronometer + when einen laufenden Countdown, der direkt auf dem Handy zählt – ganz ohne weitere Push-Nachrichten:

action: notify.mobile_app_dein_handy
data:
  title: „Waschmaschine"
  message: „Spülen · 1 von 2"
  data:
    tag: waschmaschine
    live_update: true
    progress: 900          # aktueller Wert (z. B. 900 Sekunden vergangen)
    progress_max: 3600     # Maximalwert (z. B. 3600 Sekunden = 1 Stunde)
    chronometer: true      # laufender Timer anzeigen
    when: 2700             # Restzeit in Sekunden …
    when_relative: true    # … ab jetzt gerechnet
    notification_icon: mdi:washing-machine
    notification_icon_color: „#22d3ee"   # iPhone: Icon- und Balkenfarbe
    color: „#22d3ee"                     # Android: Icon-Farbe

Zeile für Zeile erklärt:

  • progress / progress_max: Nur wenn beide gesetzt sind, erscheint der Balken. 900 von 3600 = 25 %.
  • chronometer + when + when_relative: „Zähle ab jetzt 2700 Sekunden (45 Minuten) runter.“ Der Timer läuft lokal auf dem Handy – du musst nichts nachschicken.
  • notification_icon: Jedes Material-Design-Icon funktioniert, z. B. mdi:robot-vacuum, mdi:ev-station, mdi:dishwasher.
  • Farben: iPhone nutzt notification_icon_color, Android color. Einfach beides setzen.

Schritt 4: Karte aktualisieren

Zum Aktualisieren schickst du einfach nochmal eine Nachricht mit demselben tag. Die Karte ändert sich still – kein Banner, kein Ton:

action: notify.mobile_app_dein_handy
data:
  title: „Waschmaschine"
  message: „Fertig – bitte ausräumen"
  data:
    tag: waschmaschine
    live_update: true
    progress: 3600
    progress_max: 3600
    notification_icon: mdi:washing-machine
    notification_icon_color: „#a3e635"
    color: „#a3e635"

Achtung: Der title wird nur beim Start gesetzt – Updates können ihn nicht mehr ändern. Der message-Text dagegen schon.

Schritt 5: Karte beenden

Fertig ist fertig – irgendwann soll die Karte verschwinden. Dafür schickst du den Befehl clear_notification mit dem passenden Tag (funktioniert auf iPhone und Android):

action: notify.mobile_app_dein_handy
data:
  message: „clear_notification"
  data:
    tag: waschmaschine

Praxisbeispiel 1: Waschmaschine mit smarter Steckdose

Das Klassiker-Setup: Die Waschmaschine hängt an einer Steckdose mit Verbrauchsmessung. Läuft die Maschine, steigt die Leistung; ist sie fertig, fällt sie auf fast null. Genau das nutzen wir als Auslöser. Ich verwende dafür den Shelly Plug S – zuverlässig, WLAN, lokal in Home Assistant und misst sauber:

Meine Empfehlung für die Waschmaschine

Der Shelly Plug S Gen3 misst den Verbrauch zuverlässig, läuft komplett lokal über WLAN in Home Assistant und schaltet bis 2500 W – mehr als genug für Waschmaschine oder Trockner. Der Leistungssensor daraus ist genau der Auslöser für die Automation unten.

* Affiliate-Link · Preis kann abweichen

Ersetze in der Automation sensor.waschmaschine_leistung durch den Leistungs-Sensor deiner Steckdose (in Watt) und notify.mobile_app_dein_handy durch dein Gerät. Die Schwellenwerte (5 W / 3 W) passen für die meisten Maschinen – schau dir im Verlauf deiner Steckdose an, was deine im Leerlauf zieht.

alias: Waschmaschine Live Activity
description: Zeigt den Waschmaschinen-Status auf dem Sperrbildschirm
mode: single
triggers:
  - trigger: numeric_state
    entity_id: sensor.waschmaschine_leistung
    above: 5
    id: gestartet
  - trigger: numeric_state
    entity_id: sensor.waschmaschine_leistung
    below: 3
    for:
      minutes: 3
    id: fertig
actions:
  - choose:
      - conditions:
          - condition: trigger
            id: gestartet
        sequence:
          - action: notify.mobile_app_dein_handy
            data:
              title: „Waschmaschine"
              message: „Läuft gerade"
              data:
                tag: waschmaschine
                live_update: true
                chronometer: true
                when: 5400            # typische Laufzeit: 90 Minuten
                when_relative: true
                progress_bar_direction: increasing
                notification_icon: mdi:washing-machine
                notification_icon_color: „#22d3ee"
                color: „#22d3ee"
                url: /lovelace/haushalt   # iPhone: öffnet diese Ansicht beim Tippen
      - conditions:
          - condition: trigger
            id: fertig
        sequence:
          - action: notify.mobile_app_dein_handy
            data:
              title: „Waschmaschine"
              message: „Fertig – Wäsche ausräumen"
              data:
                tag: waschmaschine
                live_update: true
                progress: 100
                progress_max: 100
                notification_icon: mdi:washing-machine
                notification_icon_color: „#a3e635"
                color: „#a3e635"
          - delay:
              minutes: 15
          - action: notify.mobile_app_dein_handy
            data:
              message: „clear_notification"
              data:
                tag: waschmaschine

Was passiert hier? Steigt der Verbrauch über 5 W, startet die Karte mit einem 90-Minuten-Countdown, dessen Balken sich füllt (progress_bar_direction: increasing). Bleibt der Verbrauch 3 Minuten lang unter 3 W, wechselt die Karte auf „Fertig“ in Lime-Grün – und räumt sich nach 15 Minuten selbst weg. Das for: minutes: 3 ist wichtig, weil viele Maschinen zwischendurch kurz pausieren (z. B. beim Einweichen).

Praxisbeispiel 2: Saugroboter mit Akku-Fortschritt

Beim Saugroboter nehmen wir den Status der vacuum-Entität als Auslöser und zeigen den Akku als Balken. Damit iOS nicht überfordert wird, aktualisieren wir nicht bei jedem Akku-Prozent, sondern nur bei Statuswechseln:

alias: Saugroboter Live Activity
mode: queued
triggers:
  - trigger: state
    entity_id: vacuum.roborock
    to:
      - cleaning
      - returning
      - docked
      - error
actions:
  - choose:
      - conditions: „{{ trigger.to_state.state == ‚docked' }}"
        sequence:
          - action: notify.mobile_app_dein_handy
            data:
              message: „clear_notification"
              data:
                tag: saugroboter
    default:
      - action: notify.mobile_app_dein_handy
        data:
          title: „Saugroboter"
          message: >-
            {% set s = trigger.to_state.state %}
            {{ {‚cleaning': ‚Saugt gerade', ‚returning': ‚Fährt zurück zur Station', ‚error': ‚Fehler – bitte nachsehen'}[s] }}
          data:
            tag: saugroboter
            live_update: true
            critical_text: „{{ state_attr(‚vacuum.roborock', ‚battery_level') }} %"
            progress: „{{ state_attr(‚vacuum.roborock', ‚battery_level') | int(0) }}"
            progress_max: 100
            notification_icon: mdi:robot-vacuum
            notification_icon_color: „{{ ‚#f87171' if trigger.to_state.state == ‚error' else ‚#22d3ee' }}"
            color: „{{ ‚#f87171' if trigger.to_state.state == ‚error' else ‚#22d3ee' }}"

Der critical_text ist der kleine Text oben rechts in der Karte bzw. im Android-Statusleisten-Chip – hier der Akkustand. Bei einem Fehler wird das Icon rot.

Praxisbeispiel 3: E-Auto laden (in 5-%-Schritten)

Der Ladestand ändert sich ständig – würden wir bei jeder Änderung pushen, würde iOS die Updates drosseln. Deshalb nur alle 5 %:

alias: E-Auto Ladung Live Activity
mode: queued
triggers:
  - trigger: state
    entity_id: sensor.eauto_ladestand
conditions:
  - condition: template
    value_template: „{{ trigger.to_state.state | int(0) % 5 == 0 }}"
  - condition: state
    entity_id: binary_sensor.eauto_laedt
    state: „on"
actions:
  - action: notify.mobile_app_dein_handy
    data:
      title: „E-Auto lädt"
      message: „Laden · {{ states('sensor.eauto_ladestand') }} %"
      data:
        tag: eauto-laden
        live_update: true
        critical_text: „{{ states('sensor.eauto_ladestand') }} %"
        progress: „{{ states('sensor.eauto_ladestand') | int(0) }}"
        progress_max: 100
        notification_icon: mdi:ev-station
        notification_icon_color: „#a3e635"
        color: „#a3e635"
        silent: true

Dazu eine zweite kleine Automation, die bei binary_sensor.eauto_laedt → off die Karte per clear_notification beendet. silent: true lässt iOS die Updates stromsparend bündeln – perfekt für alles, was nicht dringend ist.

Praxisbeispiel 4: Spülmaschine oder 3D-Drucker per Timer

Viele Geräte melden keinen Fortschritt, aber du kennst die Laufzeit. Dann reicht ein Countdown – eine einzige Nachricht, der Rest läuft auf dem Handy:

action: notify.mobile_app_dein_handy
data:
  title: „Spülmaschine"
  message: „Eco-Programm läuft"
  data:
    tag: spuelmaschine
    live_update: true
    chronometer: true
    when: 10800          # 3 Stunden
    when_relative: true
    notification_icon: mdi:dishwasher
    notification_icon_color: „#22d3ee"
    color: „#22d3ee"

Wenn deine Spülmaschine an einer Zigbee-Steckdose mit Verbrauchsmessung hängt, kannst du das Ganze natürlich wie bei der Waschmaschine automatisch starten und beenden. Ich nutze in der Küche gern die Aqara-Steckdose – klein, Zigbee (also kein zusätzliches WLAN-Gerät im Netz) und mit Leistungsmessung:

Zigbee-Alternative für die Küche

Die Aqara Smart Plug funkt über Zigbee (kein zusätzliches WLAN-Gerät), misst den Verbrauch und ist klein genug, um hinter der Spülmaschine nicht zu stören. Mit Zigbee2MQTT oder ZHA in wenigen Sekunden eingebunden.

* Affiliate-Link · Preis kann abweichen

Die wichtigste Regel: Nicht zu oft aktualisieren

Jedes Update ist eine Push-Nachricht. iOS hat dafür ein Budget: Wer zu oft schickt, wird gedrosselt – Updates kommen verspätet oder gar nicht mehr an. Darum:

  • ✅ Auslösen bei echten Statuswechseln (läuft → fertig), nicht bei jedem Sensor-Tick.
  • ✅ Für Zeiten den chronometer nutzen – der zählt auf dem Gerät.
  • ✅ Kontinuierliche Werte auf sinnvolle Schritte runden (alle 5 %, alle 10 Minuten).
  • ❌ Kein time_pattern im Sekundentakt.
  • ❌ Nicht direkt auf Leistungs- oder Temperatursensoren triggern, die sich alle paar Sekunden ändern.

Profi-Trick „Entprellen“: Setze die Automation auf mode: restart und packe ein delay vor die Nachricht. Jeder neue Auslöser startet die Wartezeit neu – am Ende geht nur ein Update mit dem aktuellsten Wert raus:

mode: restart
triggers:
  - trigger: state
    entity_id: sensor.haeufig_wechselnder_wert
actions:
  - delay: „00:00:30"
  - action: notify.mobile_app_dein_handy
    data:
      title: „Mein Wert"
      message: „{{ states('sensor.haeufig_wechselnder_wert') }}"
      data:
        tag: mein-wert
        live_update: true

Design: Farben, Antippen, Balkenrichtung (iPhone)

Standardmäßig ist die Karte schwarz mit hellem Text. Du kannst sie in deine Farben tauchen – hier passend zum mastershort-Dark-Look:

action: notify.mobile_app_dein_handy
data:
  title: „Waschmaschine"
  message: „Fertig"
  data:
    tag: waschmaschine
    live_update: true
    background_color: „#0a0e14"
    text_color: „#e6edf3"
    progress_bar_color: „#22d3ee"
    url: /lovelace/haushalt
  • background_color / text_color: Hintergrund und Textfarbe der Sperrbildschirm-Karte. Lässt du text_color weg, wählt die App automatisch eine kontrastreiche Farbe.
  • progress_bar_color: Balkenfarbe getrennt vom Icon.
  • url: Was beim Antippen passiert – ein relativer Pfad wie /lovelace/haushalt öffnet diese Dashboard-Ansicht in der App, eine https://-Adresse den Browser. Der Wert gilt jeweils nur für das Update, mit dem er geschickt wird.
  • progress_bar_direction: increasing (füllt sich) oder decreasing (leert sich). Standard: Fortschritt füllt, Countdown leert.

Die Dynamic Island behält übrigens immer ihren dunklen System-Look – die Farben gelten für die Karte auf dem Sperrbildschirm.

Alle Felder auf einen Blick

title und message stehen direkt unter data:, alles andere im inneren data:-Block.

FeldBedeutungPlattform
tagEindeutiger Name der Karte (Pflicht). Gleicher Tag = Update.beide
live_updatetrue = als Live Activity anzeigenbeide
titleÜberschrift, nur beim Start setzbarbeide (Android: Pflicht)
messageHaupttextbeide
critical_textKurzer Zusatztext (oben rechts / Statusleisten-Chip)beide
progress / progress_maxFortschrittsbalken (nur wenn beide gesetzt)beide
chronometer + when + when_relativeLaufender Timer; when in Sekunden ab jetzt (relative) oder als Unix-Zeitstempelbeide
notification_iconMDI-Icon, z. B. mdi:washing-machinebeide
notification_icon_colorIcon-/Balkenfarbe (Hex)iPhone
colorIcon-Farbe (Hex)Android
silentUpdate ohne Ton, stromsparend gebündeltiPhone
urlZiel beim AntippeniPhone
background_color / text_color / progress_bar_colorEigene Farben der KarteiPhone
progress_bar_directionincreasing oder decreasingiPhone
alert_onceTon/Vibration nur einmalAndroid
stickyBleibt beim Antippen bestehenAndroid

Fehlerbehebung: Wenn nichts erscheint

  • iPhone – Schalter prüfen: iOS-Einstellungen → Home Assistant → Live-Aktivitäten aktiv? Und den einmaligen Datenschutz-Hinweis in der App bestätigt?
  • Verbindung: Erreicht die App deinen Home Assistant gerade (zuhause oder Fernzugriff)? Ohne Verbindung klappt der Token-Austausch nicht – die Automation läuft dann zwar „erfolgreich“ durch, aber am Handy passiert nichts.
  • Zu viel getestet? iOS begrenzt, wie oft neue Karten per Push gestartet werden dürfen. Wer beim Basteln zehnmal startet und beendet, verbraucht dieses Budget – danach starten neue Karten still nicht mehr. Kein Fehler im Log, kein Hinweis. Das Budget füllt sich von selbst wieder (Minuten bis Stunden); ein Neustart des Handys hilft nicht. Also: beim Testen lieber updaten als ständig neu starten.
  • Karte hängt: Einmal clear_notification mit dem Tag schicken, dann neu starten – oder einen anderen Tag verwenden.
  • Updates kommen nicht an: Automation aktualisiert zu häufig → siehe Regel oben.
  • Android – normale Benachrichtigung statt Karte: Fehlt der title? Android 16 installiert? Samsung: „Live-Benachrichtigungen für alle Apps“ in den Entwickleroptionen.
  • Übersicht in der App: Unter Einstellungen → Live Activities (iPhone) siehst du, ob die Funktion aktiv ist, und kannst laufende Karten manuell beenden.

Häufige Fragen

Brauche ich Nabu Casa? Nein. Du brauchst nur einen Weg, wie dein Handy Home Assistant erreicht. Nabu Casa ist der bequemste, ein VPN (z. B. WireGuard) oder eine eigene Domain funktionieren genauso.

Geht das auf der Apple Watch? Die Live Activity selbst läuft auf dem iPhone; auf der Watch erscheinen die normalen Benachrichtigungen der App. Mit einem iPhone ohne Dynamic Island (bis iPhone 14) siehst du die Karte nur auf dem Sperrbildschirm.

Warum verschwindet die Karte nach ein paar Stunden? Apple beendet Live Activities spätestens nach 8 Stunden. Für sehr lange Vorgänge (z. B. Laden über Nacht) startest du sie einfach per Automation erneut.

Kann ich mehrere Karten gleichzeitig haben? Ja – einfach unterschiedliche tag-Werte verwenden. In der Dynamic Island teilen sich zwei Aktivitäten den Platz (minimale Darstellung).

Kostet das etwas? Nein, die Funktion ist Teil der kostenlosen Companion-App. Nur der Fernzugriff kann je nach Lösung Geld kosten.

Fazit

Live Activities sind für mich eines der praktischsten Features der letzten Zeit: Ein Blick aufs Handy reicht, um zu wissen, ob die Wäsche fertig ist oder das Auto voll – ganz ohne Benachrichtigungs-Flut. Der Einstieg dauert zwei Minuten, die Waschmaschinen-Automation oben ist in zehn Minuten eingerichtet. Wichtigste Regel: Statuswechsel statt Sekundentakt, dann läuft’s stabil.

Wenn du noch ganz am Anfang stehst, hilft dir mein Home-Assistant-Starter-Guide. Die Steckdosen und Sensoren, die ich selbst nutze, findest du in meiner Ausstattung – und für ein Dashboard im gleichen Look wie deine neuen Sperrbildschirm-Karten gibt’s mein gratis Icon-Pack mit 259 Smart-Home-Icons, wenn du dich unten für den Newsletter einträgst.

Das könnte dich auch interessieren