Browse Source

Massive Migration! #292

pull/296/head
root 3 years ago
commit
1baa895f41
241 changed files with 28076 additions and 0 deletions
  1. 1
      .HA_VERSION
  2. 173
      .gitattributes
  3. 26
      .gitignore
  4. 9
      .travis.yml
  5. 115
      README.md
  6. 39
      automation/Pool_Deck_lights.yaml
  7. 37
      automation/Speech/High_Wind_Speed_Check.yaml
  8. 15
      automation/Speech/README.md
  9. 41
      automation/Speech/announcements.yaml
  10. 27
      automation/Speech/door_opened.yaml
  11. 48
      automation/Speech/garadget_Wind_Speed_Check.yaml
  12. 19
      automation/Speech/garage_closed.yaml
  13. 28
      automation/Speech/garage_opened.yaml
  14. 32
      automation/Speech/home_stats.yaml
  15. 24
      automation/Speech/nest.yaml
  16. 25
      automation/Speech/new_device.yaml
  17. 15
      automation/Speech/responsibilities.yaml
  18. 56
      automation/System/CucKoo_Clock.yaml
  19. 15
      automation/System/README.md
  20. 22
      automation/System/Self_heal.yaml
  21. 34
      automation/System/Wink_update_notification.yaml
  22. 26
      automation/System/bad_logins.yaml
  23. 50
      automation/System/detect_and_adjust_lights.yaml
  24. 40
      automation/System/door_chime.yaml
  25. 29
      automation/System/ip_change.yaml
  26. 29
      automation/System/rachio_rain_delay.yaml
  27. 70
      automation/System/trigger_dump.yaml
  28. 34
      automation/System/update_notification.yaml
  29. 27
      automation/System/watchdog_light.yaml
  30. 31
      automation/Timed_Triggers/0640.yaml
  31. 38
      automation/Timed_Triggers/0650.yaml
  32. 39
      automation/Timed_Triggers/0830.yaml
  33. 52
      automation/Timed_Triggers/2200.yaml
  34. 46
      automation/Timed_Triggers/README.md
  35. 43
      automation/Timed_Triggers/night_watchdog.yaml
  36. 21
      automation/Timed_Triggers/startup_month.yaml
  37. 17
      automation/Timed_Triggers/startup_notification.yaml
  38. 46
      automation/Timed_Triggers/sunrise_turn_off.yaml
  39. 64
      automation/Timed_Triggers/sunset_turn_on.yaml
  40. 25
      automation/away.yaml
  41. 12
      automation/carlo_left.yaml
  42. 25
      automation/color_tornado.yaml
  43. 66
      automation/dark_rainy_day.yaml
  44. 21
      automation/dash_buttons.yaml
  45. 19
      automation/flash_all.yaml
  46. 86
      automation/garadget.yaml
  47. 43
      automation/good_morning.yaml
  48. 49
      automation/good_night.yaml
  49. 24
      automation/guard_dog.yaml
  50. 18
      automation/ifttt_calendar.yaml
  51. 31
      automation/ifttt_logger.yaml
  52. 61
      automation/kitchen_lights_and_accents.yaml
  53. 46
      automation/late_night_helper.yaml
  54. 59
      automation/late_night_outside_helper.yaml
  55. 41
      automation/master_bath_accents.yaml
  56. 21
      automation/mealtime.yaml
  57. 36
      automation/medicine_logger.yaml
  58. 57
      automation/tv_time_on_and_off.yaml
  59. 32
      automation/upstairs_motion_ifttt.yaml
  60. 22
      automation/work.yaml
  61. 73
      automation/zwave_hallway_door_sensor.yaml
  62. 267
      configuration.yaml
  63. 15
      custom_components/media_player/README.md
  64. 329
      custom_components/media_player/cast.py
  65. 160
      custom_components/media_player/floorplan_speaker.py
  66. 419
      customize/binary_sensors.yaml
  67. 12
      customize/covers.yaml
  68. 389
      customize/device_tracker.yaml
  69. 235
      customize/groups.yaml
  70. 177
      customize/input_booleans.yaml
  71. 423
      customize/lights.yaml
  72. 79
      customize/scenes.yaml
  73. 89
      customize/scripts.yaml
  74. 1013
      customize/sensors.yaml
  75. 117
      customize/switches.yaml
  76. 18
      customize/weather.yaml
  77. 98
      dasher/dasher
  78. 15
      device_tracker/README.md
  79. 7
      device_tracker/nmap.yaml
  80. 5
      device_tracker/ping.yaml.disabled
  81. 6
      device_tracker/unifi.yaml.disabled
  82. 1
      emulated_hue_ids.json
  83. 25
      group/Indoor_Outdoor.yaml
  84. 5
      group/MQTT.yaml
  85. 4
      group/amps.yaml
  86. 8
      group/doors.yaml
  87. 13
      group/garage.yaml
  88. 8
      group/home_mode.yaml
  89. 97
      group/lights.yaml
  90. 9
      group/media_players.yaml
  91. 6
      group/motion.yaml
  92. 7
      group/people.yaml
  93. 3
      group/sensors.yaml
  94. 16
      group/switches.yaml
  95. 14
      group/triggers.yaml
  96. 74
      group/views.yaml.old
  97. 19
      group/weather.yaml
  98. 7
      input_boolean/hidden_booleans.yaml
  99. 19
      input_boolean/home_modes.yaml
  100. 32
      input_boolean/trigger_booleans.yaml

