A ready-to-use Node-RED setup for home automation maintained by german computer magazine c't.
It includes Node-RED, MQTT (provided by Eclipse Mosquitto), Zigbee-Support (provided by zigbee2mqtt). There is also Zigbee2MqttAssistant, an admin interface for zigbee2mqtt.
We also added Node-RED-Nodes for HomeKit, FritzBox, Tado, Bluetooth-LE-Support and a Dashboard.
To get this going you need a working Docker 18.02.0+ setup and docker-compose.
This setup will run on any AMD64 or ARM32v7 Linux machine. This includes virtually any PC or a Raspberry Pi 3 or newer. We also build containers for ARM64v8, ARM32v6 and S390X but they are untested. If you want to run the containers on macOS, try running start.sh
as root.
If you want to control Zigbee devices you also will need a Zigbee controller stick. Have a look at Zigbee2MQTT's documentation for that.
- Install docker and docker-compose: german article on installation process
- Clone/Download this repository
cd
into the folder containing this repos files- run
./start.sh start
to setup the data folder needed for the containers and run them. - Note: The Zigbee2mqtt container will only start if a Zigbee-Controller is connected. Make sure to use the newest firmware on the stick!
- Backup the
data
folder regularly it contains all your data and configuration files
c't-Smart-Home – setup script
=============================
Usage:
start.sh update – to update this copy of the repo
start.sh start – run all containers
start.sh stop – stop all containers
start.sh data – set up the data folder needed for the containers, but run none of them. Useful for personalized setups.
- run
./start.sh data
to create the necessary folders - Use
docker-compose up -d
to start the containers - If you do not want to start Zigbee2mqtt, add the name of the Node-RED-container to the docker-compose command:
docker-compose up -d nodered
. The MQTT container will always be started, because it's a dependency of Node-Red.
The Node-RED container is based on the official one provided by the Node-RED project. We provide variations based on Node.js versions 8 (legacy), 10 (LTS) and 12. See Node.js releases page for support cycles. The container based on LTS will always be the default. You can always modify your copy of the compose file to use a different container version.
Container-Tag | Node-RED version | Node.js version | Notes | Arch |
---|---|---|---|---|
latest | latest release version | LTS | latest release version | all |
latest-10 | 1.x | 10 | latest release version | all |
latest-12 | 1.x | 12 | latest release version | all |
latest-14 | 1.x | 14 | latest release version | all |
devel | latest release version | 12 | build from current master | all |
devel-10 | 1.x | 10 | build from current master | all |
devel-12 | 1.x | 12 | build from current master | all |
devel-14 | 1.x | 14 | build from current master | all |
release-1.1.1-amd64 | 0.20.5 | 8 | deprecated | amd64 |
release-1.1.1-arm32v7 | 0.20.5 | 8 | deprecated | arm32v7 |
We also use the :latest
versions of Eclipse Mosquitto and Zigbee2mqtt.
After starting the containers you'll reach Node-RED http://docker-host:1880 and the Zigbee administrative interface at http://docker-host:8880. Mosquitto is available on Port 1883 (and 9001 for websockets). Zigbee2mqtt itself provides no external interfaces, but you can see it's output in the container logs.
This project is described in the German computer magazine c't: https://ct.de/smarthome
Zigbee2mqtt is described here: https://ct.de/ygdp
Zigbee2MQTT documentation (Note: If you use and enjoy the Zigbee service consider sponsoring Koen Kanters great work!)