# Rauchmelder-Benachrichtigungen für Home Assistant **Node-RED Lösung mit Multi-Gruppen-Support** ## Features - **Gruppen-System** - Mehrere Häuser/Bereiche komplett isoliert (z.B. Haus 1, Haus 2) - **Alarm nur für betroffene Gruppe** - Rauchmelder in Gruppe A benachrichtigt nur Geräte in Gruppe A - **STOPP pro Gruppe** - Benachrichtigungen und Sirenen separat pro Gruppe stoppen - **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 Critical Alerts** - Laute Benachrichtigungen auch bei Stumm-Modus - **Android TTS** - Sprachausgabe über Alarm-Stream - **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. **Importieren** → **Deploy** ### 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. **Update** → **Done** **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: ```yaml 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. **Einstellungen** → **Dashboards** → **Dashboard 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 **Gruppen** - jede Gruppe enthält: | Bereich | Optionen | |---------|----------| | **Gruppen-Header** | Name der Gruppe (z.B. "Haus 1", "Ferienhaus"), Umbenennen, Löschen | | **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) | | **Notfall-Buttons** | Benachrichtigungen stoppen / Sirenen ausschalten - **nur für diese Gruppe** | ### Gruppen-Konzept - **Gruppe "Haus 1"**: Rauchmelder Küche, Flur → benachrichtigt Stefan, Maria - **Gruppe "Ferienhaus"**: Rauchmelder Wohnzimmer → benachrichtigt nur Stefan Wenn der Rauchmelder im Ferienhaus auslöst: - Nur Stefan bekommt Benachrichtigungen (nicht Maria) - Nur die Sirene im Ferienhaus geht an - Der STOPP-Button stoppt nur die Ferienhaus-Benachrichtigungen --- ## 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. **Einstellungen** → **Companion App** → **Benachrichtigungen** 3. **Critical Alerts erlauben** aktivieren ### iOS Einstellungen prüfen 1. **iOS Einstellungen** → **Mitteilungen** → **Home 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. **Gruppen-Filter:** In welcher Gruppe ist dieser Rauchmelder? 3. **Sirene:** Die zugehörige Sirene des Rauchmelders wird aktiviert (nur in dieser Gruppe) 4. **Benachrichtigungen:** Nur Geräte **dieser Gruppe** bekommen: - Text-Notification mit STOPP-Button - TTS-Loop / Critical Alert (alle X Sekunden) 5. **STOPP:** User drückt Button → TTS stoppt für dieses Gerät in dieser Gruppe 6. **Rauch weg:** Nur Sirenen dieser Gruppe 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