mirror of
https://github.com/CCOSTAN/Home-AssistantConfig.git
synced 2025-08-20 04:04:06 +00:00
You can find the entire repo here.
This commit is contained in:
1
config/.HA_VERSION
Executable file
1
config/.HA_VERSION
Executable file
@@ -0,0 +1 @@
|
||||
0.63.3
|
9
config/.travis.yml
Executable file
9
config/.travis.yml
Executable 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
500
config/README.md
Executable 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>
|
||||
|
||||

|
||||
|
||||
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)
|
||||
|
||||

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

|
||||

|
||||
|
||||
**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>
|
39
config/automation/Pool_Deck_lights.yaml
Executable file
39
config/automation/Pool_Deck_lights.yaml
Executable 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
|
62
config/automation/Speech/High_Wind_Speed_Check.yaml
Executable file
62
config/automation/Speech/High_Wind_Speed_Check.yaml
Executable 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 %}
|
12
config/automation/Speech/README.md
Executable file
12
config/automation/Speech/README.md
Executable file
@@ -0,0 +1,12 @@
|
||||
# [](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).
|
41
config/automation/Speech/announcements.yaml
Executable file
41
config/automation/Speech/announcements.yaml
Executable 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, you’re 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
|
35
config/automation/Speech/door_opened.yaml
Executable file
35
config/automation/Speech/door_opened.yaml
Executable 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
|
48
config/automation/Speech/garadget_Wind_Speed_Check.yaml
Executable file
48
config/automation/Speech/garadget_Wind_Speed_Check.yaml
Executable 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)"}}
|
19
config/automation/Speech/garage_closed.yaml
Executable file
19
config/automation/Speech/garage_closed.yaml
Executable 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
|
28
config/automation/Speech/garage_opened.yaml
Executable file
28
config/automation/Speech/garage_opened.yaml
Executable 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
|
32
config/automation/Speech/home_stats.yaml
Executable file
32
config/automation/Speech/home_stats.yaml
Executable 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
|
24
config/automation/Speech/nest.yaml
Executable file
24
config/automation/Speech/nest.yaml
Executable 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
|
25
config/automation/Speech/new_device.yaml
Executable file
25
config/automation/Speech/new_device.yaml
Executable 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)"}}
|
||||
##############################################################################
|
15
config/automation/Speech/responsibilities.yaml
Executable file
15
config/automation/Speech/responsibilities.yaml
Executable 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
|
50
config/automation/System/CucKoo_Clock.yaml
Executable file
50
config/automation/System/CucKoo_Clock.yaml
Executable 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
|
12
config/automation/System/README.md
Executable file
12
config/automation/System/README.md
Executable file
@@ -0,0 +1,12 @@
|
||||
# [](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).
|
26
config/automation/System/Self_heal.yaml
Executable file
26
config/automation/System/Self_heal.yaml
Executable 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 "}}
|
34
config/automation/System/Wink_update_notification.yaml
Executable file
34
config/automation/System/Wink_update_notification.yaml
Executable 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)"}}
|
26
config/automation/System/bad_logins.yaml
Executable file
26
config/automation/System/bad_logins.yaml
Executable 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"}}
|
50
config/automation/System/detect_and_adjust_lights.yaml
Executable file
50
config/automation/System/detect_and_adjust_lights.yaml
Executable 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 %}
|
37
config/automation/System/door_chime.yaml
Executable file
37
config/automation/System/door_chime.yaml
Executable 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
|
29
config/automation/System/ip_change.yaml
Executable file
29
config/automation/System/ip_change.yaml
Executable 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"}}
|
||||
##############################################################################
|
29
config/automation/System/rachio_rain_delay.yaml
Executable file
29
config/automation/System/rachio_rain_delay.yaml
Executable 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"}}
|
75
config/automation/System/trigger_dump.yaml
Executable file
75
config/automation/System/trigger_dump.yaml
Executable 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 -%}
|
34
config/automation/System/update_notification.yaml
Executable file
34
config/automation/System/update_notification.yaml
Executable 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"
|
27
config/automation/System/watchdog_light.yaml
Executable file
27
config/automation/System/watchdog_light.yaml
Executable 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 }}"
|
31
config/automation/Timed_Triggers/0640.yaml
Executable file
31
config/automation/Timed_Triggers/0640.yaml
Executable 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
|
38
config/automation/Timed_Triggers/0650.yaml
Executable file
38
config/automation/Timed_Triggers/0650.yaml
Executable 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
|
34
config/automation/Timed_Triggers/0830.yaml
Executable file
34
config/automation/Timed_Triggers/0830.yaml
Executable 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
|
25
config/automation/Timed_Triggers/2200.yaml
Executable file
25
config/automation/Timed_Triggers/2200.yaml
Executable 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
|
43
config/automation/Timed_Triggers/README.md
Executable file
43
config/automation/Timed_Triggers/README.md
Executable file
@@ -0,0 +1,43 @@
|
||||
# [](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).
|
43
config/automation/Timed_Triggers/night_watchdog.yaml
Executable file
43
config/automation/Timed_Triggers/night_watchdog.yaml
Executable 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 }}"
|
21
config/automation/Timed_Triggers/startup_month.yaml
Executable file
21
config/automation/Timed_Triggers/startup_month.yaml
Executable 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
|
27
config/automation/Timed_Triggers/startup_notification.yaml
Executable file
27
config/automation/Timed_Triggers/startup_notification.yaml
Executable 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"
|
47
config/automation/Timed_Triggers/sunrise_turn_off.yaml
Executable file
47
config/automation/Timed_Triggers/sunrise_turn_off.yaml
Executable 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
|
65
config/automation/Timed_Triggers/sunset_turn_on.yaml
Executable file
65
config/automation/Timed_Triggers/sunset_turn_on.yaml
Executable 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
|
26
config/automation/Timed_Triggers/wake_up.yaml
Executable file
26
config/automation/Timed_Triggers/wake_up.yaml
Executable 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
30
config/automation/away.yaml
Executable 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
|
25
config/automation/color_tornado.yaml
Executable file
25
config/automation/color_tornado.yaml
Executable 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
|
66
config/automation/dark_rainy_day.yaml
Executable file
66
config/automation/dark_rainy_day.yaml
Executable 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
|
||||
|
||||
######################################################################
|
22
config/automation/dash_buttons.yaml
Executable file
22
config/automation/dash_buttons.yaml
Executable 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
|
19
config/automation/flash_all.yaml
Executable file
19
config/automation/flash_all.yaml
Executable 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
86
config/automation/garadget.yaml
Executable 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')}}"
|
43
config/automation/good_morning.yaml
Executable file
43
config/automation/good_morning.yaml
Executable 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
|
49
config/automation/good_night.yaml
Executable file
49
config/automation/good_night.yaml
Executable 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 isn’t meant to bring an end to this day. It’s 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, you’ll have a fresh mind and a happy heart. Good night."
|
||||
] | random }}
|
||||
- service: script.interior_off
|
24
config/automation/guard_dog.yaml
Executable file
24
config/automation/guard_dog.yaml
Executable 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
|
18
config/automation/ifttt_calendar.yaml
Executable file
18
config/automation/ifttt_calendar.yaml
Executable 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
|
||||
|
||||
|
31
config/automation/ifttt_logger.yaml
Executable file
31
config/automation/ifttt_logger.yaml
Executable 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"}}
|
61
config/automation/kitchen_lights_and_accents.yaml
Executable file
61
config/automation/kitchen_lights_and_accents.yaml
Executable 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
|
46
config/automation/late_night_helper.yaml
Executable file
46
config/automation/late_night_helper.yaml
Executable 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
|
59
config/automation/late_night_outside_helper.yaml
Executable file
59
config/automation/late_night_outside_helper.yaml
Executable 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 %}
|
41
config/automation/master_bath_accents.yaml
Executable file
41
config/automation/master_bath_accents.yaml
Executable 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
21
config/automation/mealtime.yaml
Executable 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
|
37
config/automation/medicine_logger.yaml
Executable file
37
config/automation/medicine_logger.yaml
Executable 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
|
53
config/automation/tv_time_on_and_off.yaml
Executable file
53
config/automation/tv_time_on_and_off.yaml
Executable 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
|
32
config/automation/upstairs_motion_ifttt.yaml
Executable file
32
config/automation/upstairs_motion_ifttt.yaml
Executable 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
22
config/automation/work.yaml
Executable 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
|
73
config/automation/zwave_hallway_door_sensor.yaml
Executable file
73
config/automation/zwave_hallway_door_sensor.yaml
Executable 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
44
config/chevy_install.sh
Executable 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
251
config/configuration.yaml
Executable 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
|
97
config/custom_components/binary_sensor/skybell.py
Executable file
97
config/custom_components/binary_sensor/skybell.py
Executable 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
|
12
config/custom_components/media_player/README.md
Executable file
12
config/custom_components/media_player/README.md
Executable file
@@ -0,0 +1,12 @@
|
||||
# [](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).
|
||||
|
329
config/custom_components/media_player/cast.py.safe.to_be_deletedafter_02.21.2018
Executable file
329
config/custom_components/media_player/cast.py.safe.to_be_deletedafter_02.21.2018
Executable 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()
|
160
config/custom_components/media_player/floorplan_speaker.py
Executable file
160
config/custom_components/media_player/floorplan_speaker.py
Executable 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')
|
69
config/custom_components/sensor/database.py
Executable file
69
config/custom_components/sensor/database.py
Executable 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
|
82
config/custom_components/sensor/minecraft.py
Executable file
82
config/custom_components/sensor/minecraft.py
Executable 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
|
419
config/customize/binary_sensors.yaml
Executable file
419
config/customize/binary_sensors.yaml
Executable 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
12
config/customize/covers.yaml
Executable 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
|
389
config/customize/device_tracker.yaml
Executable file
389
config/customize/device_tracker.yaml
Executable 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
235
config/customize/groups.yaml
Executable 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
|
177
config/customize/input_booleans.yaml
Executable file
177
config/customize/input_booleans.yaml
Executable 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
423
config/customize/lights.yaml
Executable 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
79
config/customize/scenes.yaml
Executable 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
89
config/customize/scripts.yaml
Executable 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
1013
config/customize/sensors.yaml
Executable file
File diff suppressed because it is too large
Load Diff
117
config/customize/switches.yaml
Executable file
117
config/customize/switches.yaml
Executable 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
18
config/customize/weather.yaml
Executable 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
15
config/device_tracker/README.md
Executable file
@@ -0,0 +1,15 @@
|
||||
# [](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>
|
7
config/device_tracker/nmap.yaml
Executable file
7
config/device_tracker/nmap.yaml
Executable 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.
|
5
config/device_tracker/ping.yaml.disabled
Executable file
5
config/device_tracker/ping.yaml.disabled
Executable 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
|
6
config/device_tracker/unifi.yaml.disabled
Executable file
6
config/device_tracker/unifi.yaml.disabled
Executable 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
171
config/entity_registry.yaml
Normal 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
|
25
config/group/Indoor_Outdoor.yaml
Executable file
25
config/group/Indoor_Outdoor.yaml
Executable 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
5
config/group/MQTT.yaml
Executable file
@@ -0,0 +1,5 @@
|
||||
MQTT:
|
||||
entities:
|
||||
- sensor.rachio_watering_time
|
||||
- sensor.medicine_time
|
||||
- sensor.last_message
|
8
config/group/doors.yaml
Executable file
8
config/group/doors.yaml
Executable 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
10
config/group/home_mode.yaml
Executable 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
99
config/group/lights.yaml
Executable 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
|
9
config/group/media_players.yaml
Executable file
9
config/group/media_players.yaml
Executable 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
6
config/group/motion.yaml
Executable 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
7
config/group/people.yaml
Executable 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
3
config/group/sensors.yaml
Executable file
@@ -0,0 +1,3 @@
|
||||
Sensors:
|
||||
entities:
|
||||
- binary_sensor.aeotec_dsb04100_doorwindow_sensor_sensor_3_0
|
16
config/group/switches.yaml
Executable file
16
config/group/switches.yaml
Executable 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
14
config/group/triggers.yaml
Executable 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
19
config/group/weather.yaml
Executable 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
|
7
config/input_boolean/hidden_booleans.yaml
Executable file
7
config/input_boolean/hidden_booleans.yaml
Executable file
@@ -0,0 +1,7 @@
|
||||
home_stats:
|
||||
name: Home Stats
|
||||
initial: off
|
||||
|
||||
responsibilities:
|
||||
name: responsibilities
|
||||
initial: off
|
24
config/input_boolean/home_modes.yaml
Executable file
24
config/input_boolean/home_modes.yaml
Executable 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
|
32
config/input_boolean/trigger_booleans.yaml
Executable file
32
config/input_boolean/trigger_booleans.yaml
Executable 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
33
config/logger.yaml
Executable 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
36
config/packages/README.md
Executable file
@@ -0,0 +1,36 @@
|
||||
# [](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.
|
||||

|
||||
|
||||
**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).
|
||||
 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.
|
||||

|
||||
|
||||
#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
Reference in New Issue
Block a user