Home Lab/Home Automation

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

Networking

  • UniFi Security Gateway
  • UniFi AC-PRO
  • (3) UniFi 8-port POE Switches

Cluster

  • (1) Raspberry Pi 3, ARM32v6, Raspbian
  • (1) Xeon E3 1250v2, AMD64, Ubuntu 18.04
  • (5) Asus Tinkerboards, ARM64v8, Armbian

Cameras

  • (2) Hikvision Cubes
  • (3) XiaoFang cameras running FangHacks

Off-the-Shelf Hardware

  • 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 (docker-compose)
  • Multi-architecture Images - because I just had to have both amd64 and arm64v8 machines in a single cluster.

Software

Network

  • Traefik - a http load balancer, obtains certificates (both external and internal) from Let’s Encrypt, managed via labels within the stack definition.
  • PiHole + Cloudflared - a dns-based adblocker + dns over https; all outgoing udp-based dns traffic is blocked at the USG.
  • Wireguard - a secure connection into my home network.

IoT/Home Automation

  • 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.
  • Litter Robot Vision - an OpenCV application that determines which LED on the Litter Robot is on and publishes that via MQTT. Yes, that means that I can get notifications when my cat is pooping.

Databases

  • 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.

Misc. Self-Hosted

  • Miniflux - an opinionated RSS feed reader; replaced Feedly and Google Reader before that.
  • UniFi Controller - a unified controller for Ubiquiti UniFi hardware.
  • Borg Backup + Rclone - automated backups for all my servers, rclone’d to Backblaze B2.
Avatar
Dustin Brewer
turning caffeine into software

My interests include IoT, amateur radio (Amateur Extra; AF7NK), backpacking, biking, and beer.