This is my personal Home Assistant configuration. I first started my journey into home automation with home assistant version 0.70. After having been inspired by others many times over, I've finally cleaned up my configuration in hopes to inspire others. Most of my automation is done in node-red as it was more powerful when I first started. Moving forward, I am putting more automations directly into home assistant for ease of sharing with others, now that the built in automation system has matured.
FTC disclosure: This readme contains affiliate links. If you feel I have provided you with value, please use one of my affiliate links. It costs you nothing, but helps me a lot! As an Amazon Associate I earn from qualifying purchases.
| Statistics | Devices |
Domain | Count |
---|---|
alarm_control_panel | 2 |
automation | 22 |
binary_sensor | 148 |
calendar | 11 |
camera | 24 |
climate | 3 |
cover | 1 |
device_tracker | 139 |
group | 16 |
input_boolean | 29 |
input_number | 5 |
input_select | 8 |
input_text | 4 |
light | 32 |
lock | 4 |
media_player | 31 |
number | 2 |
persistent_notification | 1 |
person | 2 |
plant | 1 |
proximity | 1 |
remote | 1 |
scene | 2 |
script | 27 |
select | 2 |
sensor | 859 |
sun | 1 |
switch | 112 |
timer | 1 |
utility_meter | 2 |
vacuum | 2 |
weather | 4 |
zone | 4 |
| Backup Batteries | Hubs | Lighting | Climate | Outlets & Switches | Security | Voice Assistant | Sensors | Cameras | Garage | Vacuum | Network | Other Hardware |
| Go to Main Menu | Go to Device Menu |
Device | Quantity | Connection | Home Assistant | Notes |
---|---|---|---|---|
CyberPower 1500VA | 2 | USB | Network UPS Tools (NUT) | Used to monitor power consumption and provide backup power in case of an outage. One is dedicated to my server running home assistant and various containers, the other is used in the entertainment stand in the livingroom. It provides the ability to lock out motion controlled lights based on power consumption. |
APC 600VA | 2 | USB | Network UPS Tools (NUT) | Used to monitor power consumption and provide backup power in case of an outage. One monitors the gaming desktop and peripherals in the office, the other is in my network closet. |
TBD (NodeRed config coming soon)
| Go to Main Menu | Go to Device Menu |
Device | Quantity | Connection | Home Assistant | Notes |
---|---|---|---|---|
HUSBZB-1 USB Hub | 1 | USB | ZHA | Used to control all Zigbee devices. Highly recommend using a USB extension cable when plugging directly into your computer running HA. It also supports Z-Wave, which is why I got it, but I currently only have Zigbee devices. |
RTL-SDR | 1 | USB | MQTT | Used to read in various RF signals through software defined radio. Integrated with rtlamr2mqtt running in docker. Currently being used to get my gas meter into the energy dashboard. |
HUSBZB configured via integrations GUI. For relevant RTL-SDR configuration see configuration.yaml, template.yaml, and sensor.yaml
| Go to Main Menu | Go to Device Menu |
Device | Quantity | Connection | Home Assistant | Notes |
---|---|---|---|---|
LIFX Color A19 | 13 | Wi-Fi | LIFX | Color changing Wi-Fi light bulbs. Used in existing ceiling fans (no separate light switch wiring available) for mood lighting and circadian lighting. |
LIFX Color BR30 | 2 | Wi-Fi | LIFX | Color changing Wi-Fi flood light bulbs. Used in night stands for ceiling projected lights (better on my eyes for reading in bed). |
TP Link Dimmer Switch | 5 | Wi-Fi | TP-Link | Smart dimmer switches used on recessed ceiling lighting fixtures and outdoor lighting. |
TP Link 3-Way Switch | 2 | Wi-Fi | TP-Link | 3-way switches for lights controlled from multiple switches. |
See configuration.yaml, scenes.yaml and groups.yaml for configuration details. The automations themselves are nearly all in Node-Red. TBD (NodeRed config coming soon)
| Go to Main Menu | Go to Device Menu |
Device | Quantity | Connection | Home Assistant | Notes |
---|---|---|---|---|
Nest Learning 3rd Gen | 2 | Wi-Fi | Nest | Thermostat for each floor. |
Aqara Temperature Sensor | 12 | Zigbee | ZHA | Provides room temperature and humidity. |
Plantower PMS5003 | 1 | ESP8266 | ESPHome | PM2.5 air/dust sensor connected to the ESP. |
The nest is connected via the Nest Smart Device Management API. I've been pretty happy with a fixed schedule (despite the learning ability) on the thermostat, so there aren't many automations related to climate. The temperature sensors are currently for awareness and the nest gets switched into away mode when we leave the house using presence detection (HA is way more reliable than the nest app). The air sensor is used to notify me if the air quality drops.
ESP config can be found here. Notifications can be found TBD (NodeRed config coming soon) and presence can be found TBD (NodeRed config coming soon)
| Go to Main Menu | Go to Device Menu |
Device | Quantity | Connection | Home Assistant | Notes |
---|---|---|---|---|
KMC 3+1 Outlet Smart Plug | 2 | MQTT/Tasmota | Tasmota | Flashed with tasmota. Currently monitors power of washing machine and used to control power to my 3D printers. |
VeSync Smart Plug | 4 | Wi-Fi | VeSync | Power consumption and control of holiday lights, my MagicMirror and my ambilight setup. |
Lights and MagicMirror are controlled based on presence detection, see TBD (NodeRed config coming soon).
My washing machine is partially automated around the KMC plug. This outlet can handle the load without me having to worry. Utilizing the appliance blueprint I generate a series of notifications depending on the state of the washer. Alexa pestering begins when the clothes stay in the washer for too long. See automations.yaml and TBD (NodeRed config coming soon).
| Go to Main Menu | Go to Device Menu |
Device | Quantity | Connection | Home Assistant | Notes |
---|---|---|---|---|
Alarm Decoder | 1 | W-Fi | AlarmDecoder | Using the AD2pHAT connected to a Raspberry Pi Zero W, I am able to integrate the entirety of my existing Honeywell Vista-20P alarm system into HA. |
Automatic arming/disarming based on bed states and presence detection. I also tap into the existing motion detectors for some additional presence based lighting control. See TBD (NodeRed config coming soon)
| Go to Main Menu | Go to Device Menu |
Device | Quantity | Connection | Home Assistant | Notes |
---|---|---|---|---|
Amazon Echo | 2 | Wi-Fi | Alexa Media Player (Custom Component) | Voice assistant, home audio system, and notifications. |
Amazon Echo Flex | 2 | Wi-Fi | Alexa Media Player (Custom Component) | Voice assistant, home audio system, and notifications. |
Amazon Echo Dot | 4 | Wi-Fi | Alexa Media Player (Custom Component) | Voice assistant, home audio system, and notifications. |
Amazon Echo Show | 2 | Wi-Fi | Alexa Media Player (Custom Component) | Voice assistant, home audio system, notifications, and baby monitor. |
I use these for means of disabling automations, requesting things outside of automations (light brightness/color), viewing interior cameras (easy baby monitor), relaying notifications based on room occupancy, and as a primary media system. See TBD (NodeRed config coming soon)
| Go to Main Menu | Go to Device Menu |
Device | Quantity | Connection | Home Assistant | Notes |
---|---|---|---|---|
Google Nest Protect Battery | 3 | Wi-Fi | Homekit Controller | Smoke and Carbon Monoxide Detector. As I'm using the new Nest SDM API and bought these after they migrated from the original API, I can't bring these in with the Nest integration. Instead I have Homebridge running in docker with the homebridge-nest plugin. |
HC-SR04 (Ultrasonic Sensor) | 2 | ESP8266 | ESPHome | Distance sensor placed under bed slats for bed occupancy. Used to trigger lighting, security and bedtime automations. |
PIR Motion Sensor | 1 | ESP8266 | ESPHome | Motion sensor part of my ESP based multi sensor. |
DHT22 (Temperature / Humidity Sensor) | 1 | ESP8266 | ESPHome | Temperature sensor part of my ESP based multi sensor. |
Aqara Motion Sensor | 8 | Zigbee | ZHA | Provides room occupancy and brightness level. |
Aqara Door Sensor | 2 | Zigbee | ZHA | Used for triggering lighting automations. |
Aqara Magic Cube | 1 | Zigbee | ZHA | Mostly used for fun. Controls various things in the living room based on gestures. Prompts Alexa to complain with a random phrase if dropped. |
For bed occupancy see binary_sensor.yaml configuration and the corresponding ESP nodes master_sg_1 and master_sg_3. I used to use strain guages, but they weren't reliable enough (and sg_3 just happened to be my third attempt and I never renamed it when I repurposed the ESP). My nodes are placed on different wooden slats on each bed and I've noticed that after my vacuum runs, the carpet underneath the ultrasonic sensors causes the distance it reads to go out of sync. So I found a work around by capturing the highest value after the vacuum runs see TBD (NodeRed config coming soon) and using that as my max value and comparing that with the current reading and a pre-defined delta for a threshold. It's worked way better than my initial empirical calculations of a threshold against the raw value. Eventually I will move the other sensor to use the same approach.
Motion sensor based lighting automations can be found TBD (NodeRed config coming soon)
The magic cube configuration can be found TBD (NodeRed config coming soon)
| Go to Main Menu | Go to Device Menu |
Device | Quantity | Connection | Home Assistant | Notes |
---|---|---|---|---|
Ring Video Doorbell 2 | 1 | Wi-Fi | Ring | View of the frontdoor, but most importantly presence based announcements when someone rings the doorbell. |
Wyze Cam V2 | 3 | Wi-Fi | Frigate (Custom Component) | Used for UI streams. |
Reolink E1 Zoom | 1 | Wi-Fi | Frigate (Custom Component) | Used for UI streams. Also used to provide snapshots for notifications if my garage door is opened. |
Ubiquiti Unifi Protect G3 Instant | 1 | Wi-Fi | Unifi Protect (Custom Component) | Cheap wide angle lens camera. Used as a baby monitor. |
Ubiquiti UniFi Cloud Key Gen2 Plus | 1 | Ethernet | Unifi Protect (Custom Component) | Unifi Protect NVR. |
I don't have any automations based on the cameras directly. The camera streams are passed to my instance of Frigate. From there object detection is ran and if a person is detected while we are not home, I will get a notification with a screen shot of what was found. The ring stream doesn't work fast enough to be useful (even in the native app), so I just use the binary sensor to trigger an alexa notification on whatever room is occupied and send a notification to our phones if we are home. Normally the dogs go haywire if they hear the chime go off, this prevents that while still alerting us someone is here.
| Go to Main Menu | Go to Device Menu |
Device | Quantity | Connection | Home Assistant | Notes |
---|---|---|---|---|
MyQ Smart Garage Hub | 1 | Wi-Fi | MyQ | Used to drive actionable notifications if the garage door is still opened or opened while we are away. |
Tesla Model 3 | 1 | Wi-Fi | Tesla (Custom Component) | My main vehicle. No dedicated automations to this yet, just importing the data because I can. |
The MyQ is mostly reliable, but it sometimes takes a bit to update its state. Home Assistant will occasionally think the garage is open, which is why I send a picture of my garage to verify if it is indeed opened. See TBD (NodeRed config coming soon)
| Go to Main Menu | Go to Device Menu |
Device | Quantity | Connection | Home Assistant | Notes |
---|---|---|---|---|
Neato D5 | 1 | Wi-Fi | Neato | Automated to run whenever we leave the house and the vacuum hasn't cleaned in the last 2 hours. |
Roborock S5 | 1 | Wi-Fi | MQTT | Integrated via MQTT from Valetudo. Automated to run whenever we leave the house and the vacuum hasn't cleaned in the last 2 hours. Automatically meets me at the garbage can for bin emptying. |
Neato and Dwayne the Roborock Johnson (can you smell what the roborock is cleaning?) are controlled via scripts.yaml with the automations found TBD (NodeRed config coming soon). My model of Neato doesn't have nearly as many functions as Dwayne does, so it's just a clean when we're gone kind of thing. It lives on the 2nd floor which is all carpet and does a great job sucking up the dog hair. Dwayne lives on the first floor and can spot clean each room and has the ability to mop the non-carpeted areas downstairs. He also makes it easy to clean thanks to rockbin, which allows me to query for how long it has been since the bin was last removed. When I come home, Dwayne meets me at the garbage can and when the bin is re-inserted, he automatically returns to his dock.
| Go to Main Menu | Go to Device Menu |
Device | Quantity | Connection | Home Assistant | Notes |
---|---|---|---|---|
Ubiquiti UniFi Cloud Key Gen2 Plus | 1 | Ethernet | Ubiquiti Unifi | This contains my unifi controller and provides statistics via Unifi Gateway in addition to device_trackers for presence detection. |
Ubiquiti Networks Unifi Security Gateway (USG) | 1 | Ethernet | Ubiquiti Unifi | The router I use for my unifi network and provides statistics via Unifi Gateway in addition to device_trackers for presence detection. |
Ubiquiti UniFi nanoHD | 2 | Ethernet | SNMP | These are my wireless access points and used to get various sensor information via SNMP. |
My network provides redundant presence detection for our mobile devices, but also provides presence detection for guests. When a guest is detected, guest mode gets enabled which configures how certain automations work. Normally when I lay in bed, all of the lights go off, but I'm sure my guests would not like that as much as I do, so that gets disabled.
For SNMP configuration and guest detection configuration see sensor.yaml. When guest mode is active input_boolean.guest_mode
is set to true, which various automations check for.
| Go to Main Menu | Go to Device Menu |
Device | Quantity | Connection | Home Assistant | Notes |
---|---|---|---|---|
Dell R720 | 1 | Ethernet | N/A | This is my main server. Multiple VMs and docker containers are running in here, such as HA OS, Plex, media managers, game servers, pen test environment and development environment. |
Printrbot Simple Metal | 1 | Wi-Fi | OctoPrint | My first 3D printer. Very small print bed, but it's my old reliable. |
Reach3D Printer | 1 | Wi-Fi | OctoPrint | Kickstarter DIY 3D printer. Has a larger and heated print bed, but prints that are too tall get a little messy. |
Canon MF634Cdw | 1 | Wi-Fi | Internet Printing Protocol (IPP) | Color laser printer in the office. I can see my toner levels in home assistant. |
3D printer configuration for the Printrbot can be found in scripts.yaml. Currently the Reach3D has no automations dedicated to it as I only have 1 instance of OctoPrint and the Printrbot is almost always connected to it.