Gå til indhold

Node-RED til Home Assistant

Node-RED Automationer Avanceret

Node-RED Automation

Node-RED er et visuelt programmeringsværktøj der gør komplekse automationer overskuelige. Træk nodes, forbind dem med linjer, og byg automationer der ville være umulige (eller meget besværlige) i Home Assistants standard automation editor.


FeatureHA AutomationerNode-RED
LæringsurveLavMellem-høj
Visuel editorSimpelAvanceret
DebuggingBegrænsetFremragende
Loops
VariablerBegrænsetFlow/Global
JavaScript
Genbrug (subflows)
Tidsbaseret logikBasisAvanceret

Brug Node-RED når du har brug for:

  • Kompleks logik med mange betingelser
  • Loops og gentagne handlinger
  • Tilpasset JavaScript-kode
  • Bedre debugging og fejlfinding
  • Genanvendelige automationsblokke

Bliv ved HA automationer når:

  • Automationen er simpel (trigger → action)
  • Du foretrækker YAML/UI
  • Du vil holde alt i ét system

  1. Gå til Indstillinger → Add-ons

  2. Klik Add-on Store (nederst til højre)

  3. Søg efter “Node-RED”

  4. Vælg Node-RED og klik Installer

  5. Konfigurer add-on:

    # Vigtige indstillinger:
    ssl: false # Sæt til true hvis du har SSL
    credential_secret: "din-hemmelige-nøgle"
  6. Start add-on og aktiver:

    • ✅ Start on boot
    • ✅ Watchdog
    • ✅ Show in sidebar
  7. Åbn Node-RED via sidebaren

# docker-compose.yml
version: '3'
services:
nodered:
image: nodered/node-red:latest
container_name: nodered
restart: unless-stopped
ports:
- "1880:1880"
volumes:
- ./nodered-data:/data
environment:
- TZ=Europe/Copenhagen

  1. I Home Assistant, klik på dit profilbillede (nederst til venstre)

  2. Scroll ned til Langvarige adgangstokens

  3. Klik Opret token

  4. Navngiv den “Node-RED”

  5. Kopier tokenet - du kan kun se det én gang!

  1. Træk en events: state node ind på workspace

  2. Dobbeltklik og klik på blyanten ved siden af Server

  3. Udfyld:

    Name: Home Assistant
    Base URL: http://homeassistant.local:8123
    Access Token: [din token fra forrige trin]
  4. Klik Add og derefter Done

Installer Companion Integration (Valgfri)

Sektion kaldt “Installer Companion Integration (Valgfri)”

For ekstra funktioner som at aktivere/deaktivere flows fra HA:

  1. Installer via HACS:

    • Søg “Node-RED Companion”
    • Installer og genstart HA
  2. Tilføj integration:

    • Indstillinger → Enheder & Tjenester → Tilføj Integration
    • Søg “Node-RED”

┌─────────────────────────────────────────────────────────────┐
│ FLOW (Tab) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ SEQUENCE (Forbundne nodes) │ │
│ │ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │ │
│ │ │ NODE │───►│ NODE │───►│ NODE │───►│ NODE │ │ │
│ │ └──────┘ └──────┘ └──────┘ └──────┘ │ │
│ │ msg.payload sendes mellem nodes │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ ANDEN SEQUENCE │ │
│ │ ┌──────┐ ┌──────┐ │ │
│ │ │ NODE │───►│ NODE │ │ │
│ │ └──────┘ └──────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
TermBeskrivelse
NodeEn enkelt byggeklods (trigger, action, logik)
SequenceForbundne nodes der udgør én automation
FlowAlle sequences på én tab
msgBesked der sendes mellem nodes
msg.payloadStandard data-felt i beskeden
ScopeTilgængeligBrug
msgKun i nuværende sequenceData mellem nodes
flowAlle nodes på samme tabDelt data på flow
globalAlle nodes overaltDelt data på tværs
// Sæt variabler
flow.set("myVar", "værdi");
global.set("globalVar", 123);
// Læs variabler
let x = flow.get("myVar");
let y = global.get("globalVar");

NodeFunktionBrug
events: stateTrigger ved tilstandsændringStart automationer
current stateLæs aktuel tilstandBetingelser
call serviceKald HA serviceHandlinger
wait untilVent på tilstandForsinkelser med betingelse
trigger: stateTrigger med flere betingelserAvancerede triggers
apiGenerel API-adgangAlt muligt

Node-RED flow eksempel

Trigger når en entity ændrer tilstand:

# Konfiguration:
Entity: light.stue
If State: "on" # Valgfri: Kun trigger ved denne tilstand
For: 00:00:05 # Valgfri: Kun hvis tilstand holder i 5 sek

Output:

msg.payload = "on"; // Ny tilstand
msg.data.old_state.state // Gammel tilstand
msg.data.entity_id // Entity ID

Læs tilstand midt i et flow (trigger ikke selv):

# Konfiguration:
Entity: binary_sensor.motion_kitchen
If State: "on"
# Hvis tilstand matcher → Output 1
# Hvis ikke → Output 2 (eller stop)

Udfør handlinger i Home Assistant:

# Eksempel: Tænd lys
Domain: light
Service: turn_on
Entity: light.stue
Data: {"brightness": 255, "color_temp": 350}

