This series of posts will document my foray into automating as many aspects of my domestic life as possible. I’ve experimented with basic smart home devices (a Nest smoke detector, Philips Hue lights) but recently, I’ve taken a step towards setting up practical automation using existing devices in my home. I’m also trying to take advantage of Docker to not have to deal with dependencies and bare-metal installs. This post will be going over the physical computing hardware I’m utilizing to facilitate the local network services.
Devices in Use
- ODROID N2
- Raspberry Pi 3B+
- Synology DS220i
The Core: ODROID N2
As the lynchpin of my automation setup, I have an ODROID N2 set up in my media center in the living room. It has a static IP (technically a DHCP reservation) on our local network, and is running the following open-source services as Docker containers:
Software that provides an all-in-one framework / management interface for nearly any IoT or smart home device you can think of. It also allows you to create scripts and automation routines between devices that otherwise would not be able to operate together. I am using this software to collect data from the soil sensors in our indoor garden and maintain a dashboard for easy viewing.
Open-source network-wide DNS-based adblocker. I consider this an essential part of any home network, as many of us rely on Firefox, Chrome, or Safari adblock extensions, but some of our phones and other devices do not have those capabilities. Thus, Pi-Hole can help block ads from all of these devices, and has a very easy-to-use interface. My Netgear router points to this service for all DNS resolution.
An open-source fork of Paperless, a document management system (DMS). It can OCR (read text from scanned image/PDF), and automatically tag/categorize documents based off matching rules. The volumes that the Docker container mounts reside on the Synology, and I’m using Paperless-NG to store important paper documents that I typically file away.
An open-source lightweight wiki platform. I’m using it as a documentation platform for all of the services on my local network.
The Garden: Raspberry Pi 3B+
Sitting on top of the tent that contains our indoor garden, I repurposed my old Pi to serve as a Bluetooth hub for the soil sensors and have the following open-source services running:
This script connects to the soil sensors via Bluetooth and transmits the info via MQTT. It is a necessary conversion/translation so that Home Assistant can accurately display data from these sensors on our dashboard.
MQTT client/server program that is currently used as the receiver of MQTT messages from PlantGateway. There is an MQTT integration in Home Assistant, which I’ve configured to connect to Mosquitto and be able to interpret these MQTT messages.
Open-source streaming video for Linux, which I’ve installed and configured to stream video of the indoor garden to our Home Assistant dashboard.
The Storage: Synology DS-220i
This is a very basic NAS, with 2 x 4 TB Seagate drives setup in the Synology Hybrid RAID configuration for redundancy purposes. However, it does provide one service to the local network, other than being pure storage solution.
Clean HTML dashboard that uses YAML for configuration. This makes editing the contents of the dashboard a breeze. I’m using the third party Apache package for Synology to host this.