Shell
Switch branches/tags
Nothing to show
Clone or download
Latest commit 0832e45 Jul 16, 2018

README.md

Home Assistant

Home Assistant configuration with 300+ automations.

Home Assistant Version: 0.73.1

Devices

Hubs

Device Quantity Connection Home Assistant Notes
Hue Hub v2 1 Ethernet Philips Hue Used to control all Zigbee smart bulbs
Wink Hub v1 1 Wi-Fi Wink Used as a dumb hub to connect Z-Wave and Lutron devices. No Wink Robots or schedules being utilized

Relevant hub configurations can be found within configuration.yaml

Lighting

Device Quantity Connection Home Assistant Notes
Philips Hue White and Color Ambiance 7 Ethernet Philips Hue Light Color changing smart bulbs
Philips Hue White and Color Ambiance LightStrip Plus Dimmable 1 Hue Hub (Zigbee) Philips Hue Light Color changing smart led strip. Used as accent lighting
Philips Hue White 11 Hue Hub (Zigbee) Philips Hue Light Non color changing smart bulbs
Cree Connected 11 Hue Hub (Zigbee) Philips Hue Light Non color changing smart bulbs
Lutron Caseta Wireless Dimmer 8 Wink Hub (Z-Wave) Wink Light Smart dimmer switches that do not require a neutral wire

Many of my automations rely on some form of lighting but many examples can be found in lights.yaml and location.yaml.

Lights are grouped via light_group.yaml

Climate

Device Quantity Connection Home Assistant Notes
Ecobee 3 1 Wi-Fi ecobee / Ecobee Thermostat Used as primary thermostat
Ecobee Room Sensor 9 Ecobee3 Ecobee Binary Sensor Provides room temperature and room occupancy.
Quirky + GE Aros Smart Window Air Conditioner 1 Wi-Fi Wink Climate Used to augment cooling on 2nd floor
Frigidaire Cool Connect Smart Portable Air Conditioner 1 Wi-Fi Harmony Hub Remote Used to augment cooling on 2nd floor

I utilize a number of automations that adjust climate controls. Mostly they can be found in climate.yaml. Ecobee room sensors are heavily used in occupancy.yaml and as conditions in many automations

Outlets / Switches

Device Quantity Connection Home Assistant Notes
Wemo Mini Smart Plug 4 Wi-Fi Belkin WeMo Smart outlets utilized to control various devices via powering the outlet on/off (fans, Christmas Tree, etc)
GE Z-Wave Wireless Smart Lighting Control Outdoor Module 2 Wink Hub (Z-Wave) Wink Switch Used to control low voltage outdoor lighting transformers
Remotec Zwave Dry Contact Fixture Module 1 Wink Hub (Z-Wave) Wink Switch Used to control gas fireplace
TP-Link Smart Plug HS100 1 Wi-Fi TP-Link Switch Smart outlet used to control power to MyQ Device
iHome WiFI Smart Plug 2 Wink Hub (Wi-Fi) Wink Switch Smart Outlets. Not using these anymore due to overall poor reliability

Switches and outlets are used in various capacities, some are for lighting and some are for fans type devices. lights.yaml and occupancy.yaml should have some good examples.

Locks

Device Quantity Connection Home Assistant Notes
Schlage Connect Touchscreen Deadbolt 3 Wink Hub (Z-Wave) Wink Lock Smart locks used in automations to auto lock / unlock doors

Locks are used mostly as a way to lock / unlock doors based on locations, see location.yaml and locks.yaml for some examples

Security

Device Quantity Connection Home Assistant Notes
GoControl Door/Window Sensor 3 Wink Hub (Z-Wave) Wink Binary Sensor Door sensors to detect if exterior doors have been opened / closed
GoControl Siren and Strobe 1 Wink Hub (Z-Wave) Wink Alarm Alarm used for when alarm is triggered or when you want to get someone's attention

Door sensors are used in many different ways. I trigger on them via doors.yaml, use them for security in security.yaml, and as various conditions in notification_audio.yaml and climate.yaml. The alarm siren is used in security.yaml and in the security scene. I've also implemented the alarm as part of water_sensors.yaml.

Voice Assistant

Device Quantity Connection Home Assistant Notes
Amazon Echo 1 Wi-Fi Emulated Hue Bridge Audio only Voice Assistant
Amazon Echo Dot 6 Wi-Fi Emulated Hue Bridge Audio only Voice Assistant
Amazon Echo Spot 1 Wi-Fi Emulated Hue Bridge Voice Assistant with small display
Amazon Echo Show 1 Wi-Fi Emulated Hue Bridge Voice Assistant with display

