Node-RED mit Home Assistant
Was dieser Artikel über Node-RED mit Home Assistant behandelt
- Wie Du Node-RED mit Home Assistant verbindest.
- Wie Du Entities steuerst und auf Zustandsänderungen reagierst.
- Wie komplexe Automatisierungen in Node-RED aussehen.
- Wie Du KI in Smart-Home-Flows integrierst.
- Praxisbeispiele für Licht, Klima, Sicherheit und Energie.
Einleitung: Node-RED mit Home Assistant verständlich erklärt
Home Assistant hat eigene Automatisierungen, aber sie sind begrenzt. Node-RED als Ergänzung ermöglicht komplexe Logik: Wenn-dann-Verknüpfungen mit mehreren Bedingungen, Zeiten, Verzögerungen und KI-Entscheidungen. Die Kombination ist der Standard für fortgeschrittene Smart-Home-Automatisierung.
Dieser Artikel richtet sich an Anwender, die Home Assistant mit Node-RED erweitern wollen. Grundlagen findest Du in Node-RED installieren und Heimautomatisierung.
Warum brauche ich Node-RED mit Home Assistant?
Home Assistant Automatisierungen sind YAML-basiert und linear. Wenn Du „Wenn Temperatur > 25 UND niemand zu Hause UND Sonne scheint, dann Rollladen runter” brauchst, wird YAML unübersichtlich. Node-RED macht das visuell: Sensor → Bedingungen → Aktion, alles als Flow.
Node-RED mit Home Assistant kurz erklärt
Node-RED verbindet sich über WebSocket mit Home Assistant. Du siehst alle Entities, kannst auf Zustandsänderungen reagieren und Services aufrufen. Flows sind visuell, mächtiger als YAML-Automatisierungen.
Der Kerngedanke lautet: Home Assistant liefert Daten, Node-RED liefert Logik.
Für wen ist dieser Artikel gedacht?
- Home-Assistant-Nutzer, die komplexere Automatisierung brauchen.
- Smart-Home-Bastler, die KI in ihre Automatisierung einbauen.
- Node-RED-Nutzer, die Home Assistant anbinden wollen.
- Self-Hoster, die ihr Smart Home selbst kontrollieren.
Vorkenntnisse in Home Assistant und Node-RED sind hilfreich.
Wichtige Begriffe
- Node-RED - Flow-Editor. Wann nützlich: für komplexe Logik.
- Home Assistant - Smart-Home-Plattform. Wann nützlich: die Basis.
- Entity - Gerät/Sensor in HA. Wann nützlich: was gesteuert wird.
- Service - Aktion in HA. Wann nützlich: was aufgerufen wird.
- WebSocket - Verbindung HA ↔ Node-RED. Wann nützlich: für Echtzeit.
- Ollama - Lokaler Modellserver. Wann nützlich: für KI in Flows.
Setup: Node-RED + Home Assistant
1. Home Assistant Add-on (einfachste Methode)
Wenn Du Home Assistant OS nutzt:
- Settings → Add-ons → Add-on Store
- „Node-RED” suchen und installieren
- „Start on boot” aktivieren
- Node-RED öffnen
Die Verbindung ist automatisch konfiguriert.
2. Docker (manuell)
version: "3.8"
services:
homeassistant:
image: homeassistant/home-assistant:latest
container_name: homeassistant
restart: unless-stopped
ports:
- "8123:8123"
volumes:
- ha_config:/config
networks:
- smarthome
nodered:
image: nodered/node-red:latest
container_name: nodered
restart: unless-stopped
ports:
- "1880:1880"
volumes:
- nodered_data:/data
networks:
- smarthome
volumes:
ha_config:
nodered_data:
networks:
smarthome:
driver: bridge
3. Node-RED mit HA verbinden
# In Node-RED: Palette → Install
node-red-contrib-home-assistant-websocket
Dann in Node-RED:
- Einen
events: stateNode hinzufügen. - Auf das Zahnrad → „Add new server”.
- Home Assistant URL:
http://homeassistant:8123 - Access Token aus Home Assistant (Profil → Long-Lived Access Tokens).
Wichtige Nodes
| Node | Zweck |
|---|---|
| events: state | Reagiert auf Zustandsänderung |
| events: all | Alle Events |
| call service | Service aufrufen (licht.turn_on) |
| current state | Aktuellen Zustand lesen |
| trigger: state | Trigger bei Zustand |
| poll state | Zustand periodisch abfragen |
| wait until | Warten bis Zustand erreicht |
| api | Beliebige HA-API aufrufen |
Praxisbeispiel 1: Licht bei Bewegung
[events: state: binary_sensor.bewegung_flur]
│
▼ (state == "on")
[time range: 18:00 - 06:00] ← nur nachts
│
▼
[call service: light.turn_on]
Entity: light.flur
Data: {"brightness": 128}
│
▼
[delay: 5 minutes]
│
▼
[call service: light.turn_off]
Entity: light.flur
Praxisbeispiel 2: Klima-Automatisierung
[poll state: sensor.aussentemperatur] (alle 5 Min)
│
▼
[function: Entscheidung]
const temp = msg.payload;
const innen = global.get("innentemperatur") || 21;
if (temp > 25 && innen > 23) {
msg.payload = "kuehlen";
} else if (temp < 5 && innen < 19) {
msg.payload = "heizen";
} else {
msg.payload = "nichts";
}
│
▼
[switch]
├─ kuehlen → [call service: climate.set_hvac_mode cool]
├─ heizen → [call service: climate.set_hvac_mode heat]
└─ nichts → [call service: climate.set_hvac_mode off]
Praxisbeispiel 3: Anwesenheitserkennung mit KI
[events: state: person.max]
│
▼
[function: Kontext sammeln]
const context = {
person: msg.payload,
uhrzeit: new Date().toLocaleTimeString(),
wochentag: new Date().toLocaleDateString('de', {weekday: 'long'}),
licht: global.get("licht_status"),
temperatur: global.get("temperatur")
};
msg.payload = JSON.stringify(context);
│
▼
[HTTP Request: Ollama]
"Basierend auf dem Kontext, was sollte passieren?
Kontext: {{msg.payload}}
Optionen: licht_an, musik_an, heizung_an, nichts
Antworte als JSON."
│
▼
[function: JSON parsen]
│
▼
[switch: action]
├─ licht_an → [call service: light.turn_on]
├─ musik_an → [call service: media_player.play]
└─ heizung_an → [call service: climate.set_temperature]
Praxisbeispiel 4: Energie-Management
[poll state: sensor.strompreis] (alle 15 Min)
│
▼
[function: Preis analysieren]
const preis = parseFloat(msg.payload);
msg.guenstig = preis < 0.25; // Cent/kWh
msg.teuer = preis > 0.40;
│
▼
[switch]
├─ guenstig → [call service: switch.turn_on waschmaschine]
│ [call service: switch.turn_on geschirrspueler]
└─ teuer → [call service: switch.turn_off nicht_notwendig]
Praxisbeispiel 5: Sicherheits-Monitoring
[events: state: group.alle_sensoren]
│
▼
[function: Alarm prüfen]
const state = msg.payload;
const uhrzeit = new Date().getHours();
const nacht = uhrzeit < 6 || uhrzeit > 22;
if (state === "on" && nacht) {
msg.alarm = true;
msg.grund = "Nächtliche Bewegung erkannt";
}
│
▼
[switch: alarm?]
│
▼ (ja)
[call service: notify.notify]
"Alarm! {{msg.grund}}"
│
▼
[call service: light.turn_on]
Alle Lichter an
│
▼
[call service: camera.snapshot]
Foto aufnehmen
KI in Smart-Home-Flows
Natürliche Sprachbefehle
[HTTP In: /api/voice-command]
│
▼
[HTTP Request: Ollama]
"Interpretiere den Befehl: '{{msg.payload.command}}'
Verfügbare Entities: {{entities}}
Antworte als JSON: {action, entity, params}"
│
▼
[function: JSON parsen + Service aufrufen]
const cmd = JSON.parse(msg.payload);
msg.service = cmd.action;
msg.entity = cmd.entity;
msg.data = cmd.params;
│
▼
[call service]
Anomalie-Erkennung
// Function Node: Ungewöhnliche Muster erkennen
const verlauf = context.get("verlauf") || [];
verlauf.push({ temp: msg.payload, zeit: Date.now() });
if (verlauf.length > 100) verlauf.shift();
// An KI senden für Analyse
msg.payload = `Temperaturverlauf: ${JSON.stringify(verlauf.slice(-20))}
Erkennst du Anomalien? Antworte: normal/anomalie + Begründung`;
return msg;
Sicherheitshinweise
- Access Token: Erstelle ein dediziertes Token für Node-RED mit minimalen Berechtigungen.
- Nicht exponieren: Node-RED und Home Assistant nicht direkt ins Internet.
- Kritische Aktionen: Für Sicherheits-relevante Aktionen (Alarm, Türen) menschliche Bestätigung. Siehe Menschliche Freigabe.
- Validierung: KI-Ausgaben prüfen, bevor Aktionen ausgeführt werden.
Typische Stolpersteine
- Falsche Entity-IDs: Entities heißen
light.wohnzimmer, nichtWohnzimmer. - Token abgelaufen: Long-Lived Access Tokens können ablaufen. Neu generieren.
- Zu viele Events:
events: allkann überwältigend sein. Filtere spezifisch. - Race Conditions: Zwei Flows, die dieselbe Entity steuern, können sich widersprechen.
- Kein Fallback: Wenn Node-RED ausfällt, sollten kritische Automatisierungen in HA laufen.
Weiterführende Links
- Node-RED Guide - Node-RED im Detail.
- Node-RED installieren - Installation.
- Node-RED KI-Integration - KI in Flows.
- Heimautomatisierung - Smart Home mit KI.
- Home Assistant Integration - HA als Plattform.
- Ollama - Lokaler Modellserver.
Key Takeaways:
- Node-RED + Home Assistant = mächtige Smart-Home-Automatisierung.
- node-red-contrib-home-assistant-websocket für die Verbindung.
- events: state für Trigger, call service für Aktionen.
- KI mit Ollama für intelligente Entscheidungen.
- Komplexe Logik visuell statt YAML.
FAQ
Wie verbinde ich Node-RED mit Home Assistant?
Node-RED oder HA-Automatisierungen?
Wie finde ich Entity-IDs?
Wie baue ich KI in Smart-Home-Flows?
Ist das sicher?
Was passiert bei Node-RED-Ausfall?
Wie performant ist das?
Wie debugge ich Flows?
Quellen und weiterführende Literatur
- node-red-contrib-home-assistant-websocket - HA-Integration.
- Home Assistant - Smart-Home-Plattform.
- Node-RED - Flow-Editor.
- Home Assistant Automations - HA-Automatisierung.


