216 lines
7.0 KiB
Markdown
216 lines
7.0 KiB
Markdown
# 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
|