# Awesome Node-RED

> Curated list of useful resources for Node-RED.

Node-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.

It provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.

## Contents

- Installation
- Documentation
- Nodes
  - Analysis
  - Database
  - Development
  - Function
  - Hardware
  - I/O
  - Image processing
  - Parsers
  - Smarthome
  - Social
  - System
  - Time
  - Utility
  - UI
- Community

## Installation

- Running locally
- Running under Docker
- c’t-Smart-Home - A ready-to-use setup for home automation maintained by german computer magazine c’t.
- Home Assistant Community Add-on - Starts an instance within Home Assistant and communicates with it.
- ioBroker node-red Adapter - Starts an instance within ioBroker and communicates with it.
- openHAB running on openHABian - Install Node-RED using openhab-config from command line, choose it from “Optional Components”.
- RedMatic - Install Node-RED on a CCU3, smart home automation hardware from the manufacturer eQ-3, popular especially in Germany.

## Documentation

- Getting Started
- FAQ
- Tutorials
- User Guide ## Nodes

### Analysis

- badwords - Analyses the payload and tries to filter out any messages containing bad swear words. This only operates on payloads of type string. Everything else is blocked.
- wordpos - Analyses the payload and classifies the part-of-speech of each word. The resulting message has msg.pos added with the results. A word may appear in multiple categories (eg, ‘great’ is both a noun and an adjective).

### Database

- influxdb - Save and query data from an InfluxDB time series database.
- mssql-plus - Execute queries, stored procedures and bulk inserts in Microsoft SQL Server and Azure Databases SQL2000 ~ SQL2019.
- stackhero-influxdb-v2 - Save and query data from an InfluxDB v2 time series database.
- stackhero-mysql - Connect to a MySQL or a MariaDB database, using TLS (SSL) and compatible with “Caching SHA2 password” authentication method (MySQL >= 8).
- leveldb - Uses LevelDB for a simple key value pair database.
- mysql - Allows basic access to a MySQL database.
- sqlite - Supports read and write to a local sqlite database.

### Development

- typescript-starter - Quick-start template repository for creating new node sets in TypeScript.

### Function

- datagenerater - Generate dummy data in various formats, names, addresses, emails, numbers, words, etc.
- pidcontrol - A PID control node for numeric inputs - provides simple controll loop feedback capability.
- random - Random number generator - can generate integers for x to y - or floats between x and y.
- rbe - Provide report by exception and deadband / bandgap capability for simple inputs.
- smooth - Provide various functions across several previous values, including max, min, mean, high and low pass filters.

### Hardware

- arduino - Uses firmata protocol to talk to the board.
- beaglebone - Nodes for the Beaglebone Black.
- blink1 - Blink1 USB LED from ThingM.
- blinkstick - BlinkStick USB LED device.
- digirgb - DigiSpark RGB USB LED.
- heatmiser - Temperature and frost protection for Heatmiser thermostats.
- intel-galileo - A collection for the Intel Galileo and Edison.
- ledborg - LEDborg plug on module.
- makeymakey - Read from a MakeyMakey input device.
- pi-gpiod - An alternative to the default PI GPIO nodes that allows remote access.
- pi-mcp3008 - Read from MCP300x series Analogue to Digital Converter chips via the SPI bus.
- pi-neopixel - Drive a strip of NeoPixels directly.
- pi-unicorn-hat - Controls a Pimorini Unicorn HAT 8x8 LED display.
- pibrella - Controls a Pibrella add-on board.
- piface - PiFace interface module.
- piliter - Controls a Pimorini Pi-LITEr 8 LED add-on board.
- sensortag - Reads data from the Ti Bluetooth Low Energy SensorTag device.
- wemo - Drive a WeMo socket and switch.
- scanBLE - Scans for a particular Bluetooth Low Energy device.

### I/O