1
.HA_VERSION

@ -0,0 +1 @@
0.59.2

173
.gitattributes

@ -0,0 +1,173 @@
## GITATTRIBUTES FOR WEB PROJECTS
#
# These settings are for any web project.
#
# Details per file setting:
# text These files should be normalized (i.e. convert CRLF to LF).
# binary These files are binary and should be left untouched.
#
# Note that binary is a macro for -text -diff.
######################################################################
## AUTO-DETECT - Handle line endings automatically for files detected
## as text and leave all files detected as binary untouched.
## This will handle all files NOT defined below.
* text=auto
## SOURCE CODE
*.bat text
*.coffee text
*.css text
*.htm text
*.html text
*.inc text
*.ini text
*.js text
*.jsx text
*.json text
*.less text
*.php text
*.pl text
*.py text
*.rb text
*.sass text
*.scm text
*.scss text
*.sh text
*.sql text
*.styl text
*.ts text
*.xml text
*.xhtml text
## DOCUMENTATION
*.markdown text
*.md text
*.mdwn text
*.mdown text
*.mkd text
*.mkdn text
*.mdtxt text
*.mdtext text
*.txt text
AUTHORS text
CHANGELOG text
CHANGES text
CONTRIBUTING text
COPYING text
INSTALL text
license text
LICENSE text
NEWS text
readme text
*README* text
TODO text
## TEMPLATES
*.dot text
*.ejs text
*.haml text
*.handlebars text
*.hbs text
*.hbt text
*.jade text
*.latte text
*.mustache text
*.phtml text
*.tmpl text
## LINTERS
.csslintrc text
.eslintrc text
.jscsrc text
.jshintrc text
.jshintignore text
.stylelintrc text
## CONFIGS
*.bowerrc text
*.cnf text
*.conf text
*.config text
.editorconfig text
.gitattributes text
.gitconfig text
.gitignore text
.htaccess text
*.npmignore text
*.yaml text
*.yml text
Makefile text
makefile text
## HEROKU
Procfile text
.slugignore text
## GRAPHICS
*.ai binary
*.bmp binary
*.eps binary
*.gif binary
*.ico binary
*.jng binary
*.jp2 binary
*.jpg binary
*.jpeg binary
*.jpx binary
*.jxr binary
*.pdf binary
*.png binary
*.psb binary
*.psd binary
*.svg text
*.svgz binary
*.tif binary
*.tiff binary
*.wbmp binary
*.webp binary
## AUDIO
*.kar binary
*.m4a binary
*.mid binary
*.midi binary
*.mp3 binary
*.ogg binary
*.ra binary
## VIDEO
*.3gpp binary
*.3gp binary
*.as binary
*.asf binary
*.asx binary
*.fla binary
*.flv binary
*.m4v binary
*.mng binary
*.mov binary
*.mp4 binary
*.mpeg binary
*.mpg binary
*.swc binary
*.swf binary
*.webm binary
## ARCHIVES
*.7z binary
*.gz binary
*.rar binary
*.tar binary
*.zip binary
## FONTS
*.ttf binary
*.eot binary
*.otf binary
*.woff binary
*.woff2 binary
## EXECUTABLES
*.exe binary
*.pyc binary

