I spent three months writing Python scripts to connect my Home Assistant, Ollama instance, and various sensors. They worked, sure, but they were fragile, hard to debug, and impossible for anyone else (or future-me) to understand. Then I discovered Node-RED, and I literally never went back to scripting automation again.
Here’s the thing: Node-RED is a visual programming tool that lets you build automation flows by dragging nodes onto a canvas and connecting them with wires. It sounds almost too simple, but it’s genuinely one of the most powerful things you can run in a homelab. You can trigger complex workflows from a sensor event, pipe data through AI models, integrate with a hundred different services, and see exactly what’s happening at each step.
And unlike some automation tools, Node-RED is completely self-hosted, open-source, and doesn’t charge you per flow or integration. Once it’s running, it’s yours forever.
What Makes Node-RED Actually Different
Most automation tools force you into a choose-your-own-adventure box: “If X happens, do Y.” Node-RED doesn’t care. You can build simple stuff in seconds, or you can create genuinely complex workflows that process data, make decisions, and trigger multiple downstream actions simultaneously.
The real magic is the node ecosystem. There are nodes for everything: Home Assistant, MQTT, HTTP requests, JSON parsing, email, Discord webhooks, Telegram, database queries, and AI integrations with Ollama, OpenAI, and other LLMs. You wire them together, and suddenly your homelab is talking to itself.
I’ve built flows that:
- Trigger Ollama to analyze sensor data in real-time and send alerts if something’s weird
- Watch my Unifi network for new devices and automatically create Home Assistant entities
- Scrape a website every hour, run the content through an LLM for classification, and archive it to Immich
- Send me a Telegram message with a weather summary generated by a local LLM every morning
Try doing that cleanly in Python. You can, but you’ll hate yourself by day two.
The Install (It’s Stupidly Easy)
Assuming you’ve got Docker running (and honestly, if you don’t, what are you doing?), here’s a complete Docker Compose setup that’ll have Node-RED running in under a minute:
version: '3'
services:
node-red:
image: nodered/node-red:latest
container_name: node-red
restart: unless-stopped
ports:
- "1880:1880"
volumes:
- ./node-red-data:/data
environment:
- TZ=UTC
networks:
- homelab
networks:
homelab:
driver: bridge
Run docker-compose up -d, wait 30 seconds, then hit http://localhost:1880 in your browser. That’s it. You’re in the editor.
If you want to run this behind a reverse proxy (Traefik, nginx — whatever), that’s fine too. Node-RED plays nicely with existing infrastructure.
Building Your First Real Flow
The Node-RED editor is a canvas where you drag nodes from the left panel and connect them with wires. Each node has inputs and outputs, and data flows through them as messages.
Let’s say you want to connect Home Assistant and do something actually useful. Here’s what a basic flow looks like:
- Inject node — Triggers the flow (timer-based, event-based, manual click)
- Home Assistant node — Calls your Home Assistant instance and grabs data
- Function node — Light JavaScript for transforming or checking data
- Switch node — Routes the message based on conditions
- Notification node — Sends the result to you via email, Discord, Telegram, whatever
Real example: I have a flow that checks my Proxmox CPU usage every 5 minutes. If it’s over 80%, it runs a cost analysis through Ollama to determine if I should migrate workloads or spin down VMs. Then it sends me a Telegram message with the recommendation. The entire flow is about 8 nodes, took 10 minutes to build, and just works.
Pro tip: Use the debug node constantly. Attach it to anything you’re unsure about and you’ll see exactly what data is flowing through at each step. This is what makes Node-RED so much better than scripts — you can actually see what’s happening.
Connecting to Your AI Stack
This is where Node-RED gets genuinely powerful. If you’re running Ollama locally, you can add it as an HTTP node and pipe sensor data through it for analysis.
Here’s a snippet of what that looks like (you won’t need to code this — just configure the HTTP node):
HTTP Request Node:
Method: POST
URL: http://ollama:11434/api/generate
Payload: {"model": "neural-chat", "prompt": "Analyze this: {{msg.payload}}"}
Then parse the response with a function node and decide what to do next. This is how you build intelligent automation without touching a single line of code.
The community has also built dedicated AI nodes for this stuff. Search the node library for “Ollama” or “OpenAI” and you’ll find pre-built nodes that handle the boring HTTP/auth parts for you.
Real-World Homelab Integration
I’m running Node-RED alongside Home Assistant, Ollama, Frigate, and Jellyfin. It’s become the glue that connects everything.
Some actual flows I’m running:
Camera event analysis: Frigate detects motion, sends an image to Node-RED, which pipes it through Ollama’s vision capabilities, and either ignores it or triggers a Home Assistant scene based on what’s detected.
Smart notifications: Instead of getting spammed with every Home Assistant trigger, I route everything through Node-RED, which deduplicates messages, adds context, and sends me a single consolidated notification via Telegram once per hour.
Data collection: All my IoT devices (zigbee sensors, network stats, temperature probes) feed into Node-RED, which logs them to InfluxDB for visualization in Grafana. Without Node-RED, I’d have to write five different integration scripts.
This is why I actually recommend Node-RED to anyone with a homelab. It’s the missing piece between your services.
Things to Know Before You Start
Node-RED runs on Node.js, which is lightweight but not zero-overhead. On my NUC, it uses about 150-200MB of RAM at idle. Totally fine, but worth knowing if you’re running everything on a Raspberry Pi.
The learning curve is genuinely shallow. You can build useful flows in minutes without reading docs. But there are edge cases — error handling, message buffering, rate limiting — where you need to know what you’re doing. Spend an hour watching YouTube videos if anything breaks.
Persistence matters. Store your flows somewhere you won’t lose them. The default setup saves them to disk automatically, but I recommend git-backing up your flow JSON regularly. It’s just a backup file.
Final thought: If you’re running any kind of homelab automation today, you’re either using Node-RED or doing it the hard way. Switch.
Explore Node-RED in our AI Homelab Toolkit.
Recommended Hardware & Hosting
Build your homelab with hardware tested and used by our team.
Affiliate links — we may earn a small commission at no extra cost to you.