- discovery - Discovers other Avahi/Bonjour services on the network.
- emoncms - Post to an Emoncms server.
- noble-bluetooth - Based on noble for interaction with Bluetooth Low Energy devices.
- mindconnect - Upload timeseries, files and events to MindSphere.
- modbus - All in one Modbus TCP and Serial package.
- mqlight - Adds nodes to send and receive using MQlight.
- ping - Pings a machine and returns the trip time in mS.
- s7 - Interact with Siemens S7 PLCs.
- serialport - Send messages to and receive messages from a physical serial port.
- snmp - SNMP receivers for single OIDs or OID tables.
- stomp - Publish and subscribe to and from a STOMP server.
- wol - Sends a Wake-On-LAN magic packet to the mac address specified.
- xiaomi-ble - Single “Xiaomi BLE” node that gets all known data from Xiaomi BLE (Bluetooth 4).

### Image processing

- image-output - Simple image output node. Useful for previewing images (of face detecting, object recognition etc.) inside the flow editor.
- image-tools - Editing images, building and decoding 2D and 3D barcodes.

### Parsers

- base64 - Converts a payload to/from base64 encoded format.
- buffer-parser - Converts values to and from buffer/array. Supports Big/Little Endian, BCD, byte swapping and much more.
- geohash - Converts a lat, lon payload to/from geohash format.
- msgpack - Converts a payload to/from msgpack binary packed format.
- what3words - Encodes or Decodes a lat, lon position into what3words text format.

### Smarthome

- alexa-home - Connect with Alexa just wihtin the local network - no extra cloud stuff is required.
- alexa-home-skill-v3 - Controls things via Alexa and Google Home.
  - alexa-home-skill-v3-web - Web Service for Alexa and Google Home.
  - alexa-home-skill-v3-lambda - Lambda function for node-red-alexa-home-skill-v3-web.
- alexa-remote2-applestrudel - Interacting with the Alexa API. Emulates routine behaviour, control and query your devices.
- avr-yamaha - Integrate and control YAMAHA™ audio/video receiver via YNCA protocol.
- ccu - Connect with Homematic, a series of smart home automation hardware from the manufacturer eQ-3, popular especially in Germany.
- deconz - Access Zigbee 3.0 (Z30), Zigbee Home Automation (ZHA) and Zigbee Light Link (ZLL) lights via deCONZ.
- fritz - Provides easy access to your AVM Fritz!Box. Read and write the configuration including the VoIP and Dect configuration.
- fritzapi - Controls smart home DECT devices and guest wifi through an AVM Fritz!Box.
- harmony - Controls devices connected to a Logitech™ Harmony Hub.
- home-assistant - Connect with Home Assistant.
- home-assistant-websocket - Various nodes using websockets to assist in setting up communication with Home Assistant.
- homebridge-automation - Integrate Homebridge Accessories into flows.
- homee - Access the homee api and create virtual devices for homee.
- homekit-bridged - Imitate HomeKit devices.
- hubitat - Connect with Hubitat.
- huemagic - Controls Philips Hue bridges, lights, groups, scenes, rules, taps, switches, buttons, motion sensors, temperature sensors and Lux sensors.
- lgtv - Controls LG webOS Smart TVs.
- loxone - Connect to the Loxone Miniserver.
- knx-ultimate - Controls KNX intallation. With optional ETS group address importer and gateway simulation.
- openhab3 - Integration of openHAB item states and commands.
- power-saver - Automatically save money on variable electricity prices.
- smartnora - Google smart home Action integration via Smart NORA.
- sonos-plus - Controls Sonos player in your local network.
- tado-client - Connect to the Tado Web API.
- tahoma - Controls a Somfy Tahoma box (Roller shutters, etc.).
- tasmota - Tasmota devices integration for building automation.
- tuya-smart - Interface with smart plugs, bulbs, etc. from tuya.
- zigbee - Controls Zigbee Devices via a CC253x Module.
- zigbee2mqtt - Zigbee2mqtt connectivity.
- zwave-js - Integrates Z-Wave node based on Z-Wave JS.

### Social