I go for native Echo integration wherever possible, but a few devices are not currently supported where I've had to implement some work arounds via emulated hue. Most of these are just exposed via an input_boolean and customize.yaml. This allows the ability to have echo turn on or off an input_boolean in turn triggering an automation.

Media

Device Quantity Connection Home Assistant Notes
Apple TV 4k 2 Wi-Fi Apple TV Used for media playback on 4k TVs
Apple TV 4 2 Wi-Fi Apple TV Used for media playback on TVs
Sonos Play:1 10 Wi-Fi Sonos Audio playback and Home Assistant TTS
Sonos Connect 1 Ethernet Sonos Audio playback and Home Assistant TTS. Connects Sonos to existing surround sound system
Sonos Connect:AMP 1 Wi-Fi Sonos Audio playback and Home Assistant TTS. Connects Sonos to outdoor speakers
Logitech Harmony Hub 3 Wi-Fi Harmony Hub Remote Controls various AV equipment and other devices that utilize infrared remotes
Plex Media Server 1 Ethernet Plex / Plex Activity Monitor Media Server

Most media player based automations can be found in media.yaml and some Text to Speech (TTS) based automation in notification_audio.yaml .

Harmony Hubs work via a combination of input_selects, scripts, and automations in media.yaml.

Sensors

Device Quantity Connection Home Assistant Notes
Aeon Labs Water Sensor 2 Wink Hub (Z-Wave) Wink Binary Sensor Water sensors used to detect water in basement as a preventive measure

Water sensors serve one major function, to alert me to the presence of water. Almost all of those automations can be fond via water_sensors.yaml

Cameras

Device Quantity Connection Home Assistant Notes
Ring Video Doorbell 1 Wi-Fi Ring / Ring Binary Sensor Automated around binary sensors via motion or doorbell button press
Ubiquiti UVC-G3 UniFi Video Camera 2 Ethernet UniFi Video Camera 1080p POE Camera. NVR storage on QNAP NAS
Foscam FI9800P 1 Wi-Fi Foscam IP Camera 720p Wi-Fi Camera. NVR storage on QNAP NA

Nothing is currently automated around cameras, just a UI element. The Ring doorbell is used in a number of ways to trigger an action based on motion detection or someone ringing the doorbell. Examples can be found in doorbell.yaml

Garage

Device Quantity Connection Home Assistant Notes
MyQ Smart Garage Door Opener 1 Wi-Fi MyQ Cover Automated to open / close garage door on location and auto close after specific time intervals

Similar to locks, the Garage door is mostly automated to open / close based on location and after a set amount of time. Examples can be found in location.yaml and garage.yaml

Vacuum

Device Quantity Connection Home Assistant Notes
iRobot Roomba 980 1 Wi-Fi iRobot Roomba Automated to run at specific times based on presence detection
iRobot Roomba 650 1 NA NA Currently not integrated into Home Assistant. Investigating options for future integration

All Roomba related automations can be found in roomba.yaml

Network

Device Quantity Connection Home Assistant Notes
Ubiquiti Networks Unifi Security Gateway (USG) 1 Ethernet Ubiquiti Unifi WAP Primary Router. Presence detection for non household members and devices
Ubiquiti Networks UniFi Switch - 24 Ports (US-24-250W) 1 Ethernet Ubiquiti Unifi WAP Primary Switch. Presence detection for non household members and devices
Ubiquiti Networks 8-Port UniFi Switch (US-8-150W) 1 Ethernet Ubiquiti Unifi WAP Secondary Switch. Presence detection for non household members and devices
Ubiquiti Networks Unifi AP PRO (UAP-AC-PRO-US) 3 Ethernet Ubiquiti Unifi WAP Wireless Access Point for interior and exterior use. Presence detection for non household members and devices.
Ubiquiti Networks Unifi AP Long Range (UAP-AC-LR-US) 1 Ethernet Ubiquiti Unifi WAP Wireless Access Point for interior use. Presence detection for non household members and devices.
Ubiquiti Networks airGateway LR Wireless AP 1 Wi-Fi NA Used to connect Ubiquiti UVC-G3 UniFi Video Camera to the wireless network where running an ethernet cable wasn't feasible. Connects to POE injector

