You can find the entire repo here.

This commit is contained in:
ccostan
2018-02-28 19:43:00 -05:00
parent ddcf503781
commit 40f8fd2edc
263 changed files with 0 additions and 194 deletions

1
config/.HA_VERSION Executable file
View File

@@ -0,0 +1 @@
0.63.3

9
config/.travis.yml Executable file
View File

@@ -0,0 +1,9 @@
language: python
python:
- "3.4"
install:
- pip3 install homeassistant
script:
- hass -c . --script check_config
before_install:
- mv travis_secrets.yaml secrets.yaml

500
config/README.md Executable file
View File

@@ -0,0 +1,500 @@
<h1 align="center">
<a name="logo" href="http://www.vmwareinfo.com/search/label/iot"><img src="https://raw.githubusercontent.com/CCOSTAN/Home-AssistantConfig/master/www/custom_ui/floorplan/images/branding/twitter_profile.png" alt="Bear Stone Smart Home" width="200"></a>
<br>
Bear Stone Smart Home Configuration
</h1>
<h4 align="center">Be sure to :star: my repo so you can keep up to date on the daily progress!.</h4>
<div align="center">
<h4>
<img src="https://travis-ci.org/CCOSTAN/Home-AssistantConfig.svg?branch=master"/>
<img src="https://img.shields.io/github/stars/CCOSTAN/Home-AssistantConfig.svg?style=plasticr"/>
<img src="https://img.shields.io/github/last-commit/google/skia.svg?style=plasticr"/>
</h4>
</div>
<div align="center"><a name="menu"></a>
<h4>
<a href="http://www.vmwareinfo.com/search/label/iot">
Blog
</a>
<span> | </span>
<a href="https://github.com/CCOSTAN/Home-AssistantConfig#battery-backups---ups-blog-write-up">
Devices
</a>
<span> | </span>
<a href="https://github.com/CCOSTAN/Home-AssistantConfig/issues">
Todo List
</a>
<span> | </span>
<a href="https://twitter.com/BearStoneHA">
Smart Home Stats
</a>
<span> | </span>
<a href="https://www.facebook.com/BearStoneHA">
Facebook
</a>
</h4>
</div>
![Screenshot of Home Assistant Header](https://i.imgur.com/vjDH1LJ.png)
As of 2018, I have migrated everything to a Docker based platform. You can read all about it here:
[Migration Blog Post](http://www.vmwareinfo.com/2018/02/journey-to-docker.html)
<hr>
#### <a name="software"></a>Notable Software on my Laptop Host:
* [Docker](https://Docker.com) - Docker runs on a Ubuntu Server Core base. [Docker-Compose.yaml](https://github.com/CCOSTAN/Docker_Support)
* [Home Assistant Container](https://home-assistant.io/) - It all starts here.
* The amazing [Floorplan](https://github.com/pkozul/ha-floorplan) project to help visualize my smarthome.
* SSL via [SSLS](https://SSLS.com) - 5 Bucks A Year! - Keeps me safe!
* [Dasher Container](https://github.com/maddox/dasher) to leverage those cheap [Amazon Dash Buttons](http://amzn.to/2dPKZhM)
* [HomeBridge Container](https://github.com/nfarina/homebridge) for full HA <-> Homekit compatibility.
* Unifi controller Container to manage [APs](http://amzn.to/2mBSfE9)
![Screenshot of SmartHome](https://lh3.googleusercontent.com/-vKGF5gdz_VY/WVpP7qjsmjI/AAAAAAADVZ4/sGyiS1PjouUQxrEbWVfot6raxcElv4r-wCHMYCw/s1600/clip_image001%255B4%255D)
Lots of my gear comes from [BetaBound](https://goo.gl/0vxT8A) for Beta Testing and reviews.
<p align="center"><a name="devices"></a>
<h4>
<a href="https://github.com/CCOSTAN/Home-AssistantConfig#battery">
Batteries
</a>
<span> | </span>
<a href="https://github.com/CCOSTAN/Home-AssistantConfig#networking">
Networking
</a>
<span> | </span>
<a href="https://github.com/CCOSTAN/Home-AssistantConfig#alexa">
Alexa
</a>
<span> | </span>
<a href="https://github.com/CCOSTAN/Home-AssistantConfig#mobiledevices">
Mobile Devices
</a>
<span> | </span>
<a href="https://github.com/CCOSTAN/Home-AssistantConfig#nest">
Nest
</a>
<span> | </span>
<a href="https://github.com/CCOSTAN/Home-AssistantConfig#voice">
Voice
</a>
<span> | </span>
<a href="https://github.com/CCOSTAN/Home-AssistantConfig#hubs">
Hubs
</a>
<span> | </span>
<a href="https://github.com/CCOSTAN/Home-AssistantConfig#lights">
Lights
</a>
<span> | </span>
<a href="https://github.com/CCOSTAN/Home-AssistantConfig#landscaping">
Landscaping
</a>
<span> | </span>
<a href="https://github.com/CCOSTAN/Home-AssistantConfig#LED">
DIY LED Lights
</a>
<span> | </span>
<a href="https://github.com/CCOSTAN/Home-AssistantConfig#garage">
Garage
</a>
<span> | </span>
<a href="https://github.com/CCOSTAN/Home-AssistantConfig#TV">
TV Streaming
</a>
</h4>
<table align="center" border="0">
<tr><td colspan="4">
#### <a name="battery"></a>Battery Backups - [UPS Blog write-up](http://www.vmwareinfo.com/2017/06/home-protection-from-power-outages-sort.html)<a href="https://github.com/CCOSTAN/Home-AssistantConfig#devices"><img align="right" border="0" src="https://scontent-mxp1-1.xx.fbcdn.net/v/t34.0-12/28511153_10155579658673155_2146314492_n.png?_nc_ad=z-m&_nc_cid=0&oh=0d6dd551695860471c45d5b7b17c3cd8&oe=5A99DB47" width="22" ></a>
</td></tr>
<tr><td align="center">
[3 Prong UPS](http://amzn.to/2HJerU8)
</td><td align="center">
[2 Prong UPS](http://amzn.to/2CijVG3)
</td><td align="center" colspan="2">
[Tesla Powerwall 2](http://www.vmwareinfo.com/2018/01/going-green-to-save-some-green-in-2018.html)</td></tr>
<tr><td align="center"><a href="https://www.amazon.com/APC-Back-UPS-Battery-Protector-BE425M/dp/B01HDC236Q/ref=as_li_ss_il?s=electronics&ie=UTF8&qid=1519445552&sr=1-2&keywords=apc+450&linkCode=li2&tag=vmw0a-20&linkId=efbdf7bdfad7bd607e099d34bd1f2688" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B01HDC236Q&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li2&o=1&a=B01HDC236Q" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/gp/product/B00KH07WRC/ref=as_li_ss_il?ie=UTF8&psc=1&linkCode=li2&tag=vmw0a-20&linkId=52a63711f582d1ff83f4687137a6154b" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B00KH07WRC&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li2&o=1&a=B00KH07WRC" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="http://www.vmwareinfo.com/2018/01/going-green-to-save-some-green-in-2018.html" target="_blank"><img border="0" src="https://lh3.googleusercontent.com/-V8NMHkiKFIY/Wkgpf7T-WDI/AAAAAAADihs/fp5yNzjrQ5sKgFkafXhllLYsD7yM3tGBgCHMYCw/image_thumb5?imgmax=200" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li2&o=1&a=B01HDC236Q" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://twitter.com/BearStoneHA" target="_blank"><img src="https://raw.githubusercontent.com/CCOSTAN/Home-AssistantConfig/master/www/custom_ui/floorplan/images/branding/twitter_profile.png" width="125" height="125" border="0" alt="" style="border:none !important; margin:0px !important;"></a></td></tr>
<tr><td colspan="4">
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.</td></tr>
<tr><td colspan="4">
#### Networking <a name="networking" href="https://github.com/CCOSTAN/Home-AssistantConfig#devices"><img align="right" border="0" src="https://scontent-mxp1-1.xx.fbcdn.net/v/t34.0-12/28511153_10155579658673155_2146314492_n.png?_nc_ad=z-m&_nc_cid=0&oh=0d6dd551695860471c45d5b7b17c3cd8&oe=5A99DB47" width="22" ></a>
</td></tr>
<tr><td align="center">
[Ubiquiti Networks Unifi 802.11ac Pro](http://amzn.to/2mBSfE9)
</td><td align="center">
[Ubiquiti Networks Unifi 802.11ac Lite](http://amzn.to/2mBSfE9)
</td><td align="center">
[NetGear 16 Port unmanaged Switch](http://amzn.to/2GJwyIb)
</td><td align="center">
[Circle by Disney](http://amzn.to/2eAgaA6)</td></tr>
<tr><td align="center"><a href="https://www.amazon.com/Ubiquiti-Networks-802-11ac-Dual-Radio-UAP-AC-PRO-US/dp/B015PRO512/ref=as_li_ss_il?s=electronics&ie=UTF8&qid=1519453280&sr=1-1&keywords=unifi+ac+pro&linkCode=li1&tag=vmw0a-20&linkId=a51eb66ad64455d857f9b50cd7ffb796" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B015PRO512&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B015PRO512" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/Ubiquiti-Unifi-Ap-AC-Lite-UAPACLITEUS/dp/B015PR20GY/ref=as_li_ss_il?s=electronics&ie=UTF8&qid=1519453311&sr=1-1&keywords=unifi+ac+lite&linkCode=li1&tag=vmw0a-20&linkId=9e888012791a02c582fe8f42bb9b7246" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B015PR20GY&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B015PR20GY" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/NETGEAR-Ethernet-Unmanaged-Lifetime-Protection/dp/B01AX8XHRQ/ref=as_li_ss_il?ie=UTF8&qid=1519509807&sr=8-3&keywords=16+port+gigabit+switch&th=1&linkCode=li1&tag=vmw0a-20&linkId=63c057df0c463d473e2466490e93f5a8" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B01AX8XHRQ&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B01AX8XHRQ" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/Circle-Disney-Parental-Controls-Connected/dp/B019RC1EI8/ref=as_li_ss_il?s=electronics&ie=UTF8&qid=1519453110&sr=1-1-spons&keywords=circle+disney&psc=1&linkCode=li2&tag=vmw0a-20&linkId=8bfecf20fdfee716f0e0c43a2f4becbd" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B019RC1EI8&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li2&o=1&a=B019RC1EI8" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></td></tr>
<tr><td colspan="4">
Using the APs (3 of them), The house monitors all Connected devices for Online/Offline status and uses 'NMAP' 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.</td></tr>
<tr><td colspan="4">
#### Alexa Echo Devices - [Alexa Device Blog Post](http://www.vmwareinfo.com/2017/09/new-alexa-goodies-announced.html)<a name="alexa" href="https://github.com/CCOSTAN/Home-AssistantConfig#devices"><img align="right" border="0" src="https://scontent-mxp1-1.xx.fbcdn.net/v/t34.0-12/28511153_10155579658673155_2146314492_n.png?_nc_ad=z-m&_nc_cid=0&oh=0d6dd551695860471c45d5b7b17c3cd8&oe=5A99DB47" width="22" ></a>
</td></tr>
<tr><td align="center">
[Amazon Echo](http://amzn.to/2dSVbK4)
</td><td align="center">
[Amazon Echo DOT](http://amzn.to/2e3vHFQ)
</td><td align="center">
[Amazon Echo Tap](http://amzn.to/2sz891k)
</td><td align="center">
[Amazon Dash Wand](https://www.amazon.com/Amazon-Dash-Wand-With-Alexa/dp/B01MQMJFDK/ref=sr_1_1_a_it?ie=UTF8&qid=1498928735&sr=8-1&keywords=dash+wand)
</td></tr>
<tr><td align="center"><a href="https://www.amazon.com/dp/B06XCM9LJ4/ref=as_li_ss_il?ie=UTF8&linkCode=li1&tag=vmw0a-20&linkId=75fd6d904f7f8f9fadc5df5f58885070" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B06XCM9LJ4&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B06XCM9LJ4" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/dp/B01DFKC2SO/ref=as_li_ss_il?pf_rd_m=ATVPDKIKX0DER&pf_rd_p=3513574162&pd_rd_wg=GV26W&pf_rd_r=BF6FZAN507DHV9T9NH7N&pf_rd_s=desktop-rhs-carousels&pf_rd_t=301&pd_rd_i=B01DFKC2SO&pd_rd_w=B5QwO&pf_rd_i=echo+wand&pd_rd_r=43a86d85-1a06-44dc-8687-19f8ecdcb3f0&ie=UTF8&qid=1519494311&sr=1&linkCode=li1&tag=vmw0a-20&linkId=63be4bb6452239422fb0434d837aebb0" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B01DFKC2SO&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B01DFKC2SO" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/Amazon-Tap-Portable-Wireless-Bluetooth-Speaker-with-WiFi-Alexa/dp/B01BH83OOM/ref=as_li_ss_il?s=amazon-devices&ie=UTF8&qid=1519494386&sr=1-1&keywords=tap&linkCode=li1&tag=vmw0a-20&linkId=aa78f9e75ac6ba9569323d5ab0f890b0" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B01BH83OOM&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B01BH83OOM" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/Amazon-Dash-Wand-With-Alexa/dp/B01MQMJFDK/ref=sr_1_1_a_it?ie=UTF8&qid=1498928735&sr=8-1&keywords=dash+wand" target="_blank"><img border="0" src="https://images-na.ssl-images-amazon.com/images/I/41YvRl%2B4zXL.jpg" height="110" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li2&o=1&a=B019RC1EI8" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></td></tr>
<tr><td colspan="4">
The Alexa devices in my house are for automation overrides. They are primarily an input device into Home Assistant. Using HA `Cloud` component, I am able to turn on /off most HA devices even if they don't have native Alexa support. The DOTs are littered around the house, the Tap is for Shower and Garage since it is super portable and the main echo fills the upstairs with Music. Voice input and playing [Whole House Music](http://www.vmwareinfo.com/2017/08/multi-room-audio-for-echo-its-finally.html) are where Echoes excel! The Wand is pool side for quick commands and controlling the music if need be.
* Ability to ask Alexa to repeat the last Voice notification - 'Alexa, Turn on Last message'.
* Guest mode to disable certain interior automations. Trigger via Alexa. 'Alexa, Turn on Guest Mode.'
* Track garbage days and chore days for the kids. Voice reminders and Alexa intergration/request for info.
* Context aware lighting control. - Read about it here: [Blog Post](http://www.vmwareinfo.com/2017/10/speak-naturally-to-your-alexa-context.html)
</td></tr>
<tr><td colspan="4">
#### Mobile Devices and Tablets - [FloorPlan Blog post](http://www.vmwareinfo.com/2017/07/visualizing-smart-home-using-home.html)<a name="mobiledevices" href="https://github.com/CCOSTAN/Home-AssistantConfig#devices"><img align="right" border="0" src="https://scontent-mxp1-1.xx.fbcdn.net/v/t34.0-12/28511153_10155579658673155_2146314492_n.png?_nc_ad=z-m&_nc_cid=0&oh=0d6dd551695860471c45d5b7b17c3cd8&oe=5A99DB47" width="22" ></a>
</td></tr>
<tr><td align="center">
[iPads](http://amzn.to/2l2qyRb)
</td><td align="center">
[iPhones](http://amzn.to/2l9Yoq9)
</td><td align="center" colspan="2">
[Amazon Fire Tablets Gen 7](http://amzn.to/2tqlMCW)</td></tr>
<tr><td align="center"><a href="https://www.amazon.com/Apple-MH182LL-9-7-Inch-Retina-Display/dp/B00OTWPEBK/ref=as_li_ss_il?s=pc&rps=1&ie=UTF8&qid=1487044765&sr=1-3&keywords=ipad&refinements=p_89:Apple,p_85:2470955011,p_n_condition-type:2224371011&linkCode=li1&tag=vmw0a-20&linkId=d4e62510b64106355f3788ea04bff8a0" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B00OTWPEBK&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B00OTWPEBK" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/Apple-iPhone-Plus-Unlocked-16GB/dp/B00YD54J8W/ref=as_li_ss_il?s=electronics&ie=UTF8&qid=1519496432&sr=1-2&keywords=iphone+6s+plus&linkCode=li1&tag=vmw0a-20&linkId=a6a638b1381a5f06fbdfa68803b85bc0" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B00YD54J8W&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B00YD54J8W" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center" colspan="2"><a href="http://www.vmwareinfo.com/2017/08/project-update-visualization-of-home.html" target="_blank"><img border="0" src="https://lh3.googleusercontent.com/-UdtxP-RNPxM/WZNRjcEJ6hI/AAAAAAADYfY/Vum9wiL5qYAO3frTAi2MdqK1vH6qBTb9gCHMYCw/image3_thumb%255B2%255D?imgmax=200" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B01GEW27DA" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></td></tr>
<tr><td colspan="4">
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. The Tablets are for the awesome FloorPlan that you see in the images. We have 2 in the house mounted for quick consumption of all the HA data in a glance.
* IOS Notifications for Offline Devices, BadLogins, HA Startups, new HA versions and [External IP changes](https://community.home-assistant.io/t/detect-if-ip-changes/6830) for DNS.
* Turn on certain lights and switches when we get home. Turn off most interior lights when we leave the house.
* Reminders to take my medicine sent as IOS notifications ONLY when I arrive back home for the night.
We also leverage the Fire Tablets as TTS endpoints. During certain times of the day, TTS is only played on the tablets rather than over the whole house. Other times, Notifications are sent only to the Mobile Devices rather than using speech.
</td></tr>
<tr><td colspan="4">
#### Nest Products and SleepIQ - [Thermostat Basics Blog post](http://www.vmwareinfo.com/2018/02/smart-home-basics-thermostats.html)<a name="nest" href="https://github.com/CCOSTAN/Home-AssistantConfig#devices"><img align="right" border="0" src="https://scontent-mxp1-1.xx.fbcdn.net/v/t34.0-12/28511153_10155579658673155_2146314492_n.png?_nc_ad=z-m&_nc_cid=0&oh=0d6dd551695860471c45d5b7b17c3cd8&oe=5A99DB47" width="22" ></a>
</td></tr>
<tr><td align="center">
[Nest Thermostats](http://amzn.to/2eAhB1k)
</td><td align="center">
[Nest Protects](http://amzn.to/2poqKhu)
</td><td align="center">
[SleepNumber Bed i8](http://amzn.to/2kxdXXI)
</td><td align="center">
[Withings](http://amzn.to/2kr78nW)</td></tr>
<tr><td align="center"><a href="https://www.amazon.com/gp/product/B0131RG6VK/ref=as_li_ss_il?ie=UTF8&linkCode=li1&tag=vmw0a-20&linkId=cdcad716f0b691a5834b32f2a0cf6fa3" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B0131RG6VK&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B0131RG6VK" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/Nest-Protect-smoke-carbon-monoxide/dp/B00XV1RD0K/ref=as_li_ss_il?s=hi&ie=UTF8&qid=1493663203&sr=1-1&keywords=nest+protect&linkCode=li1&tag=vmw0a-20&linkId=f0092afb267bf40d55e38596ea352e09" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B00XV1RD0K&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B00XV1RD0K" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/Personal-Comfort-A8-Bed-Number/dp/B00CHSOZZO/ref=as_li_ss_il?ie=UTF8&qid=1486673583&sr=8-3&keywords=sleep+number+bed+i8&linkCode=li1&tag=vmw0a-20&linkId=f1f1d759913d1767734a12c7cddeaa32" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B00CHSOZZO&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B00CHSOZZO" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/Withings-Body-Composition-Wi-Fi-Scale/dp/B01F3LJ2RW/ref=as_li_ss_il?ie=UTF8&qid=1486665271&sr=8-2&keywords=withings+scale&th=1&linkCode=li1&tag=vmw0a-20&linkId=6e239a882226db5a94b4194249d13d2f" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B01F3LJ2RW&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B01F3LJ2RW" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></td></tr>
<tr><td colspan="4">
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](http://www.vmwareinfo.com/2017/06/psa-check-out-your-smoke-detectors-once.html). They really came in handy during [Irma](http://www.vmwareinfo.com/2017/09/smart-home-lessons-from-hurricane-irma.html). 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.
* (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.
* 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.
</td></tr>
<tr><td colspan="4">
#### Voice Notifications - [Giving Voice to the Smart Home Blog Post](http://www.vmwareinfo.com/2017/07/giving-voice-to-smart-home.html)<a name="voice" href="https://github.com/CCOSTAN/Home-AssistantConfig#devices"><img align="right" border="0" src="https://scontent-mxp1-1.xx.fbcdn.net/v/t34.0-12/28511153_10155579658673155_2146314492_n.png?_nc_ad=z-m&_nc_cid=0&oh=0d6dd551695860471c45d5b7b17c3cd8&oe=5A99DB47" width="22" ></a>
</td></tr>
<tr><td align="center">
[ChromeCast Audios](http://amzn.to/2EO8Gqt)
</td><td align="center">
[AMPs](http://amzn.to/2j18dlT)
</td><td align="center">
[Mixer](http://amzn.to/2v9Zp3x)
</td><td align="center">
[TP-Link Smart Plug](http://amzn.to/2EQS3e0)</td></tr>
<tr><td align="center"><a href="http://amzn.to/2EO8Gqt" target="_blank"><img border="0" src="https://pisces.bbystatic.com/image2/BestBuy_US/images/products/4532/4532100_sd.jpg;maxHeight=110;maxWidth=110" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B0131RG6VK" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/Kinter-MA-180-Computer-Amplifier-Charging/dp/B006AMF2R8/ref=as_li_ss_il?_encoding=UTF8&pd_rd_i=B006AMF2R8&pd_rd_r=7YM4TST4HMXQK46KH4F6&pd_rd_w=v8lnG&pd_rd_wg=QJNYk&psc=1&refRID=7YM4TST4HMXQK46KH4F6&linkCode=li1&tag=vmw0a-20&linkId=0620a70d225103fcbce65b56d3c60304" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B006AMF2R8&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B006AMF2R8" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/gp/product/B0002BG2S6/ref=as_li_ss_il?ie=UTF8&psc=1&linkCode=li1&tag=vmw0a-20&linkId=661b1661a02cc502753e56f7062754c4" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B0002BG2S6&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B0002BG2S6" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/TP-Link-Required-Assistant-Certified-Refurbished/dp/B076TVG9LN/ref=as_li_ss_il?s=hi&ie=UTF8&qid=1519508426&sr=1-9&keywords=tp+link+smart+plug&linkCode=li1&tag=vmw0a-20&linkId=434c37cfb04765acf0f73d4bc08b2acd" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B076TVG9LN&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B076TVG9LN" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></td></tr>
<tr><td colspan="4">
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](https://home-assistant.io/components/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.
* 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.
* Voice notifications for all sorts of things related to the house. (Temps, presence, doors open, windows open, garage door statuses, sunset.)
* 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. :)
</td></tr>
<tr><td colspan="4">
#### Various Hubs - [Smart Home Parts/Sum Blog Post](http://www.vmwareinfo.com/2017/07/my-smart-home-look-at-parts-that-make.html)<a name="hubs" href="https://github.com/CCOSTAN/Home-AssistantConfig#devices"><img align="right" border="0" src="https://scontent-mxp1-1.xx.fbcdn.net/v/t34.0-12/28511153_10155579658673155_2146314492_n.png?_nc_ad=z-m&_nc_cid=0&oh=0d6dd551695860471c45d5b7b17c3cd8&oe=5A99DB47" width="22" ></a>
</td></tr>
<tr><td align="center">
[Phillips Hue Hub Gen 2](http://amzn.to/2eoQTJy)
</td><td align="center">
[Wink Hub](http://amzn.to/2orGEWo)
</td><td align="center">
[RM Pro by Broadlink](http://amzn.to/2z6IZtH)
</td><td align="center">
[NodeMCU Development Boards](http://amzn.to/2ou0NON)</td></tr>
<tr><td align="center"><a href="https://www.amazon.com/gp/product/B016H0QZ7I/ref=as_li_ss_il?ie=UTF8&linkCode=li1&tag=vmw0a-20&linkId=234a9104238b7189c169a7623239653c" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B016H0QZ7I&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B016H0QZ7I" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/Wink-PWHUB-WH18-Connected-Home-Hub/dp/B00PV6GAI4/ref=as_li_ss_il?s=hi&ie=UTF8&qid=1492110362&sr=1-2&keywords=wink+hub&linkCode=li1&tag=vmw0a-20&linkId=96b7546e6151c2005994454bd51d8c47" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B00PV6GAI4&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B00PV6GAI4" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/BroadLink-Automation-Universal-Compatible-Smartphones/dp/B0742CXGHY/ref=as_li_ss_il?ie=UTF8&qid=1513802853&sr=8-1-spons&keywords=rm+pro&psc=1&linkCode=li1&tag=vmw0a-20&linkId=ffaddc7ae224eefefc32e0c8f27dce72" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B0742CXGHY&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B0742CXGHY" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/gp/product/B010O1G1ES/ref=as_li_ss_il?ie=UTF8&psc=1&linkCode=li1&tag=vmw0a-20&linkId=8f30ebb6868e9060be331dd297b75119" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B010O1G1ES&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B010O1G1ES" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></td></tr>
<tr><td colspan="4">
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. Some lights and switches talk over Zwave to the Wink Hub. The RM Pro talks 433Mhz to my EtekCity outlets. 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](http://www.vmwareinfo.com/2017/06/building-my-home-alarm-system-hardware.html) while the other act as [DIY Motion Sensors](http://www.vmwareinfo.com/2017/11/yet-another-inexpensive-motion-sensor.html).
* Using [Etekcity Outlets](http://amzn.to/2efNoBP) to control accent lighting above kitchen cabinets and room cutouts.
* Turn on Hallway light for no more than 20 minutes when Pantry door is opened.
* Detects when lights are turned on and adjusts them to correct brightness based on time of day.
* 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.
Think of the Hubs each as bridges for HA to talk to various hardware around the house.
</td></tr>
<tr><td colspan="4">
#### Lights and Switches - [Smart Home Parts/Sum Blog Post](http://www.vmwareinfo.com/2017/07/my-smart-home-look-at-parts-that-make.html)<a name="lights" href="https://github.com/CCOSTAN/Home-AssistantConfig#devices"><img align="right" border="0" src="https://scontent-mxp1-1.xx.fbcdn.net/v/t34.0-12/28511153_10155579658673155_2146314492_n.png?_nc_ad=z-m&_nc_cid=0&oh=0d6dd551695860471c45d5b7b17c3cd8&oe=5A99DB47" width="22" ></a>
</td></tr>
<tr><td align="center">
[Hue Colored lights](http://amzn.to/2l2viGK)
</td><td align="center">
[GE Link Lightbulbs](http://amzn.to/2GJ66i5)
</td><td align="center">
[Hue Go](http://amzn.to/2iB36Ii)
</td><td align="center">
[Etekcity Outlets](http://amzn.to/2efNoBP)</td></tr>
<tr><td align="center"><a href="https://www.amazon.com/Philips-464503-Generation-Richer-Android/dp/B01KJYSOHM/ref=as_li_ss_il?s=hi&ie=UTF8&qid=1487045409&sr=1-3&keywords=hue+a19&linkCode=li1&tag=vmw0a-20&linkId=a4c6acf8f2672a5ba341f731d377b724" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B01KJYSOHM&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B01KJYSOHM" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/GE-Starter-PLINK-SKIT-Wireless-Lighting/dp/B01GWF4RE6/ref=as_li_ss_il?ie=UTF8&qid=1519537605&sr=8-2-fkmr1&keywords=ge+link+bulb+br30&linkCode=li1&tag=vmw0a-20&linkId=b4e6f6acdca3db68322d0679fcc388b7" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B01GWF4RE6&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B01GWF4RE6" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/Philips-Lighting-Works-Amazon-Alexa/dp/B014H2P53I/ref=as_li_ss_il?ie=UTF8&qid=1482862179&sr=8-1-spons&keywords=hue+go&psc=1&linkCode=li1&tag=vmw0a-20&linkId=4f9fd0d242273d079f661fa389b2eec1" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B014H2P53I&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B014H2P53I" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/gp/product/B00DQELHBS/ref=as_li_ss_il?ie=UTF8&linkCode=li1&tag=vmw0a-20&linkId=2d11a4b4ee3994189b3136c3b5726e37" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B00DQELHBS&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B00DQELHBS" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></td></tr>
<tr><td colspan="4">
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. 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.
* Turn on TV Time Lights (dim and color) at Sunset (if home and TV is on)
* 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 dors/windows are closed.
</td></tr>
<tr><td colspan="4">
#### Outdoor Landscaping <a name="landscaping" href="https://github.com/CCOSTAN/Home-AssistantConfig#devices"><img align="right" border="0" src="https://scontent-mxp1-1.xx.fbcdn.net/v/t34.0-12/28511153_10155579658673155_2146314492_n.png?_nc_ad=z-m&_nc_cid=0&oh=0d6dd551695860471c45d5b7b17c3cd8&oe=5A99DB47" width="22" ></a>
</td></tr>
<tr><td align="center">
[Rachio Sprinkler system](http://amzn.to/2eoPKBW)
</td><td align="center">
[GE ZWave Outdoor Power Module](http://amzn.to/2q17R4S)
</td><td align="center">
[Phyn Smart Water Main ShutOff/Leak Detector](http://www.phyn.com/)
</td><td align="center">
[Outdoor LED Lighting](http://www.vmwareinfo.com/2017/08/diy-outdoor-smart-home-led-strips.html)
</td></tr>
<tr><td align="center"><a href="https://www.amazon.com/gp/product/B01D1NMLJU/ref=as_li_ss_il?ie=UTF8&linkCode=li1&tag=vmw0a-20&linkId=32eaaee1a47e3f0841694b2f65b33f20" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B01D1NMLJU&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B01D1NMLJU" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/GE-Wireless-Lighting-Control-12720/dp/B0013V8K3O/ref=as_li_ss_il?ie=UTF8&qid=1494360163&sr=8-1&keywords=ge+zwave+outdoor&linkCode=li1&tag=vmw0a-20&linkId=14fea62a5ea952ae7e575d3ec9f83d8f" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B0013V8K3O&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B0013V8K3O" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="http://www.phyn.com/" target="_blank"><img border="0" src="http://www.phyn.com/wp-content/uploads/2017/12/1920_01_product_intro-1.png" height="110" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li2&o=1&a=B01HDC236Q" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="http://www.vmwareinfo.com/2017/08/diy-outdoor-smart-home-led-strips.html" target="_blank"><img border="0" src="https://lh3.googleusercontent.com/-RfNOR7YThbY/WZnY6Gjw4zI/AAAAAAADYrw/IxBE2KmxW9YuLMtj9qgxAWyb5vHdgSrBACHMYCw/IMG_2660_thumb%255B9%255D" height="110" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li2&o=1&a=B01HDC236Q" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></td></tr>
<tr><td colspan="4">
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) Stop watering grass via Rachio Sprinkler system if winds are greater than 20 MPH.
* (IFTTT) Add a 1 day rain delay to Rachio Sprinkler system if it is going to rain tomorrow also logged to MQTT.
* (IFTTT) Blink ALL lights if Winds get to 70MPH - Hurricane warning.
* Turn on some outdoor Lights at Sunset, Turn off 4 hours before sunrise. Turn off interior and backyardlights when we go to sleep.
</td></tr>
<tr><td colspan="4">
#### Outdoor LED Accents - [DIY Blog Post](http://www.vmwareinfo.com/2017/08/diy-outdoor-smart-home-led-strips.html) - [#71](https://github.com/CCOSTAN/Home-AssistantConfig/issues/71)<a name="LED" href="https://github.com/CCOSTAN/Home-AssistantConfig#devices"><img align="right" border="0" src="https://scontent-mxp1-1.xx.fbcdn.net/v/t34.0-12/28511153_10155579658673155_2146314492_n.png?_nc_ad=z-m&_nc_cid=0&oh=0d6dd551695860471c45d5b7b17c3cd8&oe=5A99DB47" width="22" ></a>
</td></tr>
<tr><td align="center">
[LED RGB Wifi Controller - flux_led compatible](http://amzn.to/2jUBSBE)
</td><td align="center">
[LED Strip kits](http://amzn.to/2gJYfZ5)
</td><td align="center">
[Aluminum light Diffusers](http://amzn.to/2CIId82)
</td><td align="center">
[Outdoor Housing](http://amzn.to/2m2dG0X)
</td></tr>
<tr><td align="center"><a href="https://www.amazon.com/SUPERNIGHT-Wireless-Controller-Working-Android/dp/B01JZ2SI6Q/ref=as_li_ss_il?_encoding=UTF8&psc=1&refRID=FX6BGFGVPYK6254PKDX6&linkCode=li1&tag=vmw0a-20&linkId=ac3510bace93a5f1c88e3e8b3f1e2b70" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B01JZ2SI6Q&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B01JZ2SI6Q" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/gp/product/B01CUILC3I/ref=as_li_ss_il?ie=UTF8&psc=1&linkCode=li1&tag=vmw0a-20&linkId=d57407e3dcacf7ce8c6df2b8ae652492" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B01CUILC3I&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B01CUILC3I" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/JIRVY-Aluminum-Installation-Diffuser-Mounting/dp/B01JZ5STLC/ref=as_li_ss_il?ie=UTF8&qid=1519665434&sr=8-5&keywords=led+strip+light+diffusers&linkCode=li1&tag=vmw0a-20&linkId=25ae2cc71aee64f53fbe03b53bbd0d06" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B01JZ5STLC&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B01JZ5STLC" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/E984f-Car-Conduit-Body-1-Rigid/dp/B000HEHGRY/ref=as_li_ss_il?s=car&ie=UTF8&qid=1487638168&sr=8-1&keywords=1%22+LL+BODY&linkCode=li1&tag=vmw0a-20&linkId=fcd347cbeb753ac641f5ded9dada08e9" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B000HEHGRY&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B000HEHGRY" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td></tr>
<tr><td colspan="4">
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.
* On motion, turn all the lights to a bright white outside for a random amount of time before resuming the daily color choice.
</td></tr>
<tr><td colspan="4">
#### Garage Gadgets <a name="garage" href="https://github.com/CCOSTAN/Home-AssistantConfig#devices"><img align="right" border="0" src="https://scontent-mxp1-1.xx.fbcdn.net/v/t34.0-12/28511153_10155579658673155_2146314492_n.png?_nc_ad=z-m&_nc_cid=0&oh=0d6dd551695860471c45d5b7b17c3cd8&oe=5A99DB47" width="22" ></a>
</td></tr>
<tr><td align="center">
[Garadget](http://amzn.to/2jQLpVQ)
</td><td align="center">
[JuiceBox Pro 40 EVSE](http://amzn.to/2AIdSdx)
</td><td align="center">
[Chevy Bolt Electric Car](http://amzn.to/2DRP83a)
</td><td align="center">
[Siri, are my garage doors closed?](https://pbs.twimg.com/media/C3cyJZSWAAAalPm.jpg:large)
</td></tr>
<tr><td align="center"><a href="https://www.amazon.com/Garadget-Smart-Garage-Door-Controller/dp/B01KUZ2JPS/ref=as_li_ss_il?ie=UTF8&qid=1484586045&sr=8-1&keywords=garadget&linkCode=li1&tag=vmw0a-20&linkId=101764295722498f3480d5bde92dd462" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B01KUZ2JPS&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B01KUZ2JPS" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/JuiceBox-Pro-40-JuiceNet-WiFi-equipped/dp/B00UB9R4KO/ref=as_li_ss_il?ie=UTF8&qid=1513288386&sr=8-1&keywords=juicenet+pro&linkCode=li1&tag=vmw0a-20&linkId=ed6b7856822f7ab226362fb0ee6d6b98" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B00UB9R4KO&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B00UB9R4KO" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/RUIYA-2017-Chevrolet-Bolt-EV/dp/B0749M3H4T/ref=as_li_ss_il?s=automotive&ie=UTF8&qid=1519709074&sr=1-3&keywords=chevy+bolt+ev&linkCode=li1&tag=vmw0a-20&linkId=adb82bb2de7bbd3e02da216b176b26be" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B0749M3H4T&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B0749M3H4T" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="http://www.vmwareinfo.com/2017/07/my-smart-home-look-at-parts-that-make.html" target="_blank"><img border="0" src="https://pbs.twimg.com/media/C3cyJZSWAAAalPm.jpg:large" width="70" height="150" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B000HEHGRY" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td></tr>
<tr><td colspan="4">
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.
* Monitor the reflection rates of Garadget and notify when they being to drop too low when closed (indicating a shift in the controller)
* Tweet out chargin status of the car and how many KwH were charged in a session. #Stat
* Monitor 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.)
</td></tr>
<tr><td colspan="4">
#### TVs and Streaming Devices <a name="TV" href="https://github.com/CCOSTAN/Home-AssistantConfig#devices"><img align="right" border="0" src="https://scontent-mxp1-1.xx.fbcdn.net/v/t34.0-12/28511153_10155579658673155_2146314492_n.png?_nc_ad=z-m&_nc_cid=0&oh=0d6dd551695860471c45d5b7b17c3cd8&oe=5A99DB47" width="22" ></a>
</td></tr>
<tr><td align="center">
[Samsung Smart TV](http://amzn.to/2efNNnq)
</td><td align="center">
[Rokus](http://amzn.to/2dpn89c)
</td><td align="center">
[Amazon Fire TV](http://amzn.to/2iiuaNT)
</td><td align="center">
[Synology NVR 1218](http://amzn.to/2COe9aU)
</td></tr>
<tr><td align="center"><a href="https://www.amazon.com/gp/product/B01E69WHP6/ref=as_li_ss_il?ie=UTF8&linkCode=li1&tag=vmw0a-20&linkId=79e660c2282e440c3c8b31d25b17a0e5" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B01E69WHP6&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B01E69WHP6" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/gp/product/B015YF5YIS/ref=as_li_ss_il?ie=UTF8&linkCode=li1&tag=vmw0a-20&linkId=07825717389526f853834332ad3bb5db" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B015YF5YIS&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B015YF5YIS" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/gp/product/B00ZV9RDKK/ref=as_li_ss_il?ie=UTF8&psc=1&linkCode=li1&tag=vmw0a-20&linkId=59fea2aad1b87b0227fc69a5617b620f" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B00ZV9RDKK&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B00ZV9RDKK" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td><td align="center"><a href="https://www.amazon.com/Synology-Network-Recorder-NVR1218-Diskless/dp/B075MVPNKF/ref=as_li_ss_il?ie=UTF8&qid=1519789547&sr=8-1&keywords=synology+nvr1218&linkCode=li1&tag=vmw0a-20&linkId=05131cd523a8ff0913446699a1e12ed9" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B075MVPNKF&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B075MVPNKF" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</td></tr>
<tr><td colspan="4">
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](http://amzn.to/2FGbPpL) 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](http://amzn.to/2HQaf59), TV Time scene is triggered dimming 2 of 4 living room lights.
* Rainy days trigger extra subtle light (TV back lights and other accent lighting) inside the house.
</td></tr>
</table>
</p>
**Devices I have:** LEGACY SECTION being migrated up.
* [Amazon Dash Buttons](http://amzn.to/2dPKZhM)
* [SkyBell HD](http://amzn.to/2dcexIB)
* [Door Sensors (AEON Labs)](http://amzn.to/2e3xDxY)
* [iTeadStudio](https://www.itead.cc/) [goodies](https://twitter.com/ccostan/status/793119824008384512) - [SonOff](http://amzn.to/2l2sx8g) and a [Slampher](http://amzn.to/2l2gmIx)! -
* [Aeon Labs AEDSB09104ZWUS Aeotec Z-Wave Smart Energy Monitor Meter](http://amzn.to/2l5wEDo) to measure energy usage in the home.
* [Pi Zero](http://amzn.to/2ougZQ3) with [Wireless Nub](http://amzn.to/2q38rg4) running Pi-Hole and smacking down internet ads left and right!
* [Epson ET-7700 Printer](http://amzn.to/2HaiBUK) - All Printing with HA monitored Ink levels.
**Automations:** LEGACY SECTION being migrated up.
* Leverage Alexa and Elekcity outlet to control Printer On/Off via Voice. Turns off automatically after 20 minutes.
* Turn on lights during school days for a morning routine for the kids and wife. Has No School overide boolean in GUI.
* (IFTTT) Blink ALL lights at 9:30 to remind me to take medicine. (also Alexa Alert)
* (IFTTT) Blink Office lights 15 minutes before ANY meeting on my calendar (using IFTTT)
* On motion from [SkyBell HD Doorbell](http://amzn.to/2dcexIB) (IFTTT) Turn 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.
* When someone rings the Doorbell (IFTTT), 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).
* Watch and alert on Home Assistant's Disk usage. Get alerts before Pi runs out of space on the [SD Card](http://amzn.to/2kNttio).
### Todo List <a name="TODO" href="https://github.com/CCOSTAN/Home-AssistantConfig#logo"><img align="right" border="0" src="https://scontent-mxp1-1.xx.fbcdn.net/v/t34.0-12/28511153_10155579658673155_2146314492_n.png?_nc_ad=z-m&_nc_cid=0&oh=0d6dd551695860471c45d5b7b17c3cd8&oe=5A99DB47" width="22" ></a>
The [issues section](https://github.com/CCOSTAN/Home-AssistantConfig/issues) on github is where I store all my wishful ideas and future enhancements.
Feel free to join the conversations there.
![Screenshot of Alarm Clock View](https://i.imgur.com/mLMrky1.jpg)
![Screenshot of Alarm View](https://i.imgur.com/nad2gq0.png)
**All files are now being edited with [Atom](https://atom.io/).**
**All of my configuration files are tested against the most stable version of home-assistant using [Travis](https://travis-ci.org/CCOSTAN/Home-AssistantConfig).**
#**Still have questions on my Config?**
**Message me on twitter :** [@CCostan](https://twitter.com/ccostan) or [@BearStoneHA](https://twitter.com/BearStoneHA)<a name="bottom" href="https://github.com/CCOSTAN/Home-AssistantConfig#logo"><img align="right" border="0" src="https://scontent-mxp1-1.xx.fbcdn.net/v/t34.0-12/28511153_10155579658673155_2146314492_n.png?_nc_ad=z-m&_nc_cid=0&oh=0d6dd551695860471c45d5b7b17c3cd8&oe=5A99DB47" width="22" ></a>

View File

@@ -0,0 +1,39 @@
#-------------------------------------------
# When the Sliding door opens, at night, turn on Pool deck lights.
# @CCOSTAN
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
#-------------------------------------------
- alias: Pool Deck light helper
trigger:
- platform: state
entity_id: binary_sensor.MCU2_GPIO12
to: 'on'
for: '00:3:00'
- platform: state
entity_id: sun.sun
to: 'below_horizon'
from: 'above_horizon'
condition:
- condition: state
entity_id: sun.sun
state: 'below_horizon'
- condition: state
entity_id: binary_sensor.MCU2_GPIO12
state: 'on'
- condition: numeric_state
entity_id: sensor.dark_sky_temperature
below: 80
action:
- service: switch.turn_on
entity_id: switch.back_landscaping
- service: light.turn_on
entity_id: group.outdoor_pool_lights
data:
color_temp: 369
- wait_template: >-
{{ states.binary_sensor.MCU2_GPIO12.state == 'off' }}
- service: light.turn_off
entity_id: group.outdoor_pool_lights

View File

@@ -0,0 +1,62 @@
###################################
## Tornados are no Joke.
###################################
- alias: 'High Wind Speed Notification'
hide_entity: True
trigger:
- platform: numeric_state
entity_id: sensor.dark_sky_wind_speed
above: 24
- platform: numeric_state
entity_id: sensor.dark_sky_wind_speed
above: 40
- platform: numeric_state
entity_id: sensor.dark_sky_wind_speed
above: 60
condition:
- condition: template
value_template: >
{%- if states.automation.high_wind_speed_notification.attributes.last_triggered -%}
{{ (as_timestamp(now()) - as_timestamp(states.automation.high_wind_speed_notification.attributes.last_triggered)) > 3600 }}
{%- else -%}
true
{%- endif -%}
action:
- service: script.notify_engine
data_template:
value1: 'VERY HIGH WINDS:'
value2: "{{ states('sensor.dark_sky_wind_speed')}}"
- service: input_boolean.turn_on
entity_id: input_boolean.alert_mode
- service: script.speech_engine
data_template:
value1: >
{% set windspeed = states.sensor.dark_sky_wind_speed.state | round %}
{% if ( windspeed > 25 ) and ( windspeed <= 40 ) %}
HEAVY WINDS!!! Current Wind Speed is : {{windspeed}} mph! Be VERY careful outdoors!
{% elif ( windspeed > 40 ) and ( windspeed <= 60 ) %}
Warning! Wind speed is {{windspeed}} MPH. FIND SHELTER IMMEDIATELY!
{% elif ( windspeed > 60 ) %}
HURRICANE WINDS. FIND SHELTER, AND STAY INDOORS!
{% endif %}
call_window_check: 1
call_garage_check: 1
- service: script.emergency
- service: script.tweet_engine
data_template:
tweet: >
{% set windspeed = states.sensor.dark_sky_wind_speed.state | round %}
{% if ( windspeed > 25 ) and ( windspeed <= 40 ) %}
HEAVY WINDS!!! Current Wind Speed is : {{windspeed}} mph! Be VERY careful outdoors! #Florida #Weather (http://amzn.to/2jQLpVQ)
{% elif ( windspeed > 40 ) and ( windspeed <= 60 ) %}
Current Wind Speed is : {{windspeed}} mph! Warning! #Florida #Weather (http://amzn.to/2jQLpVQ) FIND SHELTER IMMEDIATELY! #Florida #Weather (http://amzn.to/2jQLpVQ)
{% elif ( windspeed > 60 ) %}
Current Wind Speed is : {{windspeed}} mph! HURRICANE WINDS. FIND SHELTER, AND STAY INDOORS! #Florida #Weather (http://amzn.to/2jQLpVQ)
{% endif %}

View File

@@ -0,0 +1,12 @@
# [![Build Status](https://travis-ci.org/CCOSTAN/Home-AssistantConfig.svg?branch=master)](https://travis-ci.org/CCOSTAN/Home-AssistantConfig) Home-Assistant Config by [@ccostan](http://www.twitter.com/ccostan)
[Home Assistant](https://home-assistant.io/) configuration files (YAMLs)
Be sure to :star: my repo so you can keep up to date on the daily progress!
This directory is for all the speech only Automations. These speech scripts use a speechengine in the scripts folder but the automations generate all the text (mostly).
#Still have questions on my Config?
Follow me on twitter : [@CCostan](https://twitter.com/ccostan)
Follow the Smart Home on twitter : [@BearStoneHA](https://twitter.com/BearStoneHA)
You can also vist my [Blog](http://www.vmwareinfo.com/search/label/iot) for all of my [Home Automation Posts](http://www.vmwareinfo.com/search/label/iot).

View File

@@ -0,0 +1,41 @@
########## ############################################################
## Announce when people come or go.
## Announce over all Chromecast Audios
######################################################################
- alias: 'People Greeting'
trigger:
- platform: state
entity_id:
- device_tracker.carlo
- device_tracker.stacey
- device_tracker.franco
- device_tracker.yolanda
from: 'not_home'
to: 'home'
for: '00:02:00'
action:
- service: script.speech_engine
data_template:
personarriving: >
{% set person = trigger.entity_id.split('.')[1]|replace('_', ' ')%}
{%- macro greeting_sentence(person) -%}
{{ [
"Welcome back home " ~ person,
"Guess who is home?" ~ person +" is!",
person + " is now in the house.",
"Welcome Home " ~ person + ". We have missed you. Or at least Molly did.",
"Our home is now complete, Rest your head and relax your feet! Welcome Back " ~ person,
"Life is like a song, youre back where you belong. Welcome home " ~ person,
"Hey there " ~ person + " Welcome Home!",
"Knock Knock. Who is There? " ~ person +" is!",
person ~ "! You are home!",
"I know a secret! " ~ person +" is home!"
] | random }}
{%- endmacro -%}
{{greeting_sentence(person)}}
call_responsibilities: 1
call_no_announcement: 1
call_garage_check: 1
call_window_check: 1

View File

@@ -0,0 +1,35 @@
######################################################################
## Door Open Announcements
######################################################################
- alias: 'Door Opened'
trigger:
- platform: state
entity_id:
- binary_sensor.mcu1_gpio5 # Front door #
- binary_sensor.mcu2_gpio5 # Back door #
- binary_sensor.MCU2_GPIO12 # Main Slider
- binary_sensor.MCU1_GPIO12 # Interior Garage Door #
from: 'off'
condition:
- condition: state
entity_id: binary_sensor.sleepnumber_carlo_carlo_is_in_bed
state: 'on'
- condition: state
entity_id: binary_sensor.sleepnumber_carlo_stacey_is_in_bed
state: 'on'
action:
- service: script.notify_engine
data_template:
who: 'parents'
value1: "The {{ trigger.to_state.attributes.friendly_name }} has been {{ (trigger.to_state.state)|replace('_', ' ') }}."
- service: input_boolean.turn_on
entity_id: input_boolean.alert_mode
- service: script.speech_engine
data_template:
call_window_check: 1
call_inside_weather: 1

View File

@@ -0,0 +1,48 @@
###################################
## Garadget Stuff - [Garadget](http://amzn.to/2jQLpVQ) - Garage Door opener/sensor
###################################
- alias: 'Wind Speed Garage Door Check'
# hide_entity: True
trigger:
- platform: numeric_state
entity_id: sensor.dark_sky_wind_speed
above: 20
condition:
- condition: or
conditions:
- condition: template
value_template: "{{ states('cover.large_garage') == 'opened' }}"
- condition: template
value_template: "{{ states('cover.small_garage') == 'opened'}}"
action:
- service: script.notify_engine
data_template:
value1: 'Check Garage Doors:'
value2: "Small: {{ states('cover.small_garage')}}"
value3: "Large: {{ states('cover.large_garage')}}"
- service: input_boolean.turn_on
entity_id: input_boolean.alert_mode
- service: script.speech_engine
data_template:
value1: >
"The winds are picking up outside. The wind speed is {{ states('sensor.dark_sky_wind_speed')|round}} miles per hour. For safety, please close the garage doors.
{% if is_state('cover.large_garage', 'open') -%}
The Large Garage Door is open
{% endif -%}
{% if is_state('cover.small_garage', 'open') -%}
{% if is_state('cover.large_garage', 'open') -%}and
{%- endif %} The small Garage Door is open.
{% endif %}"
- service: script.tweet_engine
data_template:
tweet: >
{{ [
"Wind speed is {{ states('sensor.dark_sky_wind_speed')|round}} miles per hour. For safety, I'm going to close the @garadget doors.",
"Getting pretty windy! {{ states('sensor.dark_sky_wind_speed')|round}}MPH. Time to ask @Garadget to close the garage doors."
] | random + "(http://amzn.to/2jQLpVQ)"}}

View File

@@ -0,0 +1,19 @@
######################################################################
## Garage Status Announcements - Only during normal hours.
######################################################################
- alias: 'Garage Door closed'
trigger:
- platform: state
entity_id:
- cover.large_garage
- cover.small_garage
from: 'open'
to: 'closed'
for: '00:02:00'
action:
- service: script.speech_engine
data_template:
DoorClosed: "The {{ trigger.entity_id.split('.')[1]|replace('_', ' ') }} is now {{ (trigger.to_state.state)|replace('_', ' ') }}."
call_garage_check: 1

View File

@@ -0,0 +1,28 @@
######################################################################
## Garage Status Announcements
######################################################################
- alias: 'Garage Opened'
trigger:
- platform: state
entity_id:
- cover.large_garage
- cover.small_garage
from: 'closed'
to: 'open'
for: '00:02:30'
action:
- service_template: >
{% set hour=states("sensor.time").split(':')[0] | int %}
{% if hour >= 7 and hour <= 9 and states.input_boolean.school_mode.state == 'on'%}
input_boolean.turn_off
{% else %}
input_boolean.turn_on
{% endif %}
entity_id: input_boolean.alert_mode
- service: script.speech_engine
data_template:
value1: "The {{ trigger.entity_id.split('.')[1]|replace('_', ' ') }} is now {{ (trigger.to_state.state)|replace('_', ' ') }}."
call_garage_check: 1

View File

@@ -0,0 +1,32 @@
######################################################################
## Some home facts when we get back home from being away.
######################################################################
- alias: 'Home Stats'
trigger:
- platform: state
entity_id:
- group.family
from: 'not_home'
to: 'home'
for: '00:03:00'
- platform: state
entity_id: input_boolean.home_stats
to: 'on'
from: 'off'
action:
- wait_template: >-
{{ is_state('group.garage_doors', 'closed') }}
timeout: 00:05:30
- service: script.speech_engine
data:
call_inside_weather: 1
call_responsibilities: 1
call_outside_weather: 1
call_garage_check: 1
call_window_check: 1
call_light_check: 1

View File

@@ -0,0 +1,24 @@
######################################################################
## Announce when one of the nests kick in
## Announce over all Chromecast Audios
######################################################################
- alias: 'Nest Status'
trigger:
- platform: state
entity_id:
- sensor.downstairs_thermostat_hvac_state
- sensor.upstairs_thermostat_hvac_state
from: 'off'
# condition:
# - condition: template
# value_template: >-
# {{ as_timestamp(states.automation.nest_status.attributes.last_triggered) > as_timestamp(now()) - (1800) }}
action:
- service: script.speech_engine
data_template:
NestStatus: "The {{ trigger.entity_id.split('.')[1].split('_')[0]}} {{ trigger.entity_id.split('.')[1].split('_')[1]}} has now been turned on for {{(trigger.to_state.state)}}."
call_window_check: 1

View File

@@ -0,0 +1,25 @@
##############################################################################
### New Device has connected to the network. let everyone know.
##############################################################################
- alias: "New device connected"
trigger:
- platform: event
event_type: device_tracker_new_device
action:
- wait_template: >-
{{ not is_state('media_player.livingroomCC', 'playing') }}
- service: script.speech_engine
data_template:
NewDevice: "There has been a new device detected on the network. Be sure to appropriately catagorize {{trigger.event.data.host_name}} within Circle."
- service: script.tweet_engine
data_template:
tweet: >
{{ [
"New Device on the Network! @MeetCircle has alerted me me and now it is locked down.",
"Constant monitoring of the network by @MeetCircle has detected a new device in the environment."
] | random + " (http://amzn.to/2eAgaA6)"}}
##############################################################################

View File

@@ -0,0 +1,15 @@
######################################################################
## Who's day is it anyway? Pretty sure my parent's didn't code to figure this out.
######################################################################
- alias: 'responsibilities'
trigger:
- platform: state
entity_id: input_boolean.responsibilities
to: 'on'
action:
- service: script.speech_engine
data:
call_responsibilities: 1

View File

@@ -0,0 +1,50 @@
###################################
## cuckoo Clock simulation.
## Plays the number of cuckoos per hour and 1 on the half hour.
###################################
- alias: Cuckoo Clock
trigger:
- platform: time
minutes: 00
seconds: 20
- platform: time
minutes: 30
seconds: 00
condition:
- condition: time
after: '09:29:00'
before: '21:30:00'
- condition: state
entity_id: group.family
state: 'home'
- condition: template
value_template: >
{% if is_state('media_player.livingroomCC', 'playing') %}
false
{% else %}
true
{% endif %}
action:
- service: script.amp_settings
data:
media_player: 'media_player.livingroomcc'
volume_level: 0.22
- service: media_player.play_media
data_template:
entity_id: >
{% if states.group.bed.state == 'off' %}
media_player.livingroomCC
{% else %}
media_player.alarm_clock, media_player.bedroom_alarm_panel
{% endif %}
media_content_id: >
{% if now().strftime("%M")|int == 30 %}
https://raw.githubusercontent.com/CCOSTAN/Home-AssistantConfig/master/sounds/cuckoo-clock-01.wav
{% else %}
https://raw.githubusercontent.com/CCOSTAN/Home-AssistantConfig/master/sounds/cuckoo-clock-{{now().strftime("%I")}}.wav
{% endif %}
media_content_type: audio/mp4

View File

@@ -0,0 +1,12 @@
# [![Build Status](https://travis-ci.org/CCOSTAN/Home-AssistantConfig.svg?branch=master)](https://travis-ci.org/CCOSTAN/Home-AssistantConfig) Home-Assistant Config by [@ccostan](http://www.twitter.com/ccostan)
[Home Assistant](https://home-assistant.io/) configuration files (YAMLs)
Be sure to :star: my repo so you can keep up to date on the daily progress!
This directory is primarily used for automations that are just running in the background all the time. Little robots just doing thier thing to help make the house the smartest and most proactive it can be for us.
#Still have questions on my Config?
Follow me on twitter : [@CCostan](https://twitter.com/ccostan)
Follow the Smart Home on twitter : [@BearStoneHA](https://twitter.com/BearStoneHA)
You can also vist my [Blog](http://www.vmwareinfo.com/search/label/iot) for all of my [Home Automation Posts](http://www.vmwareinfo.com/search/label/iot).

View File

@@ -0,0 +1,26 @@
###################################
## Self Healing Section -
## Home Assistant runs on my [Raspberry Pi 3](http://amzn.to/2e3DOBY) with [Aeon Labs Z Wave Stick (GEN 5)](http://amzn.to/2eAiAP0).
###################################
- alias: Heal Components Nightly
hide_entity: True
trigger:
platform: time
at: '2:31:00'
action:
# - service: zwave.heal_network - Not needed anymore since I've migrated to Wink.
- service: homeassistant.turn_on
entity_id: switch.bedroom_restart_on
- service: script.tweet_engine
data_template:
tweet: >
{{ [
"While they sleep, I self heal the #Z-Wave network with #Wink. (http://amzn.to/2E9Vax2)",
"2:30am, Time to restart the #Amazon Alarm Panels for a fresh start in the morning. (http://www.vmwareinfo.com/2017/08/project-update-visualization-of-home.html)",
"Restarting the #Amazon Fire Tablets nightly to clear memory issues or any other bugs (http://www.vmwareinfo.com/2017/07/visualizing-smart-home-using-home.html)",
"Nightly #Z-WAVE Self heals keep all the gear in check! (http://amzn.to/2q17R4S)",
"Every night at 2:31am, I do my self-heal and rebuild the #ZWAVE network.",
"Without my Nightly #ZWave Self Heal, things get a little whackado."
] | random + " #SelfHeal "}}

View File

@@ -0,0 +1,34 @@
- alias: "Wink Update Available Notification"
hide_entity: True
trigger:
platform: template
value_template: "{{ is_state_attr('binary_sensor.carlowink', 'update needed', True) }} != False }}"
action:
- service: script.notify_engine
data_template:
value1: 'Check the Wink Hub. Update is needed.'
value2: "{{ states.binary_sensor.carlowink.attributes }}"
value3: ''
who: 'carlo'
- service: notify.html5
data_template:
title: "Wink Update Available"
message: "Wink Update is available. - {{ as_timestamp(now()) | timestamp_custom('%I:%M:%S %p %d%b%Y', true) }}"
data:
url: "https://home-assistant.io/getting-started/installation-raspberry-pi-all-in-one/#upgrading"
- service: persistent_notification.create
data:
title: "Wink Update Available"
message: "Wink Update is available. - {{ as_timestamp(now()) | timestamp_custom('%I:%M:%S %p %d%b%Y', true) }}"
notification_id: "update_available"
- service: script.tweet_engine
data_template:
tweet: >
{{ [
"Check @TheWinkApp Hub @CCostan. Update is needed. {{ states.binary_sensor.carlowink.attributes }}",
"New update from @TheWinkApp. Hop to it @CCostan"
] | random + "(http://amzn.to/2orGEWo)"}}

View File

@@ -0,0 +1,26 @@
###################################
## Uses IFTTT to notify me of bad logins.
###################################
- alias: Login Failure
hide_entity: True
trigger:
platform: template
value_template: "{{ states('persistent_notification.httplogin') != 'unknown' }}"
action:
- service: script.notify_engine
data_template:
value1: 'Bad Login: '
value2: 'There was a Hack attempt!'
value3: 'Go Check the GUI for details.'
who: 'carlo'
- service: script.tweet_engine
data_template:
tweet: >
{{ [
"Seriously, I am a Smart Home. I am logging your hack attempt.",
"If you do not know the password, you get locked out and IP banned.",
"Three Strikes and you are OUT! IP Banned."
] | random + "#Security"}}

View File

@@ -0,0 +1,50 @@
##############################################################################
### Detect when lights are turned on and adjust them accordingly based on time.
### Code by @JesseWebDotCom
##############################################################################
- alias: detect lights and adjust the brightness when turned on based on time
trigger:
- platform: event
event_type: state_changed
condition:
- condition: state
entity_id: group.family
state: 'home'
- condition: state
entity_id: input_boolean.alert_mode
state: 'off'
- condition: template
value_template: "{{ trigger.event.data is not none }}"
- condition: template
value_template: "{{ trigger.event.data.entity_id is not none }}"
- condition: template
value_template: "{{ trigger.event.data.entity_id.split('.')[0] == 'light' }}"
- condition: template
value_template: "{{ trigger.event.data.entity_id.split('_')[0] != 'light.tv' }}"
- condition: template
value_template: "{{ trigger.event.data.entity_id.split('_')[0] != 'light.couch' }}"
- condition: template
value_template: "{{ trigger.event.data.entity_id.split('_')[0] != 'light.office' }}"
- condition: template
value_template: "{{ trigger.event.data.entity_id.split('_')[1] != 'screensaver' }}"
- condition: template
value_template: "{{ trigger.event.data.new_state.state == 'on' }}"
- condition: template
value_template: "{{ trigger.event.data.old_state.state == 'off' }}"
action:
- service: light.turn_on
data_template:
entity_id: "{{ trigger.event.data.entity_id }}"
brightness: >
{% set hour=states("sensor.time").split(':')[0] | int %}
{%- if hour >= 5 and hour < 8 -%}
50
{%- elif hour >= 8 and hour <20 -%}
255
{%- elif hour >= 20 and hour <24 -%}
40
{%- else -%}
15
{%- endif %}

View File

@@ -0,0 +1,37 @@
###################################
## @CCOSTAN
## Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
###################################
- alias: Door Chime
trigger:
- platform: state
entity_id:
- group.entry_points
condition:
- condition: state
entity_id: group.family
state: 'home'
action:
- service: script.amp_settings
data:
media_player: 'media_player.livingroomcc'
volume_level: 0.22
- service: media_player.play_media
data_template:
entity_id: >
{% if states.group.bed.state == 'off' %}
media_player.livingroomCC
{% else %}
media_player.alarm_clock, media_player.bedroom_alarm_panel
{% endif %}
media_content_id: >
{% if trigger.to_state.state == 'on' %}
https://raw.githubusercontent.com/CCOSTAN/Home-AssistantConfig/master/sounds/one-tone-chime.mp3
{% else %}
https://raw.githubusercontent.com/CCOSTAN/Home-AssistantConfig/master/sounds/two-tone-chime.mp3
{% endif %}
media_content_type: audio/mp4

View File

@@ -0,0 +1,29 @@
##############################################################################
### Detect when things are on and forgotten about. Like any Good Watchdog.
##############################################################################
##############################################################################
- alias: "NOTIFY IF IP CHANGES"
hide_entity: True
trigger:
- platform: state
entity_id: sensor.ipchange
from: 'False'
to: 'True'
action:
- service: script.notify_engine
data_template:
value1: 'Changed IP address:'
value2: "New IP: {{ states('sensor.exteral_ip') }}"
value3: ' - Be sure to Change DNS!'
who: 'carlo'
- service: script.tweet_engine
data_template:
tweet: >
{{ [
"That's weird. Looks like my IP address changed. @CCostan, please check it out.",
"Time to update @GoDaddy @CCostan. Looks like my IP address changed."
] | random + " #HomeAutomation"}}
##############################################################################

View File

@@ -0,0 +1,29 @@
###################################
## Uses IFTTT to trigger rain delay with rachio
###################################
- alias: Rachio_Rain_Delay
hide_entity: True
trigger:
- platform: numeric_state
entity_id:
- sensor.dark_sky_precip_intensity_max
- sensor.dark_sky_precip_intensity
above: 0.5
- platform: numeric_state
entity_id: sensor.dark_sky_wind_speed
above: 20
action:
- service: ifttt.trigger
data_template: {"event":"Rachio_Rain_Delay"}
- service: script.tweet_engine
data_template:
tweet: >
{{ [
"Looks like Rain, Pausing the @_Rachio for 24 hours. (http://amzn.to/2eoPKBW)",
"Since it is going to rain tomorrow, I'll pause @_Rachio for 24 hours.",
"No reason to water the grass if it's going to rain tomorrow. pausing @_Rachio for 24 hours.",
"Mother Nature is watering the grass today so I can pause @_Rachio for 24 hours."
] | random + " #SavingWater"}}

View File

@@ -0,0 +1,75 @@
###################################
## Trigger Dump
###################################
- alias: Trigger dump - MQTT
trigger:
- platform: event
event_type: feedreader
action:
- service: script.notify_engine
data_template:
value1: 'Check the MQTT Dump'
value2: '/dump/{{ trigger.platform }}'
who: 'carlo'
- service: mqtt.publish
data_template:
topic: '/dump/{{ trigger.platform }}'
retain: false
payload: >-
{%- macro dumpState(statePrefix, stateObj) -%}
{{statePrefix ~ ": "}} {{- stateObj.state }}{{- "\n" -}}
{{statePrefix ~ ".entity_id: "}} {{- stateObj.entity_id }}{{- "\n" -}}
{{statePrefix ~ ".domain: "}} {{- stateObj.domain }}{{- "\n" -}}
{{statePrefix ~ ".object_id: "}} {{- stateObj.object_id }}{{- "\n" -}}
{{statePrefix ~ ".name: "}} {{- stateObj.name }}{{- "\n" -}}
{{statePrefix ~ ".last_updated: "}} {{- stateObj.last_updated }}{{- "\n" -}}
{{statePrefix ~ ".last_changed: "}} {{- stateObj.last_changed }}{{- "\n" -}}
{%- for attrib in stateObj.attributes | sort() %}
{%- if attrib is defined -%}
{{- statePrefix ~ ".attributes." ~ attrib ~ ": " -}} {{- stateObj.attributes[attrib] -}}
{{- "\n" -}}
{%- endif -%}
{%- endfor -%}
{%- endmacro -%}
{% set p = trigger.platform %}
{{"trigger.platform: "}} {{ p }}{{- "\n" -}}
{%- if p == "mqtt" -%}
{{"trigger.topic: "}} {{ trigger.topic }}{{- "\n" -}}
{{"trigger.payload: "}} {{ trigger.payload }}{{- "\n" -}}
{{"trigger.payload_json: "}} {{ trigger.payload_json }}{{- "\n" -}}
{{"trigger.qos: "}} {{ trigger.qos }}{{- "\n" -}}
{%- endif -%}
{%- if p == "event" or p == "sun" or p == "zone" -%}
{{"trigger.event: "}} {{ trigger.event }}{{- "\n" -}}
{%- endif -%}
{%- if p == "numeric_state" -%}
{{"trigger.above: "}} {{ trigger.above }}{{- "\n" -}}
{{"trigger.below: "}} {{trigger.below }}{{- "\n" -}}
{%- endif -%}
{%- if p == "state" -%}
{{"trigger.for: "}} {{ trigger.for }}{{- "\n" -}}
{%- endif -%}
{%- if p == "time" -%}
{{"trigger.now: "}} {{ trigger.now }}{{- "\n" -}}
{%- endif -%}
{%- if p == "zone" -%}
{{"trigger.zone: "}} {{ trigger.zone }}{{- "\n" -}}
{%- endif -%}
{%- if p == "state" or p == "numeric_state" or p == "template" or p == "zone" -%}
{{"trigger.entity_id: "}} {{ trigger.entity_id }}{{- "\n" -}}{{- "\n" -}}
{{"trigger.from_state: "}} {{- "\n" -}}
-------------------{{- "\n" -}}
{{ dumpState("trigger.from_state", trigger.from_state) }} {{- "\n" -}}
trigger.to_state:{{- "\n" -}}
-----------------{{- "\n" -}}
{{ dumpState("trigger.to_state", trigger.to_state) }}
{%- endif -%}

View File

@@ -0,0 +1,34 @@
- alias: "Update Available Notification"
hide_entity: True
trigger:
platform: state
entity_id: updater.updater
condition:
- condition: template
value_template: "{{ states('updater.updater') != 'unknown' }}"
action:
- service: script.notify_engine
data_template:
value1: 'There is a new Version of Home-Assistant Available.'
value2: "{{ states('updater.updater') }}"
who: 'carlo'
- service: script.tweet_engine
data:
tweet: "New version of @Home_Assistant! Cannot wait for @CCostan to install it! - {{ states('updater.updater') }} (http://www.vmwareinfo.com/2017/07/my-smart-home-look-at-parts-that-make.html)"
- service: notify.html5
data_template:
title: "Update Available"
message: "Home Assistant {{ states('updater.updater') }} is available. - {{ as_timestamp(now()) | timestamp_custom('%I:%M:%S %p %d%b%Y', true) }}"
data:
url: "https://home-assistant.io/getting-started/installation-raspberry-pi-all-in-one/#upgrading"
- service: persistent_notification.create
data:
title: "Update Available"
message: "Home Assistant {{ states('updater.updater') }} is available. - {{ as_timestamp(now()) | timestamp_custom('%I:%M:%S %p %d%b%Y', true) }}"
notification_id: "update_available"

View File

@@ -0,0 +1,27 @@
##############################################################################
### Detect when things are on and forgotten about. Like any Good Watchdog.
##############################################################################
- alias: Automated Light WatchDog!
trigger:
- platform: state
entity_id:
- light.hallway
- group.hallway_lights
- group.foyer_lights
- switch.printer_outlet
to: 'on'
for: '00:20:00'
- platform: state
entity_id:
- group.upstairs
- switch.garage_outlet
to: 'on'
for: '02:00:00'
#Turn it off!
action:
- service: homeassistant.turn_off
data_template:
entity_id: "{{ trigger.entity_id }}"

View File

@@ -0,0 +1,31 @@
######################################################################
## Stuff that needs to happen at 06:30am.
######################################################################
- alias: 'Timed 640.'
trigger:
- platform: time
at: '06:40:00'
condition:
- condition: state
entity_id: group.family
state: home
- condition: state
entity_id: input_boolean.school_mode
state: 'on'
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
action:
- service: light.turn_on
entity_id:
- light.d1
- light.d2
- service: switch.turn_on
entity_id: switch.kitchen_accents

View File

@@ -0,0 +1,38 @@
######################################################################
## Stuff that needs to happen at 08:30am.
######################################################################
- alias: 'Kids 650.'
trigger:
- platform: time
at: '06:50:00'
condition:
- condition: state
entity_id: group.family
state: home
- condition: state
entity_id: input_boolean.school_mode
state: 'on'
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
action:
- service: light.turn_on
entity_id:
- light.d1
- light.d2
- group.kitchen_lights
- service: light.turn_off
entity_id:
- group.dining_room_lights
- wait_template: >-
{{ states.sun.sun.state == 'above_horizon' }}
- service: switch.turn_off
entity_id: switch.kitchen_accents

View File

@@ -0,0 +1,34 @@
######################################################################
## Stuff that needs to happen at 08:30am.
######################################################################
- alias: 'Kids left for the day.'
trigger:
- platform: time
at: '08:30:00'
condition:
- condition: state
entity_id: group.family
state: home
- condition: state
entity_id: input_boolean.guest_mode
state: 'off'
- condition: state
entity_id: input_boolean.school_mode
state: 'on'
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
action:
- wait_template: >-
{{ is_state('group.garage_doors', 'open') }}
- service: light.turn_off
entity_id:
- group.all_lights
- service: switch.turn_off
entity_id: switch.kitchen_accents

View File

@@ -0,0 +1,25 @@
######################################################################
## Stuff that needs to happen at 10pm.
######################################################################
- alias: 'Shut down AMP in Living room'
trigger:
- platform: time
at: '22:00:00'
action:
- wait_template: >-
{{ not is_state('media_player.livingroomCC', 'playing') }}
- wait_template: >-
{{ not is_state('media_player.whole_house', 'playing') }}
- service: script.speech_engine
data_template:
call_no_announcement: 1
call_garage_check: 1
call_window_check: 1
- wait_template: >-
{{ not is_state('media_player.livingroomCC', 'playing') }}
- service: switch.turn_off
entity_id: switch.living_room_amp

View File

@@ -0,0 +1,43 @@
# [![Build Status](https://travis-ci.org/CCOSTAN/Home-AssistantConfig.svg?branch=master)](https://travis-ci.org/CCOSTAN/Home-AssistantConfig) Home-Assistant Config by [@ccostan](http://www.twitter.com/ccostan)
[Home Assistant](https://home-assistant.io/) configuration files (YAMLs)
Be sure to :star: my repo so you can keep up to date on the daily progress!
This directory is primarily used for automations that are triggered via time. Daily, monthly, seasonally or on the hour.
**Time Based Automation TimeLine**
ALL DAY LONG:
Checks to see if we are away.
Cuckoo Clock goes off each hour and on the half.
SUNRISE minus 1 hour
Turn off ALL SWITCHES
Turn off ALL LIGHTS
05:00 AM ** Light Brightness helper 50 Brightness **
06:00 AM ( on school days) : Turn on Dining Room lights, Kitchen Accents and start Kid's bedroom [Hue Go](http://amzn.to/2iB36Ii) wake up lights.
06:51 AM Turn on Dinette lights, Turn off Dining Room Lights and Kitchen Accents
07:51 AM Turn on Kitchen Lights
08:00 AM ** Light Brightness helper FULL 255 Brightness **
08:31 AM (on school days) Turn off ALL interior lights.
09:00 AM Speech Notifications are enabled for the house.
SUNSET:
Turn on Den Outlet, Living Room Outlet, Dining Room Outlet, Outdoor Bathroom light, TV lights
Activate Monthly Front Lighting Scene
Check if Garage Door is open (Every 60 minutes)
** Kitchen Light/Accent Helper Activated **
08:00 PM ** Late Night Helper is active **
08:00 PM ** Light Brightness helper 35 Brightness **
08:00 PM TV time Scene triggered if the TV is on.
09:00 PM Turn on [Hue Go](http://amzn.to/2iB36Ii) lights for the kid's rooms and start fading down.
10:00 PM Speech Notifications are disabled for the house. (except under ALERT mode) and AMP is shut.
02:00 AM ** Late Night Help Deactivated **
02:31 AM Heal ZWave Network
#Still have questions on my Config?
Follow me on twitter : [@CCostan](https://twitter.com/ccostan)
Follow the Smart Home on twitter : [@BearStoneHA](https://twitter.com/BearStoneHA)
You can also vist my [Blog](http://www.vmwareinfo.com/search/label/iot) for all of my [Home Automation Posts](http://www.vmwareinfo.com/search/label/iot).

View File

@@ -0,0 +1,43 @@
######################################################################
## Stuff that needs to happen after 10pm.
######################################################################
- alias: Automated NIGHT WatchDog!
trigger:
- platform: state
entity_id: switch.living_room_amp
to: 'on'
for: '00:10:00'
- platform: state
entity_id: media_player.livingroomCC
to: 'off'
for: '00:02:00'
- platform: state
entity_id: media_player.whole_house
to: 'off'
for: '00:02:00'
condition:
condition: or
conditions:
- condition: and
conditions:
- condition: state
entity_id: group.family
state: 'not_home'
- condition: state
entity_id: input_boolean.guest_mode
state: 'off'
- condition: and
conditions:
- condition: state
entity_id: input_boolean.guest_mode
state: 'off'
- condition: state
entity_id: group.bed
state: 'on'
action:
- service: switch.turn_off
data_template:
entity_id: "{{ trigger.entity_id }}"

View File

@@ -0,0 +1,21 @@
###################################
## Start Up Section
###################################
- alias: Check if it's summer vacation on startup.
hide_entity: True
trigger:
- platform: homeassistant
event: start
condition:
- condition: template
value_template: >
{% set month=states("sensor.date").split('-')[1] | int %}
{%- if month == 6 or month == 7 -%}
true
{%- endif -%}
action:
- service: input_boolean.turn_off
entity_id: input_boolean.school_mode

View File

@@ -0,0 +1,27 @@
###################################
## Start Up Section
###################################
- alias: Startup Notification and Shut startup lights
hide_entity: True
trigger:
- platform: homeassistant
event: start
action:
- service: script.notify_engine
data_template:
value1: 'Startup: Home Assistant is Up and Running!'
who: 'carlo'
- service: light.turn_off
entity_id: group.hallway_lights
- service: mqtt.publish
data:
topic: "garadget/Garadget Small/command"
payload: "get-status"
- service: mqtt.publish
data:
topic: "garadget/Garadget Large/command"
payload: "get-status"

View File

@@ -0,0 +1,47 @@
###################################
## Sunrise and Sunset stuff
###################################
- alias: 'Sunset Stuff off'
trigger:
- platform: sun
event: sunrise
offset: '-02:00:00'
action:
- service: script.interior_off
- service: homeassistant.turn_off
entity_id:
- group.landscaping
- service: script.tweet_engine
data_template:
tweet: >
{{ [
"Even though they are sleeping, I still turn off the outdoor lights before sunrise.",
"It was a beautiful sunrise. Time to turn off the exterior lights. (http://www.vmwareinfo.com/2017/08/diy-outdoor-smart-home-led-strips.html)",
"If the sun is out, we do not need the exterior lights on. (http://amzn.to/2q17R4S)",
"The sun is up so it's time to turn the outside lights off. Lucky for my family, I have them covered!"
] | random + "#HomeAutomation"}}
- delay: '00:{{ (range(1, 55)|random|int) }}:00'
- service: homeassistant.turn_off
entity_id:
- group.exterior_lights
- group.outdoor_front_lights
- group.outdoor_pool_lights
- group.all_lights
- wait_template: >-
{{ states.sun.sun.state == 'above_horizon' }}
- service: homeassistant.turn_off
entity_id:
- switch.master_bathroom_accents
- group.exterior_lights
- group.outdoor_front_lights
- service: script.interior_off
- service: input_boolean.turn_off
entity_id:
- input_boolean.medicine
- input_boolean.daylight_override
- input_boolean.guest_mode

View File

@@ -0,0 +1,65 @@
###################################
## Sunrise and Sunset stuff
# @CCOSTAN
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
###################################
- alias: 'Sunset Stuff on'
trigger:
- platform: state
entity_id: sun.sun
to: 'below_horizon'
from: 'above_horizon'
action:
- service: script.tweet_engine
data_template:
tweet: >
{{ [
"Right before sunset, I turn on the outdoor lights.",
"Since it gets dark around sunset, I will turn on the landscaping lights.",
"Time to turn on the Landscaping lights.",
"Daytime is over, Time to turn on the exterior lights.",
"Once the Sun goes down, we turn on the exterior lights.",
"Since it is sunset, I will turn on the exterior lights."
] | random + [
" #Sunset",
" #HomeAutomation",
" #AccentLighting",
" (http://www.vmwareinfo.com/2017/08/diy-outdoor-smart-home-led-strips.html)"
] | random }}
- delay: '00:{{ (range(1, 20)|random|int) }}:00'
- service: script.speech_engine
data:
call_dark_outside: 1
call_window_check: 1
- service: homeassistant.turn_on
entity_id:
- switch.front_landscaping
- service: script.monthly_color_scene
- service: light.turn_on
entity_id: light.outdoor_bathroom
data:
brightness: 20
- wait_template: >-
{{ states.group.family.state == 'home' }}
- service: switch.turn_on
entity_id:
- switch.master_bathroom_accents
- switch.back_landscaping
- switch.front_door_outlet
- switch.living_room_outlet
- switch.den_outlet
- switch.foyer_outlet
- service: light.turn_on
entity_id:
- group.living_room_accents
- light.bedroom
- wait_template: >-
{{ is_state('group.garage_doors', 'closed') }}
- wait_template: >-
{{ is_state('group.entry_points', 'off') }}
- service: script.speech_engine
data:
call_garage_check: 1
call_window_check: 1

View File

@@ -0,0 +1,26 @@
######################################################################
## Stuff that needs to happen when we are both out of bed.
######################################################################
- alias: 'Time to wake up!'
trigger:
- platform: state
entity_id: group.bed
to: 'off'
condition:
- condition: state
entity_id: group.family
state: home
- condition: state
entity_id: input_boolean.guest_mode
state: 'off'
- condition: time
after: '07:00:00'
before: '11:00:00'
action:
- service: light.turn_on
entity_id:
- group.kitchen_lights
- service: switch.turn_on
entity_id: switch.living_room_amp

30
config/automation/away.yaml Executable file
View File

@@ -0,0 +1,30 @@
######################################################################
## Shut it all down. No one is here
######################################################################
- alias: 'Away Mode'
trigger:
- platform: state
entity_id: binary_sensor.downstairs_away_mode
to: 'True'
- platform: state
entity_id: group.family
to: 'not_home'
- platform: state
entity_id: input_boolean.good_night
to: 'on'
condition:
- condition: state
entity_id: group.family
state: 'not_home'
- condition: state
entity_id: input_boolean.guest_mode
state: 'off'
action:
- service: script.interior_off
- service: switch.turn_off
entity_id: switch.back_landscaping
- service: input_boolean.turn_off
entity_id: input_boolean.good_night

View File

@@ -0,0 +1,25 @@
######################################################################
## Color Tornado!
######################################################################
- alias: 'Color Tornado'
trigger:
- platform: state
entity_id: input_boolean.color_tornado
to: 'on'
from: 'off'
action:
- service: light.turn_on
entity_id:
- light.justin_go
data:
effect: colorloop
- service: light.turn_on
entity_id:
- light.justin_go
data:
effect: colorloop
- service: input_boolean.turn_off
entity_id: input_boolean.color_tornado

View File

@@ -0,0 +1,66 @@
######################################################################
## Dark House Little extra light - DARK and Cloudy or just rainy.
######################################################################
- alias: 'Dark House Little extra light'
trigger:
- platform: numeric_state
entity_id: sun.sun
value_template: '{{ state.attributes.elevation }}'
below: 20.0
- platform: numeric_state
entity_id: sensor.dark_sky_cloud_coverage
above: 90
- platform: numeric_state
entity_id: sensor.dark_sky_precip_intensity
above: 1
- platform: state
entity_id: group.family
to: 'home'
from: 'not_home'
condition:
condition: and
conditions:
- condition: or
conditions:
- condition: and
conditions:
- condition: numeric_state
entity_id: sun.sun
value_template: '{{ state.attributes.elevation }}'
below: 20.0
- condition: numeric_state
entity_id: sensor.dark_sky_cloud_coverage
above: 90
- condition: numeric_state
entity_id: sensor.dark_sky_precip_intensity
above: 1
- condition: state
entity_id: binary_sensor.sleepnumber_carlo_carlo_is_in_bed
state: 'off'
- condition: state
entity_id: binary_sensor.sleepnumber_carlo_stacey_is_in_bed
state: 'off'
- condition: state
entity_id: sun.sun
state: 'above_horizon'
- condition: state
entity_id: group.family
state: 'home'
action:
- service: light.turn_on
entity_id:
- light.couch_1
- light.sink
- service: input_boolean.turn_on
entity_id:
- input_boolean.daylight_override
- service: script.speech_engine
data_template:
value1: "It is getting a little dark inside the house because of the {{trigger.entity_id.split('_')[2]|replace('precip','rain') }} {{trigger.entity_id.split('_')[3]|replace('intensity',' ')}} outside. I will turn on some extra lights in the living room."
call_window_check: 1
call_garage_check: 1
######################################################################

View File

@@ -0,0 +1,22 @@
###################################
## Press an [Amazon Dash Buttons](http://amzn.to/2dPKZhM) and then stuff happens.
###################################
- alias: 'Toggle Office Light on/off'
trigger:
- platform: event
event_type: office_lamp_dash
action:
# Disable this automation
- service: automation.turn_off
entity_id: automation.toggle_office_light_onoff
- service: light.toggle
entity_id: light.office_lamp
- service: input_boolean.turn_on
entity_id: input_boolean.daylight_override
- delay:
minutes: 1
# enable this automation - This prevents duplicate pushes.
- service: automation.turn_on
entity_id: automation.toggle_office_light_onoff

View File

@@ -0,0 +1,19 @@
######################################################################
## Flash all the lights!
######################################################################
- alias: 'Flash all_lights'
trigger:
- platform: state
entity_id: input_boolean.flash
to: 'on'
from: 'off'
action:
- service: light.turn_on
entity_id:
- group.all_lights
data:
flash: long
- service: input_boolean.turn_off
entity_id: input_boolean.flash

86
config/automation/garadget.yaml Executable file
View File

@@ -0,0 +1,86 @@
###################################
## Garadget Stuff - [Garadget](http://amzn.to/2jQLpVQ) - Garage Door opener/sensor
##
###################################
- alias: Garadget Reflection Rates
hide_entity: True
trigger:
- platform: numeric_state
entity_id: sensor.large_garage_reflection_rate
below: 85
# for: '00:05:00'
- platform: numeric_state
entity_id: sensor.small_garage_reflection_rate
below: 85
# for: '00:05:00'
condition:
- condition: template
value_template: "{{ states('cover.large_garage') == 'closed' }}"
- condition: template
value_template: "{{ states('cover.small_garage') == 'closed' }}"
action:
- service: script.notify_engine
data_template:
value1: 'Check Garage Doors Reflection:'
value2: "Small: {{ states('sensor.small_garage_reflection_rate')}}"
value3: "Large: {{ states('sensor.large_garage_reflection_rate')}}"
who: "carlo"
##############################################################################
- alias: Is the Garage door Open at night - Checks every 30 minutes or 5 minutes after we drive away.
hide_entity: True
trigger:
- platform: time
minutes: '/45'
seconds: 00
- platform: state
entity_id: group.family
to: not_home
for: 00:05:00
- platform: state
entity_id: input_boolean.tv_time
to: 'on'
from: 'off'
condition:
condition: or
conditions:
- condition: and
conditions:
- condition: state
entity_id: group.family
state: not_home
for: 00:05:00
- condition: or
conditions:
- condition: template
value_template: "{{ states('cover.large_garage') == 'opened' }}"
- condition: template
value_template: "{{ states('cover.small_garage') == 'opened' }}"
- condition: and
conditions:
- condition: state
entity_id: sun.sun
state: 'below_horizon'
- condition: or
conditions:
- condition: template
value_template: "{{ states('cover.large_garage') == 'opened' }}"
- condition: template
value_template: "{{ states('cover.small_garage') == 'opened'}}"
action:
- service: script.notify_engine
data_template:
value1: 'Check Garage Doors:'
value2: "Small: {{ states('cover.small_garage')}}"
value3: "Large: {{ states('cover.large_garage')}}"
who: "family"
- service: script.speech_engine
data_template:
value1: "Please check the garage doors. The Small garage is {{ states('cover.small_garage')}} and the large garage is {{ states('cover.large_garage')}}"

View File

@@ -0,0 +1,43 @@
######################################################################
## Weekday Morning Routines for the Wife and Kiddos.
######################################################################
- alias: 'Good Morning Routine'
trigger:
- platform: state
entity_id: input_boolean.good_morning
to: 'on'
from: 'off'
- platform: state
entity_id:
- binary_sensor.sleepnumber_carlo_stacey_is_in_bed
to: 'off'
condition:
- condition: state
entity_id: group.family
state: home
- condition: state
entity_id: input_boolean.school_mode
state: 'on'
- condition: time
after: '06:00:00'
before: '10:00:00'
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
action:
- delay: 00:20:00
- service: light.turn_on
entity_id:
- light.s1
- light.s4
- service: switch.turn_on
entity_id: switch.kitchen_accents
- service: input_boolean.turn_off
entity_id: input_boolean.good_morning

View File

@@ -0,0 +1,49 @@
######################################################################
## Good night Routine
######################################################################
- alias: 'Good Night Trigger'
trigger:
- platform: state
entity_id: input_boolean.good_night
to: 'on'
from: 'off'
- platform: state
entity_id:
- binary_sensor.sleepnumber_carlo_carlo_is_in_bed
- binary_sensor.sleepnumber_carlo_stacey_is_in_bed
to: 'on'
condition:
- condition: state
entity_id: sun.sun
state: 'below_horizon'
- condition: state
entity_id: input_boolean.guest_mode
state: 'off'
- condition: state
entity_id: binary_sensor.sleepnumber_carlo_carlo_is_in_bed
state: 'on'
- condition: state
entity_id: binary_sensor.sleepnumber_carlo_stacey_is_in_bed
state: 'on'
action:
- service: input_boolean.turn_off
entity_id: input_boolean.good_night
- service: script.speech_engine
data_template:
value1: >
{{ [
"Sleep Tight, Don't let the bedbugs bite.",
"Have pleasant dreams",
"As they say in the Navy, See you in the rise."
"Dream pleasant dreams. Tomorrow is a new day.",
"Early sleep and early wake up gives health and makes you grow.",
"Good night, good night! Parting is such sweet sorrow that I shall say goodnight till it is Morrow.",
"There is a time for many words, and there is also a time for sleep.",
"This good night isnt meant to bring an end to this day. Its intended to wish you awesomeness in what lies ahead.",
"Stuff your worries in your pillow, wrap your troubles in your blanket and spread your anxieties on your sheets. When you wake up tomorrow, you may have dirty linen, but more importantly, youll have a fresh mind and a happy heart. Good night."
] | random }}
- service: script.interior_off

View File

@@ -0,0 +1,24 @@
######################################################################
## Speak Max! Speak Max!!
######################################################################
- alias: Guard Dog
trigger:
- platform: state
entity_id: input_boolean.guard_dog
to: 'on'
from: 'off'
- platform: state
entity_id: binary_sensor.front_door_opened
to: 'on'
from: 'off'
condition:
- condition: state
entity_id: group.all_covers
state: 'closed'
action:
- service: script.dog_bark
- service: input_boolean.turn_off
entity_id: input_boolean.guard_dog

View File

@@ -0,0 +1,18 @@
###################################
## IFTTT checks Office 365 Calendar and Notifies me of appointments. Flash lights but only at reasonable hours.
###################################
- alias: 'IFTTT Appointment reminder'
hide_entity: True
trigger:
- platform: event
event_type: IFTTT_Appointment
condition:
- condition: time
after: '06:00:00'
before: '20:00:00'
action:
- service: script.flash_notify

View File

@@ -0,0 +1,31 @@
###################################
## LOG IFTTT Stuff - Rachio
###################################
- alias: 'Log Sprinkler Activity'
hide_entity: True
trigger:
- platform: event
event_type: rachio_water_stops
action:
- service: logbook.log
data:
name: "Rachio Sprinkler:"
message: "The Lawn was watered just now."
- service: mqtt.publish
data_template:
payload: '{{ states("sensor.date") }}'
topic: 'ifttt/rachio/watering_time'
retain: true
- service: script.tweet_engine
data_template:
tweet: >
{{ [
"Just finished watering the lawn with @_Rachio.",
"The lawn looked thirsty so I watered it.",
"My lawn looks great and we definately do not water it nearly as much as everyone else. (http://amzn.to/2eoPKBW)",
"No rain in the forecast? @_Rachio knows & chose to water the lawn.",
".@CCostan does not even think about watering the lawn. Me and @_Rachio take care of that."
] | random + " #SavingWater"}}

View File

@@ -0,0 +1,61 @@
#####################################################################################
### If the Kitchen Lights go on for more than 10 minutes, turn off the accent lights
### connected to [Etekcity Outlets](http://amzn.to/2efNoBP)
## [433Mhz Transmitter and receiver](http://amzn.to/2dceNY2)
#####################################################################################
- alias: Kitchen lights on - Accent lights off
trigger:
- platform: state
entity_id: group.kitchen_lights
to: 'on'
for: '00:05:00'
condition:
- condition: state
entity_id: switch.kitchen_accents
state: 'on'
action:
- service: switch.turn_off
entity_id: switch.kitchen_accents
##############################################################################
- alias: Kitchen lights off - turn on Accent lights
trigger:
- platform: state
entity_id: group.kitchen_lights
to: 'off'
for: '00:05:00'
- platform: state
entity_id: sun.sun
to: 'below_horizon'
from: 'above_horizon'
condition:
- condition: sun
after: 'sunset'
- condition: state
entity_id: group.kitchen_lights
state: 'off'
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.sleepnumber_carlo_carlo_is_in_bed
state: 'off'
- condition: state
entity_id: binary_sensor.sleepnumber_carlo_stacey_is_in_bed
state: 'off'
- condition: or
conditions:
- condition: state
entity_id: group.family
state: 'home'
- condition: state
entity_id: input_boolean.guest_mode
state: 'on'
action:
- service: switch.turn_on
entity_id: switch.kitchen_accents

View File

@@ -0,0 +1,46 @@
###################################
## Late Night lights Section
# @CCOSTAN
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
###################################
- alias: 'Late Night Helper'
trigger:
- platform: state
entity_id:
- binary_sensor.downstairs_away_mode
to: 'False'
- platform: state
entity_id: group.family
to: home
condition:
condition: and
conditions:
- condition: state
entity_id: sun.sun
state: 'below_horizon'
- condition: state
entity_id: group.bed
state: 'off'
action:
- service: light.turn_on
entity_id:
- light.living_room_slider
- light.foyer_door
- light.fridge
- light.M1_front_right
- light.S1
- light.S4
- service: switch.turn_on
entity_id:
- switch.kitchen_accents
- delay: '00:05:00'
- service: light.turn_off
entity_id:
- light.S1
- light.S4
- light.foyer_door
- light.fridge
- light.living_room_slider
- light.M1_front_right

View File

@@ -0,0 +1,59 @@
###################################
## Late Night lights Section
# @CCOSTAN
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
###################################
- alias: 'Late Night Helper outside'
trigger:
- platform: state
entity_id: group.all_covers
to: 'open'
- platform: state
entity_id: sun.sun
to: 'below_horizon'
from: 'above_horizon'
condition:
condition: and
conditions:
- condition: state
entity_id: sun.sun
state: 'below_horizon'
- condition: state
entity_id: group.all_covers
state: 'open'
action:
- service: scene.turn_on
entity_id: scene.front_full_brightness
- service: light.turn_on
entity_id:
- group.living_room_accents
data_template:
color_name: >
{% if states.group.entry_points.state == 'on' or states.group.all_covers.state != 'closed' -%}
red
{% else %}
gold
{% endif %}
- service: switch.turn_on
entity_id:
- switch.master_bathroom_accents
- switch.back_landscaping
- switch.front_door_outlet
- switch.living_room_outlet
- switch.den_outlet
- switch.foyer_outlet
- wait_template: >-
{{ states.group.garage_doors.state == 'closed' }}
- service: script.monthly_color_scene
- service: light.turn_on
entity_id:
- group.living_room_accents
data_template:
color_name: >
{% if states.group.entry_points.state == 'on' or states.group.all_covers.state != 'closed' -%}
red
{% else %}
gold
{% endif %}

View File

@@ -0,0 +1,41 @@
#####################################################################################
### When we get out of bed at night, turn on the accent lights in the bathroom
## and then turn off the lights when we are back in bed.
## Also turn on the lights sunset comes. (but only if we are home)
### connected to [Etekcity Outlets](http://amzn.to/2efNoBP)
## [433Mhz Transmitter and receiver](http://amzn.to/2dceNY2)
#####################################################################################
- alias: Bedtime Accent Light
trigger:
- platform: state
entity_id:
- binary_sensor.sleepnumber_carlo_carlo_is_in_bed
- binary_sensor.sleepnumber_carlo_stacey_is_in_bed
to: 'off'
- platform: state
entity_id: sun.sun
to: 'below_horizon'
from: 'above_horizon'
- platform: state
entity_id: group.family
from: 'not_home'
to: 'home'
condition:
- condition: state
entity_id: sun.sun
state: 'below_horizon'
- condition: state
entity_id: group.family
state: 'home'
action:
- service: switch.turn_on
entity_id: switch.master_bathroom_accents
- wait_template: >-
{{ not is_state('binary_sensor.sleepnumber_carlo_stacey_is_in_bed', 'off') }}
- wait_template: >-
{{ not is_state('binary_sensor.sleepnumber_carlo_carlo_is_in_bed', 'off') }}
- service: switch.turn_off
entity_id: switch.master_bathroom_accents

21
config/automation/mealtime.yaml Executable file
View File

@@ -0,0 +1,21 @@
######################################################################
## Time to eat - Set it up!
######################################################################
- alias: Meal Time
trigger:
- platform: state
entity_id: input_boolean.meal_time
to: 'on'
from: 'off'
action:
- service: light.turn_on
entity_id:
- group.dinette_lights
- group.kitchen_lights
- service: light.turn_off
entity_id:
- group.living_room_lights
- service: input_boolean.turn_off
entity_id: input_boolean.meal_time

View File

@@ -0,0 +1,37 @@
###################################
## LOG Medicine
###################################
- alias: 'Log Medicine Activity'
hide_entity: True
trigger:
- platform: event
event_type: medicine_dash
- platform: state
entity_id: input_boolean.medicine
to: 'on'
from: 'off'
action:
- service: input_boolean.turn_on
entity_id: input_boolean.medicine
- service: automation.turn_off
entity_id: automation.log_medicine_activity
- service: logbook.log
data:
name: "Medicine Push"
message: "Took Medicine today."
- service: mqtt.publish
data_template:
payload: '{{ states("sensor.date") }}'
topic: 'dash/medicine/medicine_time'
retain: true
- service: script.notify_engine
data_template:
value1: 'Took Medicine today.'
who: "parents"
- delay:
minutes: 1
- service: automation.turn_on
entity_id: automation.log_medicine_activity

View File

@@ -0,0 +1,53 @@
######################################################################
## TV Time at sunset or 8pm. Whichever is later.
######################################################################
- alias: TV Time
trigger:
- platform: state
entity_id: input_boolean.TV_time
to: 'on'
from: 'off'
- platform: state
entity_id: sun.sun
to: 'below_horizon'
from: 'above_horizon'
- platform: state
entity_id: media_player.living_room_ultra
to: 'playing'
from: 'idle'
- platform: time
at: '20:00:00'
condition:
condition: and
conditions:
- condition: state
entity_id: group.family
state: home
- condition: state
entity_id: sun.sun
state: 'below_horizon'
- condition: state
entity_id: input_boolean.guest_mode
state: 'off'
- condition: time
after: '20:00:00'
- condition: state
entity_id: media_player.living_room_ultra
state: 'playing'
action:
- service: input_boolean.turn_off
entity_id: input_boolean.tv_time
- service: light.turn_off
entity_id:
- group.dinette_lights
- group.kitchen_lights
- service: switch.turn_on
entity_id: switch.kitchen_accents
- service: scene.turn_on
entity_id: scene.tv_time

View File

@@ -0,0 +1,32 @@
# Uses the Nest thermostat to turn on lights and turn them off upstairs.
- alias: 'Upstairs Light Turn on'
trigger:
- platform: event
event_type: upstairs_light_on
- platform: state
entity_id: binary_sensor.upstairs_away_mode
to: 'False'
condition:
- condition: state
entity_id: sun.sun
state: 'below_horizon'
- condition: time
before: '23:45'
action:
- service: light.turn_on
entity_id: group.upstairs
- alias: 'Upstairs Light Turn off'
trigger:
- platform: event
event_type: upstairs_light_off
- platform: state
entity_id: binary_sensor.upstairs_away_mode
to: 'True'
action:
service: light.turn_off
entity_id: group.upstairs

22
config/automation/work.yaml Executable file
View File

@@ -0,0 +1,22 @@
######################################################################
## Time to work - Set it up!
######################################################################
- alias: Time to Work
trigger:
- platform: state
entity_id: input_boolean.work
to: 'on'
from: 'off'
action:
- service: light.turn_off
entity_id:
- group.dinette_lights
- group.kitchen_lights
- group.living_room_lights
- service: light.turn_on
entity_id:
- light.office_lamp
- service: input_boolean.turn_off
entity_id: input_boolean.work

View File

@@ -0,0 +1,73 @@
###################################
## ZWave Section -
## Home Assistant runs on my [Raspberry Pi 3](http://amzn.to/2e3DOBY) with [Aeon Labs Z Wave Stick (GEN 5)](http://amzn.to/2eAiAP0).
###################################
##############################################################
- alias: Hallway ZWave Enerwave Door Sensors Open
hide_entity: True
trigger:
- platform: state
entity_id: binary_sensor.hallway_pantry_opened
to: 'on'
- platform: state
entity_id: binary_sensor.hallway_linen_opened
to: 'on'
condition:
condition: or
conditions:
- condition: sun
after: sunset
after_offset: '-03:00:00'
- condition: numeric_state
entity_id: sensor.dark_sky_cloud_coverage
above: 50
action:
- service: light.turn_on
entity_id:
- light.kids_hallway
- light.k4
- delay: 00:20:00
- service: light.turn_off
entity_id: light.kids_hallway
##############################################################
- alias: ZWave Enerwave Door Sensors Closed
hide_entity: True
trigger:
- platform: state
entity_id: binary_sensor.hallway_pantry_opened
to: 'off'
- platform: state
entity_id: binary_sensor.hallway_linen_opened
to: 'off'
action:
service: light.turn_off
entity_id: light.kids_hallway
##############################################################
- alias: Shutdown Helper light
hide_entity: True
trigger:
- platform: state
entity_id: light.k4
to: 'on'
for: '00:20:00'
- platform: state
entity_id: binary_sensor.hallway_pantry_opened
to: 'off'
- platform: state
entity_id: binary_sensor.hallway_linen_opened
to: 'off'
condition:
condition: state
entity_id: light.k1
state: 'off'
action:
- service: light.turn_off
entity_id: light.k4

44
config/chevy_install.sh Executable file
View File

@@ -0,0 +1,44 @@
#!/usr/bin/env bash
# https://developers.supportbee.com/blog/setting-up-cucumber-to-run-with-Chrome-on-Linux/
# https://gist.github.com/curtismcmullan/7be1a8c1c841a9d8db2c
# http://stackoverflow.com/questions/10792403/how-do-i-get-chrome-working-with-selenium-using-php-webdriver
# http://stackoverflow.com/questions/26133486/how-to-specify-binary-path-for-remote-chromedriver-in-codeception
# http://stackoverflow.com/questions/40262682/how-to-run-selenium-3-x-with-chrome-driver-through-terminal
# http://askubuntu.com/questions/760085/how-do-you-install-google-chrome-on-ubuntu-16-04
# Versions
CHROME_DRIVER_VERSION=`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE`
SELENIUM_STANDALONE_VERSION=3.4.0
SELENIUM_SUBDIR=$(echo "$SELENIUM_STANDALONE_VERSION" | cut -d"." -f-2)
# Remove existing downloads and binaries so we can start from scratch.
apt-get remove google-chrome-stable
rm ~/selenium-server-standalone-*.jar
rm ~/chromedriver_linux64.zip
rm /usr/local/bin/chromedriver
rm /usr/local/bin/selenium-server-standalone.jar
# Install dependencies.
apt-get update
apt-get install -y unzip openjdk-8-jre-headless xvfb libxi6 libgconf-2-4
# Install Chrome.
curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add
echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list
apt-get -y update
apt-get -y install google-chrome-stable
# Install ChromeDriver.
wget -N http://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip -P ~/
unzip ~/chromedriver_linux64.zip -d ~/
rm ~/chromedriver_linux64.zip
mv -f ~/chromedriver /usr/local/bin/chromedriver
chown root:root /usr/local/bin/chromedriver
chmod 0755 /usr/local/bin/chromedriver
# Install Selenium.
wget -N http://selenium-release.storage.googleapis.com/$SELENIUM_SUBDIR/selenium-server-standalone-$SELENIUM_STANDALONE_VERSION.jar -P ~/
mv -f ~/selenium-server-standalone-$SELENIUM_STANDALONE_VERSION.jar /usr/local/bin/selenium-server-standalone.jar
chown root:root /usr/local/bin/selenium-server-standalone.jar
chmod 0755 /usr/local/bin/selenium-server-standalone.jar

251
config/configuration.yaml Executable file
View File

@@ -0,0 +1,251 @@
homeassistant:
name: Bear Stone Run
latitude: !secret homeassistant_latitude
longitude: !secret homeassistant_longitude
elevation: !secret homeassistant_elevation
unit_system: imperial
time_zone: America/New_York
customize: !include_dir_merge_named customize
customize_domain:
automation:
initial_state: 'on'
customize_glob:
"automation.*watchdog*":
icon: mdi:timer
"sensor.dark_sky_*":
homebridge_hidden: true
"scene.month_*_colors":
hidden: true
homebridge_hidden: true
packages: !include_dir_named packages
config:
cloud:
alexa:
filter:
include_entities:
- group.all_lights
- group.all_switches
- group.interior_lights
- group.bedroom_lights
- group.living_room_lights
- group.living_room_accents
- group.dinette_lights
- group.dining_room_lights
- group.den_lights
- group.foyer_lights
- group.office_lights
- group.hallway_lights
- group.kitchen_lights
- group.upstairs_lights
- group.outdoor_pool_lights
- group.garage_lights
- group.paiges_room
- group.justins_room
- group.Exterior_Lights
- group.outdoor_pool_lights
- group.outdoor_front_lights
- group.landscaping
include_domains:
- switch
- cover
- input_boolean
# exclude_entities:
# exclude_domains:
# - light
# - media_player
entity_config:
group.kitchen_lights:
display_categories: LIGHT
group.bedroom_lights:
display_categories: LIGHT
group.upstairs_lights:
display_categories: LIGHT
http:
base_url: !secret http_base_url
# server_port: !secret http_port
api_password: !secret http_api_password
ssl_certificate: !secret ssl_certificate
ssl_key: !secret ssl_key
trusted_networks:
- 192.168.10.0/24
- !secret external_ip
ip_ban_enabled: True
login_attempts_threshold: 3
frontend:
javascript_version: latest
panel_custom:
- name: floorplan
sidebar_title: Alarm Panel
sidebar_icon: mdi:security-home
url_path: floorplan
config:
hide_app_toolbar:
config: /local/custom_ui/floorplan/floorplan.yaml
- name: clock
sidebar_title: Alarm Clock
sidebar_icon: mdi:alarm
url_path: clock
config:
hide_app_toolbar:
config: /local/custom_ui/floorplan/floorclock.yaml
discovery:
ignore:
- samsung_tv
# - roku
# - google_cast
updater:
include_used_components: true
sun:
hue:
bridges:
- host: 192.168.10.75
filename: phue.conf
allow_unreachable: true
allow_hue_groups: false
- host: 192.168.10.76
filename: phue2.conf
allow_unreachable: true
allow_hue_groups: false
light:
# Reference : https://www.flexfireleds.com/pages/Comparison-between-3528-LEDs-and-5050-LEDs.html
- platform: flux_led
automatic_add: True
devices:
192.168.10.148:
name: led_garage_snip
mode: "rgb"
192.168.10.214:
name: led_outdoor_den
mode: "rgb"
192.168.10.213:
name: led_garage_large
mode: "rgb"
192.168.10.212:
name: led_garage_small
mode: "rgb"
# emulated_hue:
# host_ip: 192.168.10.10
# listen_port: 8300
# expose_by_default: false
ifttt:
key: !secret ifttt_key
logbook:
exclude:
entities:
- automation.detect_lights_and_adjust_the_brightness_when_turned_on_based_on_time
- automation.cuckoo_clock
- binary_sensor.office_motion
- group.garage_doors
- media_player.LivingRoomCC
- py.warnings
- sensor.since_last_boot
- sensor.since_last_boot_templated
- sensor.small_garage_status
- sensor.large_garage_status
- sensor.small_garage_time_in_state
- sensor.large_garage_time_in_state
- sensor.large_garage_wifi_signal_strength
- sensor.small_garage_wifi_signal_strength
- sensor.small_garage_reflection_rate
- sensor.large_garage_reflection_rate
- sensor.pihole_ads_blocked_today
- sensor.pihole_ads_percentage_blocked_today
- sensor.pihole_dns_queries_today
- sensor.time
- sensor.date
- sensor.floorplan_date
- sensor.floorplan_time
- sensor.ha_uptime
history:
include:
domains:
- sensor
- switch
- media_player
- light
- binary_sensor
- cover
exclude:
entities:
- sensor.last_boot
- sensor.date
- sensor.pihole_ads_blocked_today
- sensor.pihole_ads_percentage_blocked_today
- sensor.pihole_dns_queries_today
- sensor.since_last_boot
- sensor.since_last_boot_templated
- sensor.floorplan_date
- sensor.floorplan_time
- sensor.ha_uptime
- sensor.time
logger: !include logger.yaml
recorder: !include recorder.yaml
mqtt:
broker: 127.0.0.1
port: 1883
client_id: home-assistant-Carlo
username: !secret MQTT_username
password: !secret MQTT_password
# zwave:
# usb_path: /dev/ttyACM0
# config_path: /srv/hass/hass_venv/lib/python3.4/site-packages/libopenzwave-0.3.1-py3.4-linux-armv7l.egg/config
nest:
client_id: !secret nest_client_id
client_secret: !secret nest_client_secret
climate:
platform: nest
media_player:
- platform: cast
host: 192.168.10.209 #CCA1
- platform: roku
# - platform: samsungtv
# host: 192.168.10.207
# port: 8001
# name: Living Room TV
# scan_interval: 180
tts:
- platform: amazon_polly
aws_access_key_id: !secret aws_access_key_ID
aws_secret_access_key: !secret aws_secret_access_key
region_name: 'us-east-1'
text_type: ssml
cache: True
# cache_dir: /data/tts
wink:
# email: !secret wink_username
# password: !secret wink_password
# local_control: True
group: !include_dir_merge_named group
device_tracker: !include_dir_merge_list device_tracker
sensor: !include_dir_merge_list sensor
automation: !include_dir_merge_list automation
scene: !include_dir_merge_list scene
switch: !include_dir_merge_list switch
script: !include_dir_merge_named script
input_boolean: !include_dir_merge_named input_boolean
shell_command: !include_dir_merge_named shell_command

View File

@@ -0,0 +1,97 @@
"""
Binary sensor support for the Skybell HD Doorbell.
For more details about this platform, please refer to the documentation at
https://home-assistant.io/components/binary_sensor.skybell/
"""
from datetime import timedelta
import logging
import voluptuous as vol
from homeassistant.components.binary_sensor import (
BinarySensorDevice, PLATFORM_SCHEMA)
from homeassistant.components.skybell import (
DEFAULT_ENTITY_NAMESPACE, DOMAIN as SKYBELL_DOMAIN, SkybellDevice)
from homeassistant.const import (
CONF_ENTITY_NAMESPACE, CONF_MONITORED_CONDITIONS)
import homeassistant.helpers.config_validation as cv
DEPENDENCIES = ['skybell']
_LOGGER = logging.getLogger(__name__)
SCAN_INTERVAL = timedelta(seconds=5)
# Sensor types: Name, device_class, event
SENSOR_TYPES = {
'button': ['Button', 'occupancy', 'device:sensor:button'],
'motion': ['Motion', 'motion', 'device:sensor:motion'],
}
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Optional(CONF_ENTITY_NAMESPACE, default=DEFAULT_ENTITY_NAMESPACE):
cv.string,
vol.Required(CONF_MONITORED_CONDITIONS, default=[]):
vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]),
})
def setup_platform(hass, config, add_devices, discovery_info=None):
"""Set up the platform for a Skybell device."""
skybell = hass.data.get(SKYBELL_DOMAIN)
sensors = []
for sensor_type in config.get(CONF_MONITORED_CONDITIONS):
for device in skybell.get_devices():
sensors.append(SkybellBinarySensor(device, sensor_type))
add_devices(sensors, True)
class SkybellBinarySensor(SkybellDevice, BinarySensorDevice):
"""A binary sensor implementation for Skybell devices."""
def __init__(self, device, sensor_type):
"""Initialize a binary sensor for a Skybell device."""
super().__init__(device)
self._sensor_type = sensor_type
self._name = "{0} {1}".format(self._device.name,
SENSOR_TYPES[self._sensor_type][0])
self._device_class = SENSOR_TYPES[self._sensor_type][1]
self._event = {}
self._state = None
@property
def name(self):
"""Return the name of the sensor."""
return self._name
@property
def is_on(self):
"""Return True if the binary sensor is on."""
return self._state
@property
def device_class(self):
"""Return the class of the binary sensor."""
return self._device_class
@property
def device_state_attributes(self):
"""Return the state attributes."""
attrs = super().device_state_attributes
# attrs['event_date'] = self._event.get('createdAt')
return attrs
def update(self):
"""Get the latest data and updates the state."""
super().update()
event = self._device.latest(SENSOR_TYPES[self._sensor_type][2])
self._state = bool(event and event.get('id') != self._event.get('id'))
self._event = event

View File

@@ -0,0 +1,12 @@
# [![Build Status](https://travis-ci.org/CCOSTAN/Home-AssistantConfig.svg?branch=master)](https://travis-ci.org/CCOSTAN/Home-AssistantConfig) Home-Assistant Config by [@ccostan](http://www.twitter.com/ccostan)
[Home Assistant](https://home-assistant.io/) configuration files (YAMLs)
Be sure to :star: my repo so you can keep up to date on the daily progress!
This is a Custom Component by pkozul to allow me to use my Floorplan installation as a Media Player. This allows me to send all TTS and home notifications to the Fire Tablets I use with Floorplan.
#Still have questions on my Config?
Follow me on twitter : [@CCostan](https://twitter.com/ccostan)
You can also vist my [Blog](http://www.vmwareinfo.com/search/label/iot) for all of my [Home Automation Posts](http://www.vmwareinfo.com/search/label/iot).

View File

@@ -0,0 +1,329 @@
"""
Provide functionality to interact with Cast devices on the network.
For more details about this platform, please refer to the documentation at
https://home-assistant.io/components/media_player.cast/
"""
# pylint: disable=import-error
import logging
import voluptuous as vol
from homeassistant.components.media_player import (
MEDIA_TYPE_MUSIC, MEDIA_TYPE_TVSHOW, MEDIA_TYPE_VIDEO, SUPPORT_NEXT_TRACK,
SUPPORT_PAUSE, SUPPORT_PLAY_MEDIA, SUPPORT_PREVIOUS_TRACK,
SUPPORT_TURN_OFF, SUPPORT_TURN_ON, SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_SET,
SUPPORT_STOP, SUPPORT_PLAY, MediaPlayerDevice, PLATFORM_SCHEMA)
from homeassistant.const import (
CONF_HOST, STATE_IDLE, STATE_OFF, STATE_PAUSED, STATE_PLAYING,
STATE_UNKNOWN)
import homeassistant.helpers.config_validation as cv
import homeassistant.util.dt as dt_util
# Do not upgrade to 1.0.2, it breaks a bunch of stuff
# https://github.com/home-assistant/home-assistant/issues/10926
REQUIREMENTS = ['pychromecast==1.0.3']
_LOGGER = logging.getLogger(__name__)
CONF_IGNORE_CEC = 'ignore_cec'
CAST_SPLASH = 'https://home-assistant.io/images/cast/splash.png'
DEFAULT_PORT = 8009
SUPPORT_CAST = SUPPORT_PAUSE | SUPPORT_VOLUME_SET | SUPPORT_VOLUME_MUTE | \
SUPPORT_TURN_ON | SUPPORT_TURN_OFF | SUPPORT_PREVIOUS_TRACK | \
SUPPORT_NEXT_TRACK | SUPPORT_PLAY_MEDIA | SUPPORT_STOP | SUPPORT_PLAY
KNOWN_HOSTS_KEY = 'cast_known_hosts'
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Optional(CONF_HOST): cv.string,
vol.Optional(CONF_IGNORE_CEC): [cv.string],
})
# pylint: disable=unused-argument
def setup_platform(hass, config, add_devices, discovery_info=None):
"""Set up the cast platform."""
import pychromecast
# Import CEC IGNORE attributes
pychromecast.IGNORE_CEC += config.get(CONF_IGNORE_CEC, [])
known_hosts = hass.data.get(KNOWN_HOSTS_KEY)
if known_hosts is None:
known_hosts = hass.data[KNOWN_HOSTS_KEY] = []
if discovery_info:
host = (discovery_info.get('host'), discovery_info.get('port'))
if host in known_hosts:
return
hosts = [host]
elif CONF_HOST in config:
host = (config.get(CONF_HOST), DEFAULT_PORT)
if host in known_hosts:
return
hosts = [host]
else:
hosts = [tuple(dev[:2]) for dev in pychromecast.discover_chromecasts()
if tuple(dev[:2]) not in known_hosts]
casts = []
# get_chromecasts() returns Chromecast objects with the correct friendly
# name for grouped devices
all_chromecasts = pychromecast.get_chromecasts()
for host in hosts:
(_, port) = host
found = [device for device in all_chromecasts
if (device.host, device.port) == host]
if found:
try:
casts.append(CastDevice(found[0]))
known_hosts.append(host)
except pychromecast.ChromecastConnectionError:
pass
# do not add groups using pychromecast.Chromecast as it leads to names
# collision since pychromecast.Chromecast will get device name instead
# of group name
elif port == DEFAULT_PORT:
try:
# add the device anyway, get_chromecasts couldn't find it
casts.append(CastDevice(pychromecast.Chromecast(*host)))
known_hosts.append(host)
except pychromecast.ChromecastConnectionError:
pass
add_devices(casts)
class CastDevice(MediaPlayerDevice):
"""Representation of a Cast device on the network."""
def __init__(self, chromecast):
"""Initialize the Cast device."""
self.cast = chromecast
self.cast.socket_client.receiver_controller.register_status_listener(
self)
self.cast.socket_client.media_controller.register_status_listener(self)
self.cast_status = self.cast.status
self.media_status = self.cast.media_controller.status
self.media_status_received = None
@property
def should_poll(self):
"""No polling needed."""
return False
@property
def name(self):
"""Return the name of the device."""
return self.cast.device.friendly_name
# MediaPlayerDevice properties and methods
@property
def state(self):
"""Return the state of the player."""
if self.media_status is None:
return STATE_UNKNOWN
elif self.media_status.player_is_playing:
return STATE_PLAYING
elif self.media_status.player_is_paused:
return STATE_PAUSED
elif self.media_status.player_is_idle:
return STATE_IDLE
elif self.cast.is_idle:
return STATE_OFF
return STATE_UNKNOWN
@property
def volume_level(self):
"""Volume level of the media player (0..1)."""
return self.cast_status.volume_level if self.cast_status else None
@property
def is_volume_muted(self):
"""Boolean if volume is currently muted."""
return self.cast_status.volume_muted if self.cast_status else None
@property
def media_content_id(self):
"""Content ID of current playing media."""
return self.media_status.content_id if self.media_status else None
@property
def media_content_type(self):
"""Content type of current playing media."""
if self.media_status is None:
return None
elif self.media_status.media_is_tvshow:
return MEDIA_TYPE_TVSHOW
elif self.media_status.media_is_movie:
return MEDIA_TYPE_VIDEO
elif self.media_status.media_is_musictrack:
return MEDIA_TYPE_MUSIC
return None
@property
def media_duration(self):
"""Duration of current playing media in seconds."""
return self.media_status.duration if self.media_status else None
@property
def media_image_url(self):
"""Image url of current playing media."""
if self.media_status is None:
return None
images = self.media_status.images
return images[0].url if images else None
@property
def media_title(self):
"""Title of current playing media."""
return self.media_status.title if self.media_status else None
@property
def media_artist(self):
"""Artist of current playing media (Music track only)."""
return self.media_status.artist if self.media_status else None
@property
def media_album(self):
"""Album of current playing media (Music track only)."""
return self.media_status.album_name if self.media_status else None
@property
def media_album_artist(self):
"""Album arist of current playing media (Music track only)."""
return self.media_status.album_artist if self.media_status else None
@property
def media_track(self):
"""Track number of current playing media (Music track only)."""
return self.media_status.track if self.media_status else None
@property
def media_series_title(self):
"""Return the title of the series of current playing media."""
return self.media_status.series_title if self.media_status else None
@property
def media_season(self):
"""Season of current playing media (TV Show only)."""
return self.media_status.season if self.media_status else None
@property
def media_episode(self):
"""Episode of current playing media (TV Show only)."""
return self.media_status.episode if self.media_status else None
@property
def app_id(self):
"""Return the ID of the current running app."""
return self.cast.app_id
@property
def app_name(self):
"""Name of the current running app."""
return self.cast.app_display_name
@property
def supported_features(self):
"""Flag media player features that are supported."""
return SUPPORT_CAST
@property
def media_position(self):
"""Position of current playing media in seconds."""
if self.media_status is None or \
not (self.media_status.player_is_playing or
self.media_status.player_is_paused or
self.media_status.player_is_idle):
return None
return self.media_status.current_time
@property
def media_position_updated_at(self):
"""When was the position of the current playing media valid.
Returns value from homeassistant.util.dt.utcnow().
"""
return self.media_status_received
def turn_on(self):
"""Turn on the ChromeCast."""
# The only way we can turn the Chromecast is on is by launching an app
if not self.cast.status or not self.cast.status.is_active_input:
import pychromecast
if self.cast.app_id:
self.cast.quit_app()
self.cast.play_media(
CAST_SPLASH, pychromecast.STREAM_TYPE_BUFFERED)
def turn_off(self):
"""Turn Chromecast off."""
self.cast.quit_app()
def mute_volume(self, mute):
"""Mute the volume."""
self.cast.set_volume_muted(mute)
def set_volume_level(self, volume):
"""Set volume level, range 0..1."""
self.cast.set_volume(volume)
def media_play(self):
"""Send play command."""
self.cast.media_controller.play()
def media_pause(self):
"""Send pause command."""
self.cast.media_controller.pause()
def media_stop(self):
"""Send stop command."""
self.cast.media_controller.stop()
def media_previous_track(self):
"""Send previous track command."""
self.cast.media_controller.rewind()
def media_next_track(self):
"""Send next track command."""
self.cast.media_controller.skip()
def media_seek(self, position):
"""Seek the media to a specific location."""
self.cast.media_controller.seek(position)
def play_media(self, media_type, media_id, **kwargs):
"""Play media from a URL."""
self.cast.media_controller.play_media(media_id, media_type)
# Implementation of chromecast status_listener methods
def new_cast_status(self, status):
"""Handle updates of the cast status."""
self.cast_status = status
self.schedule_update_ha_state()
def new_media_status(self, status):
"""Handle updates of the media status."""
self.media_status = status
self.media_status_received = dt_util.utcnow()
self.schedule_update_ha_state()

View File

@@ -0,0 +1,160 @@
"""
Support for Floorplan Speaker
"""
import voluptuous as vol
from homeassistant.components.media_player import (
ENTITY_ID_FORMAT,
SUPPORT_PLAY_MEDIA,
SUPPORT_VOLUME_SET,
PLATFORM_SCHEMA,
MediaPlayerDevice)
from homeassistant.const import (
CONF_NAME, STATE_IDLE, STATE_PLAYING)
from homeassistant.components import http
from homeassistant.components.http import HomeAssistantView
from homeassistant.helpers.entity import async_generate_entity_id
import homeassistant.helpers.config_validation as cv
import logging
import os
import re
import sys
import time
import asyncio
import json
DEFAULT_NAME = 'Floorplan Speaker'
DEFAULT_VOLUME = 1.0
SUPPORT_FLOORPLAN_SPEAKER = SUPPORT_PLAY_MEDIA | SUPPORT_VOLUME_SET
CONF_ADDRESS = 'address'
ATTR_ADDRESS = 'address'
ATTR_BATTERY_LEVEL = 'battery_level'
ATTR_SCREEN_BRIGHTNESS = 'screen_brightness'
ATTR_DEVICE_ID = 'device_id'
ATTR_SERIAL_NUMBER = 'serial_number'
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
})
_LOGGER = logging.getLogger(__name__)
def setup_platform(hass, config, add_devices, discovery_info=None):
name = config.get(CONF_NAME)
address = config.get(CONF_ADDRESS)
device = FloorplanSpeakerDevice(hass, name, address)
"""Set up an endpoint for the media player."""
hass.http.register_view(device)
add_devices([device])
return True
class FloorplanSpeakerDevice(MediaPlayerDevice, http.HomeAssistantView):
def __init__(self, hass, name, address):
self._hass = hass
self._name = name
self.entity_id = async_generate_entity_id(ENTITY_ID_FORMAT, name, hass=hass)
self._state = STATE_IDLE
self._media_content_id = None
self._address = address
self._volume = DEFAULT_VOLUME
self._battery_level = None
self._screen_brightness = None
self._device_id = None
self._serial_number = None
self.url = '/api/fully_kiosk/media_player/' + self.entity_id
_LOGGER.info('Setting endpoint: %s', self.url)
@asyncio.coroutine
def post(self, request):
body = yield from request.text()
try:
data = json.loads(body) if body else None
except ValueError:
return self.json_message('Event data should be valid JSON', HTTP_BAD_REQUEST)
if data is not None and not isinstance(data, dict):
return self.json_message('Event data should be a JSON object', HTTP_BAD_REQUEST)
data = json.loads(body) if body else None
_LOGGER.info("Received from Fully Kiosk: %s: %s", self.url, data)
self._state = data['state']
self._media_content_id = data['attributes']['media_content_id']
self._volume = data['attributes']['volume_level']
self._address = data['attributes'][ATTR_ADDRESS]
self._battery_level = data['attributes'][ATTR_BATTERY_LEVEL]
self._screen_brightness = data['attributes'][ATTR_SCREEN_BRIGHTNESS]
self._device_id = data['attributes'][ATTR_DEVICE_ID]
self._serial_number = data['attributes'][ATTR_SERIAL_NUMBER]
@property
def name(self):
return self._name
@property
def state(self):
return self._state
@property
def supported_features(self):
return SUPPORT_FLOORPLAN_SPEAKER
@property
def address(self):
return self._address
@property
def volume_level(self):
return self._volume
@property
def media_content_id(self):
return self._media_content_id
@property
def battery_level(self):
return self._battery_level
@property
def device_id(self):
return self._device_id
@property
def serial_number(self):
return self._serial_number
@property
def device_state_attributes(self):
return {
ATTR_ADDRESS: self._address,
ATTR_BATTERY_LEVEL: self._battery_level,
ATTR_SCREEN_BRIGHTNESS: self._screen_brightness,
ATTR_DEVICE_ID: self._device_id,
ATTR_SERIAL_NUMBER: self._serial_number,
}
def set_volume_level(self, volume):
self._volume = volume
def play_media(self, media_type, media_id, **kwargs):
_LOGGER.info('play_media: %s', media_id)
def media_play(self):
_LOGGER.info('media_play')
def media_pause(self):
_LOGGER.info('media_pause')
def media_stop(self):
_LOGGER.info('media_stop')

View File

@@ -0,0 +1,69 @@
"""
Sensor for checking the size of your HA database file.
For more details about this platform, please refer to the documentation at
https://home-assistant.io/components/sensor.database
"""
import logging
import os
from homeassistant.helpers.entity import Entity
_LOGGER = logging.getLogger(__name__)
PATH = "/config/home-assistant_v2.db"
def setup_platform(hass, config, add_devices, discovery_info=None):
"""Set up the database sensor."""
db = Database(PATH)
add_devices([db], True)
class Database(Entity):
"""Representation of the HA database."""
ICON = 'mdi:harddisk'
def __init__(self, path):
"""Initialize the data object."""
self._path = path # Need to check its a valid path
self._size = None
self._name = "Database_sensor"
self._attributes = {}
self._unit_of_measurement = 'MB'
self.update()
def update(self):
"""Get the size of the database."""
self._size = self.get_db_size(self._path)
def get_db_size(self, path):
statinfo = os.stat(path)
decimals = 2
db_size = round(statinfo.st_size/1e6, decimals)
return db_size
@property
def name(self):
"""Return the name of the sensor."""
return self._name
@property
def state(self):
"""Return the state of the sensor."""
return self._size
@property
def icon(self):
"""Icon to use in the frontend, if any."""
return self.ICON
@property
def device_state_attributes(self):
"""Attributes."""
return self._attributes
@property
def unit_of_measurement(self):
"""Return the unit of measurement of this entity, if any."""
return self._unit_of_measurement

View File

@@ -0,0 +1,82 @@
"""
Sensor to check the status of a Minecraft server.
"""
import logging
from homeassistant.helpers.entity import Entity
ATTR_USERS = 'users_online'
ATTR_MAX = 'users_max'
ATTR_MOTD = 'MOTD'
ATTR_VERSION = 'Version'
ICON = 'mdi:minecraft'
REQUIREMENTS = ['mcstatus==2.1']
# pylint: disable=unused-argument
def setup_platform(hass, config, add_devices, discovery_info=None):
"""Setup the Minecraft server platform."""
from mcstatus import MinecraftServer as mcserver
logger = logging.getLogger(__name__)
server = config.get('server')
name = config.get('name')
if server is None:
logger.error('No server specified')
return False
elif name is None:
logger.error('No name specified')
return False
add_devices([
MCServerSensor(server, name, mcserver)
])
class MCServerSensor(Entity):
"""A class for the Minecraft server."""
# pylint: disable=abstract-method
def __init__(self, server, name, mcserver):
"""Initialize the sensor."""
self._mcserver = mcserver
self._server = server
self._name = name
self.update()
@property
def name(self):
"""Return the name of the server."""
return self._name
@property
def state(self):
"""Return the state of the sensor."""
return self._state
# pylint: disable=no-member
def update(self):
"""Update device state."""
status = self._mcserver.lookup(self._server).status()
query = self._mcserver.lookup(self._server).query()
self._state = status.players.online
#self._max = str(status.players.max)
self._max = status.players.max
self._users = query.players.names
self._motd = query.motd
self._version = query.software.version
@property
def device_state_attributes(self):
"""Return the state attributes."""
return {
ATTR_USERS: self._users,
ATTR_MAX: self._max,
ATTR_MOTD: self._motd,
ATTR_VERSION: self._version
}
@property
def icon(self):
"""Return the icon to use in the frontend."""
return ICON

View File

@@ -0,0 +1,419 @@
binary_sensor.bedroom_alarm_panel:
friendly_name: 'Bedroom Alarm Panel'
hidden: False
homebridge_hidden: true
binary_sensor.carlowink:
friendly_name: 'Carlo-Wink'
hidden: False
homebridge_hidden: True
icon: mdi:router-wireless
binary_sensor.downstairs_thermostat_fan:
friendly_name: 'Downstairs Thermostat Fan'
hidden: True
homebridge_hidden: True
binary_sensor.downstairs_thermostat_has_leaf:
friendly_name: 'Downstairs Thermostat Has Leaf'
hidden: True
homebridge_hidden: True
binary_sensor.downstairs_thermostat_is_locked:
friendly_name: 'Downstairs Thermostat Is Locked'
hidden: True
homebridge_hidden: True
binary_sensor.downstairs_thermostat_is_using_emergency_heat:
friendly_name: 'Downstairs Thermostat Is Using Emergency Heat'
hidden: True
homebridge_hidden: True
binary_sensor.downstairs_thermostat_online:
friendly_name: 'Downstairs Thermostat Online'
hidden: True
homebridge_hidden: True
binary_sensor.entry_alarm_panel:
friendly_name: 'Entry Alarm Panel'
hidden: False
homebridge_hidden: true
binary_sensor.hallway_linen_opened:
friendly_name: 'Hallway Linen Door'
hidden: False
homebridge_hidden: true
icon: mdi:home-variant
binary_sensor.hallway_nest_protect_kids_hallway_online:
friendly_name: 'Kids Hallway Protect'
hidden: False
homebridge_hidden: true
icon: mdi:nest-protect
binary_sensor.hallway_pantry_opened:
friendly_name: 'Hallway Pantry Door'
hidden: False
homebridge_hidden: true
icon: mdi:home-variant
binary_sensor.iss:
friendly_name: 'Iss Visibility'
hidden: False
homebridge_hidden: True
icon: mdi:satellite-variant
binary_sensor.justins_room_nest_protect_online:
friendly_name: 'Justins Room Protect'
hidden: False
homebridge_hidden: true
icon: mdi:nest-protect
binary_sensor.kitchen_door_opened:
friendly_name: 'Kitchen Door'
hidden: False
homebridge_hidden: False
icon: mdi:home-variant
binary_sensor.kitchen_nest_protect_online:
friendly_name: 'Kitchen Protect'
hidden: False
homebridge_hidden: true
icon: mdi:nest-protect
binary_sensor.master_bedroom_nest_protect_online:
friendly_name: 'Master Bedroom Protect'
hidden: False
homebridge_hidden: true
icon: mdi:nest-protect
binary_sensor.master_hallway_nest_protect_online:
friendly_name: 'Master Hallway Protect'
hidden: False
homebridge_hidden: true
icon: mdi:nest-protect
binary_sensor.mcu1_gpio10:
friendly_name: 'Dining Room Windows'
hidden: False
homebridge_hidden: true
icon: mdi:security-home
binary_sensor.mcu1_gpio12:
friendly_name: 'Interior Garage Door'
hidden: False
homebridge_hidden: true
icon: mdi:security-home
binary_sensor.mcu1_gpio13:
friendly_name: 'Front Den Windows'
hidden: False
homebridge_hidden: true
icon: mdi:security-home
binary_sensor.mcu1_gpio14:
friendly_name: 'Office Window'
hidden: False
homebridge_hidden: true
icon: mdi:security-home
binary_sensor.mcu1_gpio4:
friendly_name: 'Paige Window'
hidden: False
homebridge_hidden: true
icon: mdi:security-home
binary_sensor.mcu1_gpio5:
friendly_name: 'Front Door'
hidden: False
homebridge_hidden: true
icon: mdi:security-home
binary_sensor.mcu2_gpio10:
friendly_name: 'Master Bathroom Window'
hidden: False
homebridge_hidden: true
icon: mdi:security-home
binary_sensor.mcu2_gpio12:
friendly_name: 'Main Slider'
hidden: False
homebridge_hidden: true
icon: mdi:security-home
binary_sensor.mcu2_gpio13:
friendly_name: 'Upstairs Bedroom Window'
hidden: False
homebridge_hidden: true
icon: mdi:security-home
binary_sensor.mcu2_gpio14:
friendly_name: 'Justin Window'
hidden: False
homebridge_hidden: true
icon: mdi:security-home
binary_sensor.mcu2_gpio4:
friendly_name: 'Dinette Windows'
hidden: False
homebridge_hidden: true
icon: mdi:security-home
binary_sensor.mcu2_gpio5:
friendly_name: 'Back Door'
hidden: False
homebridge_hidden: true
icon: mdi:security-home
binary_sensor.mcu2_gpio9:
friendly_name: 'Master Slider'
hidden: False
homebridge_hidden: true
icon: mdi:security-home
binary_sensor.mcu3_gpio10:
friendly_name: 'Master Bedroom Window'
hidden: False
homebridge_hidden: true
icon: mdi:security-home
binary_sensor.mcu3_gpio14:
friendly_name: 'Upstairs Windows'
hidden: False
homebridge_hidden: true
icon: mdi:security-home
binary_sensor.mcu3_gpio4:
friendly_name: 'Stacey Bedroom Window'
hidden: False
homebridge_hidden: true
icon: mdi:security-home
binary_sensor.mcu3_gpio5:
friendly_name: 'Carlo Bedroom Window'
hidden: False
homebridge_hidden: true
icon: mdi:security-home
binary_sensor.mcu3_light:
friendly_name: 'Panel Door'
hidden: False
homebridge_hidden: true
icon: mdi:security-home
binary_sensor.office_motion:
friendly_name: 'Office Motion Sensor'
hidden: False
homebridge_hidden: true
icon: mdi:sensor
binary_sensor.office_nest_protect_online:
friendly_name: 'Office Protect'
hidden: False
homebridge_hidden: true
icon: mdi:nest-protect
binary_sensor.paiges_room_nest_protect_paiges_room_online:
friendly_name: 'Paiges Room Protect'
hidden: False
homebridge_hidden: true
icon: mdi:nest-protect
binary_sensor.sleepnumber_carlo_carlo_is_in_bed:
friendly_name: 'Carlo Is In Bed'
hidden: False
homebridge_hidden: False
binary_sensor.sleepnumber_carlo_stacey_is_in_bed:
friendly_name: 'Stacey Is In Bed'
hidden: False
homebridge_hidden: False
binary_sensor.upstairs_bedroom_nest_protect_online:
friendly_name: 'Upstairs Bedroom Protect'
hidden: False
homebridge_hidden: true
icon: mdi:nest-protect
binary_sensor.upstairs_living_room_nest_protect_online:
friendly_name: 'Upstairs Living Room Protect'
hidden: False
homebridge_hidden: true
icon: mdi:nest-protect
binary_sensor.upstairs_thermostat_fan:
friendly_name: 'Upstairs Thermostat Fan'
hidden: True
homebridge_hidden: True
binary_sensor.upstairs_thermostat_has_leaf:
friendly_name: 'Upstairs Thermostat Has Leaf'
hidden: True
homebridge_hidden: True
binary_sensor.upstairs_thermostat_is_locked:
friendly_name: 'Upstairs Thermostat Is Locked'
hidden: True
homebridge_hidden: True
binary_sensor.upstairs_thermostat_is_using_emergency_heat:
friendly_name: 'Upstairs Thermostat Is Using Emergency Heat'
hidden: True
homebridge_hidden: True
binary_sensor.upstairs_thermostat_online:
friendly_name: 'Upstairs Thermostat Online'
hidden: True
homebridge_hidden: True

12
config/customize/covers.yaml Executable file
View File

@@ -0,0 +1,12 @@
cover.large_garage:
friendly_name: 'Large Garage'
hidden: False
homebridge_cover_type: garage_door
cover.small_garage:
friendly_name: 'Small Garage'
hidden: False
homebridge_cover_type: garage_door

View File

@@ -0,0 +1,389 @@
device_tracker.actiontechap:
friendly_name: 'Actiontechap'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.bedroom_alarm_panel:
friendly_name: 'Bedroom Alarm Panel'
hidden: True
homebridge_hidden: True
device_tracker.hue_hub_1:
friendly_name: 'Hue Hub 1'
hidden: True
homebridge_hidden: True
device_tracker.hue_hub_2:
friendly_name: 'Hue Hub 2'
hidden: True
homebridge_hidden: True
device_tracker.entry_alarm_panel:
friendly_name: 'Entry Alarm Panel'
hidden: True
homebridge_hidden: True
device_tracker.alexa_echo:
friendly_name: 'Alexa Echo'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.amazon_dot:
friendly_name: 'Amazon Dot'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.amazon_fire_stick:
friendly_name: '50f5da4cd5ec'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.carlo:
friendly_name: 'Carlo'
hidden: False
homebridge_hidden: True
icon: False
device_tracker.carlopihole:
friendly_name: 'Carlo-Pihole'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.chromecast_audio_1:
friendly_name: 'Chromecast Audio 1'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.chromecast_audio_2:
friendly_name: 'Chromecast Audio 2'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.circle:
friendly_name: 'Circle'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.study_ap:
friendly_name: 'Ubiquity AP Study'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.cisco_ap:
friendly_name: 'Cisco Ap'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.hue_h_1:
friendly_name: 'Hue H 1'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.hue_h_2:
friendly_name: 'Hue H 2'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.ipmdemounit:
friendly_name: 'Ipmdemounit'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.justin_dot:
friendly_name: 'Justin-Dot'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.large_garage:
friendly_name: 'Large Garage'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.living_room_roku:
friendly_name: 'Living Room Roku'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.master_bedroom_roku:
friendly_name: 'Master Bedroom Roku'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.nest_downstairs:
friendly_name: 'Nest Downstairs'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.nest_upstairs:
friendly_name: 'Nest Upstairs'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.nodemcu1:
friendly_name: 'Nodemcu1'
hidden: True
homebridge_hidden: True
icon: mdi:chip
device_tracker.nodemcu2:
friendly_name: 'Nodemcu2'
hidden: True
homebridge_hidden: True
icon: mdi:chip
device_tracker.nodemcu3:
friendly_name: 'Nodemcu3'
hidden: True
homebridge_hidden: True
icon: mdi:chip
device_tracker.nodemcu4:
friendly_name: 'A020a618077f'
hidden: True
homebridge_hidden: True
icon: mdi:chip
device_tracker.printer:
friendly_name: '001ba94e7b4a'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.rachio:
friendly_name: 'Rachio'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.rgb_led_garage_large:
friendly_name: 'Rgb Led Garage Large'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.rgb_led_garage_small:
friendly_name: 'Rgb Led Garage Small'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.rgb_led_outdoor_den:
friendly_name: 'Rgb Led Outdoor Den'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.samsungtv:
friendly_name: 'Samsung Tv'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.skybell:
friendly_name: 'Skybell'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.sleep_number_bed:
friendly_name: 'Sleep Number Bed'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.small_garage:
friendly_name: 'Small Garage'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.smart_water_meter:
friendly_name: 'Smart Water Meter'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.stacey:
friendly_name: 'Stacey'
hidden: False
homebridge_hidden: True
icon: False
device_tracker.staceyiphone_nat:
friendly_name: 'Stacey Iphone 2'
hidden: True
homebridge_hidden: true
device_tracker.tablotv:
friendly_name: 'Tablotv'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.trendnetap:
friendly_name: 'Trendnet Ap'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.unifi_ap:
friendly_name: 'Unifi Ap'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.wii:
friendly_name: 'Wii'
hidden: True
homebridge_hidden: True
icon: False
device_tracker.withings_scale:
friendly_name: 'Withings Scale'
hidden: True
homebridge_hidden: True
icon: False

235
config/customize/groups.yaml Executable file
View File

@@ -0,0 +1,235 @@
group.all_automations:
friendly_name: 'All Automations'
hidden: True
homebridge_hidden: true
group.all_covers:
friendly_name: 'All Covers'
hidden: True
homebridge_hidden: true
group.all_devices:
friendly_name: 'All Devices'
hidden: True
homebridge_hidden: true
group.all_lights:
friendly_name: 'All Lights'
hidden: True
group.all_scripts:
friendly_name: 'All Scripts'
hidden: True
homebridge_hidden: true
group.all_switches:
friendly_name: 'All Switches'
hidden: True
group.amps:
friendly_name: 'Amps'
hidden: False
homebridge_hidden: true
group.sleep_number_bed:
friendly_name: 'Sleep Number Bed'
hidden: False
homebridge_hidden: true
group.bedroom_lights:
friendly_name: 'Bedroom Lights'
hidden: False
group.den_lights:
friendly_name: 'Den Lights'
hidden: False
group.dinette_lights:
friendly_name: 'Dinette Lights'
hidden: False
group.dining_room_lights:
friendly_name: 'Dining Room Lights'
hidden: False
group.exterior_lights:
friendly_name: 'Exterior Lights'
hidden: False
group.family:
friendly_name: 'Family'
hidden: False
homebridge_hidden: true
group.foyer_lights:
friendly_name: 'Foyer Lights'
hidden: False
group.garage_doors:
friendly_name: 'Garage Doors'
hidden: False
homebridge_hidden: true
group.garage_lights:
friendly_name: 'Garage Lights'
hidden: False
group.hallway_lights:
friendly_name: 'Hallway Lights'
hidden: False
group.home_modes:
friendly_name: 'Home Modes'
hidden: False
homebridge_hidden: true
group.interior_lights:
friendly_name: 'Interior Lights'
hidden: False
group.justins_room:
friendly_name: 'Justins Room'
hidden: False
group.kitchen_lights:
friendly_name: 'Kitchen Lights'
hidden: False
group.living_room_accents:
friendly_name: 'Living Room Accents'
hidden: False
group.living_room_lights:
friendly_name: 'Living Room Lights'
hidden: False
group.media_players:
friendly_name: 'Media Players'
hidden: False
homebridge_hidden: true
group.network:
friendly_name: 'Network'
hidden: False
homebridge_hidden: true
group.office_lights:
friendly_name: 'Office Lights'
hidden: False
group.outdoor_front_lights:
friendly_name: 'Outdoor Front Lights'
hidden: False
group.outdoor_pool_lights:
friendly_name: 'Outdoor Pool Lights'
hidden: False
group.paiges_room:
friendly_name: 'Paiges Room'
hidden: False
group.sensors:
friendly_name: 'Sensors'
hidden: False
homebridge_hidden: true
group.switches:
friendly_name: 'Switches'
hidden: False
homebridge_hidden: true
group.upstairs_lights:
friendly_name: 'Upstairs Lights'
hidden: False
group.weather:
friendly_name: 'Weather'
hidden: False
homebridge_hidden: true

View File

@@ -0,0 +1,177 @@
input_boolean.alert_mode:
friendly_name: 'Alert Mode'
hidden: False
homebridge_hidden: True
icon: mdi:alert-octagram
input_boolean.color_tornado:
friendly_name: 'Color Tornado'
hidden: False
homebridge_hidden: True
icon: mdi:invert-colors
input_boolean.daylight_override:
friendly_name: 'Daylight Override'
hidden: False
homebridge_hidden: true
input_boolean.flash:
friendly_name: 'Flash'
hidden: False
homebridge_hidden: true
icon: mdi:yin-yang
input_boolean.good_morning:
friendly_name: 'Good Morning'
hidden: False
homebridge_hidden: True
icon: mdi:weather-sunset-up
input_boolean.good_night:
friendly_name: 'Good Night'
hidden: False
homebridge_hidden: True
icon: mdi:weather-night
input_boolean.guard_dog:
friendly_name: 'Guard Dog'
hidden: False
homebridge_hidden: true
icon: mdi:paw
input_boolean.guest_mode:
friendly_name: 'Guest Mode'
hidden: False
homebridge_hidden: true
icon: mdi:account-alert
input_boolean.home_stats:
friendly_name: 'Home Stats'
hidden: False
homebridge_hidden: true
icon: mdi:chart-bar
input_boolean.house_station:
friendly_name: 'House Station'
hidden: False
homebridge_hidden: true
icon: mdi:radio
input_boolean.lastmsg:
friendly_name: 'Repeat Message'
hidden: False
homebridge_hidden: true
icon: mdi:repeat-once
input_boolean.meal_time:
friendly_name: 'Meal Time'
hidden: False
homebridge_hidden: true
icon: mdi:food
input_boolean.medicine:
friendly_name: 'Medicine'
hidden: False
homebridge_hidden: true
input_boolean.responsibilities:
friendly_name: 'Responsibilities'
hidden: False
homebridge_hidden: true
icon: mdi:delete-sweep
input_boolean.school_mode:
friendly_name: 'School Mode'
hidden: False
homebridge_hidden: true
icon: mdi:school
input_boolean.self_destruct:
friendly_name: 'Self Destruct'
hidden: False
homebridge_hidden: true
icon: mdi:skull
input_boolean.sleepy_dog:
friendly_name: 'Sleepy Dog'
hidden: False
homebridge_hidden: true
icon: mdi:bell-sleep
input_boolean.speech_notifications:
friendly_name: 'Speech Notifications'
hidden: False
homebridge_hidden: true
icon: mdi:speaker-wireless
input_boolean.tv_time:
friendly_name: 'Tv Time'
hidden: False
homebridge_hidden: true
icon: mdi:television-guide
input_boolean.work:
friendly_name: 'Work'
hidden: False
homebridge_hidden: true
icon: mdi:briefcase

423
config/customize/lights.yaml Executable file
View File

@@ -0,0 +1,423 @@
light.bedroom:
friendly_name: 'Bedroom'
hidden: False
homebridge_hidden: True
light.bedroom_hallway:
friendly_name: 'Bedroom Hallway'
hidden: False
homebridge_hidden: True
light.couch_1:
friendly_name: 'Couch 1'
hidden: False
homebridge_hidden: True
light.d1:
friendly_name: 'D1'
hidden: False
homebridge_hidden: True
light.d2:
friendly_name: 'D2'
hidden: False
homebridge_hidden: True
light.den_lamp:
friendly_name: 'Den Lamp'
hidden: False
homebridge_hidden: True
light.f1:
friendly_name: 'F1'
hidden: False
homebridge_hidden: True
light.f2:
friendly_name: 'F2'
hidden: False
homebridge_hidden: True
light.fridge:
friendly_name: 'Fridge'
hidden: False
homebridge_hidden: True
light.garage_attic:
friendly_name: 'Garage Attic'
hidden: False
homebridge_hidden: true
light.justin_go:
friendly_name: 'Justin Go'
hidden: False
homebridge_hidden: True
light.k1:
friendly_name: 'K1'
hidden: False
homebridge_hidden: True
light.k2:
friendly_name: 'K2'
hidden: False
homebridge_hidden: True
light.k3:
friendly_name: 'K3'
hidden: False
homebridge_hidden: True
light.k4:
friendly_name: 'K4'
hidden: False
homebridge_hidden: True
light.k5:
friendly_name: 'K5'
hidden: False
homebridge_hidden: True
light.k6:
friendly_name: 'K6'
hidden: False
homebridge_hidden: True
light.kids_hallway:
friendly_name: 'Kids Hallway'
hidden: False
homebridge_hidden: True
light.led_garage_large:
friendly_name: 'Garage Large Led'
hidden: False
homebridge_hidden: True
light.led_garage_snip:
friendly_name: 'Garage Snip Led'
hidden: False
homebridge_hidden: True
light.led_garage_small:
friendly_name: 'Garage Small Led'
hidden: False
homebridge_hidden: True
light.led_outdoor_den:
friendly_name: 'Outdoor Den Led'
hidden: False
homebridge_hidden: True
light.m1_back_left:
friendly_name: 'M1 Back Left'
hidden: False
homebridge_hidden: True
light.m1_back_right:
friendly_name: 'M1 Back Right'
hidden: False
homebridge_hidden: True
light.m1_front_left:
friendly_name: 'M1 Front Left'
hidden: False
homebridge_hidden: True
light.m1_front_right:
friendly_name: 'M1 Front Right'
hidden: False
homebridge_hidden: True
light.m1_slider:
friendly_name: 'M1 Slider'
hidden: False
homebridge_hidden: True
light.master_toilet:
friendly_name: 'Master Toilet'
hidden: False
homebridge_hidden: True
light.office_lamp:
friendly_name: 'Office Lamp'
hidden: False
homebridge_hidden: False
light.outdoor_bathroom:
friendly_name: 'Outdoor Bathroom'
hidden: False
homebridge_hidden: True
light.outdoor_foyer:
friendly_name: 'Outdoor Foyer'
hidden: False
homebridge_hidden: True
light.outdoor_sconce_1:
friendly_name: 'Outdoor Sconce 1'
hidden: False
homebridge_hidden: True
light.outdoor_sconce_2:
friendly_name: 'Outdoor Sconce 2'
hidden: False
homebridge_hidden: True
light.outdoor_sconce_3:
friendly_name: 'Outdoor Sconce 3'
hidden: False
homebridge_hidden: True
light.outside_pool_lights:
friendly_name: 'Outside Pool Lights'
hidden: False
homebridge_hidden: true
light.p1_back_left:
friendly_name: 'P1 Back Left'
hidden: False
homebridge_hidden: True
light.p1_back_right:
friendly_name: 'P1 Back Right'
hidden: False
homebridge_hidden: True
light.p1_front_left:
friendly_name: 'P1 Front Left'
hidden: False
homebridge_hidden: True
light.p1_front_right:
friendly_name: 'P1 Front Right'
hidden: False
homebridge_hidden: True
light.paige_go:
friendly_name: 'Paige Go'
hidden: False
homebridge_hidden: True
light.s1:
friendly_name: 'S1'
hidden: False
homebridge_hidden: True
light.s2:
friendly_name: 'S2'
hidden: False
homebridge_hidden: True
light.s3:
friendly_name: 'S3'
hidden: False
homebridge_hidden: True
light.s4:
friendly_name: 'S4'
hidden: False
homebridge_hidden: True
light.sink:
friendly_name: 'Sink'
hidden: False
homebridge_hidden: True
light.tv_light:
friendly_name: 'Tv Light'
hidden: False
homebridge_hidden: True
light.tv_stand_light:
friendly_name: 'Tv Stand Light'
hidden: False
homebridge_hidden: True
light.upstairs_lamp:
friendly_name: 'Upstairs Lamp'
hidden: False
homebridge_hidden: True

79
config/customize/scenes.yaml Executable file
View File

@@ -0,0 +1,79 @@
scene.all_off:
friendly_name: 'All Off'
hidden: False
scene.front_full_brightness:
friendly_name: 'Front Full Brightness'
hidden: False
scene.month_fathers_day_colors:
friendly_name: 'Fathers Day Colors'
hidden: True
scene.month_cinco_de_mayo_colors:
friendly_name: 'Month Cinco De Mayo Colors'
hidden: True
scene.month_easter_colors:
friendly_name: 'Month Easter Colors'
hidden: True
scene.month_marti_gras_colors:
friendly_name: 'Month Marti Gras Colors'
hidden: True
scene.month_rwb_colors:
friendly_name: 'Month Rwb Colors'
hidden: True
scene.month_st_patty_colors:
friendly_name: 'Month St Patty Colors'
hidden: True
scene.month_standard_colors:
friendly_name: 'Month Standard Colors'
hidden: True
scene.month_valentine_colors:
friendly_name: 'Month Valentine Colors'
hidden: True
scene.tv_time:
friendly_name: 'Tv Time'
hidden: False

89
config/customize/scripts.yaml Executable file
View File

@@ -0,0 +1,89 @@
###################################
## Scripts Section
###################################
script.amp_settings:
friendly_name: 'AMP Settings'
hidden: True
script.dog_bark:
friendly_name: 'Dog Bark'
hidden: True
script.flash_notify:
friendly_name: 'Flash Notify'
hidden: True
script.emergency:
friendly_name: 'Emergency'
hidden: True
script.front_house_motion:
friendly_name: 'Front House Motion'
hidden: True
script.notify_engine:
friendly_name: 'Ifttt Notify'
hidden: True
script.interior_off:
friendly_name: 'Interior Off'
hidden: False
script.monthly_color_scene:
friendly_name: 'Monthly Front House Scene'
hidden: False
script.skybell_pressed:
friendly_name: 'Skybell Pressed'
hidden: True
script.switch_turn_off_all:
friendly_name: 'Switch Turn Off All'
hidden: False
script.speechcon:
friendly_name: 'Speechcon'
hidden: True
script.speech_processing:
friendly_name: 'Voice Processing'
hidden: True
script.speech_engine:
friendly_name: 'Voice Notify'
hidden: True
script.tweet_engine:
friendly_name: 'Tweet Notify'
hidden: True

1013
config/customize/sensors.yaml Executable file

File diff suppressed because it is too large Load Diff

117
config/customize/switches.yaml Executable file
View File

@@ -0,0 +1,117 @@
###################################
## Switches Section
###################################
switch.den_outlet:
friendly_name: 'Den Outlet'
hidden: False
icon: mdi:power-plug
assumed_state: true
switch.foyer_outlet:
friendly_name: 'Foyer Outlet'
hidden: False
icon: mdi:power-plug
assumed_state: true
switch.front_door_outlet:
friendly_name: 'Front Door Outlet'
hidden: False
icon: mdi:power-plug
assumed_state: true
switch.garage_outlet:
friendly_name: 'Garage Outlet'
hidden: False
icon: mdi:power-plug
assumed_state: true
switch.landscaping:
friendly_name: 'Landscaping Lights'
hidden: True
homebridge_hidden: True
switch.back_landscaping:
friendly_name: 'Back Landscaping'
hidden: False
homebridge_hidden: false
icon: mdi:flower
switch.front_landscaping:
friendly_name: 'Front Landscaping'
hidden: False
homebridge_hidden: False
icon: mdi:flower
switch.pool_deck:
friendly_name: 'Pool Deck'
hidden: False
homebridge_hidden: False
switch.kitchen_accent_2:
friendly_name: 'Kitchen Accents 2'
hidden: False
icon: mdi:lightbulb-outline
assumed_state: true
switch.kitchen_accents:
friendly_name: 'Kitchen Accents'
hidden: False
icon: mdi:lightbulb-outline
assumed_state: true
switch.living_room_amp:
friendly_name: 'Living Room Amp'
hidden: False
icon: mdi:music-circle
switch.living_room_outlet:
friendly_name: 'Living Room Outlet'
hidden: False
icon: mdi:power-plug
assumed_state: true
switch.master_bathroom_accents:
friendly_name: 'Master Bathroom Accents'
hidden: False
icon: mdi:lightbulb-outline
assumed_state: true
switch.outlet_304_2:
friendly_name: 'Outlet 304 2'
hidden: False
icon: mdi:power-plug
assumed_state: true
switch.printer_outlet:
friendly_name: 'Printer Outlet'
hidden: False
icon: mdi:printer
assumed_state: true
switch.pihole_temp_disable:
friendly_name: 'Pihole Temp Disable'
hidden: False
homebridge_hidden: true

18
config/customize/weather.yaml Executable file
View File

@@ -0,0 +1,18 @@
###################################
## Nest Section
###################################
climate.downstairs:
friendly_name: 'Nest Downstairs'
icon: mdi:air-conditioner
climate.upstairs:
friendly_name: 'Nest Upstairs'
icon: mdi:air-conditioner
###################################
## Sun Section
###################################
sun.sun:
hidden: true

15
config/device_tracker/README.md Executable file
View File

@@ -0,0 +1,15 @@
# [![Build Status](https://travis-ci.org/CCOSTAN/Home-AssistantConfig.svg?branch=master)](https://travis-ci.org/CCOSTAN/Home-AssistantConfig) Home-Assistant Config by [@ccostan](http://www.twitter.com/ccostan)
[Home Assistant](https://home-assistant.io/) configuration files (YAMLs)
Be sure to :star: my repo so you can keep up to date on the daily progress!
For presence detection, I basically just use NMAP. I've used it from the beginning and it's been rock solid ever since. No issues at all and if it ain't broken, why fix it?
#Still have questions on my Config?
Follow me on twitter : [@CCostan](https://twitter.com/ccostan)
You can also vist my [Blog](http://www.vmwareinfo.com/search/label/iot) for all of my [Home Automation Posts](http://www.vmwareinfo.com/search/label/iot).
<a target='_blank' rel='nofollow' href='https://app.codesponsor.io/link/3MkgeKFUVKPNW45Vtwu9Abd4/CCOSTAN/Home-AssistantConfig'>
<img alt='Sponsor' width='888' height='68' src='https://app.codesponsor.io/embed/3MkgeKFUVKPNW45Vtwu9Abd4/CCOSTAN/Home-AssistantConfig.svg' />
</a>

View File

@@ -0,0 +1,7 @@
- platform: nmap_tracker
hosts: 192.168.10.1/24
track_new_devices: no
exclude:
- 192.168.10.10
# scan_options: " --privileged -sP "
# consider_home: 1800 - Added to known_devices.yaml instead on a device by device basis.

View File

@@ -0,0 +1,5 @@
- platform: ping
hosts:
chromecast_2: 192.168.1.231
camera_driveway: 192.168.1.15
access_point: 192.168.1.59

View File

@@ -0,0 +1,6 @@
- platform: unifi
username: !secret unifi_username
password: !secret unifi_password
host: !secret unifi_host
verify_ssl: false
track_new_devices: no

171
config/entity_registry.yaml Normal file
View File

@@ -0,0 +1,171 @@
climate.downstairs:
platform: nest
unique_id: fn9dKY_tWE2bMKuCEsb-64cJSplFTogF
climate.upstairs:
platform: nest
unique_id: IGN9FBW-V-uQdnhd222ZW4cJSplFTogF
sensor.carlojuice_charge_time:
platform: juicenet
unique_id: 0817010902030429879317243104-charge_time
sensor.carlojuice_energy_added:
platform: juicenet
unique_id: 0817010902030429879317243104-energy_added
sensor.carlojuice_amps:
platform: juicenet
unique_id: 0817010902030429879317243104-amps
sensor.carlojuice_watts:
platform: juicenet
unique_id: 0817010902030429879317243104-watts
sensor.carlojuice_voltage:
platform: juicenet
unique_id: 0817010902030429879317243104-voltage
sensor.carlojuice_charging_status:
platform: juicenet
unique_id: 0817010902030429879317243104-status
sensor.carlojuice_temperature:
platform: juicenet
unique_id: 0817010902030429879317243104-temperature
sensor.carlo_6s_battery_state:
platform: ios
unique_id: state_carlo_6s
sensor.carlo_6s_battery_level:
platform: ios
unique_id: level_carlo_6s
sensor.staceys_iphone_battery_level:
platform: ios
unique_id: level_staceys_iphone
sensor.staceys_iphone_battery_state:
platform: ios
unique_id: state_staceys_iphone
light.justin_go:
platform: hue
unique_id: 00:17:88:01:01:15:54:3c-0b
light.d2:
platform: hue
unique_id: 7c:e5:24:00:00:10:e6:a4-01
light.outdoor_bathroom:
platform: hue
unique_id: 7c:e5:24:00:00:16:f4:3b-01
light.paige_go:
platform: hue
unique_id: 00:17:88:01:01:14:f8:fe-0b
light.k2:
platform: hue
unique_id: 7c:e5:24:00:00:04:19:c3-01
light.k4:
platform: hue
unique_id: 7c:e5:24:00:00:02:db:d2-01
light.tv_light:
platform: hue
unique_id: 00:17:88:01:01:1b:e7:78-0b
light.couch_1:
platform: hue
unique_id: 00:17:88:01:01:1b:96:08-0b
light.m1_slider:
platform: hue
unique_id: 7c:e5:24:00:00:01:91:96-01
light.bedroom_hallway:
platform: hue
unique_id: 7c:e5:24:00:00:13:79:f9-01
light.kids_hallway:
platform: hue
unique_id: 7c:e5:24:00:00:07:36:2e-01
light.garage_attic:
platform: hue
unique_id: 7c:e5:24:00:00:13:f0:3e-01
light.k5:
platform: hue
unique_id: 7c:e5:24:00:00:05:3a:78-01
light.bedroom:
platform: hue
unique_id: 7c:e5:24:00:00:11:a8:56-01
light.d1:
platform: hue
unique_id: 7c:e5:24:00:00:14:01:b6-01
light.m1_back_right:
platform: hue
unique_id: 7c:e5:24:00:00:01:b7:6b-01
light.tv_stand_light:
platform: hue
unique_id: 00:17:88:01:01:1b:96:0f-0b
light.m1_front_right:
platform: hue
unique_id: 7c:e5:24:00:00:05:3a:cc-01
light.m1_back_left:
platform: hue
unique_id: 7c:e5:24:00:00:05:23:09-01
light.k3:
platform: hue
unique_id: 7c:e5:24:00:00:06:16:3a-01
light.m1_front_left:
platform: hue
unique_id: 7c:e5:24:00:00:05:4a:30-01
light.k1:
platform: hue
unique_id: 7c:e5:24:00:00:01:74:65-01
light.sink:
platform: hue
unique_id: 7c:e5:24:00:00:07:64:12-01
light.office_lamp:
platform: hue
unique_id: 7c:e5:24:00:00:12:66:0a-01
light.fridge:
platform: hue
unique_id: 7c:e5:24:00:00:07:97:c7-01
light.k6:
platform: hue
unique_id: 7c:e5:24:00:00:05:82:ee-01
light.outdoor_foyer:
platform: hue
unique_id: 00:17:88:01:02:6f:af:67-0b
light.upstairs_lamp:
platform: hue
unique_id: 7c:e5:24:00:00:02:be:e3-01
light.outdoor_sconce_1:
platform: hue
unique_id: 00:17:88:01:10:25:b0:3b-0b
light.den_lamp:
platform: hue
unique_id: 7c:e5:24:00:00:13:39:e9-01
light.s1:
platform: hue
unique_id: 7c:e5:24:00:00:04:44:f7-01
light.f1:
platform: hue
unique_id: 7c:e5:24:00:00:02:fb:1b-01
light.s2:
platform: hue
unique_id: 7c:e5:24:00:00:07:94:11-01
light.s3:
platform: hue
unique_id: 7c:e5:24:00:00:06:64:bd-01
light.f2:
platform: hue
unique_id: 7c:e5:24:00:00:06:14:91-01
light.outdoor_sconce_2:
platform: hue
unique_id: 00:17:88:01:10:4a:ed:01-0b
light.upstairs_hallway:
platform: hue
unique_id: 7c:e5:24:00:00:12:b3:ff-01
light.outdoor_sconce_3:
platform: hue
unique_id: 00:17:88:01:10:25:a0:7f-0b
light.s4:
platform: hue
unique_id: 7c:e5:24:00:00:04:5e:6f-01
light.dimmable_light_2:
platform: hue
unique_id: 7c:e5:24:00:00:06:50:b0-01
light.dimmable_light_3:
platform: hue
unique_id: 7c:e5:24:00:00:02:4b:10-01
light.dimmable_light_1:
platform: hue
unique_id: 7c:e5:24:00:00:04:2f:81-01
media_player.livingroomcc:
platform: cast
unique_id: 243eeafb-51e4-b47a-1d33-ff04819177d5
media_player.whole_house:
platform: cast
unique_id: 19f3beef-0562-4a1a-bcaf-5b62c4e4757c

View File

@@ -0,0 +1,25 @@
Interior_Lights:
entities:
- group.bedroom_lights
- group.living_room_lights
- group.living_room_accents
- group.dinette_lights
- group.dining_room_lights
- group.den_lights
- group.foyer_lights
- group.office_lights
- group.hallway_lights
- group.kitchen_lights
- group.upstairs_lights
- group.outdoor_pool_lights
- group.garage_lights
- group.paiges_room
- group.justins_room
Exterior_Lights:
entities:
- light.outdoor_bathroom
- light.outside_pool_lights
- group.outdoor_pool_lights
- group.outdoor_front_lights
- group.landscaping

5
config/group/MQTT.yaml Executable file
View File

@@ -0,0 +1,5 @@
MQTT:
entities:
- sensor.rachio_watering_time
- sensor.medicine_time
- sensor.last_message

8
config/group/doors.yaml Executable file
View File

@@ -0,0 +1,8 @@
doors:
name: Doors
entities:
- binary_sensor.hallway_linen_opened
- binary_sensor.hallway_pantry_opened
- binary_sensor.kitchen_door_opened
- binary_sensor.MCU2_GPIO12 # Main Slider
- binary_sensor.MCU3_Light # Alarm Door

10
config/group/home_mode.yaml Executable file
View File

@@ -0,0 +1,10 @@
home_modes:
control: hidden
entities:
- input_boolean.guest_mode
- input_boolean.school_mode
- input_boolean.alert_mode
- input_boolean.speech_notifications
- input_boolean.text_notifications
- input_boolean.last_message
- sensor.low_battery

99
config/group/lights.yaml Executable file
View File

@@ -0,0 +1,99 @@
Bedroom lights:
entities:
- light.bedroom
kitchen lights:
entities:
- light.k1
- light.k2
- light.k3
- light.k4
- light.k5
- light.k6
- light.sink
- light.fridge
Living Room lights:
entities:
- light.m1_back_left
- light.m1_back_right
- light.m1_front_left
- light.m1_front_right
- light.m1_slider
Living Room Accents:
entities:
- light.couch_1
- light.tv_light
- light.tv_stand_light
Dinette lights:
entities:
- light.d1
- light.d2
Den lights:
entities:
- light.den_lamp
Foyer lights:
entities:
- light.f1
- light.f2
Office lights:
entities:
- light.office_lamp
Upstairs lights:
entities:
- light.upstairs_lamp
- light.dimmable_light_1
- light.dimmable_light_2
- light.upstairs_hallway
Dining Room lights:
entities:
- light.s1
- light.s2
- light.s3
- light.s4
Outdoor Pool Lights:
entities:
- light.p1_front_left
- light.p1_front_right
- light.p1_back_left
- light.p1_back_right
Outdoor Front Lights:
entities:
- light.outdoor_foyer
- light.outdoor_sconce_1
- light.outdoor_sconce_2
- light.outdoor_sconce_3
- light.led_garage_large
- light.led_garage_snip
- light.led_garage_small
- light.led_outdoor_den
- light.stone_door
Garage lights:
control: hidden
entities:
- light.garage_attic
- switch.garage_outlet
Hallway Lights:
entities:
- light.kids_hallway
- light.bedroom_hallway
- light.upstairs_hallway
Justins Room:
entities:
- light.justin_go
Paiges Room:
entities:
- light.paige_go

View File

@@ -0,0 +1,9 @@
media_players:
entities:
- media_player.livingroomcc
- media_player.whole_house
- media_player.living_room_tv
- media_player.living_room_ultra
- media_player.upstairs_living_room
- media_player.alarm_clock
- media_player.bedroom_alarm_panel

6
config/group/motion.yaml Executable file
View File

@@ -0,0 +1,6 @@
motion:
name: Motion Detectors
entities:
- binary_sensor.office_motion
- binary_sensor.entry_alarm_panel
- binary_sensor.bedroom_alarm_panel

7
config/group/people.yaml Executable file
View File

@@ -0,0 +1,7 @@
Family:
entities:
- device_tracker.carlo
- device_tracker.stacey
- device_tracker.franco
- device_tracker.yolanda
- device_tracker.joyce_ipad

3
config/group/sensors.yaml Executable file
View File

@@ -0,0 +1,3 @@
Sensors:
entities:
- binary_sensor.aeotec_dsb04100_doorwindow_sensor_sensor_3_0

16
config/group/switches.yaml Executable file
View File

@@ -0,0 +1,16 @@
Interior Switches:
entities:
- switch.den_outlet
- switch.living_room_outlet
- switch.foyer_outlet
- switch.kitchen_accents
- switch.kitchen_accent_2
- switch.printer_outlet
- switch.front_door_outlet
- switch.garage_outlet
- switch.living_room_amp
- switch.master_bathroom_accents
- switch.master_bathroom_accents_2
- switch.pool_deck
- switch.1412_2_Outlet
- switch.1412_3_Outlet

14
config/group/triggers.yaml Executable file
View File

@@ -0,0 +1,14 @@
Triggers:
control: hidden
entities:
- input_boolean.house_station
- input_boolean.responsibilities
- input_boolean.home_stats
- input_boolean.flash
- input_boolean.guard_dog
- input_boolean.sleepy_dog
- input_boolean.good_morning
- input_boolean.good_night
- input_boolean.meal_time
- input_boolean.tv_time
- input_boolean.work

19
config/group/weather.yaml Executable file
View File

@@ -0,0 +1,19 @@
Weather:
entities:
- climate.downstairs
- sensor.downstairs_thermostat_humidity
- climate.upstairs
- sensor.upstairs_thermostat_humidity
- sensor.dark_sky_cloud_coverage
- sensor.dark_sky_minutely_summary
# - sensor.dark_sky_nearest_storm_distance
- sensor.dark_sky_precip_intensity
- sensor.dark_sky_daily_max_precip_intensity
- sensor.dark_sky_wind_speed
- sensor.dark_sky_humidity
- sensor.dark_sky_temperature
- sensor.dark_sky_uv_index
- sensor.moon
- binary_sensor.iss
- sensor.launch_window
- camera.wu_doppler_weather

View File

@@ -0,0 +1,7 @@
home_stats:
name: Home Stats
initial: off
responsibilities:
name: responsibilities
initial: off

View File

@@ -0,0 +1,24 @@
guest_mode:
name: Guest Mode
icon: mdi:account-alert
initial: off
school_mode:
name: School Mode
icon: mdi:school
initial: on
alert_mode:
name: Alert Mode
icon: mdi:alert-octagram
initial: off
speech_notifications:
name: Speech Notifications
icon: mdi:speaker-wireless
initial: on
text_notifications:
name: Text Notifications
icon: mdi:cellphone-wireless
initial: on

View File

@@ -0,0 +1,32 @@
#triggers
good_night:
name: Good Night
initial: off
good_morning:
name: Good Morning
initial: off
meal_time:
name: Meal Time
initial: off
tv_time:
name: TV Time
initial: off
work:
name: Work
initial: off
flash:
name: Flash
initial: off
color_tornado:
name: Color Tornado!
initial: off
guard_dog:
name: Guard Dog
initial: off

33
config/logger.yaml Executable file
View File

@@ -0,0 +1,33 @@
############################################################
#
# Logger You can filter anything betwen the []'s in the logger.
#
############################################################
# Log Severities: notset, debug, info, warn, warning, error, fatal, critical
default: info
logs:
aiohttp.access: critical
aiohttp.server: critical
custom_components.media_player.floorplan_speaker: error
homeassistant.core: error
homeassistant.components.automation: warn
homeassistant.components.binary_sensor: error
homeassistant.components.climate.nest: warn
homeassistant.components.device_tracker: error
homeassistant.components.discovery: warn
homeassistant.components.feedreader: warn
homeassistant.components.http: warn
homeassistant.components.media_player: warn
homeassistant.components.sensor.pi_hole: critical
homeassistant.components.recorder: error
homeassistant.components.sensor.darksky: warn
homeassistant.components.zwave: warn
homeassistant.helpers.script: info
homeassistant.helpers.entity: critical
homeassistant.exceptions: info
py.warnings: error
requests.packages.urllib3.connectionpool: critical
root: warn
skybellpy: warn

36
config/packages/README.md Executable file
View File

@@ -0,0 +1,36 @@
# [![Build Status](https://travis-ci.org/CCOSTAN/Home-AssistantConfig.svg?branch=master)](https://travis-ci.org/CCOSTAN/Home-AssistantConfig) Home-Assistant Config by [@ccostan](http://www.twitter.com/ccostan)
[Home Assistant](https://home-assistant.io/) configuration files (YAMLs)
Be sure to :star: my repo so you can keep up to date on the daily progress!
This section is for the packages. (It's being slowly built out)
**Twitter Account**
-You can see my home in action by following it's Twitter account [@BearStoneHA](https://twitter.com/BearStoneHA)
-Home Assistant live tweets activities in the house on it's own dedicated Social Media Account.
**Alarm System**
You can find out about how I swapped out my ADT for 3 NodeMCUs [here](http://www.vmwareinfo.com/2017/06/building-my-home-alarm-system-hardware.html).
**Landscape Lighting**
For the ladnscape lights, I have 2 12v transformers in the backyard. One powers the front landscape lights and the other the backyard landscaping lights.
I have put 2 [GE ZWave Outdoor Power Module](http://amzn.to/2q17R4S) conneted to the transformers and controlled by my [Wink Hub](http://amzn.to/2orGEWo). They are set to turn on landscape lighting at sunset and turn off at random times before sunrise.
![Screenshot of Landscape Lighting](https://i.imgur.com/CFSWGXW.png)
**Nest Protects**
You can find my [Nest protects](http://amzn.to/2poqKhu) write up [here](http://www.vmwareinfo.com/2017/06/psa-check-out-your-smoke-detectors-once.html).
![Screenshot of Protects](https://i.imgur.com/hUAaIiF.png) and thermostats [here](http://www.vmwareinfo.com/2018/02/smart-home-basics-thermostats.html)
<td>
<tr>
<a href="https://www.amazon.com/Nest-Protect-Carbon-Monoxide-Generation/dp/B00XV1RD0K/ref=as_li_ss_il?s=hi&ie=UTF8&qid=1519154145&sr=1-4&keywords=nest+protect&linkCode=li1&tag=vmw0a-20&linkId=7002d3f6bb9c7680a653a1658a89d453" target="_blank"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B00XV1RD0K&Format=_SL110_&ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=vmw0a-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=vmw0a-20&l=li1&o=1&a=B00XV1RD0K" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></tr></td>
**Neato Vacuum**
I can control my [Neato Vacuum](http://amzn.to/2kqnnqu) with Home Assistant.
![Screenshot of D7 Vacuum](https://i.imgur.com/jLikEk6.png)
#Still have questions on my Config?
Follow me on twitter : [@CCostan](https://twitter.com/ccostan)
Follow the Smart Home on twitter : [@BearStoneHA](https://twitter.com/BearStoneHA)
You can also vist my [Blog](http://www.vmwareinfo.com/search/label/iot) for all of my [Home Automation Posts](http://www.vmwareinfo.com/search/label/iot).

Some files were not shown because too many files have changed in this diff Show More