- chatbot - Full featured chat bot for Telegram, Facebook Messenger, Viber, Twilio and Slack.
- discord-advanced - Interact with Discord, via Discord.js.
- dweetio - Uses dweetio to send/receive messages.
- email - Sends and receives simple emails from services like gmail or smtp or imap servers.
- feedparser - Reads messages from an atom or rss feed.
- irc - Connect to an IRC server to send and receive messages.
- notify - Uses Growl to provide a desktop popup. Only useful on the local Apple machine.
- prowl - Uses Prowl to push to an Apple device that has the Prowl app installed.
- pushbullet - Uses PushBullet to push an Android device that has the app installed.
- pusher - Publish-Subscribe to a Pusher channel/event.
- pushover - Sends alerts via Pushover.
- PushStaq - Send real time alerts using Push Notifications from your Node-Red flows to any device with PushStaq.
- slack - Interact with the Slack API.
- sms77 - Uses sms77 service for SMS, text-to-speech calls and number lookups.
- telegrambot - Contains a receiver and a sender node which act as a Telegram Bot.
- twilio - Uses Twilio service to send/receive text messages.
- whin - Send and receive whatsapps from within a nodered flow.
- xmpp - Connect to an XMPP server to send and receive messages.
- open-wa (whatsapp) - Efficiently connect to remote instances of your open-wa whatsapp automate servers.

### System

- aedes - MQTT Broker based on Aedes.
- dockerode - Connect to Docker daemon.
- os - Obtain system information.

### Time

- blindcontroller - Automate the control of household roller blinds based on the current position of the sun.
- bigtimer - Timing node with support for dusk/sunset dawn/sunrise and variations also day/week/month (and special days) control. The node offers outputs suitable for MQTT, speech and databases.
- cron-plus - A flexible scheduler (cron, solar events, simple dates) node with full dynamic control and Timezone support.
- suncalc - Uses the suncalc module to generate an output at sunrise and sunset based on a specified location.
- simpletime - Adds time and date payloads with various formatting options, which can be retreived and used later in the flow.
- sun-position - Timer based flow control with dusk, dawn (and variations) and much more. Additional you can get sun and moon position or to control a flow by sun or moon position.
- timeswitch - Lets the user set simple repeating timers for example for simple heating control, etc.

### Utility

- actionflows - Brings easy to use loops and OOP (object oriented programming) features.
- alarm - Build your own home alarm system with any number of panels, zones, sensors, triggers and automations.
- bool-gate - Boolean logic gates.
- daemon - Starts up (calls) a long running system program and pipes STDIN, STDOUT and STDERR to and from that process.
- exif - Extracts GPS and other EXIF information from a passed in jpeg image.
- german-holidays - Getting german holidays or information if today/tomorrow is a holiday.
- ical-events - Get events from an ical-URL, a caldav-server or from iCloud via kalender-events.
- interval-length - Measure the (time) interval length between successive messages.
- moment - Produces a nicely formatted Date/Time string using the Moment.js library.
- owntracks - Converts Owntrack Messages into standard geo message and deals with encrypted locations.
- persist - Persist data over Node-RED restarts and deploys.
- self-healing - Making Node-RED more resilient by adding self-healing capabilities.
- state-machine - Wraps around the JavaScript State Machine to implement a finite state machine.
- string - Provides native and extended chainable JavaScript string parsing and manipulation methods.
- twc-weather - The Weather Company and Weather Underground Personal Weather Station APIs.
- users - Quickly build a very simple user access control for HTTP-based flows.
- watson - Interact with the IBM Watson services in IBM Cloud.

### UI

- browser-utils - Add browser functionality such as file upload, camera & microphone.
- node-red-dashboard - Create a live data dashboard.
  - https://flows.nodered.org/collection - Dashboard extra nodes.
  - ui-svg - Show interactive SVG (vector graphics) in the dashboard.
  - ui-contextmenu - Show a popup contextmenu in the dashboard.
- flow-manager - Separates flow json to multiple files.
- iglass - Interaction with iGlass Automation blocks.
- uibuilder - Create dynamic web interfaces using any (or no) front end libraries for convenience.
- web-worldmap - Provide a world map web page for plotting “things” on.

## Community

- HomeAssistant Forum
- Node-RED Forum
- Node-RED Blog
- Node-RED User Group Japan
- Reddit
- Redmatic Forum
- Slack
- Stack Overflow
- Steves Node-RED Guide
- Twitter
- YouTube

## Contributing

Contributions welcome! Read the contribution guidelines first.

nodered.md Github