/homeassistant-config

My personal Home Assistant config

Primary LanguagePython

Home Assistant

My personal implementation of Home Assistant (version: 0.80.1). Configuration updated 10/16/2018. Just changed my configuration over to lovelace

Overview

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.

In-front of Home Assistant

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

High Level Components and Ideas

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

Custom Components

Lovelace JavaScript Modules

Devices

  • Raspberry Pi 3
  • Raspberry Pi Zero W - 2
  • Aeotec Z-Stick Gen5
  • DIY pfSense router
  • Netgear Orbi (Set in AP mode)
  • ZoneMinder

Z-Wave Devices

  • 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

Media and Other Devices

  • 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

Interface

UI UI UI