This Repo is designed for Smart Home inspiration. The configuration, devices, layout and linked Blog posts should help inspire you to jump head first into the IOT world. This is the live working configuration of my Smart Home. Use the menu links to jump between sections. All of the code is under the config directory and free to use and contribute to.
As of 2018, I have migrated everything to a Docker based platform. You can read all about it here: Migration Blog Post
- Docker - Docker runs on a Ubuntu Server Core base. Docker-Compose.yaml
- Home Assistant Container - It all starts here.
- The amazing Floorplan project to help visualize my smarthome.
- SSL via SSLS - 5 Bucks A Year! - Keeps me safe!
- Dasher Container to leverage those cheap Amazon Dash Buttons
- HomeBridge Container for full HA <-> Homekit compatibility.
- Unifi controller Container to manage APs
Lots of my gear comes from BetaBound for Beta Testing and reviews.
Smart Home Diagram - Get your icons (here).
Here is how all the parts talk to each other. Keep reading to see code examples and explanations.
Smart Home diagram (PNG
). Made with Draw.io (XML
source file).
Batteries | Networking | Alexa | Mobile Devices | Nest | Voice | Hubs | Lights | Switches | Landscaping | DIY LED Lights | Garage | TV Streaming | Security | Cameras | Sensors
Battery Backups - UPS Blog write-up | ||||
There aren't really automations for the Batteries yet. Electricity is the life blood for the house and only really the Tesla Battery has smarts so maybe in the future, you'll see a Powerwall automation in this space. | ||||
Using the APs (3 of them), The house monitors all Connected devices for Online/Offline status and uses '' for presence detection. Any critical device down for more than 5 minutes and an alert is sent out. Circle is a Parental Control device. When a new device is discovered on the network, HA notifies us and also plays a TTS reminder over the speakers to classify in Circle. Most things are Wifi connected but a good gigabit switch is needed for a good foundation. | ||||
Alexa Echo Devices - Alexa Device Blog Post | ||||
The Alexa devices in my house are for automation overrides. They are primarily an input device into Home Assistant. Using HA Ability to ask Alexa to repeat the last Voice notification - 'Alexa, Turn on Last message'.
Last Message Package - /config/packages/triggers/last_message.yaml Guest mode to disable certain interior automations. Trigger via Alexa. 'Alexa, Turn on Guest Mode.'
Defining Guest Mode - /config/input_boolean/home_modes.yaml#L1-L4 Track garbage days and chore days for the kids. Voice reminders and Alexa intergration/request for info.'
Defining responsibilities trigger - /config/input_boolean/hidden_booleans.yaml#L5-L7 Context aware lighting control. | ||||
Mobile Devices and Tablets - FloorPlan Blog post | ||||
Mobile devices are a critical part of my Home Automation. They establish presence in the house and are the basis for many automations. Home? Turn on the lights. Leave? Turn them all off kind of thing. We use NMAP for presence detection. IOS Notifications for Offline Devices, BadLogins, HA Startups, new HA versions and IP Changes for DNS.
External IP changes - /config/automation/System/ip_change.yaml Reminders to take my medicine sent as IOS notifications ONLY when I arrive back home for the night.
Custom Component Fire Tablet Media Player
Kiosk TTS Custom component - /config/custom_components/media_player | ||||
Nest Products and SleepIQ - Thermostat Basics Blog post | ||||
This group of devices is basically for additional presence control. The Nest thermostats and Protects basically run themselves. The thermostat 'away' mode triggers my away scripts which turn items off. The Protects are SOLID smoke detectors. They really came in handy during Irma. The SleepIQ bed adds to my presence detection. It will notify HA if either side of the bed is occupied. More controls are coming but I use this extensively. The WiThings scale also triggers morning and goodnight routines depending on when I step on it during the day. Turn off lights when Nest Thermostats detects we are away. (Upstairs and Downstairs)Turn on Upstairs lights if Nest Thermostats detects people and it's nighttime.
Upstairs Automation - /config/automation/upstairs_motion_ifttt.yaml (IFTTT) Trigger Good Night routine when I step on the Withings scale after 10pm.Turn on bathroom accent lights when either of us steps out of bed at night. Turns them back off when we are back in bed.
Master Bath Automation - /config/automation/master_bath_accents.yaml Turn off all interior lights when the last person gets into bed.Silence all Voice notifications if anyone is in bed. Redirect to Fire Tablets.
Timed AMP turnoff Automation - /config/automation/Timed_Triggers/2200.yaml | ||||
Voice Notifications - Giving Voice to the Smart Home Blog Post | ||||
To me, Voice is the coolest part of the smart home. It gives it personality. It's something not just anyone has and helps your house stand apart from the pack. I use the Amazon Polly TTS component since it sounds the closest to Alexa. This gives a seemless transition from Alexa to Home Assistant responding. Most think it is just one system. The mixer allows TTS to mix right in over Music. The TP-Link Outlet is used to turn off the Mixer and AMP when we do not need it. It's a great inexpensive solution. Turn off all the voice devices when we are not home or in bed.
Away Automation - /config/automation/away.yaml All voice notifications are pushed though a speech engine. Random words and sentances are used to give the house some personality..Voice announcements whenever someone comes home.
People Greeter - /config/automation/Speech/announcements.yaml Voice notifications for all sorts of things related to the house. (Temps, presence, doors open, windows open, garage door statuses, sunset.)
Speech Macros are called by automation scripts - /script/speech_engine.yaml Digital Cuckoo Clock that goes off each hour and on the half just like a real Cuckoo Clock.Once you can teach your house to talk, you just keep expanding on it's vocabulary. It's addicting. :) | ||||
Various Hubs - Smart Home Parts/Sum Blog Post | ||||
The Hubs help the home communicate across all the various protocols running in the house. The Hue hubs (I have 2 actually) talk to most of the lights. The Gen 1 handles upstairs and outside and the gen 2 handles everything else. Some lights and switches talk over Zwave to the Wink Hub. The RM Pro talks 433Mhz to my EtekCity outlets. Using [Etekcity Outlets](http://amzn.to/2efNoBP) to control accent lighting above kitchen cabinets and room cutouts.
Kitchen Accents Automation - /config/automation/kitchen_lights_and_accents.yaml Turn on Hallway light for no more than 20 minutes when Pantry door is opened.
Hallway Automation - /config/automation/zwave_hallway_door_sensor.yaml Detects when lights are turned on and adjusts them to correct brightness based on time of day.
Auto Light adjustment Automation - /config/automation/System/detect_and_adjust_lights.yaml Think of the Hubs each as bridges for HA to talk to various hardware around the house. | ||||
Almost all my lights (40+) are white GE Link lights. I bought them early on before Hue came out with inexpensive white A19s. Even Ikea has great lights now. Colored lights are in the front sconces and also used in the living room. The Go lights are specifically for the kids since they are both wireless and also have a button on them making them very tactile for kids. I use the Lightstrips for TV backlighting and also couch accent lighting. Turn on TV Time Lights (dim and color) at Sunset (if home and TV is on)
TV Time Automations - /config/automation/tv_time_on_and_off.yaml Sets up the front lights in the house with preset colors depending on the ~~month~~ day!.Turns living room lights `red` when a Window or Door is opened past sunset. Resets to `yellow/gold` when all doors/windows are closed. | ||||
In the Master Bedroom and Bathroom, I have deployed a starter set of 5 Noon Switches. These switches control the toilet light, both vanities and bedroom overhead light. They work on the wall and are also IFTTT compatible. The EtekCity outlets are the most inexpensive ($6) yet reliable outlets out there. I have them deployed all over the house as accent lighting with some rope lights in most of the home's cut outs. When interior light script is triggered, IFTTT is notified to turn off the Bathroom Noon switches. | ||||
The ESPs while technically not a Hub do bridge the connection to all the windows and door sensors that are hardwired in my house. One set acts as my DIY alarm system while the other act as DIY Motion Sensors. The Aura system uses Wifi waves to detect motion through walls. It covers the entire house. Scenes are activated via IFTTT/HA integration. When all else fails though, a good recording of a Bull Mastiff is sure to do the trick! Shut down HVAC system if a Window or Door is left open for more than 5 minutes.Play chime on all window and door open/closes.
Door Chime Automation - /config/automation/System/door_chime.yaml Change Aura scenes based on presence and sleep. | ||||
Cameras are both for security and data sensors. They can trigger motion events, lighting conditions or for doorbells, when someone presses it. Cameras and Access points are feed power via the Meraki PoE switch. On motion from Doorbell turns front lights to Bright White lights for 10 minutes and then back to original colors. Fake Dog barking when there is motion by the house.
Skybell HD script - /config/script/skybell_pressed.yaml When someone rings the Doorbell, the backyard and Bathroom lights Flash - Since we might not hear the doorbell. Fake Dog barks as well (which can be snoozed for 30 minutes via Alexa).
Skybell HD script - /config/script/skybell_pressed.yaml | ||||
The great outdoors can be automated too! Mainly lights but also the sprinkler system and water supply. The Phyn leak detector was announced in CES. It looks for abnormal flows and if senses them, alerts me and shuts water main. The GE Outlets are hooked up to my 12v transformers allowing me to turn the landscaping lights on and off. The LED strips are DIY and the recipe is in the next section. (IFTTT) Add a 1 day rain delay to Rachio Sprinkler system if it is going to rain tomorrow also logged to MQTT.
Rain Delay Package - /config/automation/System/rachio_rain_delay.yaml (IFTTT) Blink ALL lights if Winds get to 70MPH - Hurricane warning.Turn on some outdoor Lights at Sunset, Turn off 4 hours before sunrise.
Sunset automation - /config/automation/Timed_Triggers/sunset_turn_on.yaml Turn off interior and backyardlights when we go to sleep. | ||||
Outdoor LED Accents - DIY Blog Post - #71 | ||||
Mentioned above, this is one of my favorite projects for the house. The ability to completely change the look of the house on the drop of a dime and on a dime budget is awesome. Read the blog post linked above for all the parts details but here are some automations I love. Change the front colors of the LED lights based on holidays. The best part is the LED controller works with HA right out of the box. No fiddling around with it at all. HUGE Plus in my book.When the garage doors open, change all lights in the front of the house to bright white.
Garadget automations - /master/config/automation/garadget.yaml On motion, turn all the lights to a bright white outside for a random amount of time before resuming the daily color choice. | ||||
Garage doors, Cars, charging stations. Going green. All part of a complete home automation setup. The garage door openers are probably the most important. No one wants to forget that they left them open when they've left or gone to bed. Closing forgotten garage doors makes it all worth it. Notifications when the garage door is left open at night or when we leave the house.
Garage Speech Automations - /config/automation/Speech/garage_closed.yaml Monitor the reflection rates of Garadget and notify when they being to drop too low when closed (indicating a shift in the controller)
Garage reflection Automations - /config/automation/garadget.yaml Tweet out charging status of the car and how many KwH were charged in a session. #StatMonitor AMPs and Voltage and alert if charge ever goes over 24A to prevent breaker tripping. (Juicebox is software derated to 24A on a 30A circuit.) Also restart Unit if unable to connect to eMotorWerks servers. | ||||
TV Automations are super cool. Turn on a movie and the lights begin to dim automatically. It's super cool. Out TVs are back lit with Hue Lightstrips so we can do some pretty neat effects with automations. We are #CordCutters as well so all out TV is streamed to the Rokus. FireTV for party games and the Snyology, I'll talk about later in the Survellance section. If any Doors or Windows are open, the TV backlights turn Red.When the Roku reports we are watching Plex or TabloTV, TV Time scene is triggered dimming 2 of 4 living room lights.
TV Time Automations - /config/automation/tv_time_on_and_off.yaml Rainy days trigger extra subtle light (TV back lights and other accent lighting) inside the house.
Rainy Day Automations - /config/automation/dark_rainy_day.yaml | ||||
Sensors add data to Home Assistant. Most of my Doors and windows are hardwired but for some interior doors, I also have the wireless sensors. They connect to my Wink Hub. PiHole is running on my PiZero. It's super easy to install and runs DNS, DHCP and ad blocking for the whole house on a great little 5v form factor. Tweet out daily Pi Hole stats. (Ads Blocked and % of bandwidth saved.)
Pi-Hole Package - /config/packages/pihole.yaml Leverage Alexa and Elekcity outlet to control Printer On/Off via Voice. Turns off automatically after 20 minutes.
Light watchdog Automations - /config/automation/System/watchdog_light.yaml Sound door chimes whenever doors open or close.
Door Chimes Automations - /config/automation/System/door_chime.yaml Watch and alert on Home Assistant's Disk usage and Pi Zero.
Process Monitor Package - /config/packages/processmonitor.yaml |
The issues section on github is where I store all my wishful ideas and future enhancements. Feel free to join the conversations there.
All files are now being edited with Atom.
All of my configuration files are tested against the most stable version of home-assistant using Travis.
#Still have questions on my Config? Message me on twitter : @CCostan or @BearStoneHA