Since I don’t use the network equipment as my primary presence detection method most of the automation is around house guests via house_guest.yaml. The main function of the network equipment is to be network equipment for my fiber internet service.

Other Hardware

Device Quantity Connection Home Assistant Notes
QNAP TS-453 Pro 1 Ethernet QNAP Sensor Main storage array. Docker Containers and Plex media server run off this device. Configured with 4x WD Red Pro 4TB NAS Hard Disk Drives
APC 1500VA Back-Up UPS 1 USB / Ethernet NUT Sensor Primary Uninterruptible Power Supply (UPS). Connected via the NUT component utlizing the QNAP NAS native UPS server component
Wink Relay 2 Wi-Fi Wink Wall mounted touch screen. Wink interface was rubbish and was replaced with the Home Assistant dashboard. It provides binary sensors for the two push buttons, temperature, and humidity sensors. Doesn't get used much but looks cool.

Software

Device Quantity Connection Home Assistant Notes
iOS App 2 NA iOS Used as Home Assistant interface on mobile devices, not actively using for presence detection
Locative iOS App 2 NA Locative Primary method of presence detection. App is no longer under active development but has been the most reliable solution with no battery impact
Docker 1 Ethernet Installation on Docker Home Assistant install runs as a Docker Container
Pi-hole 2 Ethernet / Wi-Fi Pi-Hole Sensor Ad blocking. Primary instance runs within a Docker container and the secondary runs on a Raspberry-pi Zero W
Home Assistant Management Tool 1 Ethernet NA Custom Shell script for managing Home Assistant

The iOS app is used for some notifications in notification_text.yaml. Locative is the main method of doing any location based automations via location.yaml and many of the conditions I use are based on presence detection of household members provided by Locative.

The Home Assistant Management Tool is something I built for my personal use, but can easily be modified to suite different setups. Adjust the variables to your settings and setup shared SSH keys (if desired). Probably a million other more efficient ways to do this, but it has worked out so far for me. I had a previous version that I was using before converting to a Docker based installation. That one works with a more traditional installation. You can check out that version here

Overview:

  • Bash Shell script, should work anywhere you can use Bash
  • All HA configs are stored on my local workstation within Dropbox (doesn’t have to be but I like the versioning and access to it from any machine).
  • Edit locally with Text Editor. Currently using Atom.

Options:

  1. Deploy Home Assistant Configs
    • Creates tar file of current configs
    • Backs up tar file to local workstation (I use a Dropbox Folder)
    • rsyncs config directory from local workstation (Dropbox Folder)
  2. Restart Home Assistant
    • Restarts the Docker container and restarts
  3. Stop Home Assistant
    • Stops the Home Assistant Docker Container
  4. Start Home Assistant
    • Starts the Home Assistant Docker Container
  5. Upgrade Home Assistant
    • Does a docker pull for the latest version of Home Assistant
    • Stops the Home Assistant Docker Container
    • Deletes the Home Assistant Docker Container
    • Creates a new Home Assistant Docker Container
  6. Check Database Size
    • Check the size of the MySQL Database
  7. Validate Home Assistant Config
    • Runs a config check using a Docker Container
  8. Backup Home Assistant
    • Creates tar file of current configs
    • Backs up tar file to local workstation (Dropbox Folder)
  9. Copy Configs to GitHub
  10. Renew SSL Certificate
    • Runs a certbot (Let's Encrypt) Docker container that generates a new SSL certificate

x) Exit – I shouldn’t need to explain that one

Variables:

hauser=“USER_ACCOUNT” <-- Home Assistant User Account

habin="/usr/local/bin/hass" <-- Home Assistant Binary

haconfigdir="/home/USER/.homeassistant" <-- Home Assistant Config Directory

hahost=“HOSTNAME/IP” <-- Home Assistant Hostname or IP address

localuser=“USER_ACCOUNT” <-- Local Computer Username, account from where this shell script will run

localhost=“HOSTNAME/IP” <-- Local Computer Hostname or IP address

localpath=“PATH_TO_LOCAL_HA_CONFIGS” <-- Where I store my local HA configs and backups

docker="/PATH/TO/DOCKER/bin " <-- Docker Binary

Within the local folder, variable localpath="PATH_TO_LOCAL_HA_CONFIGS", I have two folders:

Config: All of the .yaml files for Home Assistant

Backup: Place for backup tar file

Interface

UI UI UI UI UI UI UI UI UI UI UI UI UI UI