My personal implementation of Home Assistant (version: 0.80.1). Configuration updated 10/16/2018. Just changed my configuration over to lovelace
Here is my home automation project I have been improving since mid 2017. At that time I had switched from Samsung SmartThings and I could not be more happy with my decision. I take a firm minimalism approach to my layout, hence why the number of things are essential and concise.
- HA is running in a Virtual Environment on Raspberry Pi 3 running Debian Stretch (I highly recommend running HA on a RasPi with a Z-stick). I tried Hassbian and other deployment methods, but wasn't satisfied with the level of control over the things I mention below until I provisioned HA on my Debian myself.
- Connecting to HA externally, I use my own domain through Google Domains with a Dynamic DNS record setup on a sub domain. To solve the internal/external connection problem, I have a Host Override setup on my pfSense router that forwards my HA sub domain to the local IP address of HA when I'm on my local network.
- For connection security and certificate management I use Nginx to reverse proxy the connections to HA on the RaspberryPi. My Nginx config is pretty strict and I have a certificate setup through Let's Encrypt that auto-renews to secure my traffic internally and externally.
- Google Assistant Commands - To get around a few limitations like casting Spotify and the mediocre native TTS I am using emulated google assistant SDK on my RaspberryPi. Following a post form chocomega here he walks you though setting it up. You can find the config in configuration.yaml, the spotify/playlist selector here playlist.yaml and broadcast notifications here things.yaml.
- Presence Detection - Before I was just using a Netgear integration for Orbi. I stumbled across this cool project by andrewjfreyer written as a simple bash script called Monitor that uses bluetooth to track presence. It doesn't require the devices to be paired, its a lot faster and more reliable when other presence detection methods when setup to run on a few nodes. I combine the presence date from both Netgear and Monitor together to get the best of both words. You can find the project here Monitor and my implementation here occupancy.yaml
- Dishwasher Status/Notification - phil1019 shared his write up with me about monitoring dumb home devices power consumption to assume their state. I used the dishwasher portion of his setup, it can be found here.
- Auto hide media devices when not in-use - Before I used a self made method, now lovelace has more native functionality through a Conditional Card. I didn't like the clutter of 6 media devices on my main page when they are not playing anything.
- Light Alarm Clock - My bedroom lights slowly turn on, and the radio cast(s) instead of an immediate audible alarm. I used this example on the community forum by hokagegano.
- Alarm Control - There are a lot of examples of HA Alarm Systems on the community forum, but none of them did exactly what I wanted, so I wrote this one myself. The front end modules is the lovelace javascript module alarm_control_panel-card.
- geekofweek Repository - When I was getting started I pulled a lot of ideas and config examples from geekoftheweek. Many thanks to this guy!
- Future Considerations - When I own my own dwelling I will probably monitor, operate, and use sensors from smart deadbolts/doors handles, smart smoke/carbon monoxide detector, smart doorbell, exterior lights, garage door opener, etc from HA.
- hass-google_keep - To auto-add things to my to-do list
- nadtcp2 - The nadtcp component doesn't work with the Nad C 338
- Raspberry Pi 3
- Raspberry Pi Zero W - 2
- Aeotec Z-Stick Gen5
- DIY pfSense router
- Netgear Orbi (Set in AP mode)
- ZoneMinder
- GE Z-Wave Plus In-wall Smart Dimmer Toggle 14295 - 6
- Ecolink Z-wave Plus Motion Detector PIRZWAVE2.5-ECO - 5
- Inovelli Z-Wave Plus Single Channel Smart Outlet
- Inovelli Z-Wave Plus Dual Channel Smart Outlet - 2
- NEO Z-wave Plus MINI Smart Power Plug (monitors power consumption) - 1
- Sensative Z-Wave Plus Strips Guard Contact Sensor (Don't recommend) - 3
- Kwikset 912 Z-Wave SmartCode Electronic Touchpad
- Hikvision Cameras - 2
- Google Home
- Chromecast Ultra
- JBL Link 20
- Vizio 4k TV
- Nad C 338
- Roomba 890
- Hue Bridge (Deprecating)
- Hue White A19 - 2
- Hue Dimmer Switch