This document is a work-in-progress. It might not be complete nor accurate.
My Home Lab journey started back in 2009 with a ReadyNAS; my Home Automation journey started in 2013 with Arduino Nanos.
I have lots of experience, but will never consider myself an expert. There is always something to learn about!
Hardware, Architecture, & Operating System
- UniFi Security Gateway
- UniFi AC-PRO
- (3) UniFi 8-port POE Switches
- (1) Raspberry Pi 3, ARM32v7, Raspbian
- (1) Xeon E3 1250v2, AMD64, Ubuntu 18.04
- (1) Core i7, AMD64, Ubuntu 18.04
- (2) Hikvision Cubes
- (3) XiaoFang cameras running FangHacks
- Linear HUSBZB1 - ZWave and Zigbee Stick
- Dome Water Shutoff Valve (ZWave)
- (7) SmartThings Water Leak Sensors (Zigbee)
- (3) GE Switches & Dimmer Switches (ZWave)
- (5) GE Link Bulbs (Zigbee)
Containerization and Orchestration
- Docker - it’s what all the cool kids are using, and really does make my server maintenance easier.
- Docker Swarm - while Kubernetes is totes cool, it’s zomg overkill for home use. Even Swarm is a bit overkill, but it’s fairly minimal over what I was previously using (
- Multi-architecture Images - because I just had to have both amd64 and arm64 machines in a single cluster.
- Traefik - a http load balancer, obtains certificates (both external and internal) from Let’s Encrypt, managed via labels within the stack definition.
- Cloudflared - DNS over HTTPS; all outgoing udp-based dns traffic is blocked at the Unifi Security Gateway.
- Wireguard - a secure connection into my home network.
- Mosquitto - a publish-subscribe-based messaging protocol; this runs most of my IoT infrastructure.
- Home Assistant - a home automation software hub; anything not integrated via MQTT is integrated via Home Assistant.
- Grafana - a data-visualization tool; draws pretty charts and graphs from the data within Influx
- Node-Red - a flow-based, automation tool; creates complex automations for Home Assistant. Home Assistant does have a yaml-based automation system (which works just fine, despite what Node-Red propoents say) it’s just a lot more fun to visualize and debug automations in Node-Red.
- MySensors - a sensor framework for many different micro-controllers; I use it for many of my battery powered, custom IoT devices like my soil moisture sensor, and door sensors.
- ESPHome - a sensor framework for ESP8266 and ESP32 micro-controllers; I use it for most of my other custom IoT devices like my thermostat actuator, garage door actuator, fireplace actuator, etc.
- Mysb - a mysensors bootloader to mqtt bridge process.
- Seattlewaste2mqtt - a seattle waste collection schedule to mqtt bridge process.
- Ipcamera2mqtt - a seattle waste collection schedule to mqtt bridge process.
- Denon2mqtt - a denon network receiver (telnet woohoo) to mqtt bridge process.
- Darksky2mqtt - a darksky to mqtt bridge process.
- Wsdot2mqtt - a wsdot travel times to mqtt bridge process.
- Unifi2mqtt - a Unifi Controller device status to mqtt bridge process.
- LitterRobot2mqtt - a Litter Robot API to mqtt bridge process.
- InfluxDB - a time-series datastore; Home Assistant publishes sensor changes into Influx
- PostgreSQL - a relational database that houses data for Miniflux and Home Assistant.
- MongoDB - a document store that houses data for the Unifi Controller.