These are some additional tips and references to interesting projects not mentioned in the book Control Your Home with Raspberry Pi: Secure, Modular, Open-Source and Self-sufficient:
The book dives into a specific set of home automation protocols, but the architecture is general and modular enough to use it with other protocols. I found the following projects that look interesting if you want to use another protocol (note that I didn't test them):
- digitalSTROM
- digitalstrom-mqtt lets you set and react to any digitalSTROM devices using MQTT. There's a Docker image on Docker Hub.
- KNX
- knx-mqtt-bridge bridges your KNX devices with MQTT. It doesn't have a Docker image on Docker Hub, but it supplies a Dockerfile to build your own Docker image.
- Loxone
- PyLoxone is Home Assistant's binding for Loxone. If you use Home Assistant's Loxone integration and enable MQTT Statestream, state changes of your Loxone devices will also be published as MQTT messages. Another option is using LoxBerry with its MQTT integration.
- Homie: An MQTT convention for the Internet of Things, defining a standardized way for IoT devices and services to announce themselves and publish their data to the MQTT broker. It seems to be a more detailed specification than mqtt-smarthome, which is mentioned in the book.
- system_sensors: A Python script that sends system data such as CPU temperature, CPU, disk and memory usage, Wi-Fi signal strength and the number of pending updates over MQTT. Originally created for the Raspberry Pi, but now also works on other Linux systems. If you have MQTT discovery enabled in Home Assistant (see page 221 of the book), you don't need to configure anything in Home Assistant to see the data.
- serial2mqtt: A gateway that reads commands from the serial port of a Raspberry Pi and transfers them as MQTT messages to your MQTT broker. For instance, an Arduino board connected to your Raspberry Pi can run
Serial.println("[1,\"src/myTopic/time\","+String(millis())+"]");
to publish its uptime to the MQTT topicsrc/myTopic/time
.
- An interesting alternative for bt-mqtt-gateway that has been developed since publication of the book is Theengs Gateway. It retrieves data from a wide range of BLE sensors, translates this information into a readable JSON format and pushes this to an MQTT broker. You can run it as a Docker container.
- Using the CC2652 instead of the CC2531: In the book I used the CC2531 to create a Zigbee coordinator, but recently two interesting CC2652-based devices have appeared, and both are supported by Zigbee2mqtt. There's the Electrolama zig-a-zig-ah! and slaesh's CC2652RB stick. Both USB adapters have an external antenna and thus a very good range, and they easily handle a Zigbee network of 100+ devices. In contrast to the CC2531, they don't require additional hardware to flash.
- ESPHome: A project that lets you create firmware for an ESP32 or ESP8266 device not by programming but by configuring. I wrote a book about it, Getting Started with ESPHome: Develop your own custom home automation devices. I find this the perfect companion for the home automation system of the book Control your home with Raspberry Pi. The devices you create with ESPHome connect to your MQTT broker but they can also work completely autonomously.
- Homepoint: Firmware to turn an ESP32-based device such as the M5Stack Core into a dashboard for an MQTT-based home automation system. I wrote a blog post about it, including a configuration example: Create a dashboard for your MQTT-based home automation system with the M5Stack Core and Homepoint.
- RuuviTag Demo: In this demo Telegraf collects MQTT messages with RuuviTag sensor measurements from bt-mqtt-gateway, sends the values to InfluxDB where they are stored in a time-series database, and then shows them in a Grafana dashboard. I haven't covered Grafana in the book, but you should definitely check it out when you want some more powerful dashboard functionality.
- Automatically save the volume of your ReSpeaker 2-Mics Pi HAT: A solution I found to the (sometimes not so) minor annoyance that the playback volume of the ReSpeaker 2-Mics Pi HAT is reset to its maximal value after each reboot.