[events: state]──►[call service]
motion_sensor light.turn_on
[events: state]──►[delay]──►[call service]
motion_sensor 2 min light.turn_off
(off)

Flow JSON:

[
{
"id": "motion_on",
"type": "server-state-changed",
"entity_id": "binary_sensor.motion_stue",
"ifstate": "on",
"wires": [["light_on"]]
},
{
"id": "light_on",
"type": "api-call-service",
"domain": "light",
"service": "turn_on",
"entity_id": "light.stue"
}
]

Eksempel 2: Betinget Automation (Kun om natten)

Sektion kaldt “Eksempel 2: Betinget Automation (Kun om natten)”
[events: state]──►[current state]──►[call service]
motion sun.sun light.turn_on
(below_horizon)

Sun entity bruges til at tjekke om det er nat før lyset tændes.

Lys der slukker efter 5 minutter uden bevægelse, men resetter hvis der er ny bevægelse:

[events: state]──►[stoptimer]──►[call service]
motion (on) reset (ingenting)
└──────────►[stoptimer]──►[call service]
start 5min light.turn_off

Tænd/sluk lys baseret på hvilke rum der er bevægelse i:

// Function node til at tracke aktive rum
let activeRooms = global.get("activeRooms") || [];
let room = msg.data.entity_id.replace("binary_sensor.motion_", "");
if (msg.payload === "on") {
if (!activeRooms.includes(room)) {
activeRooms.push(room);
}
} else {
activeRooms = activeRooms.filter(r => r !== room);
}
global.set("activeRooms", activeRooms);
msg.activeRooms = activeRooms;
return msg;

Lav dine egne nodes fra en gruppe af nodes:

  1. Vælg de nodes du vil genbruge

  2. Menu → Subflows → Selection to Subflow

  3. Navngiv din subflow

  4. Den nye subflow vises i paletten under “subflows”

  5. Træk den ind hvor du har brug for den

Forbind sequences på tværs af flows uden at trække lange linjer:

Flow 1: Flow 2:
[trigger]──►[link out: "alarm"] [link in: "alarm"]──►[action]

Test dine flows uden at vente på rigtige triggers:

[inject]──►[resten af dit flow]
(manuel trigger via klik)

Konfigurer inject node med testdata:

msg.payload = "on";
msg.data = {
entity_id: "binary_sensor.test",
old_state: { state: "off" }
};

Se hvad der sker i dit flow:

[trigger]──►[debug]──►[action]
└──► Viser msg i Debug panel

Tip: Sæt debug til “complete msg object” for at se alt.


Installer via Menu → Manage palette → Install:

PaletteBeskrivelse
node-red-contrib-bigtimerAvanceret tidsbaseret scheduling
node-red-contrib-stoptimerStart/stop/reset timers
node-red-contrib-weekdayFilter på ugedage
node-red-contrib-time-range-switchRouting baseret på tid
node-red-contrib-schedexSolnedgang/solopgang scheduling
node-red-dashboardByg dashboards i Node-RED

# Tjek:
1. Alle nodes har gyldige forbindelser
2. Ingen røde trekanter på nodes (konfigurationsfejl)
3. Server connection er konfigureret
4. Access token er gyldig
  1. Tilføj debug node efter trigger

  2. Tjek at entity_id er korrekt

  3. Verificer at “If State” matcher

  4. Tjek Debug panel for output

# Tjek access token:
1. Opret ny token i HA
2. Opdater server config i Node-RED
3. Deploy alle flows
4. Genstart Node-RED add-on

PraksisBeskrivelse
Én tab per områdeStue, køkken, soveværelse, etc.
KommentarerBrug comment nodes til forklaring
NavngivningGiv alle nodes beskrivende navne
SubflowsGenbrug logik frem for copy/paste
# Undgå:
- events: all node (bruger mange ressourcer)
- Polling i loops (brug triggers i stedet)
- Store debug outputs i produktion
# Brug:
- "Modified Flows" deploy type
- Specifikke entity triggers
- Disable debug nodes når ikke i brug

Node-RED flows gemmes i:

# Add-on:
/config/node-red/flows.json
# Docker:
./nodered-data/flows.json

Inkluder denne fil i din Home Assistant backup!


Ofte stillede spørgsmål

Skal jeg flytte alle mine automationer til Node-RED?
Nej! Brug Node-RED til komplekse automationer og behold simple automationer i HA. Der er ingen grund til at gøre tingene mere komplicerede end nødvendigt.
Kan Node-RED køre uden Home Assistant?
Ja, Node-RED er et selvstændigt værktøj. Du kan bruge det til andre IoT-projekter, API-integrationer, og meget mere. HA-noderne er bare et ekstra modul.
Hvad sker der med mine automationer hvis Node-RED går ned?
Automationer i Node-RED stopper. Derfor er det vigtigt at holde kritiske automationer (alarm, sikkerhed) i Home Assistant selv, eller have watchdog aktiveret på Node-RED.
Kan jeg se Node-RED automationer i HA's automations liste?
Ikke direkte. Med Node-RED Companion integration kan du dog se og aktivere/deaktivere flows fra HA's UI.

Første Automation

Start med HA’s built-in automationer.

Se guide →


Sidst opdateret: December 2025


Kommentarer