Use this when the user mentions "node-red" anywhere in their request (including compound forms like "node-redflow" or "node-red-flow"). The term "Node-RED" is a product name and should remain unchanged. Not intended for YAML automations (use the Home Assistant skill) or device firmware (use the ESPHome skill).
Build Node-RED flows for Home Assistant automation using node-red-contrib-home-assistant-websocket.
When to use this skill: Use when you want visual, drag-and-drop automation flows (JSON). For YAML automations, use
home-assistant. For device firmware, useesphome.
Read the skill: The SKILL.md file contains critical information about common mistakes and correct patterns.
Browse references: The references/ folder has detailed documentation for nodes, patterns, and troubleshooting.
Use templates: The templates/ folder has ready-to-import flows for common automations.
Essential knowledge for generating correct Node-RED flows:
| File | Description |
|------|-------------|
| node-reference.md | All 31 nodes with type names and examples |
| automation-patterns.md | Motion lights, presence, notifications |
| core-concepts.md | Flows, nodes, messages, context |
| function-nodes.md | JavaScript in Node-RED |
| subflows.md | Reusable node sequences |
| ha-setup.md | Installation and configuration |
| troubleshooting.md | Common issues and fixes |
| File | Description |
|------|-------------|
| basic-motion-light.json | Simple motion-activated light |
| advanced-motion-light.json | With brightness, timeout, override |
| presence-detection.json | First home / last leave |
| notification-router.json | Smart notification routing |
| subflow-debounce.json | Reusable debounce pattern |
WRONG: server-state-changed
RIGHT: trigger-state or events-state
WRONG: entityIdType: "list"
RIGHT: entityIdType: "regex"
entityId: "binary_sensor\\.motion_(1|2|3)"
api-current-state only works with ONE entity. For multiple entities, use a function node:
const states = global.get("homeassistant").homeAssistant.states;
const lights = Object.keys(states)
.filter(id => id.startsWith("light."));
Use a single trigger node with extend: true:
{
"type": "trigger",
"extend": true,
"duration": "5",
"units": "min"
}
Do NOT create separate reset/start nodes.
Generated by aurora@aurora-smart-home (node-red skill) v1.7.9 https://github.com/tonylofgren/aurora-smart-home
MIT License - See LICENSE file
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer