ha-smoke-detection-notify/README.md

6.1 KiB

Rauchmelder-Benachrichtigungen für Home Assistant

Node-RED Lösung mit integrierter Settings-Seite

Features

  • Eine Settings-Seite - Alles zentral konfigurieren (auch als Dashboard-Karte)
  • KEIN Helper nötig - Kein YAML editieren, keine Entities erstellen
  • Sirene pro Rauchmelder - Jeder Rauchmelder kann seine eigene Sirene haben
  • Dropdown-Auswahl - Entities werden automatisch aus Home Assistant geladen
  • iOS & Android - Unterschiedliche TTS-Methoden
  • STOPP pro Gerät - Individuelles Stoppen
  • Visuelles Debugging - Node-RED Debug-Panel

Voraussetzungen

  • Home Assistant
  • Node-RED Add-on
  • Mobile App auf allen Geräten (iOS & Android)

Installation

1. Settings-Seite in Home Assistant ablegen

Kopiere node-red/settings.html nach /config/www/settings.html

Die Datei ist dann erreichbar unter:

http://homeassistant.local:8123/local/settings.html

2. Node-RED Flow importieren

  1. Öffne Node-RED
  2. Menü (☰) → Import
  3. Kopiere Inhalt von node-red/flows/smoke_detector.json
  4. ImportierenDeploy

3. Long-Lived Token erstellen

  1. Home Assistant → Profil (unten links) → Sicherheit
  2. Runterscrollen zu "Langlebige Zugriffstokens"
  3. Token erstellen → Name: Rauchmelder Settings
  4. Token kopieren (sieht so aus: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3Mi...)

4. Home Assistant Server verbinden

Einmalig Token einrichten:

  1. Doppelklick auf einen blauen Node
  2. Stift-Symbol neben Server
  3. Base URL: http://homeassistant.local:8123
  4. Access Token: Den eben erstellten Token einfügen
  5. UpdateDone

Alle blauen Nodes konfigurieren:

Danach musst du jeden blauen Node einzeln durchgehen und den Server auswählen:

  1. Doppelklick auf den blauen Node
  2. Bei Server: Wähle den zweiten Eintrag in der Liste (der mit deiner URL)
  3. Done
  4. Wiederhole für alle blauen Nodes

Hinweis: Den Token musst du nur einmal eingeben. Aber jeder blaue Node muss manuell auf den Server verweisen.

Wenn alle Nodes konfiguriert sind: Deploy

5. Settings-Seite öffnen

Option A: Direkt im Browser

http://homeassistant.local:8123/local/settings.html?token=DEIN_TOKEN

Option B: Als Dashboard-Karte (iframe) - Empfohlen!

Dashboard bearbeiten → Karte hinzufügen → Webpage:

type: iframe
url: /local/settings.html?token=DEIN_TOKEN
aspect_ratio: 100%

Option C: Als Seitenleisten-Panel

Hinweis: Seit Home Assistant 2024.4.0 ist panel_iframe über YAML deprecated. Nutze stattdessen Option B (Dashboard-Karte) oder erstelle ein eigenes Dashboard:

  1. EinstellungenDashboardsDashboard hinzufügen
  2. Name: Rauchmelder, Icon: mdi:fire
  3. In Seitenleiste anzeigen aktivieren
  4. Dashboard öffnen → Dashboard bearbeiten → Karte hinzufügen → Webpage
  5. URL: /local/settings.html?token=DEIN_TOKEN

6. Konfigurieren & Testen

  1. Konfiguriere alles in der Settings-Seite:

    • Benachrichtigungstext
    • TTS Intervall & Sprache
    • Rauchmelder (aus Dropdown wählen)
    • Sirene pro Rauchmelder (optional)
    • Anzeigenamen (optional)
    • Geräte (iOS/Android)
  2. Klicke "Speichern"

  3. Die Config wird automatisch an Node-RED gesendet

  4. Nutze den Test-Button oder setze einen Rauchmelder auf on


Settings-Seite

Die Settings-Seite bietet:

Bereich Optionen
Benachrichtigungen Text mit {detector} Platzhalter, TTS Intervall (5-60s), Sprache
Rauchmelder Dropdown-Auswahl der Rauchmelder-Sensoren aus HA
Sirene Pro Rauchmelder optional eine Sirene/Switch zuweisen
Namen Optionaler Anzeigename für jeden Rauchmelder
Geräte Android (Name + ID + TTS) oder iOS (Name + ID + Critical Alert)

iOS Setup (Critical Alerts)

Für iOS-Geräte werden Critical Alerts verwendet. Diese sind laute Benachrichtigungen die auch bei stummgeschaltetem Gerät durchkommen.

Critical Alerts aktivieren

  1. Home Assistant Companion App öffnen
  2. EinstellungenCompanion AppBenachrichtigungen
  3. Critical Alerts erlauben aktivieren

iOS Einstellungen prüfen

  1. iOS EinstellungenMitteilungenHome Assistant
  2. Prüfe ob Kritische Hinweise aktiviert ist

Wie es funktioniert

  • Bei Rauchmelder-Alarm bekommt das iOS-Gerät einen Critical Alert
  • Der Alert spielt einen lauten Sound ab (auch bei Stumm-Modus!)
  • Die Nachricht zeigt an welcher Rauchmelder ausgelöst hat
  • Der Alert wiederholt sich alle X Sekunden bis STOPP gedrückt wird

Wichtig

  • Critical Alerts umgehen den Stumm-Modus und "Nicht Stören"
  • Der Sound ist laut - perfekt für Notfälle
  • Funktioniert auch im Hintergrund und bei gesperrtem Gerät

So funktioniert's

  1. Trigger: Rauchmelder geht auf on
  2. Filter: Ist es ein konfigurierter Rauchmelder?
  3. Sirene: Die zugehörige Sirene des Rauchmelders wird aktiviert
  4. Benachrichtigungen: Jedes Gerät bekommt:
    • Text-Notification mit STOPP-Button
    • TTS-Loop (alle X Sekunden)
  5. STOPP: User drückt Button → TTS stoppt für dieses Gerät
  6. Rauch weg: Alle Sirenen werden ausgeschaltet

Die Config wird als JSON-Datei gespeichert (/config/www/smoke_config.json) und bleibt auch nach Neustarts erhalten.


Troubleshooting

Problem Lösung
Config nicht geladen Öffne Settings-Seite und klicke "Speichern"
Keine Rauchmelder im Dropdown Klicke "Entities laden" - prüfe ob Sensoren device_class "smoke" haben
Benachrichtigung kommt nicht Prüfe Gerätename (muss mit Mobile App übereinstimmen)
TTS stoppt nicht Prüfe ob STOPP-Event ankommt (Debug-Panel)
Settings-Seite zeigt Fehler Prüfe Token in der URL
Sirene geht nicht an Prüfe ob die richtige Switch-Entity zugewiesen ist

Dateien

node-red/
├── flows/
│   └── smoke_detector.json    # Node-RED Flow
└── settings.html              # Einstellungsseite (→ nach /config/www/ kopieren)

Lizenz

MIT