Eine Live Activity ist die Karte, die auf deinem Sperrbildschirm steht und sich live aktualisiert. Auf iPhones mit Dynamic Island sitzt sie zusätzlich oben in der schwarzen Pille. Home Assistant kann solche Karten selbst starten: der Geschirrspüler zeigt seinen Fortschritt, das E-Auto seinen Ladestand, der Backofen die Restzeit.
Du brauchst dafür nichts aus HACS. Die Companion-App kann das ab Werk. Du schickst eine ganz normale Benachrichtigung, nur mit zwei zusätzlichen Feldern.
In der deutschen App heißt die Funktion „Live-Aktivitäten". Im YAML und in der Doku steht überall „Live Activity", deshalb bleibe ich beim englischen Begriff. Alles hier habe ich auf meinem eigenen iPhone getestet: Home Assistant 2026.9.2, Companion-App 2026.9.1, iOS 27.0, iPhone 16 Pro Max.
Was du brauchst
| Was | Mindestens | Bei mir getestet |
|---|---|---|
| Home Assistant | 2026.7.0 | 2026.9.2 |
| Companion-App für iOS | 2026.8.0 | 2026.9.1 |
| iOS | 17.2 | 27.0 |
| Gerät | iPhone | iPhone 16 Pro Max |
Warum die App mindestens 2026.8.0 sein muss: Der Code steckte schon in 2026.7, dort ließen sich Live Activities aber nur in TestFlight-Builds starten. Die erste öffentliche Version im App Store war 2026.8.0.
So prüfst du deine Versionen:
- Home Assistant: Companion-App, Einstellungen → Companion-App, im Bereich Server auf deinen Server tippen. Unter Status steht die Zeile Version.
- Companion-App: Einstellungen → Companion-App, ganz unten auf Über tippen.
- iOS: iPhone-Einstellungen, Allgemein → Info.
Dynamic Island haben laut Apple: iPhone 14 Pro und 14 Pro Max, alle iPhone 15 und 16, iPhone 17, 17 Pro und 17 Pro Max, das iPhone Air sowie iPhone 18 Pro und 18 Pro Max. Nicht dabei sind iPhone 16e und iPhone 17e. Auf allen anderen iPhones siehst du die Karte nur auf dem Sperrbildschirm.
Android: Ab Android 16 zeigt die App das Ganze als Live Update, dort ist title Pflicht. Kartenfarben, Balkenfarbe, Balkenrichtung und silent wertet Android nicht aus. Auf älteren Android-Versionen kommt eine ganz normale Benachrichtigung an, den kurzen Status siehst du dort gar nicht. Ich habe das auf einem Pixel 2 XL mit Android 11 getestet.
iPad: Die App zeigt in Version 2026.9.x auf jedem iPad „Auf iPad nicht verfügbar". Verlass dich dort nicht darauf.
Schritt 1: Den Namen deines iPhones finden
Home Assistant spricht dein iPhone über einen eigenen Dienst an: notify.mobile_app_ plus Gerätename.
Den Gerätenamen findest du in der Companion-App unter Einstellungen → Companion-App. Tippe im Bereich Server auf deinen Server. Unter Details steht die Zeile Gerätename. Aus dem Namen wird der Dienst: klein geschrieben, Leerzeichen und Sonderzeichen werden zu Unterstrichen. Bei mir heißt der Dienst notify.mobile_app_jakku.
Du kannst auch in Home Assistant nachsehen, unter Einstellungen → Geräte & Dienste bei der Integration Mobile App.
Wichtig: Die neuere Aktion notify.send_message funktioniert hier nicht. Sie verwirft das innere data: komplett, damit fehlt alles, was eine Live Activity ausmacht.
Schritt 2: Die erste Karte schicken
- Öffne Einstellungen → Werkzeuge → Aktionen.
- Wechsle in den YAML-Modus.
- Füge das YAML unten ein und ersetze
DEIN_GERAETdurch deinen Gerätenamen. - Tippe auf Aktion ausführen und schau auf dein iPhone.
1action: notify.mobile_app_DEIN_GERAET
2data:
3 message: "Spülgang läuft"
4 title: "Geschirrspüler"
5 data:
6 tag: geschirrspueler_test
7 live_update: true
8 critical_text: "Reinigen"
9 progress: 30
10 progress_max: 100
11 notification_icon: "mdi:dishwasher"
12 notification_icon_color: "#2196F3"Was die Zeilen bedeuten:
messageist der Text unter dem Titel. Pflichtfeld, ohnemessagelehnt Home Assistant die Aktion ab.titleist die fette Überschrift.tagist der Name dieser einen Live Activity. Erlaubt sind Buchstaben, Ziffern, Bindestrich und Unterstrich, höchstens 64 Zeichen. Alles mit demselbentaglandet auf derselben Karte.live_update: truemacht aus der Benachrichtigung erst eine Live Activity. Ohne Anführungszeichen, es muss ein echtestruesein.critical_textist der kurze Status rechts oben.progressundprogress_maxzeichnen den Balken.notification_iconundnotification_icon_colorsetzen Icon und Farbe.
Bitte nicht zwanzigmal hintereinander starten und beenden. iOS hat ein Budget dafür, wie oft eine neue Live Activity per Push starten darf. Ist es aufgebraucht, starten neue Activities einfach nicht mehr, ohne Fehlermeldung.
Schritt 3: Verstehen, was wo angezeigt wird
Dieselbe Live Activity sieht an vier Stellen unterschiedlich aus.
Sperrbildschirm: Icon-Kachel links, aber nur wenn du notification_icon setzt. Titel eine Zeile. Zweite Zeile ist die message mit bis zu zwei Zeilen, läuft ein Timer, steht dort stattdessen der Timer. Rechts oben der critical_text, fehlt der, steht dort der Prozentwert. Unten der Balken.
Ohne eigene Farben hat die Karte einen durchscheinenden Glas-Hintergrund, durch den dein Hintergrundbild schimmert. Die offizielle Doku spricht von einem schwarzen Standard, das ist veraltet.
Dynamic Island kompakt: links das Icon in deiner Iconfarbe, rechts hat ein laufender Timer Vorrang, danach critical_text, danach Prozent. Einen Balken gibt es hier nicht.
Dynamic Island minimal: Läuft gleichzeitig eine zweite Live Activity, zeigt Home Assistant nur noch das Icon.
Dynamic Island erweitert: Links die Icon-Kachel, daneben Titel und message in einer Zeile, rechts Timer, sonst critical_text, sonst Prozent, darunter der Balken. Anders als auf dem Sperrbildschirm bleibt die message hier neben dem Timer stehen. Die Island ist immer dunkel mit weißer Schrift, eigene Kartenfarben gelten nur für den Sperrbildschirm.
| Feld | Sperrbildschirm | Island kompakt | Island erweitert |
|---|---|---|---|
title | ja, 1 Zeile | nein | ja, 1 Zeile |
message | ja, 2 Zeilen, außer ein Timer läuft | nein | ja, 1 Zeile |
critical_text | rechts oben | rechts, wenn kein Timer läuft | rechts, wenn kein Timer läuft |
| Prozent | rechts oben, wenn kein critical_text | rechts, als letzte Wahl | rechts, als letzte Wahl |
| Timer | statt message | rechts, Vorrang | rechts, Vorrang |
| Balken | ja | nein | ja |
| Icon | Kachel links | links | Kachel links |
Schritt 4: Aktualisieren und beenden
Ein Update ist derselbe Aufruf mit demselben tag. Zwei Regeln habe ich auf dem Gerät nachgemessen und beide kosten sonst Nerven:
Schick den Titel bei jedem Update mit. Der Titel darf sich ändern, das funktioniert. Lässt du ihn beim Update weg, springt die Karte aber nicht auf den zuletzt gesetzten Titel, sondern auf den Titel vom Start zurück.
Updates vibrieren. Die offizielle Doku sagt, Updates würden still zugestellt. Auf dem Gerät vibriert jedes Update, außer du setzt silent: true. Der Start vibriert immer, dort hat silent keine Wirkung.
1# Zwischenschritt, leise
2action: notify.mobile_app_DEIN_GERAET
3data:
4 message: "Klarspülen"
5 title: "Geschirrspüler"
6 data:
7 tag: geschirrspueler_test
8 live_update: true
9 silent: true
10 critical_text: "Klarspülen"
11 progress: 85
12 progress_max: 100
13 notification_icon: "mdi:dishwasher"
14 notification_icon_color: "#2196F3"Beenden geht über clear_notification mit demselben Tag:
action: notify.mobile_app_DEIN_GERAET
data:
message: clear_notification
data:
tag: geschirrspueler_testZweimal beenden ist harmlos, da passiert nichts. Was nicht harmlos ist: denselben tag direkt nach dem Beenden wieder starten. In meinem Test war die neue Karte nach etwa 20 Sekunden kommentarlos weg. Mit einem neuen Tag blieb sie stehen. Wie lange man warten muss, weiß ich nicht, deshalb nenne ich auch keine Zahl.
Schritt 5: Timer richtig einsetzen
Es gibt drei Varianten und sie sehen auf der Karte völlig unterschiedlich aus.
Countdown: chronometer: true, when_relative: true und ein positiver Wert in Sekunden. Die Karte zählt rückwärts, der Balken läuft leer. Die drei Zeilen gehören in den inneren data:-Block, auf dieselbe Ebene wie tag und live_update:
1action: notify.mobile_app_DEIN_GERAET
2data:
3 message: "Backofen läuft"
4 title: "Backofen"
5 data:
6 tag: backofen
7 live_update: true
8 chronometer: true
9 when: 2700
10 when_relative: true
11 notification_icon: "mdi:stove"
12 notification_icon_color: "#F44336"Stoppuhr ab Start: derselbe Aufbau mit when: 0. Die Karte zählt hoch, ohne Balken und ohne Ziel.
Läuft schon seit: ein negativer Wert. Die Karte zählt ab diesem Wert weiter hoch, ohne Ziel und ohne Balken. when: -300 startet also bei 5:00 und läuft weiter. Das ist selten das, was man haben will.
Und eine Falle, die man nur im Betrieb merkt: Relative Zeiten starten bei jedem Update neu. Schickst du bei jedem Zwischenschritt wieder when: 2700, steht der Countdown ewig bei 45 Minuten. Wer einen echten Countdown will, nimmt entweder die absolute Endzeit mit when_relative: false oder rechnet die Restzeit bei jedem Update neu aus.
Die absolute Endzeit hat ihre eigene Falle. Mit when_relative: false ist when ein Unix-Zeitstempel, und eine 0 bedeutet den 1. Januar 1970. Genau die entsteht, wenn der Endzeit-Sensor noch keinen Wert hat und das Template auf as_timestamp(..., 0) | int(0) zurückfällt. Das iPhone zählt dann ab 1970 hoch und zeigt fast 500.000 Stunden. Bei meinem Geschirrspüler passiert das beim Start, denn er meldet run und setzt die Endzeit erst gut eine Minute später. Schick den Timer deshalb nur, wenn der Sensor einen Wert hat, der in der Zukunft liegt:
{{ has_value('sensor.DEINE_ENDZEIT') and as_timestamp(states('sensor.DEINE_ENDZEIT'), 0) > as_timestamp(now()) }}Das ist eine Template-Bedingung, die vor den Push mit dem Timer gehört. Die komplette Automation mit Start, nachgezogener Endzeit, Fertig und Aufräumen steht in der Anleitung zu Live Activities.
Schritt 6: Fortschritt, Icons und Farben
progress und progress_max zeichnen den Balken. Mit progress_bar_direction: decreasing zeichnet iOS den verbleibenden Anteil von links, also einen Balken, der leerläuft. Der Prozentwert rechts oben bleibt dabei unverändert. Für einen Akku ist genau das richtig.
Die Balkenfarbe kommt aus progress_bar_color, sonst aus der Iconfarbe, sonst ist sie hellblau. Icons nachschlagen kannst du auf Pictogrammers, dort findest du alle verfügbaren MDI-Icons.
Beim Icon nimmst du einen gültigen MDI-Namen wie mdi:dishwasher. Farben sind Hex-Werte wie #2196F3. Und jetzt der Teil, der still scheitert: Ein unbekanntes Icon zusammen mit einer ungültigen Farbe lässt Icon und Balken komplett verschwinden. Keine Fehlermeldung, die Karte kommt an und sieht nur halb aus. Ein Tippfehler in der Farbe reicht.
Tipps und Troubleshooting
Die fieseste Falle: Templates liefern Zahlen. Home Assistant wandelt das Ergebnis eines Templates in den passenden Typ um. Liefert "{{ states('sensor.x') }}" den Wert 42, kommt beim iPhone eine Zahl an, kein Text. Beim critical_text verschluckt iOS dann das komplette Update. Die Karte bleibt auf dem alten Stand, das iPhone vibriert aber trotzdem. Genau das habe ich getestet.
Die Lösung: Häng ein festes Wort oder eine Einheit an. "{{ states('sensor.x') }} %" funktioniert. "{{ states('sensor.x') | string }}" reicht nicht, weil Home Assistant das Ergebnis danach wieder in eine Zahl verwandelt.
Die Grenzen, damit du nicht dagegen läufst:
- Nach acht Stunden beendet iOS jede Live Activity. Auf dem Sperrbildschirm kann sie danach noch bis zu vier Stunden stehen bleiben.
- Das Start-Budget von iOS ist begrenzt und Apple nennt keine Zahl. Ist es leer, startet gar nichts mehr, ohne Fehlermeldung.
- Über den Push-Dienst von Home Assistant gehen 500 Benachrichtigungen pro Gerät und Tag, zurückgesetzt um Mitternacht UTC. Laut Quellcode zählt bei Live Activities jeder Push mit, das Beenden eingeschlossen.
- Updates mit
silent: truegehen mit niedriger Priorität raus und zählen laut Apple nicht gegen dessen Stundenbudget. Aktualisiere trotzdem in sinnvollen Schritten, etwa alle 5 Prozent.
Wenn nichts ankommt, geh diese Liste von oben nach unten durch:
- Versionen prüfen: Core ab 2026.7.0, App ab 2026.8.0, iOS ab 17.2.
- In der Companion-App unter Einstellungen → Companion-App → Live-Aktivitäten muss der Status auf Aktiviert stehen.
- Richtiger Dienst? Es muss
notify.mobile_app_...sein, nichtnotify.send_message. messagegesetzt,taggesetzt,live_update: trueohne Anführungszeichen.- In der App unter Live-Aktivitäten auf Mit Home Assistant synchronisieren tippen.
- Update kommt nicht an, aber das iPhone vibriert? Dann liefert fast immer ein Template im
critical_texteine reine Zahl. Ein fest eingetippter Wert wie42bleibt dagegen Text und kommt an. - Icon und Balken fehlen? Prüfe
notification_icon_colorundprogress_bar_colorauf Tippfehler. - Karte verschwindet nach etwa 20 Sekunden? Du hast den
tagdirekt nach dem Beenden wiederverwendet. - Nach vielen Tests startet gar nichts mehr? Das Start-Budget ist aufgebraucht. Warte eine Weile.
Den Live Activity Generator nutzen
Das komplette YAML aus diesem Guide baust du im Live Activity Generator per Klick zusammen. Das Tool fragt dich drei Dinge:
Auslöser: Startest du die Karte selbst per Knopfdruck, oder soll eine Automation sie starten, sobald ein Sensor anspringt? Für die Automation beantwortest du Fragen wie „Woran merkt Home Assistant, dass es läuft?" und bekommst darunter in einem Satz zu lesen, was passieren wird.
Inhalt: Titel, Nachricht, kurzer Status, Icon, Farbe und der Ablauf mit allen Schritten. Daneben siehst du die Karte in Nahaufnahme, so wie sie auf dem Sperrbildschirm und in der Dynamic Island aussieht. Du kannst alle Zustände der Live Activity durchspielen, also Start, Zwischenstände und Fertig, bevor du auch nur einen Push ans iPhone schickst. Wahnsinnig praktisch, gerade wenn das tägliche Budget von 500 Pushes nicht durch Testläufe draufgehen soll.
Einrichten: Entweder in zwei Minuten ausprobieren, also Aufruf kopieren und in Werkzeuge → Aktionen ausführen, oder dauerhaft einrichten über den Ein-Klick-Import als Blueprint. Dort wählst du dein iPhone in Home Assistant nur noch aus einer Liste aus.
Es gibt 13 Vorlagen von der Waschmaschine über das E-Auto bis zum Backofen-Timer. Die Automationen, die dabei herauskommen, kennen die Fallen aus diesem Guide schon: Sie schicken den Timer nur mit gültiger Endzeit, halten den kurzen Status als Text, aktualisieren in sinnvollen Schritten und räumen die Karte auf, wenn Home Assistant zwischendurch neu startet.
Wenn dir etwas fehlt oder etwas nicht richtig funktioniert, lass es mich gerne in den Kommentaren wissen. Ich erweitere das Tool laufend weiter und freue mich über Feedback. Die lange Fassung mit allen Regeln, den fertigen Automationen für Waschmaschine, E-Auto und Backofen und der kompletten Fehlersuche steht in der Anleitung zu Live Activities.
Nutzt du Live Activities schon bei dir? Was zeigst du dir damit an?
Weiterführende Inhalte
- Home Assistant Notifications: Push, Critical Alerts und Aktionen – die Grundlagen hinter jedem Push ans iPhone
- Waschmaschine und Co. mit WashData überwachen – liefert den Sensor, der eine Live Activity startet
- Apple Health Schlafdaten in Home Assistant nutzen – mehr aus der Companion-App auf dem iPhone
- Live Activities einrichten – die lange Fassung mit allen Regeln und fertigen Automationen
