Massive Migration! #292
This commit is contained in:
commit
1baa895f41
|
@ -0,0 +1 @@
|
|||
0.59.2
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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)
|
|
@ -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
|
|
@ -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)"}}
|
|
@ -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>
|
|
@ -0,0 +1,41 @@
|
|||
########## ############################################################
|
||||
## Announce when people come or go.
|
||||
## Announce over all Chromecast Audios
|
||||
######################################################################
|
||||
- alias: 'People Greeting'
|
||||
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id:
|
||||
- device_tracker.carlo
|
||||
- device_tracker.stacey
|
||||
- device_tracker.franco
|
||||
- device_tracker.yolanda
|
||||
from: 'not_home'
|
||||
to: 'home'
|
||||
for: '00:02:00'
|
||||
|
||||
action:
|
||||
- service: script.speech_engine
|
||||
data_template:
|
||||
personarriving: >
|
||||
{% set person = trigger.entity_id.split('.')[1]|replace('_', ' ')%}
|
||||
{%- macro greeting_sentence(person) -%}
|
||||
{{ [
|
||||
"Welcome back home " ~ person,
|
||||
"Guess who is home?" ~ person +" is!",
|
||||
person + " is now in the house.",
|
||||
"Welcome Home " ~ person + ". We have missed you. Or at least Molly did.",
|
||||
"Our home is now complete, Rest your head and relax your feet! Welcome Back " ~ person,
|
||||
"Life is like a song, you’re back where you belong. Welcome home " ~ person,
|
||||
"Hey there " ~ person + " Welcome Home!",
|
||||
"Knock Knock. Who is There? " ~ person +" is!",
|
||||
person ~ "! You are home!",
|
||||
"I know a secret! " ~ person +" is home!"
|
||||
] | random }}
|
||||
{%- endmacro -%}
|
||||
{{greeting_sentence(person)}}
|
||||
call_responsibilities: 1
|
||||
call_no_announcement: 1
|
||||
call_garage_check: 1
|
||||
call_window_check: 1
|
|
@ -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
|
|
@ -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)"}}
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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)"}}
|
||||
##############################################################################
|
|
@ -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
|
|
@ -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
|
|
@ -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>
|
|
@ -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"}}
|
|
@ -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)"}}
|
|
@ -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"}}
|
|
@ -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 %}
|
|
@ -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
|
|
@ -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"}}
|
||||
##############################################################################
|
|
@ -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"}}
|
|
@ -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 -%}
|
|
@ -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"
|
|
@ -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 }}"
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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 %}
|
|
@ -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>
|
|
@ -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 }}"
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
|
||||
######################################################################
|
|
@ -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
|
|
@ -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
|
|
@ -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')}}"
|
|
@ -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
|
|
@ -0,0 +1,49 @@
|
|||
######################################################################
|
||||
## Good night Routine
|
||||
######################################################################
|
||||
|
||||
- alias: 'Good Night Trigger'
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: input_boolean.good_night
|
||||
to: 'on'
|
||||
from: 'off'
|
||||
- platform: state
|
||||
entity_id:
|
||||
- binary_sensor.sleepnumber_carlo_carlo_is_in_bed
|
||||
- binary_sensor.sleepnumber_carlo_stacey_is_in_bed
|
||||
to: 'on'
|
||||
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: sun.sun
|
||||
state: 'below_horizon'
|
||||
- condition: state
|
||||
entity_id: input_boolean.guest_mode
|
||||
state: 'off'
|
||||
- condition: state
|
||||
entity_id: binary_sensor.sleepnumber_carlo_carlo_is_in_bed
|
||||
state: 'on'
|
||||
- condition: state
|
||||
entity_id: binary_sensor.sleepnumber_carlo_stacey_is_in_bed
|
||||
state: 'on'
|
||||
|
||||
action:
|
||||
- service: input_boolean.turn_off
|
||||
entity_id: input_boolean.good_night
|
||||
|
||||
- service: script.speech_engine
|
||||
data_template:
|
||||
value1: >
|
||||
{{ [
|
||||
"Sleep Tight, Don't let the bedbugs bite.",
|
||||
"Have pleasant dreams",
|
||||
"As they say in the Navy, See you in the rise."
|
||||
"Dream pleasant dreams. Tomorrow is a new day.",
|
||||
"Early sleep and early wake up gives health and makes you grow.",
|
||||
"Good night, good night! Parting is such sweet sorrow that I shall say goodnight till it is Morrow.",
|
||||
"There is a time for many words, and there is also a time for sleep.",
|
||||
"This good night isn’t meant to bring an end to this day. It’s intended to wish you awesomeness in what lies ahead.",
|
||||
"Stuff your worries in your pillow, wrap your troubles in your blanket and spread your anxieties on your sheets. When you wake up tomorrow, you may have dirty linen, but more importantly, you’ll have a fresh mind and a happy heart. Good night."
|
||||
] | random }}
|
||||
- service: script.interior_off
|
|
@ -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
|
|
@ -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
|
||||
|
||||
|
|
@ -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"}}
|
|
@ -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
|
|
@ -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
|
|
@ -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 %}
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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>
|
|
@ -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()
|
|
@ -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')
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
File diff suppressed because it is too large
Load Diff
|
@ -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
|
|
@ -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
|
||||
|
|
@ -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
|
|
@ -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>
|
|
@ -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.
|
|
@ -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
|
|
@ -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
|
|
@ -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"}
|
|
@ -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
|
|
@ -0,0 +1,5 @@
|
|||
MQTT:
|
||||
entities:
|
||||
- sensor.rachio_watering_time
|
||||
- sensor.medicine_time
|
||||
- sensor.last_message
|
|
@ -0,0 +1,4 @@
|
|||
AMPs:
|
||||
entities:
|
||||
- switch.living_room_amp
|
||||
# - switch.bathroom_amp
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -0,0 +1,6 @@
|
|||
motion:
|
||||
name: Motion Detectors
|
||||
entities:
|
||||
- binary_sensor.office_motion
|
||||
- binary_sensor.entry_alarm_panel
|
||||
- binary_sensor.bedroom_alarm_panel
|
|
@ -0,0 +1,7 @@
|
|||
Family:
|
||||
entities:
|
||||
- device_tracker.carlo
|
||||
- device_tracker.stacey
|
||||
- device_tracker.franco
|
||||
- device_tracker.yolanda
|
||||
- device_tracker.joyce_ipad
|
|
@ -0,0 +1,3 @@
|
|||
Sensors:
|
||||
entities:
|
||||
- binary_sensor.aeotec_dsb04100_doorwindow_sensor_sensor_3_0
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -0,0 +1,7 @@
|
|||
home_stats:
|
||||
name: Home Stats
|
||||
initial: off
|
||||
|
||||
responsibilities:
|
||||
name: responsibilities
|
||||
initial: off
|
|
@ -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
|
|
@ -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
Loading…
Reference in New Issue