Massive Migration! #292

This commit is contained in:
root 2018-01-01 19:00:45 -05:00
commit 1baa895f41
241 changed files with 28076 additions and 0 deletions

1
.HA_VERSION Executable file
View File

@ -0,0 +1 @@
0.59.2

173
.gitattributes vendored Executable file
View File

@ -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 vendored Executable file
View File

@ -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 Executable file
View File

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

115
README.md Executable file
View File

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

View File

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

View File

@ -0,0 +1,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 Executable file
View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

24
automation/Speech/nest.yaml Executable file
View File

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

View File

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

View File

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

View File

@ -0,0 +1,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 Executable file
View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,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 -%}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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 Executable file
View File

@ -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 Executable file
View File

@ -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 Executable file
View File

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

66
automation/dark_rainy_day.yaml Executable file
View File

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

21
automation/dash_buttons.yaml Executable file
View File

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

19
automation/flash_all.yaml Executable file
View File

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

86
automation/garadget.yaml Executable file
View File

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

43
automation/good_morning.yaml Executable file
View File

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

49
automation/good_night.yaml Executable file
View File

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

24
automation/guard_dog.yaml Executable file
View File

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

18
automation/ifttt_calendar.yaml Executable file
View File

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

31
automation/ifttt_logger.yaml Executable file
View File

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

View File

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

View File

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

View File

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

View File

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

21
automation/mealtime.yaml Executable file
View File

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

36
automation/medicine_logger.yaml Executable file
View File

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

View File

@ -0,0 +1,57 @@
######################################################################
## 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: sensor.samsungtv
to: 'Online'
from: 'Offline'
- 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: sensor.samsungtv
state: 'Online'
- 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'
action:
- service: input_boolean.turn_off
entity_id: input_boolean.tv_time
- service: light.turn_off
entity_id:
- group.dinette_lights
- group.kitchen_lights
- service: switch.turn_on
entity_id: switch.kitchen_accents
- service: scene.turn_on
entity_id: scene.tv_time

View File

@ -0,0 +1,32 @@
# Uses the Nest thermostat to turn on lights and turn them off upstairs.
- alias: 'Upstairs Light Turn on'
trigger:
- platform: event
event_type: upstairs_light_on
- platform: state
entity_id: binary_sensor.upstairs_away_mode
to: 'off'
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: 'on'
action:
service: light.turn_off
entity_id: group.upstairs

22
automation/work.yaml Executable file
View File

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

View File

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

267
configuration.yaml Executable file
View File

@ -0,0 +1,267 @@
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
emulated_hue_hidden: true
homebridge_hidden: true
packages: !include_dir_named packages
# cloud:
# alexa:
# filter:
# # include_entities:
# # - light.kitchen
# include_domains:
# - switch
# - covers
# - group
# # exclude_entities:
# # - light.living_room
# # exclude_domains:
# # - light
# # - media_player
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
notify:
- platform: ios
- name: ios_family
platform: group
services:
- service: ios_staceys_iphone
- service: ios_carlo_6s
- name: ios_parents
platform: group
services:
- service: ios_staceys_iphone
- service: ios_carlo_6s
discovery:
ignore:
- samsung_tv
# - roku
# - google_cast
updater:
include_used_components: true
sun:
# for when 0.60.1 is released.
# hue:
# bridges:
# - host: 192.168.10.75
# filename: phue.conf
# allow_unreachable: true
# allow_in_emulated_hue: false
# allow_hue_groups: false
# - host: 192.168.10.76
# filename: phue2.conf
# allow_unreachable: true
# allow_in_emulated_hue: false
# allow_hue_groups: false
light:
- platform: hue
host: 192.168.10.75
filename: phue.conf
allow_unreachable: true
allow_in_emulated_hue: false
allow_hue_groups: false
light 2:
- platform: hue
host: 192.168.10.76
filename: phue2.conf
allow_unreachable: true
allow_in_emulated_hue: false
allow_hue_groups: false
# 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
cover:
platform: garadget
covers:
!secret large_garage_id:
username: !secret garadget_username
password: !secret garadget_password
name: Large Garage
!secret small_garage_id:
username: !secret garadget_username
password: !secret garadget_password
name: Small Garage
group: !include_dir_merge_named group
device_tracker: !include_dir_merge_list device_tracker
sensor: !include_dir_merge_list sensor
automation: !include_dir_merge_list automation
scene: !include_dir_merge_list scene
switch: !include_dir_merge_list switch
script: !include_dir_merge_named script
input_boolean: !include_dir_merge_named input_boolean
shell_command: !include_dir_merge_named shell_command

View File

@ -0,0 +1,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 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).
<a target='_blank' rel='nofollow' href='https://app.codesponsor.io/link/3MkgeKFUVKPNW45Vtwu9Abd4/CCOSTAN/Home-AssistantConfig'>
<img alt='Sponsor' width='888' height='68' src='https://app.codesponsor.io/embed/3MkgeKFUVKPNW45Vtwu9Abd4/CCOSTAN/Home-AssistantConfig.svg' />
</a>

View File

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

View File

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

419
customize/binary_sensors.yaml Executable file
View File

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

12
customize/covers.yaml Executable file
View File

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

389
customize/device_tracker.yaml Executable file
View File

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

235
customize/groups.yaml Executable file
View File

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

177
customize/input_booleans.yaml Executable file
View File

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

423
customize/lights.yaml Executable file
View File

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

79
customize/scenes.yaml Executable file
View File

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

89
customize/scripts.yaml Executable file
View File

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

1013
customize/sensors.yaml Executable file

File diff suppressed because it is too large Load Diff

117
customize/switches.yaml Executable file
View File

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

18
customize/weather.yaml Executable file
View File

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

98
dasher/dasher Executable file
View File

@ -0,0 +1,98 @@
#!/bin/sh
### BEGIN INIT INFO
# Provides:
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
dir="/home/pi/dasher"
cmd="DEBUG=* node app.js"
user="root"
name=`basename $0`
pid_file="/var/run/$name.pid"
stdout_log="/var/log/$name.log"
stderr_log="/var/log/$name.err"
get_pid() {
cat "$pid_file"
}
is_running() {
[ -f "$pid_file" ] && ps `get_pid` > /dev/null 2>&1
}
case "$1" in
start)
if is_running; then
echo "Already started"
else
echo "Starting $name"
cd "$dir"
if [ -z "$user" ]; then
sudo $cmd >> "$stdout_log" 2>> "$stderr_log" &
else
sudo -u "$user" $cmd >> "$stdout_log" 2>> "$stderr_log" &
fi
echo $! > "$pid_file"
if ! is_running; then
echo "Unable to start, see $stdout_log and $stderr_log"
exit 1
fi
fi
;;
stop)
if is_running; then
echo -n "Stopping $name.."
kill `get_pid`
for i in {1..10}
do
if ! is_running; then
break
fi
echo -n "."
sleep 1
done
echo
if is_running; then
echo "Not stopped; may still be shutting down or shutdown may have failed"
exit 1
else
echo "Stopped"
if [ -f "$pid_file" ]; then
rm "$pid_file"
fi
fi
else
echo "Not running"
fi
;;
restart)
$0 stop
if is_running; then
echo "Unable to stop, will not attempt to start"
exit 1
fi
$0 start
;;
status)
if is_running; then
echo "Running"
else
echo "Stopped"
exit 1
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0

15
device_tracker/README.md Executable file
View File

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

7
device_tracker/nmap.yaml Executable file
View File

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

View File

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

View File

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

1
emulated_hue_ids.json Executable file
View File

@ -0,0 +1 @@
{"52": "light.led_garage_small", "54": "light.led_outdoor_den", "31": "group.outdoor_lights", "49": "input_boolean.guard_dog", "13": "group.kitchen_lights", "17": "input_boolean.guest_mode", "60": "input_boolean.sleepy_dog", "29": "group.amps", "37": "input_boolean.alert_mode", "65": "switch.computer_screens", "20": "switch.garage_outlet", "24": "group.outdoor_pool_lights", "67": "group.fire_tablet", "41": "input_boolean.home_stats", "38": "scene.front_full_brightness", "5": "switch.living_room_amp", "12": "group.all_lights", "39": "input_boolean.last_message", "21": "group.bedroom_lights", "33": "group.office_lights", "50": "input_boolean.flash", "9": "switch.living_room_outlet", "61": "switch.front_landscaping", "40": "input_boolean.responsibilities", "62": "switch.back_landscaping", "18": "group.den_lights", "42": "input_boolean.meal_time", "70": "switch.pool_deck", "58": "input_boolean.radio", "63": "group.landscaping", "10": "group.garage_lights", "14": "switch.den_outlet", "64": "input_boolean.lastmsg", "26": "scene.living_room_tv_time", "71": "light.led_garage_snip", "53": "input_boolean.color_tornado", "8": "switch.printer_outlet", "48": "switch.ge_outdoor_outle_switch_8_0", "46": "light.garage_large", "16": "switch.kitchen_accent_2", "69": "switch.landscaping", "1": "switch.front_door_outlet", "28": "switch.foyer_outlet", "66": "input_boolean.self_destruct", "45": "input_boolean.work", "30": "switch.outlet_304_4", "19": "group.all_switches", "51": "light.led_garage_large", "34": "group.exterior_lights", "11": "group.foyer_lights", "57": "input_boolean.garage_check", "2": "group.outdoor_front_lights", "59": "input_boolean.house_station", "7": "group.living_room_accents", "43": "input_boolean.tv_time", "15": "group.hallway_lights", "47": "switch.ge_outdoor_outle_switch_7_0", "56": "input_boolean.medicine", "22": "light.outdoor_den", "4": "group.dinette_lights", "55": "input_boolean.outside_weather", "3": "switch.kitchen_accents", "68": "switch.master_bathroom_accents", "44": "input_boolean.good_morning", "35": "input_boolean.school_mode", "23": "light.garage_left", "6": "group.dining_room_lights", "25": "group.interior_lights", "27": "group.upstairs_lights", "32": "group.living_room_lights", "36": "input_boolean.speech_notifications", "72": "input_boolean.clock_snooze"}

25
group/Indoor_Outdoor.yaml Executable file
View File

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

5
group/MQTT.yaml Executable file
View File

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

4
group/amps.yaml Executable file
View File

@ -0,0 +1,4 @@
AMPs:
entities:
- switch.living_room_amp
# - switch.bathroom_amp

8
group/doors.yaml Executable file
View File

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

13
group/garage.yaml Executable file
View File

@ -0,0 +1,13 @@
garage_doors:
name: Garage doors
entities:
- cover.large_garage
- sensor.large_garage_status
- sensor.large_garage_time_in_state
- sensor.large_garage_wifi_signal_strength
- sensor.large_garage_reflection_rate
- cover.small_garage
- sensor.small_garage_status
- sensor.small_garage_time_in_state
- sensor.small_garage_wifi_signal_strength
- sensor.small_garage_reflection_rate

8
group/home_mode.yaml Executable file
View File

@ -0,0 +1,8 @@
home_modes:
control: hidden
entities:
- input_boolean.guest_mode
- input_boolean.school_mode
- input_boolean.alert_mode
- input_boolean.speech_notifications
- input_boolean.last_message

97
group/lights.yaml Executable file
View File

@ -0,0 +1,97 @@
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.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
group/media_players.yaml Executable file
View File

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

6
group/motion.yaml Executable file
View File

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

7
group/people.yaml Executable file
View File

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

3
group/sensors.yaml Executable file
View File

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

16
group/switches.yaml Executable file
View File

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

14
group/triggers.yaml Executable file
View File

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

74
group/views.yaml.old Executable file
View File

@ -0,0 +1,74 @@
Bear Stone View:
name: Bear Stone Run
view: yes
icon: mdi:home
entities:
- persistent_notification.update_available
- group.home_modes
- group.family
- group.weather
- group.amps
- group.Bedroom_lights
- group.Kitchen_lights
- group.Dinette_lights
- group.living_room_lights
- group.living_room_accents
- group.dining_room_lights
- group.foyer_lights
- group.upstairs_lights
- group.den_lights
- group.hallway
- group.office_lights
- group.garage_lights
- group.outdoor_pool_lights
- group.outdoor_lights
- group.all_switches
- group.media_players
Doors:
view: yes
icon: mdi:security-home
entities:
- group.family
- group.garage_doors
Lights:
view: yes
icon: mdi:lightbulb
entities:
- group.home_modes
- group.amps
- group.interior_lights
- group.outdoor_lights
- group.Bedroom_lights
- group.Kitchen_lights
- group.Dinette_lights
- group.living_room_lights
- group.living_room_accents
- group.dining_room_lights
- group.foyer_lights
- group.upstairs_lights
- group.den_lights
- group.office_lights
- group.garage_lights
- group.outdoor_pool_lights
- group.outdoor_front_lights
- group.all_switches
Info:
view: yes
icon: mdi:settings
entities:
- group.family
- group.home_modes
- group.network
- group.sensors
- group.garage_doors
- sun.sun
- group.media_players
- group.weather
- group.all_lights
- group.all_switches
- group.all_automations
- group.all_scripts

19
group/weather.yaml Executable file
View File

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

View File

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

19
input_boolean/home_modes.yaml Executable file
View File

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

View File

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

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