26
.gitignore

@ -0,0 +1,26 @@
*.pid
*.xml
*.csr
*.crt
*.key
*.conf
*.pickle
OZW_Log.txt
home-assistant.log
home-assistant_v2.db
*.db-journal
*.db-shm
*.db-wal
*.sqlite
deps
__pycache__
tts
secrets.yaml
secrets
known_devices.yaml
phue.conf
ios.conf
pyozw.sqlite
nest.conf
.uuid
ipchange.yaml

9
.travis.yml

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

115
README.md

@ -0,0 +1,115 @@
# [![Build Status](https://travis-ci.org/CCOSTAN/Home-AssistantConfig.svg?branch=master)](https://travis-ci.org/CCOSTAN/Home-AssistantConfig) Home-Assistant Config by [@ccostan](http://www.twitter.com/ccostan)
[Home Assistant](https://home-assistant.io/) configuration files (YAMLs)
Be sure to :star: my repo so you can keep up to date on the daily progress!
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).
You can follow my home's breaking news and tweet statistics via twitter [BearStoneHA](https://twitter.com/bearstoneha)
![Screenshot of Home Assistant Header](https://i.imgur.com/vjDH1LJ.png)
This is my Home Assistant Configuration created with the All In One installer [expanded to 16GB.](https://community.home-assistant.io/t/expanding-partition-on-sd-card-for-raspberry-pi-with-noobs-pre-installed/2036) I update it pretty regularly. :star:
Home Assistant runs on my [Raspberry Pi 3](http://amzn.to/2e3DOBY) with [Aeon Labs Z Wave Stick (GEN 5)](http://amzn.to/2eAiAP0). I've also added a [433Mhz Transmitter and receiver](http://amzn.to/2dceNY2). The main [SD Card](http://amzn.to/2xeBlgf) was upgraded to 16GB. (Order 2! - 1 for backup)
I use an [SD Card reader](http://amzn.to/2l2w9as) to swap SD cards between Pi and Windows for backups.
**Software on the Pi :**
* [Home Assistant](https://home-assistant.io/) ,
* [Dasher](https://github.com/maddox/dasher) to leverage those cheap [Amazon Dash Buttons](http://amzn.to/2dPKZhM)
* SSL via [SSLS](https://SSLS.com) - 5 Bucks A Year! - Keeps me safe!
* [HomeBridge](https://github.com/nfarina/homebridge) for full HA <-> Homekit compatibility.
* The amazing [Floorplan](https://github.com/pkozul/ha-floorplan) project to help visualize my smarthome.
**Devices I have :**
* [Ubiquiti Networks Unifi 802.11ac Pro](http://amzn.to/2mBSfE9) This keeps me warm with it's Wifi rays blanketing the house. Also used as a presence Tracker for iPhones/People.
* Lots of iOS Devices ([iPads](http://amzn.to/2l2qyRb), iPods, [iPhones](http://amzn.to/2l9Yoq9))
* [Nest Thermostats](http://amzn.to/2eAhB1k) - Smart Thermostat
* [Nest Protects](http://amzn.to/2poqKhu) - Smart Smoke Detectors - [Blog Post](http://www.vmwareinfo.com/2017/06/psa-check-out-your-smoke-detectors-once.html)
* [Amazon Echo](http://amzn.to/2dSVbK4) and [DOT](http://amzn.to/2e3vHFQ)
* [Amazon Echo Tap](http://amzn.to/2sz891k)
* [Amazon Dash Buttons](http://amzn.to/2dPKZhM)
* [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) - Alexa outside by the pool area.
* [Amazon Fire TV](http://amzn.to/2iiuaNT)
* [Amazon Fire Tablets Gen 7](http://amzn.to/2tqlMCW)- Used for [Wall Mounted Controllers](http://www.vmwareinfo.com/2017/07/visualizing-smart-home-using-home.html)
* [Wink Hub](http://amzn.to/2orGEWo) - Used to connect certain Zwave outlets etc.
* [Phillips Hue Hub Gen 2](http://amzn.to/2eoQTJy)
* Mixture of [Hue Colored lights](http://amzn.to/2l2viGK), [White Lights](http://amzn.to/2lEf4Xq) and GE Link bulbs.
* [Hue Go](http://amzn.to/2iB36Ii) - Great lights for the kids since they have an actual button on them for control.
* [Circle by Disney](http://amzn.to/2eAgaA6) - Parental Monitor for internet and screentime.
* [Rachio Sprinkler system](http://amzn.to/2eoPKBW) - Smart Sprinkler controller
* [GE ZWave Outdoor Power Module](http://amzn.to/2q17R4S) - These control my Landscape lighting and connect up to my Wink.
* [Withings](http://amzn.to/2kr78nW) - Smart Weight scale
* [SkyBell HD](http://amzn.to/2dcexIB)
* [Rokus](http://amzn.to/2dpn89c) for all streaming
* [Samsung Smart TV](http://amzn.to/2efNNnq)
* [ChromeCast Audios](http://amzn.to/2lE9gNu)
* [AMPs](http://amzn.to/2j18dlT) - These are cheap but effective for the Dots, Chromecasts or other speakers.
* [Mixer](http://amzn.to/2v9Zp3x) - This allows me to mix in DOT, music and HA. [Blog Post](http://www.vmwareinfo.com/2017/07/giving-voice-to-smart-home.html)
* [Etekcity Outlets](http://amzn.to/2efNoBP) - Cheap 6 Buck RF outlet control!
* [Door Sensors (AEON Labs)](http://amzn.to/2e3xDxY)
* [Garadget](http://amzn.to/2jQLpVQ) - Garage Door opener/sensor - "[Siri, are my garage doors closed?](https://pbs.twimg.com/media/C3cyJZSWAAAalPm.jpg:large)"
* [Nintendo Wii](http://amzn.to/2l2qIYY)
* Emulated Hue pushes all Switch, Group, input_boolean, script and scene information to Alexa for First Class Control!
* [iTeadStudio](https://www.itead.cc/) [goodies](https://twitter.com/ccostan/status/793119824008384512) - [SonOff](http://amzn.to/2l2sx8g) and a [Slampher](http://amzn.to/2l2gmIx)!
* [LED RGB Wifi Controller - flux_led compatible](http://amzn.to/2jUBSBE) with [LED Strip kits](http://amzn.to/2gJYfZ5) - ~100 Feet. These are great [Power supplies](http://amzn.to/2mnmbk8) - [Outdoor Housing](http://amzn.to/2m2dG0X) - Finished Product [#71](https://github.com/CCOSTAN/Home-AssistantConfig/issues/71) - [Blog Post](http://www.vmwareinfo.com/2017/08/diy-outdoor-smart-home-led-strips.html)
* [Digital Smart Water Main ShutOff/Leak Detector] (http://www.providencecpc.org/wp-content/uploads/2016/01/work_in_progress.png) - Beta test to monitor Water usage and Leaks centrally.
* [Aeon Labs AEDSB09104ZWUS Aeotec Z-Wave Smart Energy Monitor Meter](http://amzn.to/2l5wEDo) to measure energy usage in the home.
* [SleepNumber Bed i8](http://amzn.to/2kxdXXI) - Has SleepIQ to track occupancy and sleep habits. Tied into HA.
* [MX8 Zodiac Pool Robot](http://amzn.to/2nAGvPf) - Not YET hooked up HA, but working on it.
* [Pi Zero](http://amzn.to/2ougZQ3) with [Wireless Nub](http://amzn.to/2q38rg4) running Pi-Hole and smacking down internet ads left and right!
* [NodeMCU Development Boards](http://amzn.to/2ou0NON) hooked into the alarm system wires for [DIY alarm system](http://www.vmwareinfo.com/2017/06/building-my-home-alarm-system-hardware.html). - [DIY Motion Sensors](http://www.vmwareinfo.com/2017/11/yet-another-inexpensive-motion-sensor.html)
* [JuiceBox Pro 40 EVSE](http://amzn.to/2AIdSdx) - Used to Charge the Bolt EV.
Lots of my gear comes from [BetaBound](https://goo.gl/0vxT8A) for Beta Testing and reviews.
<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>
**Automations:**
* Voice Notifications via the [AMPs](http://amzn.to/2j18dlT) connected to ChromeCast Audios and [Mixer](http://amzn.to/2v9Zp3x). Accomplished via the [~~Google~~ Amazon Polly TTS](https://home-assistant.io/components/tts/) component.
* Ability to ask Alexa to repeat the last Voice notification - 'Alexa, Turn on Last message'.
* Track garbage days and chore days for the kids. Voice reminders and Alexa intergration/request for info.
* Guest mode to disable certain interior automations. Trigger via Alexa & IFTTT.
* IFTTT and Slack 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 DSN.
* Monitor the reflection rates of [Garadget](http://amzn.to/2jQLpVQ) and notify when they being to drop too low when closed (indicating a shift in the controller)
* Notifications when the garage door is left open at night or when we leave the house.
* (IFTTT) Logging entries in Logbooks for [Rachio Sprinkler system](http://amzn.to/2eoPKBW), and [SkyBell HD](http://amzn.to/2dcexIB).
* Auto Heal ZWave at 2:30am
* 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.
* Turn on TV Time Lights (dim and color) at Sunset (if home and TV is on)
* Turn on Upstairs light if [Nest Thermostats](http://amzn.to/2eAhB1k) detects people and it's nighttime.
* Turn off lights when [Nest Thermostats](http://amzn.to/2eAhB1k) detects we are away. (Upstairs and Downstairs)
* Turn on some lights and switches when we get home
* Turn on some outdoor Lights at Sunset or if it gets darkish in the house, Turn off 4 hours before sunrise. Turn off interior lights when we go to sleep.
* Turn on lights during school days for a morning routine for the kids and wife. Has No School overide boolean in GUI.
* Rainy days trigger extra light inside the house.
* Check the UV Rays for the day and let us know if we need sun tan lotion over the TTS system.
* Detects when lights are turned on and adjusts them to correct brightness based on time of day.
* Leverage Alexa, IFTTT and Elekcity outlet to control Printer On/Off via Voice. Turns off automatically after 20 minutes.
* Turn on [AMPs](http://amzn.to/2j18dlT) when Chromecast reports 'Playing'. Turn them off when we are done streaming music.
* (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)
* (IFTTT) Stop watering grass via [Rachio Sprinkler system](http://amzn.to/2eoPKBW) if winds are greater than 20 MPH.
* (IFTTT) Add a 1 day rain delay to [Rachio Sprinkler system](http://amzn.to/2eoPKBW) if it is going to rain tomorrow.
* (IFTTT) Blink ALL lights if Winds get to 70MPH - Hurricance warning.
* (IFTTT) Trigger Good Night routine when I step on the [Withings](http://amzn.to/2kr78nW) scale after 10pm.
* Sets up the front lights in the house with preset colors depending on the ~~month~~ day!.
* 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).
* Digital Cuckoo Clock that goes off each hour and on the half just like a real Cuckoo Clock. Plays across the whole house on my [ChromeCast Audios](http://amzn.to/2lE9gNu)
#Todo List
I've moved this entire section to the [issues section](https://github.com/CCOSTAN/Home-AssistantConfig/issues) on github.
Feel free to join the conversations there.
![Screenshot of SmartHome](https://lh3.googleusercontent.com/-vKGF5gdz_VY/WVpP7qjsmjI/AAAAAAADVZ4/sGyiS1PjouUQxrEbWVfot6raxcElv4r-wCHMYCw/s1600/clip_image001%255B4%255D)
![Screenshot of Alarm Clock View](https://i.imgur.com/mLMrky1.jpg)
![Screenshot of Alarm View](https://i.imgur.com/nad2gq0.png)
**All files are now being edited with [Atom](https://atom.io/).**
**All of my configuration files are tested against the most stable version of home-assistant using [Travis](https://travis-ci.org/CCOSTAN/Home-AssistantConfig).**
#Still have questions on my Config?
Message me on twitter : [@CCostan](https://twitter.com/ccostan)

39
automation/Pool_Deck_lights.yaml

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

37
automation/Speech/High_Wind_Speed_Check.yaml

@ -0,0 +1,37 @@
###################################
## Tornados are no Joke.
###################################
- alias: 'High Wind Speed Notification'
hide_entity: True
trigger:
- platform: numeric_state
entity_id: sensor.dark_sky_wind_speed
above: 50
action:
- service: script.notify_engine
data_template:
value1: 'VERY HIGH WINDS:'
value2: "{{ states('sensor.dark_sky_wind_speed')}}"
value3: ' '
- service: input_boolean.turn_on
entity_id: input_boolean.alert_mode
- service: script.speech_engine
data_template:
value1: >
"ATTENTION: The wind speed is now {{ states('sensor.dark_sky_wind_speed')|round}} miles per hour. Please make sure everyone is inside for safety."
call_window_check: 1
call_garage_check: 1
- service: script.emergency
- 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)"}}

15
automation/Speech/README.md

@ -0,0 +1,15 @@
# [![Build Status](https://travis-ci.org/CCOSTAN/Home-AssistantConfig.svg?branch=master)](https://travis-ci.org/CCOSTAN/Home-AssistantConfig) Home-Assistant Config by [@ccostan](http://www.twitter.com/ccostan)
[Home Assistant](https://home-assistant.io/) configuration files (YAMLs)
Be sure to :star: my repo so you can keep up to date on the daily progress!
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)
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>

41
automation/Speech/announcements.yaml

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

27
automation/Speech/door_opened.yaml

@ -0,0 +1,27 @@
######################################################################
## Garage Status Announcements
######################################################################
- alias: 'Door Opened'
trigger:
- platform: state
entity_id:
- binary_sensor.mcu2_gpio5 # back door #
- binary_sensor.MCU2_GPIO12 # Main Slider
- binary_sensor.MCU1_GPIO12 # Interior Garage Door #
to: 'Opened'
for:
minutes: 2
action:
- service: script.notify_engine
data_template:
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
automation/Speech/garadget_Wind_Speed_Check.yaml

@ -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
automation/Speech/garage_closed.yaml

@ -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
automation/Speech/garage_opened.yaml

@ -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
automation/Speech/home_stats.yaml

@ -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
automation/Speech/nest.yaml

@ -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
automation/Speech/new_device.yaml

@ -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
automation/Speech/responsibilities.yaml

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

56
automation/System/CucKoo_Clock.yaml

@ -0,0 +1,56 @@
###################################
## 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:30: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: media_player.turn_on
entity_id: media_player.livingroomCC
- service: switch.turn_on
entity_id: switch.living_room_amp
- delay: '00:00:05'
- service: media_player.volume_set
entity_id:
- media_player.livingroomCC
data:
volume_level: 0.22
- service: media_player.play_media
data_template:
entity_id:
- media_player.livingroomCC
- media_player.alarm_clock
# - media_player.bedroom_alarm_panel
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

15
automation/System/README.md

@ -0,0 +1,15 @@
# [![Build Status](https://travis-ci.org/CCOSTAN/Home-AssistantConfig.svg?branch=master)](https://travis-ci.org/CCOSTAN/Home-AssistantConfig) Home-Assistant Config by [@ccostan](http://www.twitter.com/ccostan)
[Home Assistant](https://home-assistant.io/) configuration files (YAMLs)
Be sure to :star: my repo so you can keep up to date on the daily progress!
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)
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>

22
automation/System/Self_heal.yaml

@ -0,0 +1,22 @@
###################################
## 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 ZWave Nightly
hide_entity: True
trigger:
platform: time
at: '2:31:00'
action:
- service: zwave.heal_network
- service: script.tweet_engine
data_template:
tweet: >
{{ [
"While they sleep, I self heal the Z-Wave network with Wink.",
"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 #ZWave"}}

34
automation/System/Wink_update_notification.yaml

@ -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
automation/System/bad_logins.yaml

@ -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
automation/System/detect_and_adjust_lights.yaml

@ -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 %}

40
automation/System/door_chime.yaml

@ -0,0 +1,40 @@
###################################
## @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
- wait_template: >-
{{ states.switch.living_room_amp.state == 'on' }}
- 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
automation/System/ip_change.yaml

@ -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
automation/System/rachio_rain_delay.yaml

@ -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"}}

70
automation/System/trigger_dump.yaml

@ -0,0 +1,70 @@
###################################
## Trigger Dump
###################################
- alias: Trigger dump - MQTT
trigger:
- platform: event
event_type: trigger_dump
action:
- 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
automation/System/update_notification.yaml

@ -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
automation/System/watchdog_light.yaml

@ -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
automation/Timed_Triggers/0640.yaml

@ -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
automation/Timed_Triggers/0650.yaml

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

39
automation/Timed_Triggers/0830.yaml

@ -0,0 +1,39 @@
######################################################################
## 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
- wait_template: >-
{{ is_state('group.bed', 'off') }}
- service: light.turn_on
entity_id:
- group.kitchen_lights

52
automation/Timed_Triggers/2200.yaml

@ -0,0 +1,52 @@
######################################################################
## 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
- 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 %}
- wait_template: >-
{{ not is_state('group.entry_points', 'on') }}
- wait_template: >-
{{ is_state('group.all_covers', 'closed') }}
- wait_template: >-
{{ not is_state('media_player.livingroomCC', 'playing') }}
- service: switch.turn_off
entity_id: switch.living_room_amp
- 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 %}

46
automation/Timed_Triggers/README.md

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

43
automation/Timed_Triggers/night_watchdog.yaml

@ -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
automation/Timed_Triggers/startup_month.yaml

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

17
automation/Timed_Triggers/startup_notification.yaml

@ -0,0 +1,17 @@
###################################
## 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

46
automation/Timed_Triggers/sunrise_turn_off.yaml

@ -0,0 +1,46 @@
###################################
## 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: light.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: input_boolean.turn_off
entity_id:
- input_boolean.medicine
- input_boolean.daylight_override
- input_boolean.guest_mode

64
automation/Timed_Triggers/sunset_turn_on.yaml

@ -0,0 +1,64 @@
###################################
## 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 turn on the landscaping 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
data:
entity_id:
- light.outdoor_bathroom
brightness: 35
- 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

25
automation/away.yaml

@ -0,0 +1,25 @@
######################################################################
## Shut it all down. No one is here
######################################################################
- alias: 'Away Mode'
trigger:
- platform: state
entity_id: binary_sensor.downstairs_away_mode
to: 'on'
- platform: state
entity_id: group.family
to: 'not_home'
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

12
automation/carlo_left.yaml

@ -0,0 +1,12 @@
######################################################################
## Turn off my Office light whenever I leave the house.
######################################################################
- alias: 'Carlo has left the building'
trigger:
- platform: state
entity_id: device_tracker.carlo
to: not_home
action:
- service: light.turn_off
entity_id: light.office_lamp

25
automation/color_tornado.yaml

@ -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
automation/dark_rainy_day.yaml

@ -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'