Home Assistant Automationen debuggen: Traces, Logs und Fehlersuche
Dieser Artikel kann Affiliate-Links enthalten. Wenn du über diese Links einkaufst, erhalten wir möglicherweise eine kleine Provision — ohne Mehrkosten für dich. Das hilft uns, weiterhin kostenlose Inhalte zu erstellen.
Du hast eine Automation geschrieben, alles sieht richtig aus, aber sie funktioniert nicht. Kein Trigger, keine Aktion, keine Fehlermeldung. Oder schlimmer: Sie triggert manchmal, aber nicht immer. Wo fängst du mit der Fehlersuche an?
Home Assistant hat mehrere eingebaute Debugging-Tools, die die meisten Nutzer nicht kennen: Traces, Logbook, Template-Editor und Entwicklerwerkzeuge.
Die häufigsten Fehler
Bevor du tief in die Debugging-Tools einsteigst, prüfe diese Top-5-Fehlerquellen:
- Automation ist deaktiviert: Klingt banal, passiert aber oft. Prüfe unter Einstellungen > Automatisierungen, ob der Schalter auf „An" steht.
- Entity-ID hat sich geändert: Nach einem Update oder Neustart können sich Entity-IDs ändern (z. B.
sensor.temperaturwird zusensor.temperatur_2). Prüfe alle Entity-IDs in deiner Automation. - YAML-Einrückung falsch: YAML ist empfindlich bei Leerzeichen. Ein Tab statt Leerzeichen oder eine falsche Einrückungsebene reicht, um die Automation zu brechen.
- Condition blockiert: Die Automation triggert, aber eine Condition verhindert die Ausführung. Das ist der häufigste „unsichtbare" Fehler.
- Service existiert nicht: Der aufgerufene Service (z. B.
notify.mobile_app_xyz) existiert nicht oder hat sich umbenannt.
Synology DS423+ für Docker
Unsere Empfehlung passend zu diesem Thema
* Affiliate-Link, du zahlst nicht mehr, wir erhalten eine kleine Provision
Tool 1: Automation Traces
Traces sind das mächtigste Debugging-Tool in Home Assistant. Sie zeichnen jeden einzelnen Durchlauf einer Automation auf: Welcher Trigger hat ausgelöst? Welche Conditions wurden geprüft? Welche Aktionen wurden ausgeführt?
Du findest die Traces unter Einstellungen > Automatisierungen > [Deine Automation] > Traces (das Uhr-Symbol oben rechts).
Jede Trace zeigt:
- Trigger: Welcher Trigger hat die Automation gestartet? Bei mehreren Triggern siehst du, welcher konkret ausgelöst hat.
- Conditions: Jede Condition mit ihrem Ergebnis (bestanden/nicht bestanden). Hier erkennst du sofort, ob eine Condition die Ausführung blockiert hat.
- Actions: Jede Aktion mit ihrem Ergebnis. Fehler werden rot markiert.
- Context: Variablen und Zustände zum Zeitpunkt der Ausführung.
Tool 2: Logbook
Das Logbook (Logbuch) zeigt chronologisch alle Zustandsänderungen und Automationsauslösungen. Du findest es in der Seitenleiste unter dem Symbol mit der Uhr.
Filtere das Logbook auf deine Automation oder die relevante Entity. So siehst du:
- Wann hat sich der Status der Entity geändert?
- Wurde die Automation ausgelöst?
- Gab es eine Änderung, die du nicht erwartet hast?
Das Logbook ist besonders nützlich, wenn du prüfen willst, ob ein Trigger überhaupt ausgelöst wird. Wenn die Entity ihren Status nicht ändert, kann der Trigger auch nicht feuern.
Tool 3: Template-Editor
Für Automationen mit Templates (z. B. in Conditions oder Nachrichten) ist der Template-Editor unverzichtbar. Du findest ihn unter Entwicklerwerkzeuge > Vorlage.
Kopiere dein Template dort hinein und sieh sofort, welchen Wert es liefert. Beispiel:
{# Teste ein Template für die Benachrichtigungs-Nachricht #} {% set power = states('sensor.waschmaschine_power') | float(0) %} Aktuelle Leistung: {{ power }} Watt Status: {% if power > 10 %}laeuft{% elif power > 1 %}standby{% else %}aus{% endif %}Der Template-Editor zeigt dir live das Ergebnis an. So erkennst du sofort:
- Liefert der Sensor einen Wert oder „unavailable"?
- Ist der Wert ein String statt einer Zahl? (Häufiger Fehler:
states()liefert immer Strings) - Funktioniert die Logik deines if/else-Blocks?
states('sensor.xyz') liefert immer einen String. Wenn du numerische Vergleiche machen willst, musst du mit | float(0) oder | int(0) konvertieren. Der Default-Wert (hier: 0) greift, wenn der Sensor unavailable oder unknown ist, ohne Default würde das Template einen Fehler werfen.Tool 4: Logger, Debug-Level für Integrationen
Wenn ein Problem tiefer liegt (z. B. in einer Integration), kannst du den Log-Level temporär erhöhen. Füge in deiner configuration.yaml hinzu:
Nach einem Neustart zeigt das Log unter Einstellungen > System > Protokolle detaillierte Informationen zu jeder Automation-Ausführung. Du siehst genau, welche Trigger geprüft werden, welche Conditions evaluiert werden und welche Fehler auftreten.
Vergiss nicht, den Log-Level nach dem Debugging wieder auf warning zurückzusetzen. Debug-Logs erzeugen viele Einträge und können die Performance beeinträchtigen.
Systematische Fehlersuche: Der 4-Schritte-Prozess
Wenn eine Automation nicht funktioniert, gehe systematisch vor:
- Prüfe den Trigger: Öffne das Logbook und filtere auf die Trigger-Entity. Ändert sich der Status wie erwartet? Falls nein: Die Entity oder Integration hat ein Problem.
- Prüfe die Conditions: Öffne die Traces. Hat die Automation getriggert, aber eine Condition war nicht erfüllt? Falls ja: Prüfe die Condition-Werte im Template-Editor.
- Prüfe die Aktionen: Teste die Aktion manuell über Entwicklerwerkzeuge > Dienste. Funktioniert sie dort? Falls nein: Der Service oder die Ziel-Entity ist das Problem.
- Prüfe die YAML-Syntax: Kopiere deine Automation in den YAML-Editor und achte auf rote Markierungen. Häufige Fehler: falsche Einrückung, fehlende Anführungszeichen, Tippfehler in Service-Namen.
binary_sensor.bewegungsmelder von off auf on, um die Automation zu testen.Häufige Fehlerbeispiele mit Lösungen
Fehler 1: Automation triggert nie
# Problem: trigger nutzt 'to' ohne 'from'
trigger:
- platform: state
entity_id: sensor.temperatur
to: "25" # <-- String-Vergleich!
Lö
Numerische Werte in State-Triggern müssen als String angegeben werden. Der Sensor liefert aber möglicherweise „25.0" oder „24.9". Verwende stattdessen sung:numeric_state:
trigger:
- platform: numeric_state
entity_id: sensor.temperatur
above: 25
Fehler 2: Automation triggert, aber Action passiert nicht
# Problem: Service-Name falsch
action:
- service: light.turn_on
entity_id: light.wohnzimmer # <-- Falsche Ebene!
Lösung:entity_id muss unter target stehen:
action:
- service: light.turn_on
target:
entity_id: light.wohnzimmer
Fehler 3: Template-Condition liefert immer false
# Problem: String-Vergleich statt Zahl condition: - condition: template value_template: "{{ states('sensor.temperatur') > 25 }}"Lösung: states() liefert einen String. String-Vergleich „25.3" > 25 funktioniert nicht wie erwartet:
condition:
- condition: template
value_template: "{{ states('sensor.temperatur') | float(0) > 25 }}"
Veröffentlicht durch die SmartHomePraxis-Redaktion. Veröffentlicht am 7. Juli 2026.
Verantwortlich i.S.d. § 18 MStV: siehe Impressum.
Fehler entdeckt oder ergänzende Erfahrung? korrektur@smarthomepraxis.de
Smart-Home-Tipps direkt ins Postfach
Neue Anleitungen, Vergleiche und Praxis-Tipps – kein Spam, jederzeit abbestellbar.
🎁 Gratis dazu: Smart-Home-Starter-Guide (PDF)
Das könnte dich auch interessieren
Bewegungsgesteuerte Beleuchtung einrichten
Licht, das sich automatisch einschaltet, wenn du einen Raum betrittst — und nach einer Weile wieder ausgeht. So richtest du eine bewegungsgesteuerte Beleuchtung mit PIR- oder mmWave-Sensoren ein.
Lokale Sprachsteuerung mit Home Assistant: Ohne Cloud sprechen
Wyoming, Piper TTS, Whisper STT — Home Assistant bietet lokale Sprachsteuerung ohne Cloud. Setup-Anleitung für ESP32-S3-BOX, Raspberry Pi und Privacy-Vorteile gegenüber Alexa und Google.
Szenen vs. Routinen: Was ist der Unterschied?
Szenen und Routinen klingen ähnlich, funktionieren aber grundlegend anders. Dieser Erklärer zeigt dir den Unterschied und wann du welches Konzept nutzt.