Updated to V5 Version - Hassio Style

Lots of updates here.

Updated my Readme - Added Affiliate Links, added some more information, better organized devices
Updated gitignore with paths realtive to my hassio config
Combined my switches and lights into single yaml files instead of the directory structure previously
Added zigbee2mqtt.yaml to packages - contains automations and such for zigbee2mqtt

Archived my previous version in the V4-config branch.
This commit is contained in:
Jeffrey Stone 2019-11-08 12:54:11 -05:00
parent f00f5bdccb
commit e02d084c92
74 changed files with 1409 additions and 1051 deletions

71
.gitignore vendored
View File

@ -1,38 +1,41 @@
# Ignore everything explicitly # ignore my git update script
* update_git.py
# Whitelist files/folders with !, these will not be ignored. # ignore hidden folders
!*.yaml /config/.storage
!.gitignore /config/.cloud
!*.md /config/.google.token
!templates/
!binary_sensors/ # ignore some directories.
!sensors/ /config/icloud/
!packages/ /config/www/
!switches/ /config/tts/
!lights/ /config/deps/
!python_scripts/ /config/hadashboards/
!alerts/ /config/intents/
!scripts/ /config/themes/
/config/custom_components
# Then because I'm paranoid... # ignore any of these filesno matter where they are
# Ignore folders. **.DS_Store
.storage **._*
.cloud **.HA_VERSION
.google.token **.pyc
.homekit.state **.conf
icloud/ **.uuid
www/ **.txt
tts/ **.log
deps/ **.db
hadashboards/ **.sqlite
intents/ **.xml
secrets.yaml **secrets*
ip_bans.yaml **known_devices.yaml
._* **google_calendars.yaml
google_calendars.yaml **ip_bans.yaml
known_devices* **.spotify-token-cache
zones.yaml **zones.yaml
scripts/test.yaml **test.yaml
**.homekit*
**.vscode

142
README.md
View File

@ -1,77 +1,121 @@
<h1 align="center"> <h1 align="center">
<a name="logo" href="http://jeffreystone.net"><img src="https://github.com/thejeffreystone/home-assistant-configuration/blob/master/www/ahlogo_bw.png" alt="Anchorage House HA" width="200"></a> <a name="logo" href="http://jeffreystone.net"><img src="https://github.com/thejeffreystone/home-assistant-configuration/blob/master/config/www/ahlogo_bw.png" alt="Anchorage House HA" width="200"></a>
<br> <br>
Anchorage House - Home Assistant Configuration Anchorage House - Home Assistant Configuration
</h1> </h1>
This repo contains the working [Home Assistant](https://home-assistant.io/) configuration for **Anchorage House**. Below are links to the devices currently being used, blog posts, and other HA enthusists that provided inspiration and configs to help build this config. All of the code is free to use. This repo contains the working [Home Assistant](https://home-assistant.io/) configuration for **Anchorage House**. Below are links to the devices currently being used, blog posts, and other HA enthusists that provided inspiration and configs to help build this config. All of the code is free to use.
This is V4 of my config. Be sure to follow me on twitter [@thejeffreystone](https://twitter.com/thejeffreystone) and on [YouTube](https://www.youtube.com/channel/UCipZJ6748kd8TbelSxcvcVg) where I am starting to post videos of my Home Automation.
#### Major Changes in v4: You can also follow Anchorage House on Twitter [@anchoragehouse2](https://twitter.com/anchoragehouse2) where it will tweets about the cool automations it does throughout the day.
* Moved to Lovelace UI
* Started migrating to packages to better organize sesnors, scripts, and automations #### Anchorage House's Three Laws of Home Automation
* Continued work to streamline the config
* Anchorage House now tweets throughout the day - [@anchoragehouse2](https://twitter.com/anchoragehouse2) When designing Anchorage House's automations I have made every effort to prioritize the solution based on the following three laws.
* Due to a required garage door opener replacement the GoControl ZWave Garage Opener has been replaced with Chamberlain MyQ
**Law 1: Every automation or action should be the result of a passive sensor or indirect action**.
**Law 2: An automation can be triggered by voice command only when Law 1 cannot be achieved**.
**Law 3: An automation or action can be trigger by a physical switch or as the result of a direct iteraction only when Law 1 and Law 2 cannot be achieved.**
<hr>
This is V5 of my config.
##### Major Changes in v5:
* Migrated from Hassbian to Hassio
* Migrated off Smartthings, which had been used a device hub. My zwave and zigbee devices are now using zwave2mqtt and zigbee2mqtt.
* Swapped the Honeywell Wifi Thermostat out for an Ecobee. This actually happened over the summer, and I am just now updating the readme...
#### General Information about Anchorage House #### General Information about Anchorage House
Hassbian is the flavor of Home Assistant powering Anchorage House. Currently it is running on a RaspberryPi 3. I also have a Ubuntu Server that handles running some other things like my 433mhz data collection, and Splunk for Home Assistant data analytics. And Smartthings is currently used as a dumb hub handling most of the zwave and zigbee devices. Hassio is the flavor of Home Assistant powering Anchorage House these days. Currently it is running on a RaspberryPi 3. I also have a Ubuntu Server that handles running some other things like my 433mhz data collection from varios temperature sensors, and Splunk for Home Assistant data analytics.
The old configurations are stored in branches for anyone that wants to see the previous iterations. However, the only branch guaranteed to work with the current version of Home Assistant is master. The old configurations are stored in branches for anyone that wants to see the previous iterations. However, the only branch guaranteed to work with the current version of Home Assistant is master.
Read about the continuing work to automate **everything** over on my [blog](https://medium.com/@thejeffreystone). But be warned, it really hasn't been updated in a while. Feel free to reach out if you have questions. I love this stuff. Read about the continuing work to automate **everything** over on my [blog](https://www.thejeffreystone.net). But be warned, it really hasn't been updated in a while, altrhough I hope to change that soon. Feel free to reach out if you have questions. I love this stuff.
One last thing. Everything in this configuration is a combination of the things I want out of a home automation system flavored with the inspiration from other using Home Assistant. In some cases I took someone else's idea and made it my own, or I just completely stole it. So I would be remiss if I didn't acknowledge those that inpired this journey. If you like what you see here, please checkout their configs as well. I owe them thanks for sharing their work. One last thing. Everything in this configuration is a combination of the things I want out of a home automation system flavored with the inspiration from others using Home Assistant. In some cases I took someone else's idea and made it my own, and in some I just completely stole it. So I would be remiss if I didn't acknowledge those that inpired this journey. If you like what you see here, please checkout their configs as well. I owe them thanks for sharing their work.
* [CCOSTAN](https://github.com/CCOSTAN/Home-AssistantConfig#logo) / [https://www.vCloudInfo.com](https://www.vCloudInfo.com) * [CCOSTAN](https://github.com/CCOSTAN/Home-AssistantConfig#logo) / [https://www.vCloudInfo.com](https://www.vCloudInfo.com)
* [Isabella Gross Alström](https://isabellaalstrom.github.io/) * [Isabella Gross Alström](https://isabellaalstrom.github.io/)
* [Mahasri Kalavala](https://github.com/skalavala/mysmarthome) * [Mahasri Kalavala](https://github.com/skalavala/mysmarthome)
#### Devices: #### Devices:
* Various Apple Devices (Macbooks, Mac Mini, iPhones, iPads)
None of the following links are affiliate links, and are included merely as reference. ##### Networking
* [Eero Mesh Network Routers](https://amzn.to/2Nty6fE)
* [Aeotec Z-Stick Gen 5](https://amzn.to/2K4BqMf)
* Apple Devices (Macbooks, Mac Mini, iPhones, iPads) ##### Media
* [Honeywell Wifi Thermostat](http://a.co/cqvrljP)
* [Amazon Echo Dot](http://a.co/7VYHqvw)
* Amazon Echo Gen 2
* [Smartthings](http://a.co/2xWyXF5)
* [GE Z-Wave Switches](http://a.co/3OUpcMf)
* [Aeon Energy Switches](http://a.co/7aKBkst)
* [First Alert Z-Wave Smoke/CO2](http://a.co/iTuEjU8)
* [GoControl Z-Wave Bulbs](http://a.co/ajfXdIS)
* [Cree Connect Bulbs](http://a.co/91ddysL)
* [Foscam FI8918W](http://a.co/cExSWZ7)
* [MyQ Garage Door Opener](https://www.amazon.com/dp/B075H7Z5L8/)
* [ZWave Door Sensor]( http://a.co/4Uj8d5r)
* [Sonoff WiFi Wireless Smart Switch ]( http://a.co/9v8KnBT)
* [Levitron Plug in ZWave Dimmer](http://a.co/8wOv1Gs)
* [Levitron ZWave Switch](http://a.co/1z9EeS3)
* [Dome Motion Sensor](http://a.co/aFlzEmf)
* [Dome Door Window Sensor](http://a.co/eo4DsIk)
* AppleTv * AppleTv
* ChromeCast * Google Home Hub / Home Mini
* Roku Streaming Stick * [Amazon Echo Dot](https://amzn.to/32vt6vr)
* [NeoTec USB SDR](http://a.co/giwQvX1) For getting data from Accurite temperture and humidty sensors * [Amazon Echo](https://amzn.to/34LSajw)
* [Accurite Temp and Humidty Sensors](http://a.co/hcppyvF) * [ChromeCast](https://amzn.to/34HIjuL)
* [Sonoff Wifi Switches](http://a.co/dh5hCZu) * [Roku Premiere](https://amzn.to/2CmOBnF)
* [Roku Streaming Stick](https://amzn.to/34At7zI)
##### Cameras
* [Arlo Pro 2 Cameras](https://amzn.to/32ulDNl)
* [Foscam FI8918W](https://amzn.to/33wKdOL)
##### Switches
* [MyQ Garage Door Opener](https://amzn.to/2NXQSea)
* [GE Z-Wave Switches](https://amzn.to/33vh8mS)
* [Sonoff WiFi Smart Switch ](https://amzn.to/2K0mPla)
* [Levitron Plug in ZWave Dimmer](https://amzn.to/2NW9kno)
* [Levitron Z-Wave Switch](https://amzn.to/2JXyDob)
* [Wemo Wifi SmartPlug](https://amzn.to/2K4bikB)
* [TP-Link HS103 Wifi Switch](https://amzn.to/32wV7Tg)
* [Honeywell Z-Wave Plug](https://amzn.to/2NtRE3L)
* [Sylvania Smart Zigbee Plug](https://amzn.to/32zoJzH)
##### Lights
* [Sengled LED Color Plus (Zigbee)](https://amzn.to/32nEjy8)
* [Cree Connect Bulbs (Zigbee)](https://amzn.to/2NrYOWa)
##### Sensors
* [Z-Wave Door Sensor](https://amzn.to/34MM1n7)
* [Z-Wave Garage Door Tilt Sensor](https://amzn.to/2WUHc8s)
* [Dome Motion Z-Wave Sensor](https://amzn.to/32nD5Ty)
##### Climate
* [Ecobee Thermostat](https://www.amazon.com/gp/product/B07K2GTKQ5/ref=as_li_tl?ie=UTF8&tag=thejefferysto-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=B07K2GTKQ5&linkId=af62c6bb747234ded5bc4161a651d47a)
* [Ecobee Temp and Motion Sensors](https://amzn.to/2NSdNYz)
* [USB SDR](https://amzn.to/2Nv3f2l) For getting data from Accurite temperture and humidty sensors
* [Accurite Temp and Humidty Sensors](https://amzn.to/36LUatA)
##### Security
* [First Alert Z-Wave Smoke/CO2](https://amzn.to/34M6wQT)
#### Integrations: #### Integrations:
* Amazon Echo * Amazon Echo - Voice Control and Music
* IFTTT * IFTTT - Automations
* Owntracks * Life360 - Presence Detection
* Life360 * Spotify - Music
* Spotify * Google (Calendar API, GMail for sensors, and Google Home) - Voice Control, Automations based on Calendar, USPS Informed Delivery
* Goolge (Calendar API, GMail for sensors, and Google Home) * Waze API - Transit time and Automations
* Waze API * Dropbox b- Config ackup
* Dropbox for backup * MQTT - For Zwave, Zigbee, various sensors running on a different host.
* MQTT (For Smartthings, Owntracks, Life360) * Eero - Networked Devices
* Eero For Networked Devices * [RTL_433](https://github.com/merbanan/rtl_433) - Indoor and Outdoor Temperature Sensors
* [Smartthings-MQTT-Bridge](https://github.com/stjohnjohnson/smartthings-mqtt-bridge) * Cloudflare - 15 year SSL Cert
* [RTL_433](https://github.com/merbanan/rtl_433) * Splunk - Data Analytics
* Cloudflare for SSL and DNS
* Splunk
* Various other services and APIs * Various other services and APIs
#### Want to support this project?
<p align="center">
<style>.bmc-button img{width: 35px !important;margin-bottom: 1px !important;box-shadow: none !important;border: none !important;vertical-align: middle !important;}.bmc-button{padding: 7px 5px 7px 10px !important;line-height: 35px !important;height:51px !important;min-width:217px !important;text-decoration: none !important;display:inline-flex !important;color:#ffffff !important;background-color:#5F7FFF !important;border-radius: 5px !important;border: 1px solid transparent !important;padding: 7px 5px 7px 10px !important;font-size: 22px !important;letter-spacing: 0.6px !important;box-shadow: 0px 1px 2px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 1px 2px 2px rgba(190, 190, 190, 0.5) !important;margin: 0 auto !important;font-family:'Cookie', cursive !important;-webkit-box-sizing: border-box !important;box-sizing: border-box !important;-o-transition: 0.3s all linear !important;-webkit-transition: 0.3s all linear !important;-moz-transition: 0.3s all linear !important;-ms-transition: 0.3s all linear !important;transition: 0.3s all linear !important;}.bmc-button:hover, .bmc-button:active, .bmc-button:focus {-webkit-box-shadow: 0px 1px 2px 2px rgba(190, 190, 190, 0.5) !important;text-decoration: none !important;box-shadow: 0px 1px 2px 2px rgba(190, 190, 190, 0.5) !important;opacity: 0.85 !important;color:#ffffff !important;}</style><link href="https://fonts.googleapis.com/css?family=Cookie" rel="stylesheet"><a class="bmc-button" target="_blank" href="https://www.buymeacoffee.com/icE6DeBut"><img src="https://cdn.buymeacoffee.com/buttons/bmc-new-btn-logo.svg" alt="Buy me a coffee"><span style="margin-left:15px;font-size:28px !important;">Buy me a coffee</span></a>
<br />
<a target="_blank" href="https://www.amazon.com/?&_encoding=UTF8&tag=thejeffreystone-20&linkCode=ur2&linkId=36476f43b573601a05b45e576b67ccd2&camp=1789&creative=9325">Find your next Home Automation device on Amazon using my affiliate link</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=thejeffreystone-20&l=ur2&o=1" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<br />
<a href="http://www.jeffreystone.net/pages/affiliate-disclosure.html">
Affiliate Disclosure
</a>
</p>

View File

@ -1,42 +0,0 @@
- platform: mqtt
name: "Back Door"
state_topic: "smartthings/Back Door/contact"
payload_on: "open"
payload_off: "closed"
device_class: door
- platform: mqtt
name: "Garage Door"
state_topic: "smartthings/Garage Door/contact"
payload_on: "open"
payload_off: "closed"
device_class: garage_door
- platform: mqtt
name: "Front Door"
state_topic: "smartthings/Front Door/contact"
payload_on: "open"
payload_off: "closed"
device_class: door
- platform: mqtt
name: "Laundry Room Door"
state_topic: "smartthings/Laundry Room Door/contact"
payload_on: "open"
payload_off: "closed"
device_class: door
- platform: mqtt
name: "Attic Door" # Dome Door Sensor
state_topic: "smartthings/Attic Door/contact"
payload_on: "open"
payload_off: "closed"
device_class: door
- platform: mqtt
name: "Side Door" # Dome Door Sensor
state_topic: "smartthings/Side Door/contact"
payload_on: "open"
payload_off: "closed"
device_class: door
- platform: mqtt
name: "Washer Door"
state_topic: "smartthings/Washer Door/contact"
payload_on: "open"
payload_off: "closed"
device_class: door

View File

@ -1,13 +0,0 @@
- platform: mqtt
name: "Garage Motion" # Dome Motion Sensor
state_topic: "smartthings/Garage Motion/contact"
payload_on: "active"
payload_off: "inactive"
device_class: motion
- platform: command_line
name: vlc player
command: 'pidof vlc | wc -l'
payload_on: 1
payload_off: 0
scan_interval: 10

18
automations.yaml → config/automations.yaml Executable file → Normal file
View File

@ -2,7 +2,7 @@
alias: Washer Running alias: Washer Running
trigger: trigger:
- above: 5 - above: 5
entity_id: sensor.washer entity_id: sensor.washer_power
platform: numeric_state platform: numeric_state
action: action:
- service: script.washer_running - service: script.washer_running
@ -11,7 +11,7 @@
alias: Washer Complete alias: Washer Complete
trigger: trigger:
- below: 3 - below: 3
entity_id: sensor.washer entity_id: sensor.washer_power
platform: numeric_state platform: numeric_state
condition: condition:
- condition: state - condition: state
@ -25,7 +25,7 @@
alias: Washer Emptied alias: Washer Emptied
trigger: trigger:
- platform: state - platform: state
entity_id: binary_sensor.washer_door_contact entity_id: binary_sensor.washer_door
from: 'off' from: 'off'
to: 'on' to: 'on'
action: action:
@ -111,7 +111,9 @@
- service: scene.turn_on - service: scene.turn_on
entity_id: scene.normal_kitchen_lighting entity_id: scene.normal_kitchen_lighting
- service: switch.turn_off - service: switch.turn_off
entity_id: switch.rainbow_light_3 entity_id: switch.0xf0d1b80000052281_switch # Rainbow Light
- service: light.turn_on
entity_id: light.0xe20db9fffe003637_light # Skylar's Lamp
- service: scene.turn_on - service: scene.turn_on
entity_id: scene.jeff_light_on entity_id: scene.jeff_light_on
- service: script.twitter_notify - service: script.twitter_notify
@ -133,9 +135,9 @@
state: 'off' state: 'off'
action: action:
- service: switch.turn_on - service: switch.turn_on
entity_id: switch.rainbow_light_3 entity_id: switch.0xf0d1b80000052281_switch # Rainbow Light
- service: light.turn_on - service: light.turn_on
entity_id: light.table_lamp_2 entity_id: light.0xe20db9fffe003637_light
- service: alarm_control_panel.alarm_arm_away - service: alarm_control_panel.alarm_arm_away
entity_id: alarm_control_panel.ah_base_station entity_id: alarm_control_panel.ah_base_station
- id: jeff_lights_out - id: jeff_lights_out
@ -238,7 +240,7 @@
- service: switch.turn_off - service: switch.turn_off
entity_id: switch.incense entity_id: switch.incense
- service: switch.turn_off - service: switch.turn_off
entity_id: switch.artemis_2 entity_id: switch.artemis
- service: light.turn_off - service: light.turn_off
data: data:
entity_id: light.kitchen_cabinet_lights entity_id: light.kitchen_cabinet_lights
@ -456,7 +458,7 @@
data_template: data_template:
time: > time: >
{% if states.binary_sensor.workday_sensor.state == 'on' %} {% if states.binary_sensor.workday_sensor.state == 'on' %}
05:15 04:30
{% else %} {% else %}
07:15 07:15
{% endif %} {% endif %}

View File

@ -0,0 +1,42 @@
- platform: mqtt
name: "Back Door"
state_topic: "zwave2mqtt/nodeID_28/48/1/0"
payload_on: "open"
payload_off: "closed"
device_class: door
- platform: mqtt
name: "Garage Door"
state_topic: "zwave2mqtt/nodeID_16/48/1/0"
payload_on: "true"
payload_off: "false"
device_class: garage_door
- platform: mqtt
name: "Front Door"
state_topic: "zwave2mqtt/nodeID_27/48/1/0"
payload_on: "open"
payload_off: "closed"
device_class: door
- platform: mqtt
name: "Laundry Room Door"
state_topic: "zwave2mqtt/nodeID_26/48/1/0"
payload_on: "true"
payload_off: "false"
device_class: door
- platform: mqtt
name: "Attic Door" # Dome Door Sensor
state_topic: "zwave2mqtt/nodeID_18/48/1/0"
payload_on: "true"
payload_off: "false"
device_class: door
- platform: mqtt
name: "Side Door" # Dome Door Sensor
state_topic: "zwave2mqtt/side_door/48/1/0"
payload_on: "true"
payload_off: "false"
device_class: door
- platform: mqtt
name: "Washer Door"
state_topic: "zwave2mqtt/washer_door/48/1/0"
payload_on: "true"
payload_off: "false"
device_class: door

View File

@ -0,0 +1,13 @@
- platform: mqtt
name: "Garage Motion" # Dome Motion Sensor
state_topic: "zwave2mqtt/garage_motion/48/1/0"
payload_on: "true"
payload_off: "false"
device_class: motion
# - platform: command_line
# name: vlc player
# command: 'pidof vlc | wc -l'
# payload_on: 1
# payload_off: 0
# scan_interval: 10

187
config/configuration.yaml Normal file
View File

@ -0,0 +1,187 @@
homeassistant:
name: Home
latitude: !secret MY_LATITUDE
longitude: !secret MY_LONGITUDE
elevation: 315
unit_system: imperial
time_zone: America/New_York
customize: !include customize.yaml
auth_providers:
- type: homeassistant
packages: !include_dir_named packages
# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:
# Uncomment this if you are using SSL/TLS, running in Docker container, etc.
http:
base_url: !secret ahsl_base_url
ssl_certificate: !secret ahsl_ssl_cert
ssl_key: !secret ahsl_ssl_key
ssdp:
zeroconf:
system_health:
mobile_app:
person:
frontend:
themes: !include_dir_merge_named themes
# Text to speech
# tts:
# - platform: google_translate
cloud:
wemo:
discovery: true
weather:
- platform: darksky
api_key: !secret darksky_api
name: Grayson
conversation:
device_tracker:
# - platform: icloud
# username: !secret ICLOUD_USER
# password: !secret ICLOUD_PASS
# track_new_devices: yes
# - platform: owntracks
#
# - platform: eero_tracker
# consider_home: 300
# interval_seconds: 60
# track_new_devices: yes
# only_macs: "d0:c5:f3:80:50:5e, f4:31:c3:84:1d:d1, 08:74:02:CC:C4:97, 5C:F5:DA:9B:5A:A2, 34:7C:25:CC:9D:0F, 64:52:99:93:F1:B3"
google:
client_id: !secret google_client_id
client_secret: !secret google_client_secret
arlo:
username: !secret arlo_user
password: !secret arlo_pass
alarm_control_panel:
- platform: arlo
home_mode_name: home
away_mode_name: armed
discovery:
ignore:
- igd
updater:
include_used_components: true
sun:
recorder:
#db_url: sqlite:///data/home-assistant_v2.db
purge_keep_days: 2
exclude:
domains:
- automation
- weblink
- updater
entities:
- sun.sun # Don't record sun data
- sensor.last_boot # Comes from 'systemmonitor' sensor platform
- sensor.date
logbook:
include:
domains:
- media_player
- automation
- script
logger:
default: warning
#logs:
# homeassistant.components.sensor.alpha_vantage: debug
history:
include:
domains:
- sensor
- switch
- media_player
- light
camera:
- platform: mjpeg
name: Garage Door Cam
mjpeg_url: !secret garage_cam
- platform: arlo
ffmpeg_arguments: '-pred 1 -q:v 2'
ffmpeg:
ffmpeg_bin: /usr/bin/ffmpeg
life360:
accounts:
- username: !secret life360_username
password: !secret life360_password
python_script:
ecobee:
api_key: !secret ecobee_api
map:
wwlln:
radius: 75
latitude: !secret MY_LATITUDE
longitude: !secret MY_LONGITUDE
tplink:
discovery: false
switch:
- host: 192.168.7.105
- host: 192.168.7.107
ifttt:
key: !secret IFTTT_API_KEY
media_player:
- platform: spotify
client_id: !secret spotify_client
client_secret: !secret spotify_secret
group: !include groups.yaml
# automation: !include automations.yaml
# script: !include scripts.yaml
### Includes ###
alert: !include_dir_merge_named alerts/
automation: !include automations.yaml
script: !include_dir_merge_named scripts
#group: !include groups.yaml
#automation: !include automations.yaml
sensor: !include_dir_merge_list sensors
binary_sensor: !include_dir_merge_list binary_sensors
#light: !include_dir_merge_list lights
light: !include lights.yaml
#switch: !include_dir_merge_list switches
switch: !include switches.yaml
#script: !include_dir_merge_named scripts
#intent_script: !include intents/intents.yaml
scene: !include scenes.yaml
input_select: !include input_select.yaml
input_boolean: !include input_boolean.yaml
input_datetime: !include input_datetime.yaml
zone: !include zones.yaml

View File

@ -0,0 +1 @@
"""Support for Amazon Polly integration."""

View File

@ -0,0 +1,243 @@
"""Support for the Amazon Polly text to speech service."""
import logging
import boto3
import voluptuous as vol
from homeassistant.components.tts import PLATFORM_SCHEMA, Provider
import homeassistant.helpers.config_validation as cv
_LOGGER = logging.getLogger(__name__)
CONF_REGION = "region_name"
CONF_ACCESS_KEY_ID = "aws_access_key_id"
CONF_SECRET_ACCESS_KEY = "aws_secret_access_key"
CONF_PROFILE_NAME = "profile_name"
ATTR_CREDENTIALS = "credentials"
DEFAULT_REGION = "us-east-1"
SUPPORTED_REGIONS = [
"us-east-1",
"us-east-2",
"us-west-1",
"us-west-2",
"ca-central-1",
"eu-west-1",
"eu-central-1",
"eu-west-2",
"eu-west-3",
"ap-southeast-1",
"ap-southeast-2",
"ap-northeast-2",
"ap-northeast-1",
"ap-south-1",
"sa-east-1",
]
CONF_ENGINE = "engine"
CONF_VOICE = "voice"
CONF_OUTPUT_FORMAT = "output_format"
CONF_SAMPLE_RATE = "sample_rate"
CONF_TEXT_TYPE = "text_type"
SUPPORTED_VOICES = [
"Zhiyu", # Chinese
"Mads",
"Naja", # Danish
"Ruben",
"Lotte", # Dutch
"Russell",
"Nicole", # English Australian
"Brian",
"Amy",
"Emma", # English
"Aditi",
"Raveena", # English, Indian
"Joey",
"Justin",
"Matthew",
"Ivy",
"Joanna",
"Kendra",
"Kimberly",
"Salli", # English
"Geraint", # English Welsh
"Mathieu",
"Celine",
"Lea", # French
"Chantal", # French Canadian
"Hans",
"Marlene",
"Vicki", # German
"Aditi", # Hindi
"Karl",
"Dora", # Icelandic
"Giorgio",
"Carla",
"Bianca", # Italian
"Takumi",
"Mizuki", # Japanese
"Seoyeon", # Korean
"Liv", # Norwegian
"Jacek",
"Jan",
"Ewa",
"Maja", # Polish
"Ricardo",
"Vitoria", # Portuguese, Brazilian
"Cristiano",
"Ines", # Portuguese, European
"Carmen", # Romanian
"Maxim",
"Tatyana", # Russian
"Enrique",
"Conchita",
"Lucia", # Spanish European
"Mia", # Spanish Mexican
"Miguel",
"Penelope", # Spanish US
"Astrid", # Swedish
"Filiz", # Turkish
"Gwyneth", # Welsh
]
SUPPORTED_OUTPUT_FORMATS = ["mp3", "ogg_vorbis", "pcm"]
SUPPORTED_ENGINES = ["neural", "standard"]
SUPPORTED_SAMPLE_RATES = ["8000", "16000", "22050", "24000"]
SUPPORTED_SAMPLE_RATES_MAP = {
"mp3": ["8000", "16000", "22050", "24000"],
"ogg_vorbis": ["8000", "16000", "22050"],
"pcm": ["8000", "16000"],
}
SUPPORTED_TEXT_TYPES = ["text", "ssml"]
CONTENT_TYPE_EXTENSIONS = {"audio/mpeg": "mp3", "audio/ogg": "ogg", "audio/pcm": "pcm"}
DEFAULT_ENGINE = "standard"
DEFAULT_VOICE = "Joanna"
DEFAULT_OUTPUT_FORMAT = "mp3"
DEFAULT_TEXT_TYPE = "text"
DEFAULT_SAMPLE_RATES = {"mp3": "22050", "ogg_vorbis": "22050", "pcm": "16000"}
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{
vol.Optional(CONF_REGION, default=DEFAULT_REGION): vol.In(SUPPORTED_REGIONS),
vol.Inclusive(CONF_ACCESS_KEY_ID, ATTR_CREDENTIALS): cv.string,
vol.Inclusive(CONF_SECRET_ACCESS_KEY, ATTR_CREDENTIALS): cv.string,
vol.Exclusive(CONF_PROFILE_NAME, ATTR_CREDENTIALS): cv.string,
vol.Optional(CONF_VOICE, default=DEFAULT_VOICE): vol.In(SUPPORTED_VOICES),
vol.Optional(CONF_ENGINE, default=DEFAULT_ENGINE): vol.In(SUPPORTED_ENGINES),
vol.Optional(CONF_OUTPUT_FORMAT, default=DEFAULT_OUTPUT_FORMAT): vol.In(
SUPPORTED_OUTPUT_FORMATS
),
vol.Optional(CONF_SAMPLE_RATE): vol.All(
cv.string, vol.In(SUPPORTED_SAMPLE_RATES)
),
vol.Optional(CONF_TEXT_TYPE, default=DEFAULT_TEXT_TYPE): vol.In(
SUPPORTED_TEXT_TYPES
),
}
)
def get_engine(hass, config):
"""Set up Amazon Polly speech component."""
output_format = config.get(CONF_OUTPUT_FORMAT)
sample_rate = config.get(CONF_SAMPLE_RATE, DEFAULT_SAMPLE_RATES[output_format])
if sample_rate not in SUPPORTED_SAMPLE_RATES_MAP.get(output_format):
_LOGGER.error(
"%s is not a valid sample rate for %s", sample_rate, output_format
)
return None
config[CONF_SAMPLE_RATE] = sample_rate
profile = config.get(CONF_PROFILE_NAME)
if profile is not None:
boto3.setup_default_session(profile_name=profile)
aws_config = {
CONF_REGION: config.get(CONF_REGION),
CONF_ACCESS_KEY_ID: config.get(CONF_ACCESS_KEY_ID),
CONF_SECRET_ACCESS_KEY: config.get(CONF_SECRET_ACCESS_KEY),
}
del config[CONF_REGION]
del config[CONF_ACCESS_KEY_ID]
del config[CONF_SECRET_ACCESS_KEY]
polly_client = boto3.client("polly", **aws_config)
supported_languages = []
all_voices = {}
all_voices_req = polly_client.describe_voices()
for voice in all_voices_req.get("Voices"):
all_voices[voice.get("Id")] = voice
if voice.get("LanguageCode") not in supported_languages:
supported_languages.append(voice.get("LanguageCode"))
return AmazonPollyProvider(polly_client, config, supported_languages, all_voices)
class AmazonPollyProvider(Provider):
"""Amazon Polly speech api provider."""
def __init__(self, polly_client, config, supported_languages, all_voices):
"""Initialize Amazon Polly provider for TTS."""
self.client = polly_client
self.config = config
self.supported_langs = supported_languages
self.all_voices = all_voices
self.default_voice = self.config.get(CONF_VOICE)
self.name = "Amazon Polly"
@property
def supported_languages(self):
"""Return a list of supported languages."""
return self.supported_langs
@property
def default_language(self):
"""Return the default language."""
return self.all_voices.get(self.default_voice).get("LanguageCode")
@property
def default_options(self):
"""Return dict include default options."""
return {CONF_VOICE: self.default_voice}
@property
def supported_options(self):
"""Return a list of supported options."""
return [CONF_VOICE]
def get_tts_audio(self, message, language=None, options=None):
"""Request TTS file from Polly."""
voice_id = options.get(CONF_VOICE, self.default_voice)
voice_in_dict = self.all_voices.get(voice_id)
if language != voice_in_dict.get("LanguageCode"):
_LOGGER.error("%s does not support the %s language", voice_id, language)
return None, None
resp = self.client.synthesize_speech(
Engine=self.config[CONF_ENGINE],
OutputFormat=self.config[CONF_OUTPUT_FORMAT],
SampleRate=self.config[CONF_SAMPLE_RATE],
Text=message,
TextType=self.config[CONF_TEXT_TYPE],
VoiceId=voice_id,
)
return (
CONTENT_TYPE_EXTENSIONS[resp.get("ContentType")],
resp.get("AudioStream").read(),
)

View File

@ -0,0 +1,187 @@
'''
---------------------------------------------------------
NWS Alerts
---------------------------------------------------------
VERSION: 0.0.2
Forum: https://community.home-assistant.io/t/severe-weather-alerts-from-the-us-national-weather-service/71853
API Documentation
---------------------------------------------------------
https://www.weather.gov/documentation/services-web-api
https://forecast-v3.weather.gov/documentation
---------------------------------------------------------
'''
import requests
import logging
import voluptuous as vol
from datetime import timedelta
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_NAME, ATTR_ATTRIBUTION
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle
API_ENDPOINT = 'https://api.weather.gov'
USER_AGENT = 'Home Assistant'
DEFAULT_ICON = 'mdi:alert'
MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=1)
_LOGGER = logging.getLogger(__name__)
DEFAULT_NAME = 'NWS Alerts'
CONF_ZONE_ID = 'zone_id'
ZONE_ID = ''
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_ZONE_ID): cv.string,
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
})
def setup_platform(hass, config, add_devices, discovery_info=None):
"""Setup the sensor platform."""
name = config.get(CONF_NAME, DEFAULT_NAME)
zone_id = config.get(CONF_ZONE_ID)
add_devices([NWSAlertSensor(name, zone_id)])
class NWSAlertSensor(Entity):
"""Representation of a Sensor."""
def __init__(self, name, zone_id):
"""Initialize the sensor."""
self._name = name
self._icon = DEFAULT_ICON
self._state = 0
self._event = None
self._display_desc = None
self._spoken_desc = None
self._zone_id = zone_id.replace(' ', '')
self.update()
@property
def name(self):
"""Return the name of the sensor."""
return self._name
@property
def icon(self):
"""Return the icon to use in the frontend, if any."""
return self._icon
@property
def state(self):
"""Return the state of the sensor."""
return self._state
@property
def device_state_attributes(self):
"""Return the state message."""
attributes = {"title": self._event,
"display_desc": self._display_desc,
"spoken_desc": self._spoken_desc
}
return attributes
@Throttle(MIN_TIME_BETWEEN_UPDATES)
def update(self):
"""Fetch new state data for the sensor.
This is the only method that should fetch new data for Home Assistant.
"""
values = self.get_state()
self._state = values['state']
self._event = values['event']
self._display_desc = values['display_desc']
self._spoken_desc = values['spoken_desc']
def get_state(self):
values = {'state': 0,
'event': None,
'display_desc': None,
'spoken_desc': None
}
headers = {'User-Agent': USER_AGENT,
'Accept': 'application/ld+json'
}
url = '%s/alerts/active/count' % API_ENDPOINT
r = requests.get(url, headers=headers)
_LOGGER.debug("getting state, %s", url)
if r.status_code == 200:
if 'zones' in r.json():
for zone in self._zone_id.split(','):
if zone in r.json()['zones']:
values = self.get_alerts()
break
return values
def get_alerts(self):
values = {'state': 0,
'event': None,
'display_desc': None,
'spoken_desc': None
}
headers = {'User-Agent': USER_AGENT,
'Accept': 'application/geo+json'
}
url = '%s/alerts/active?zone=%s' % (API_ENDPOINT, self._zone_id)
r = requests.get(url, headers=headers)
_LOGGER.debug("getting alert, %s", url)
if r.status_code == 200:
events = []
headlines = []
display_desc = ''
spoken_desc = ''
features = r.json()['features']
for alert in features:
event = alert['properties']['event']
if 'NWSheadline' in alert['properties']['parameters']:
headline = alert['properties']['parameters']['NWSheadline'][0]
else:
headline = event
description = alert['properties']['description']
instruction = alert['properties']['instruction']
if event in events:
continue
events.append(event)
headlines.append(headline)
if display_desc != '':
display_desc += '\n\n'
display_desc += '<b>%s</b>\n%s\n%s\n%s' % (event, headline, description, instruction)
if headlines:
num_headlines = len(headlines)
i = 0
for headline in headlines:
i += 1
if spoken_desc != '':
if i == num_headlines:
spoken_desc += ' and a '
else:
spoken_desc += ', a '
spoken_desc += headline
if len(events) > 0:
event_str = ''
for item in events:
if event_str != '':
event_str += ' - '
event_str += item
values['state'] = len(events)
values['event'] = event_str
values['display_desc'] = display_desc
values['spoken_desc'] = spoken_desc
return values

View File

@ -58,6 +58,6 @@ Disney Audio:
- input_boolean.happy_ever_after - input_boolean.happy_ever_after
rgb_lr: rgb_lr:
- light.tower_lamp_2 - light.0xb0ce18140003608a_light_2
- light.front_door_lamp - light.0xb0ce181400051b4c_light_2
- light.living_room_lamp - light.0xb0ce181400051072_light_2

View File

@ -146,5 +146,3 @@ clean_fish_tank:
heartworm: heartworm:
name: Heartworm name: Heartworm
icon: mdi:dog-side icon: mdi:dog-side

82
config/lights.yaml Normal file
View File

@ -0,0 +1,82 @@
# Living Room
# Sengled LED Lights
- platform: mqtt
name: "Tower Lamp"
state_topic: "smartthings/Tower Lamp/switch"
command_topic: "smartthings/Tower Lamp/switch"
brightness_state_topic: "smartthings/Tower Lamp/level"
brightness_command_topic: "smartthings/Tower Lamp/level"
color_temp_command_topic: "smartthings/Tower Lamp/colorTemperature"
color_temp_state_topic: "smartthings/Tower Lamp/colorTemperature"
brightness_scale: 101
payload_on: "on"
payload_off: "off"
retain: true
- platform: mqtt
name: "Front Lamp"
state_topic: "smartthings/Front Lamp/switch"
command_topic: "smartthings/Front Lamp/switch"
brightness_state_topic: "smartthings/Front Lamp/level"
brightness_command_topic: "smartthings/Front Lamp/level"
brightness_scale: 101
payload_on: "on"
payload_off: "off"
retain: true
- platform: mqtt
name: "Front Door Lamp"
state_topic: "smartthings/Front Door Lamp/switch"
command_topic: "smartthings/Front Door Lamp/switch"
brightness_state_topic: "smartthings/Front Door Lamp/level"
brightness_command_topic: "smartthings/Front Door Lamp/level"
brightness_scale: 101
payload_on: "on"
payload_off: "off"
retain: true
# Bedroom
- platform: mqtt
name: "Skylars Lamp"
state_topic: "smartthings/Skylars Lamp/switch"
command_topic: "smartthings/Skylars Lamp/switch"
brightness_state_topic: "smartthings/Skylars Lamp/level"
brightness_command_topic: "smartthings/Skylars Lamp/level"
brightness_scale: 101
payload_on: "on"
payload_off: "off"
retain: true
# Outside
- platform: mqtt
name: "Side Door Light"
command_topic: "zwave2mqtt/nodeID_29/38/1/0/set"
brightness_command_topic: "zwave2mqtt/nodeID_29/38/1/0/set"
brightness_scale: 99
brightness_state_topic: "zwave2mqtt/nodeID_29/38/1/0"
on_command_type: "brightness"
payload_off: 0
# Kitchen
- platform: mqtt
name: "Kitchen Cabinets"
command_topic: "zwave2mqtt/kitchen_cabinets/38/1/0/set"
brightness_command_topic: "zwave2mqtt/kitchen_cabinets/38/1/0/set"
brightness_scale: 99
brightness_state_topic: "zwave2mqtt/kitchen_cabinets/38/1/0"
on_command_type: "brightness"
payload_off: 0
retain: true
- platform: mqtt
name: "Kitchen Cabinet Lights"
command_topic: "zwave2mqtt/kitchen_strip/38/1/0/set"
brightness_command_topic: "zwave2mqtt/kitchen_strip/38/1/0/set"
brightness_scale: 99
brightness_state_topic: "zwave2mqtt/kitchen_strip/38/1/0"
on_command_type: "brightness"
payload_off: 0
retain: true

View File

@ -67,7 +67,7 @@ automation:
to: 'off' to: 'off'
action: action:
- service: media_player.media_stop - service: media_player.media_stop
entity_id: media_player.ha_speaker entity_id: media_player.theater
- service: script.turn_on - service: script.turn_on
entity_id: script.kill_this_ride entity_id: script.kill_this_ride
- id: illuminations_on - id: illuminations_on
@ -123,7 +123,7 @@ automation:
- service: script.turn_on - service: script.turn_on
entity_id: script.kill_this_ride entity_id: script.kill_this_ride
- service: media_player.media_stop - service: media_player.media_stop
entity_id: media_player.ha_speaker entity_id: media_player.theater
- id: happy_ever_after_on - id: happy_ever_after_on
alias: Happy Ever After On alias: Happy Ever After On
initial_state: true initial_state: true
@ -145,7 +145,7 @@ automation:
- service: script.turn_on - service: script.turn_on
entity_id: script.kill_this_ride entity_id: script.kill_this_ride
- service: media_player.media_stop - service: media_player.media_stop
entity_id: media_player.ha_speaker entity_id: media_player.theater
# ####################################### # #######################################
@ -171,7 +171,7 @@ automation:
# action: # action:
# - service: script.kill_this_ride # - service: script.kill_this_ride
# - service: media_player.media_stop # - service: media_player.media_stop
# entity_id: media_player.ha_speaker # entity_id: media_player.theater
# ####################################### # #######################################
@ -196,7 +196,7 @@ automation:
- service: script.turn_on - service: script.turn_on
entity_id: script.kill_this_ride entity_id: script.kill_this_ride
- service: media_player.media_stop - service: media_player.media_stop
entity_id: media_player.ha_speaker entity_id: media_player.theater
- id: boo_to_you_show_on - id: boo_to_you_show_on
alias: Boo To You Show On alias: Boo To You Show On
initial_state: true initial_state: true
@ -218,7 +218,7 @@ automation:
- service: script.turn_on - service: script.turn_on
entity_id: script.kill_this_ride entity_id: script.kill_this_ride
- service: media_player.media_stop - service: media_player.media_stop
entity_id: media_player.ha_speaker entity_id: media_player.theater
- id: boo_to_you_on - id: boo_to_you_on
alias: Boo To You On alias: Boo To You On
initial_state: true initial_state: true
@ -240,7 +240,7 @@ automation:
- service: script.turn_on - service: script.turn_on
entity_id: script.kill_this_ride entity_id: script.kill_this_ride
- service: media_player.media_stop - service: media_player.media_stop
entity_id: media_player.ha_speaker entity_id: media_player.theater
- id: holiday_wishes_on - id: holiday_wishes_on
alias: Holiday Wishes On alias: Holiday Wishes On
@ -263,7 +263,7 @@ automation:
- service: script.turn_on - service: script.turn_on
entity_id: script.kill_this_ride entity_id: script.kill_this_ride
- service: media_player.media_stop - service: media_player.media_stop
entity_id: media_player.ha_speaker entity_id: media_player.theater
- id: welcome_show_on - id: welcome_show_on
alias: Welcome Show On alias: Welcome Show On
@ -286,7 +286,7 @@ automation:
- service: script.turn_on - service: script.turn_on
entity_id: script.kill_this_ride entity_id: script.kill_this_ride
- service: media_player.media_stop - service: media_player.media_stop
entity_id: media_player.ha_speaker entity_id: media_player.theater
- id: american_adventure_on - id: american_adventure_on
alias: American Adventure On alias: American Adventure On
@ -309,7 +309,7 @@ automation:
- service: script.turn_on - service: script.turn_on
entity_id: script.kill_this_ride entity_id: script.kill_this_ride
- service: media_player.media_stop - service: media_player.media_stop
entity_id: media_player.ha_speaker entity_id: media_player.theater
- id: springs_christmas_on - id: springs_christmas_on
alias: Disney Springs XMas On alias: Disney Springs XMas On
@ -332,7 +332,7 @@ automation:
- service: script.turn_on - service: script.turn_on
entity_id: script.kill_this_ride entity_id: script.kill_this_ride
- service: media_player.media_stop - service: media_player.media_stop
entity_id: media_player.ha_speaker entity_id: media_player.theater
- id: sleepy_hollow_readalong_on - id: sleepy_hollow_readalong_on
alias: Sleepy Hollow Readalong On alias: Sleepy Hollow Readalong On
@ -355,7 +355,7 @@ automation:
- service: script.turn_on - service: script.turn_on
entity_id: script.kill_this_ride entity_id: script.kill_this_ride
- service: media_player.media_stop - service: media_player.media_stop
entity_id: media_player.ha_speaker entity_id: media_player.theater
- id: move_dance_on - id: move_dance_on
alias: Move It Shake It On alias: Move It Shake It On
@ -378,7 +378,7 @@ automation:
- service: script.turn_on - service: script.turn_on
entity_id: script.kill_this_ride entity_id: script.kill_this_ride
- service: media_player.media_stop - service: media_player.media_stop
entity_id: media_player.ha_speaker entity_id: media_player.theater
- id: kill_show - id: kill_show
@ -406,7 +406,7 @@ automation:
to: 'off' to: 'off'
action: action:
- service: media_player.media_stop - service: media_player.media_stop
entity_id: media_player.ha_speaker entity_id: media_player.theater
- service: scene.turn_on - service: scene.turn_on
entity_id: scene.normal_livingroom_lighting entity_id: scene.normal_livingroom_lighting
- service: script.reset_show_inputs - service: script.reset_show_inputs
@ -559,7 +559,7 @@ script:
kill_this_ride: kill_this_ride:
sequence: sequence:
- service: media_player.media_stop - service: media_player.media_stop
entity_id: media_player.ha_speaker entity_id: media_player.theater
- service: shell_command.alarm_off - service: shell_command.alarm_off
- service: shell_command.vlc_off - service: shell_command.vlc_off
- service: script.turn_off - service: script.turn_off
@ -668,18 +668,18 @@ script:
- condition: state - condition: state
entity_id: sensor.family_status entity_id: sensor.family_status
state: Home state: Home
- service: shell_command.dance_it # - service: shell_command.dance_it
# - service: media_player.turn_on - service: media_player.turn_on
# entity_id: media_player.ha_speaker entity_id: media_player.theater
# - service: media_player.volume_set - service: media_player.volume_set
# data_template: data_template:
# entity_id: media_player.ha_speaker entity_id: media_player.theater
# volume_level: .5 volume_level: .5
# - service: media_player.play_media - service: media_player.play_media
# entity_id: media_player.ha_speaker entity_id: media_player.theater
# data: data:
# media_content_id: http://192.168.7.40/audio/move_it_shake_dance_audio.mp3 media_content_id: http://192.168.7.40/audio/move_it_shake_dance_audio.mp3
# media_content_type: "music" media_content_type: "music"
american_adventure: american_adventure:
sequence: sequence:
- condition: state - condition: state
@ -697,21 +697,21 @@ script:
- condition: state - condition: state
entity_id: sensor.family_status entity_id: sensor.family_status
state: Home state: Home
- service: shell_command.disney_springs_xmas # - service: shell_command.disney_springs_xmas
# - service: switch.turn_on # - service: switch.turn_on
# entity_id: switch.ha_speaker # entity_id: switch.ha_speaker
# - service: media_player.turn_on - service: media_player.turn_on
# entity_id: media_player.theater entity_id: media_player.theater
# - service: media_player.volume_set - service: media_player.volume_set
# data_template: data_template:
# entity_id: media_player.theater entity_id: media_player.theater
# volume_level: > volume_level: >
# .5 .5
# - service: media_player.play_media - service: media_player.play_media
# entity_id: media_player.theater entity_id: media_player.theater
# data: data:
# media_content_id: http://192.168.7.40/audio/Disney_Springs_Xmas_Loop.mp3.mp3 media_content_id: http://192.168.7.40/audio/Disney_Springs_Xmas_Loop.mp3.mp3
# media_content_type: "music" media_content_type: "music"
sleepy_hollow_readalong: sleepy_hollow_readalong:
sequence: sequence:
- condition: state - condition: state
@ -729,18 +729,18 @@ script:
- condition: state - condition: state
entity_id: sensor.family_status entity_id: sensor.family_status
state: Home state: Home
- service: shell_command.spaceship_earth_ride # - service: shell_command.spaceship_earth_ride
# - service: media_player.turn_on - service: media_player.turn_on
# entity_id: media_player.ha_speaker entity_id: media_player.theater
# - service: media_player.volume_set - service: media_player.volume_set
# data_template: data_template:
# entity_id: media_player.ha_speaker entity_id: media_player.theater
# volume_level: .5 volume_level: .5
# - service: media_player.play_media - service: media_player.play_media
# entity_id: media_player.ha_speaker entity_id: media_player.theater
# data: data:
# media_content_id: http://192.168.7.40/audio/spaceship_earth_ride.mp3 media_content_id: http://192.168.7.40/audio/spaceship_earth_ride.mp3
# media_content_type: "music" media_content_type: "music"
welcome_to_magic_kingdom: welcome_to_magic_kingdom:
sequence: sequence:
- condition: state - condition: state
@ -785,18 +785,18 @@ script:
- condition: state - condition: state
entity_id: sensor.family_status entity_id: sensor.family_status
state: Home state: Home
- service: shell_command.welcome_show # - service: shell_command.welcome_show
# - service: media_player.turn_on - service: media_player.turn_on
# entity_id: media_player.ha_speaker entity_id: media_player.theater
# - service: media_player.volume_set - service: media_player.volume_set
# data_template: data_template:
# entity_id: media_player.ha_speaker entity_id: media_player.theater
# volume_level: .5 volume_level: .5
# - service: media_player.play_media - service: media_player.play_media
# entity_id: media_player.ha_speaker entity_id: media_player.theater
# data: data:
# media_content_id: http://192.168.7.40/audio/welcome_show_crowd.mp3 media_content_id: http://192.168.7.40/audio/welcome_show_crowd.mp3
# media_content_type: "music" media_content_type: "music"
holiday_wishes_preshow: holiday_wishes_preshow:
sequence: sequence:
- condition: state - condition: state
@ -817,14 +817,14 @@ script:
- condition: state - condition: state
entity_id: sensor.family_status entity_id: sensor.family_status
state: Home state: Home
- service: shell_command.holiday_wishes # - service: shell_command.holiday_wishes
# - service: media_player.turn_on - service: media_player.turn_on
# entity_id: media_player.ha_speaker entity_id: media_player.theater
# - service: media_player.play_media - service: media_player.play_media
# entity_id: media_player.ha_speaker entity_id: media_player.theater
# data: data:
# media_content_id: http://192.168.7.40/audio/wishes_5_min.mp3 media_content_id: http://192.168.7.40/audio/wishes_5_min.mp3
# media_content_type: "music" media_content_type: "music"
boo_to_you_show: boo_to_you_show:
sequence: sequence:
- condition: state - condition: state
@ -833,14 +833,14 @@ script:
- condition: state - condition: state
entity_id: sensor.family_status entity_id: sensor.family_status
state: Home state: Home
- service: shell_command.boo_to_you # - service: shell_command.boo_to_you
# - service: media_player.turn_on - service: media_player.turn_on
# entity_id: media_player.ha_speaker entity_id: media_player.theater
# - service: media_player.play_media - service: media_player.play_media
# entity_id: media_player.ha_speaker entity_id: media_player.theater
# data: data:
# media_content_id: http://192.168.7.40/audio/boo_to_you_audio.mp3 media_content_id: http://192.168.7.40/audio/boo_to_you_audio.mp3
# media_content_type: "music" media_content_type: "music"
happy_ever_after_show: happy_ever_after_show:
sequence: sequence:
- condition: state - condition: state
@ -849,14 +849,14 @@ script:
- condition: state - condition: state
entity_id: sensor.family_status entity_id: sensor.family_status
state: Home state: Home
- service: shell_command.happily_ever_after # - service: shell_command.happily_ever_after
# - service: media_player.turn_on - service: media_player.turn_on
# entity_id: media_player.hass_speaker entity_id: media_player.theater
# - service: media_player.play_media - service: media_player.play_media
# entity_id: media_player.hass_speaker entity_id: media_player.theater
# data: data:
# media_content_id: http://192.168.7.40/audio/Happily_Ever_After_Audio.mp3 media_content_id: http://192.168.7.40/audio/Happily_Ever_After_Audio.mp3
# media_content_type: "music" media_content_type: "music"
# boo_to_you: # boo_to_you:
# sequence: # sequence:
# - condition: state # - condition: state
@ -867,9 +867,9 @@ script:
# state: Home # state: Home
# #- service: shell_command.boo_to_you # #- service: shell_command.boo_to_you
# - service: media_player.turn_on # - service: media_player.turn_on
# entity_id: media_player.ha_speaker # entity_id: media_player.theater
# - service: media_player.play_media # - service: media_player.play_media
# entity_id: media_player.ha_speaker # entity_id: media_player.theater
# data: # data:
# media_content_id: http://192.168.7.40/audio/boo_to_you_audio.mp3 # media_content_id: http://192.168.7.40/audio/boo_to_you_audio.mp3
# media_content_type: "music" # media_content_type: "music"
@ -881,21 +881,21 @@ script:
- condition: state - condition: state
entity_id: sensor.family_status entity_id: sensor.family_status
state: Home state: Home
- service: shell_command.tiki_vol # - service: shell_command.tiki_vol
- service: shell_command.tiki_room_audio # - service: shell_command.tiki_room_audio
# - service: media_player.turn_on - service: media_player.turn_on
# entity_id: media_player.ha_speaker entity_id: media_player.theater
# - service: media_player.turn_on - service: media_player.turn_on
# entity_id: media_player.ha_speaker entity_id: media_player.theater
# - service: media_player.volume_set - service: media_player.volume_set
# data_template: data_template:
# entity_id: media_player.ha_speaker entity_id: media_player.theater
# volume_level: .5 volume_level: .5
# - service: media_player.play_media - service: media_player.play_media
# entity_id: media_player.ha_speaker entity_id: media_player.theater
# data: data:
# media_content_id: http://192.168.7.40/audio/tiki_room_audio.mp3 media_content_id: http://192.168.7.40/audio/tiki_room_audio.mp3
# media_content_type: "music" media_content_type: "music"
# happy_ever_after: # happy_ever_after:
# sequence: # sequence:
# - condition: state # - condition: state
@ -906,13 +906,13 @@ script:
# state: Home # state: Home
# #- service: shell_command.happily_ever_after # #- service: shell_command.happily_ever_after
# - service: media_player.turn_on # - service: media_player.turn_on
# entity_id: media_player.ha_speaker # entity_id: media_player.theater
# - service: media_player.volume_set # - service: media_player.volume_set
# data_template: # data_template:
# entity_id: media_player.ha_speaker # entity_id: media_player.theater
# volume_level: .5 # volume_level: .5
# - service: media_player.play_media # - service: media_player.play_media
# entity_id: media_player.ha_speaker # entity_id: media_player.theater
# data: # data:
# media_content_id: http://192.168.7.40/audio/Happily_Ever_After_Audio.mp3 # media_content_id: http://192.168.7.40/audio/Happily_Ever_After_Audio.mp3
# media_content_type: "music" # media_content_type: "music"
@ -959,18 +959,18 @@ script:
- condition: state - condition: state
entity_id: sensor.family_status entity_id: sensor.family_status
state: Home state: Home
- service: shell_command.illuminations_audio # - service: shell_command.illuminations_audio
# - service: media_player.turn_on - service: media_player.turn_on
# entity_id: media_player.ha_speaker entity_id: media_player.theater
# - service: media_player.volume_set - service: media_player.volume_set
# data_template: data_template:
# entity_id: media_player.ha_speaker entity_id: media_player.theater
# volume_level: .5 volume_level: .5
# - service: media_player.play_media - service: media_player.play_media
# entity_id: media_player.ha_speaker entity_id: media_player.theater
# data: data:
# media_content_id: http://192.168.7.40/audio/illuminations.mp3 media_content_id: http://192.168.7.40/audio/illuminations.mp3
# media_content_type: "music" media_content_type: "music"
- service: script.turn_on - service: script.turn_on
entity_id: script.illuminations_preshow entity_id: script.illuminations_preshow
- service: script.turn_on - service: script.turn_on
@ -992,18 +992,18 @@ script:
- condition: state - condition: state
entity_id: sensor.family_status entity_id: sensor.family_status
state: Home state: Home
- service: shell_command.this_is_halloween # - service: shell_command.this_is_halloween
# - service: switch.turn_on # - service: switch.turn_on
# entity_id: switch.ha_speaker # entity_id: switch.ha_speaker
# - service: media_player.turn_on - service: media_player.turn_on
# entity_id: media_player.theater entity_id: media_player.theater
# - service: media_player.volume_set - service: media_player.volume_set
# data_template: data_template:
# entity_id: media_player.theater entity_id: media_player.theater
# volume_level: > volume_level: >
# .5 .5
# - service: media_player.play_media - service: media_player.play_media
# entity_id: media_player.theater entity_id: media_player.theater
# data: data:
# media_content_id: http://192.168.7.40/audio/This_is_Halloween.mp3 media_content_id: http://192.168.7.40/audio/This_is_Halloween.mp3
# media_content_type: "music" media_content_type: "music"

View File

@ -195,4 +195,17 @@ script:
sensor:
- platform: rest
name: Halloween Countdown
resource: !secret WA_HALLOWEEN
value_template: "{{ (value|replace(' days', '')) | int }}"
unit_of_measurement: Days
scan_interval: 43200
- platform: rest
name: Christmas Countdown
resource: !secret WA_XMAS
value_template: "{{ (value|replace(' days', '')) | int }}"
unit_of_measurement: Days
scan_interval: 43200

View File

@ -47,18 +47,6 @@ notify:
platform: group platform: group
services: services:
- service: ios_katherinestonesiphone - service: ios_katherinestonesiphone
- name: 'Master Bedroom Echo'
platform: command_line
command: "/home/homeassistant/bin/alexa_wrapper -d 'Master Bedroom'"
- name: 'Living Room Echo'
platform: command_line
command: "/home/homeassistant/bin/alexa_wrapper -d 'Living Room'"
- name: 'Kitchen Echo'
platform: command_line
command: "/home/homeassistant/bin/alexa_wrapper -d 'Kitchen'"
- name: 'All Echo'
platform: command_line
command: "/home/homeassistant/bin/alexa_wrapper -d 'All'"
- name: twitter - name: twitter
platform: twitter platform: twitter
consumer_key: !secret twitter_consumer_key consumer_key: !secret twitter_consumer_key
@ -231,17 +219,17 @@ script:
retain: true retain: true
- condition: template - condition: template
value_template: '{{ states.binary_sensor.quiet_time.state == "off" }}' value_template: '{{ states.binary_sensor.quiet_time.state == "off" }}'
- condition: state # - condition: state
entity_id: binary_sensor.vlc_player # entity_id: binary_sensor.vlc_player
state: 'off' # state: 'off'
- condition: state - condition: state
entity_id: sensor.family_status entity_id: sensor.family_status
state: 'Home' state: 'Home'
- condition: state - condition: state
entity_id: input_boolean.vacation_mode entity_id: input_boolean.vacation_mode
state: 'off' state: 'off'
- service: switch.turn_on # - service: switch.turn_on
entity_id: switch.ha_speaker # entity_id: switch.ha_speaker
- service: media_player.turn_on - service: media_player.turn_on
entity_id: media_player.theater entity_id: media_player.theater
- service: media_player.volume_set - service: media_player.volume_set

View File

@ -125,7 +125,7 @@ sensor:
sensors: sensors:
kat_home: kat_home:
value_template: >- value_template: >-
{{ is_state('device_tracker.katherinestonesiphone', 'home') {{ is_state('device_tracker.iphone', 'home')
or is_state('device_tracker.life360_kat_stone', 'home') }} or is_state('device_tracker.life360_kat_stone', 'home') }}
- platform: template - platform: template
sensors: sensors:
@ -134,7 +134,7 @@ sensor:
{{ is_state('device_tracker.jeffreystonesiphone', 'home') {{ is_state('device_tracker.jeffreystonesiphone', 'home')
or is_state('device_tracker.hass_jeffsiphone', 'home') or is_state('device_tracker.hass_jeffsiphone', 'home')
or is_state('device_tracker.life360_jeffrey_stone', 'home') or is_state('device_tracker.life360_jeffrey_stone', 'home')
or is_state('device_tracker.katherinestonesiphone', 'home') or is_state('device_tracker.iphone', 'home')
or is_state('device_tracker.life360_kat_stone', 'home') or is_state('device_tracker.life360_kat_stone', 'home')
or is_state('sensor.family_status', 'Home') }} or is_state('sensor.family_status', 'Home') }}
@ -370,8 +370,8 @@ automation:
trigger: trigger:
- platform: state - platform: state
entity_id: entity_id:
- device_tracker.jeffreystonesiphone - person.jeffrey
- device_tracker.katherinestonesiphone - person.katherine
from: 'not_home' from: 'not_home'
to: 'home' to: 'home'
condition: condition:

View File

@ -79,10 +79,10 @@ automation:
at: '23:00:00' at: '23:00:00'
condition: condition:
- condition: state - condition: state
entity_id: device_tracker.jeffreystonesiphone entity_id: person.jeffrey
state: home state: home
- condition: state - condition: state
entity_id: device_tracker.katherinestonesiphone entity_id: person.katherine
state: home state: home
- condition: state - condition: state
entity_id: input_boolean.guest_mode entity_id: input_boolean.guest_mode
@ -145,10 +145,10 @@ automation:
trigger: trigger:
- platform: state - platform: state
entity_id: entity_id:
- binary_sensor.front_door_contact_2 - binary_sensor.front_door
- binary_sensor.laundry_room_door_contact_2 - binary_sensor.laundry_room_door
- binary_sensor.attic_door_contact_2 - binary_sensor.attic_door
- binary_sensor.back_door_contact_2 - binary_sensor.back_door
from: 'off' from: 'off'
to: 'on' to: 'on'
for: '00:01:00' for: '00:01:00'
@ -194,11 +194,11 @@ automation:
trigger: trigger:
- platform: state - platform: state
entity_id: entity_id:
- binary_sensor.front_door_contact_2 - binary_sensor.front_door
- binary_sensor.laundry_room_door_contact_2 - binary_sensor.laundry_room_door
- binary_sensor.back_door_contact_2 - binary_sensor.back_door
- binary_sensor.side_door_contact_2 - binary_sensor.side_door
- binary_sensor.garage_door_contact_2 - binary_sensor.garage_door
from: 'off' from: 'off'
condition: condition:
- condition: state - condition: state

View File

@ -64,10 +64,16 @@ sensor:
#command: "head -5 /home/homeassistant/.homeassistant/.HA_VERSION" #command: "head -5 /home/homeassistant/.homeassistant/.HA_VERSION"
- platform: version - platform: version
name: Released Version name: Released Version
source: pypi source: pypi
- platform: version
name: Released Hassio Ver
source: hassio
- platform: command_line - platform: command_line
name: ha_v2db name: ha_v2db
command: "ls -sh /home/homeassistant/.homeassistant/home-assistant_v2.db | cut -f1 -d ' '" command: "ls -sh /home/homeassistant/.homeassistant/home-assistant_v2.db | cut -f1 -d ' '"
- platform: command_line - platform: command_line
name: ha_log name: ha_log
command: "ls -sh /home/homeassistant/.homeassistant/home-assistant.log | cut -f1 -d ' '" command: "ls -sh /home/homeassistant/.homeassistant/home-assistant.log | cut -f1 -d ' '"
- platform: uptime
name: Time Online
unit_of_measurement: days

View File

@ -0,0 +1,65 @@
input_boolean:
zigbee_permit_join:
name: Allow devices to join
initial: off
icon: mdi:cellphone-wireless
timer:
zigbee_permit_join:
name: Time remaining
duration: 600 # Updated this to the number of seconds you wish
sensor:
- platform: mqtt
name: Bridge state
state_topic: "homeassistant/bridge/state"
icon: mdi:router-wireless
automation:
- id: enable_zigbee_join
alias: Enable Zigbee joining
hide_entity: true
trigger:
platform: state
entity_id: input_boolean.zigbee_permit_join
to: 'on'
action:
- service: mqtt.publish
data:
topic: homeassistant/bridge/config/permit_join
payload: 'true'
- service: timer.start
data:
entity_id: timer.zigbee_permit_join
- id: disable_zigbee_join
alias: Disable Zigbee joining
trigger:
- entity_id: input_boolean.zigbee_permit_join
platform: state
to: 'off'
action:
- data:
payload: 'false'
topic: homeassistant/bridge/config/permit_join
service: mqtt.publish
- data:
entity_id: timer.zigbee_permit_join
service: timer.cancel
hide_entity: true
- id: disable_zigbee_join_timer
alias: Disable Zigbee joining by timer
hide_entity: true
trigger:
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.zigbee_permit_join
action:
- service: mqtt.publish
data:
topic: homeassistant/bridge/config/permit_join
payload: 'false'
- service: input_boolean.turn_off
data:
entity_id: input_boolean.zigbee_permit_join

View File

@ -0,0 +1,66 @@
#
# Script to fade lights in slowly
# Takes the following inputs
# entity_id = The light you want to fade in
# transition: = # Seconds to go from current to end brightness
# brightness: = # Brightness to end at
# brightness_pct: = # Brightness to end at as a percentage
#
entity_id = data.get('entity_id')
brightness = data.get('brightness', None)
brightness_pct = data.get('brightness_pct', None)
if entity_id is not None and (brightness is not None or brightness_pct is not None):
light = hass.states.get(entity_id)
start_level = light.attributes.get('brightness', 0)
transition = int(data.get('transition', 0))
""" Use brightness or convert brightness_pct """
end_level = int(brightness) if brightness is not None else math.ceil(
float(brightness_pct) * 2.55)
""" Calculate number of steps """
steps = int(math.fabs((start_level - end_level)))
fadeout = True if start_level > end_level else False
""" Calculate the delay time """
delay = round(transition / steps, 3)
""" Disable delay and increase stepping if delay < 3/4 second """
if (delay < .750):
delay = 0
steps = int(steps / 5)
step_by = 5
else:
step_by = 1
logger.info('Setting brightness of ' + str(entity_id) +
' from ' + str(start_level) + ' to ' + str(end_level) +
' steps ' + str(steps) + ' delay ' + str(delay))
new_level = start_level
for x in range(steps):
current_level = light.attributes.get('brightness', 0)
if (fadeout and current_level < new_level):
break
elif (not fadeout and current_level > new_level):
break
else:
data = {"entity_id": entity_id, "brightness": new_level}
hass.services.call('light', 'turn_on', data)
if (fadeout):
new_level = new_level - step_by
else:
new_level = new_level + step_by
""" Do not sleep for 0 delay """
if (delay > 0):
time.sleep(delay)
""" Ensure light ends at the final state """
if (end_level > 0):
data = {"entity_id": entity_id, "brightness": end_level}
hass.services.call('light', 'turn_on', data)
else:
data = {"entity_id": entity_id}
hass.services.call('light', 'turn_off', data)

View File

@ -55,13 +55,13 @@
- name: dimished livingroom lighting - name: dimished livingroom lighting
entities: entities:
light.tower_lamp_2: light.0xb0ce18140003608a_light_2:
state: on state: on
brightness: 40 brightness: 40
color_temp: 369 color_temp: 369
light.front_ldoor_amp: light.0xb0ce181400051072_light_2:
state: off state: off
light.living_room_lamp: light.0xb0ce181400051b4c_light_2:
state: off state: off
switch.fireplace_lights: switch.fireplace_lights:
state: off state: off
@ -97,15 +97,19 @@
switch.fireplace_lights: switch.fireplace_lights:
state: off state: off
# light.0xb0ce18140003608a_light_2 = Tower Lamp
# light.0xb0ce181400051072_light_2 = Front Door Lamp
# light0xb0ce181400051b4c_light_2 = Table Lampo
- name: night time livingroom lighting - name: night time livingroom lighting
entities: entities:
light.tower_lamp_2: light.0xb0ce18140003608a_light_2:
state: on state: on
brightness: 10 brightness: 10
color_temp: 369 color_temp: 369
light.front_door_lamp: light.0xb0ce181400051072_light_2:
state: off state: off
light.living_room_lamp: light.0xb0ce181400051b4c_light_2:
state: off state: off
switch.fireplace_lights: switch.fireplace_lights:
state: off state: off
@ -165,31 +169,31 @@
- name: jeff light on - name: jeff light on
entities: entities:
light.jeff_lamp: light.0xe20db9fffe004207_light:
state: on state: on
brightness: 100 brightness: 100
- name: jeff light off - name: jeff light off
entities: entities:
light.jeff_lamp: light.0xe20db9fffe004207_light:
state: off state: off
- name: jeff wake up - name: jeff wake up
entities: entities:
light.jeff_lamp: light.0xe20db9fffe004207_light:
state: on state: on
brightness: 20 brightness: 20
- name: jeff bedtime - name: jeff bedtime
entities: entities:
light.jeff_lamp: light.0xe20db9fffe004207_light:
state: on state: on
brightness: 40 brightness: 40
- name: jeff night light - name: jeff night light
entities: entities:
light.jeff_lamp: light.0xe20db9fffe004207_light:
state: on state: on
brightness: 10 brightness: 10

0
config/scripts.yaml Normal file
View File

View File

4
scripts/general.yaml → config/scripts/general.yaml Normal file → Executable file
View File

@ -107,7 +107,7 @@ driveway_on:
entity_id: switch.driveway_light entity_id: switch.driveway_light
service: switch.turn_on service: switch.turn_on
- data: - data:
entity_id: light.side_door_light_3 entity_id: light.side_door_light
service: light.turn_on service: light.turn_on
driveway_off: driveway_off:
sequence: sequence:
@ -122,7 +122,7 @@ driveway_off:
- service: switch.turn_off - service: switch.turn_off
entity_id: switch.driveway_light entity_id: switch.driveway_light
- service: light.turn_off - service: light.turn_off
entity_id: light.side_door_light_3 entity_id: light.side_door_light
chromecast_media_stop: chromecast_media_stop:
sequence: sequence:
- service: media_player.media_stop - service: media_player.media_stop

0
scripts/lights.yaml → config/scripts/lights.yaml Normal file → Executable file
View File

0
scripts/spotify.yaml → config/scripts/spotify.yaml Normal file → Executable file
View File

View File

@ -20,19 +20,31 @@
icon_template: '{%- if is_state("sensor.kat_iphone_batt", "unknown") %}mdi:battery-unknown{%- elif is_state_attr("device_tracker.katherinestonesiphone", "battery_status", "Charging") %}mdi:battery-charging{%- elif states.device_tracker.katherinestonesiphone.attributes.battery <= 5 %}mdi:battery-outline{%- elif states.device_tracker.katherinestonesiphone.attributes.battery >= 95 %}mdi:battery{% else %}mdi:battery-{{(states.device_tracker.katherinestonesiphone.attributes.battery|float / 10)|round*10}}{%- endif %}' icon_template: '{%- if is_state("sensor.kat_iphone_batt", "unknown") %}mdi:battery-unknown{%- elif is_state_attr("device_tracker.katherinestonesiphone", "battery_status", "Charging") %}mdi:battery-charging{%- elif states.device_tracker.katherinestonesiphone.attributes.battery <= 5 %}mdi:battery-outline{%- elif states.device_tracker.katherinestonesiphone.attributes.battery >= 95 %}mdi:battery{% else %}mdi:battery-{{(states.device_tracker.katherinestonesiphone.attributes.battery|float / 10)|round*10}}{%- endif %}'
- platform: mqtt - platform: mqtt
name: "Front Door Battery" name: "Front Door Battery"
state_topic: "smartthings/Front Door/battery" state_topic: "zwave2mqtt/nodeID_27/128/1/0"
- platform: mqtt - platform: mqtt
name: "Laundry Door Battery" name: "Laundry Door Battery"
state_topic: "smartthings/Laundry Room Door/battery" state_topic: "zwave2mqtt/nodeID_26/128/1/0"
- platform: mqtt - platform: mqtt
name: "Kitchen Smoke Battery" name: "Kitchen Smoke Battery"
state_topic: "smartthings/Kitchen Smoke/battery" state_topic: "zwave2mqtt/nodeID_19/128/1/0"
- platform: mqtt - platform: mqtt
name: "Attic Door Battery" name: "Attic Door Battery"
state_topic: "smartthings/Attic Door/battery" state_topic: "zwave2mqtt/nodeID_18/128/1/0"
- platform: mqtt - platform: mqtt
name: "Washer Door Battery" name: "Washer Door Battery"
state_topic: "smartthings/Washer Door/battery" state_topic: "zwave2mqtt/washer_door/128/1/0"
- platform: mqtt - platform: mqtt
name: "Back Door Battery" name: "Back Door Battery"
state_topic: "smartthings/Back Door/battery" state_topic: "zwave2mqtt/nodeID_28/128/1/0"
- platform: mqtt
name: "Side Door Battery"
state_topic: "zwave2mqtt/side_door/128/1/0"
- platform: mqtt
name: "Garage Door Battery"
state_topic: "zwave2mqtt/nodeID_16/128/1/0"
- platform: mqtt
name: "Garage Motion Battery"
state_topic: "zwave2mqtt/garage_motion/128/1/0"
- platform: mqtt
name: "Dome Alarm"
state_topic: "zwave2mqtt/nodeID_21/128/1/0"

View File

@ -109,3 +109,4 @@
entity_id: [] entity_id: []
value_template: >- value_template: >-
{{ states.camera | list | count }} {{ states.camera | list | count }}

29
config/sensors/power.yaml Executable file
View File

@ -0,0 +1,29 @@
- platform: mqtt
name: "Washer"
state_topic: "zwave2mqtt/washer/50/1/0"
device_class: "power"
unit_of_measurement: "kWh"
- platform: mqtt
name: "Washer Power 1"
state_topic: "zwave2mqtt/washer/49/1/4"
device_class: "power"
unit_of_measurement: "W"
- platform: mqtt
name: "Washer_Power"
state_topic: "zwave2mqtt/washer/50/1/8"
device_class: "power"
unit_of_measurement: "W"
- platform: mqtt
name: "Washer Power 3"
state_topic: "zwave2mqtt/washer/50/1/9"
device_class: "power"
unit_of_measurement: "W"
- platform: mqtt
name: "Washer Power kwh"
state_topic: "zwave2mqtt/washer/50/1/1"
device_class: "power"
unit_of_measurement: "kWh"

138
config/switches.yaml Normal file
View File

@ -0,0 +1,138 @@
# Living Room
- platform: mqtt
name: "Incense"
state_topic: "zwave2mqtt/incense/37/1/0"
command_topic: "zwave2mqtt/incense/37/1/0/set"
payload_on: "true"
payload_off: "false"
- platform: mqtt
name: "Living Room Fan"
state_topic: "zwave2mqtt/livingroom_fan/37/1/0"
command_topic: "zwave2mqtt/livingroom_fan/37/1/0/set"
payload_on: "true"
payload_off: "false"
- platform: mqtt
name: "Fireplace Lights"
state_topic: "zwave2mqtt/fireplace_lights/37/1/0"
command_topic: "zwave2mqtt/fireplace_lights/37/1/0/set"
payload_on: "true"
payload_off: "false"
# Notifications
- platform: mqtt
name: "Text Notify Kat"
command_topic: "kat/notify/text"
state_topic: "kat/notify/text"
qos: 1
payload_on: "on"
payload_off: "off"
retain: true
- platform: mqtt
name: "Audibly Notify Kat"
command_topic: "kat/notify/audio"
state_topic: "kat/notify/audio"
qos: 1
payload_on: "on"
payload_off: "off"
retain: true
- platform: mqtt
name: "Text Notify Jeff"
command_topic: "jeff/notify/text"
state_topic: "jeff/notify/text"
qos: 1
payload_on: "on"
payload_off: "off"
retain: true
- platform: mqtt
name: "Audibly Notify Jeff"
command_topic: "jeff/notify/audio"
state_topic: "jeff/notify/audio"
qos: 1
payload_on: "on"
payload_off: "off"
retain: true
- platform: mqtt
name: "Text Notify House"
command_topic: "house/notify/text"
state_topic: "house/notify/text"
qos: 1
payload_on: "on"
payload_off: "off"
retain: true
- platform: mqtt
name: "Audibly Notify House"
command_topic: "house/notify/audio"
state_topic: "house/notify/audio"
qos: 1
payload_on: "on"
payload_off: "off"
retain: true
# Outside
- platform: mqtt
name: "Driveway Light"
state_topic: "zwave2mqtt/driveway_light/37/1/0"
command_topic: "zwave2mqtt/driveway_light/37/1/0/set"
payload_on: "true"
payload_off: "false"
- platform: mqtt
name: "Front Porch"
state_topic: "zwave2mqtt/front_porch/37/1/0"
command_topic: "zwave2mqtt/front_porch/37/1/0/set"
payload_on: "true"
payload_off: "false"
# Sonoff
- platform: mqtt
name: "Rail Lights"
command_topic: "cmnd/sonoff/power"
state_topic: "stat/sonoff/POWER"
qos: 1
payload_on: "ON"
payload_off: "OFF"
retain: true
# Upstairs
- platform: mqtt
name: "Upstairs Fan"
state_topic: "zwave2mqtt/upstairs_fan/37/1/0"
command_topic: "zwave2mqtt/upstairs_fan/37/1/0/set"
payload_on: "true"
payload_off: "false"
- platform: mqtt
name: "Theater Power"
state_topic: "zwave2mqtt/theater_power/37/1/0"
command_topic: "zwave2mqtt/theater_power/37/1/0/set"
payload_on: "true"
payload_off: "false"
- platform: mqtt
name: "Upstairs"
state_topic: "zwave2mqtt/upstairs_light/37/1/0"
command_topic: "zwave2mqtt/upstairs_light/37/1/0/set"
payload_on: "true"
payload_off: "false"
# Appliance
- platform: mqtt
name: "Washer"
state_topic: "zwave2mqtt/washer/37/1/0"
command_topic: "zwave2mqtt/washer/37/1/0/set"
payload_on: "true"
payload_off: "false"

View File

@ -3,14 +3,14 @@
{%- macro getRandomStat() -%} {%- macro getRandomStat() -%}
{{- [ {{- [
"Thanks to Home Assistant and Amazon Polly and #AWS I have spoken for {{ states.sensor.speech_time.attributes.value }} in the last 7 days.", "Thanks to Home Assistant and Amazon Polly and #AWS I have spoken for {{ states.sensor.speech_time.attributes.value }} in the last 7 days.",
"I am constantly monitoring Anmchorage House. For instance I know that the washer has ran for {{ states.sensor.washer_time.attributes.value }} in the last 7 days.", "I am constantly monitoring Anchorage House. For instance I know that the washer has ran for {{ states.sensor.washer_time.attributes.value }} in the last 7 days.",
"I am using {{ states.sensor.sensor_count.state }} sensors to power {{ states.sensor.automation_count.state}} automations and {{ states.sensor.script_count.state}} scripts to "I am using {{ states.sensor.sensor_count.state }} sensors to power {{ states.sensor.automation_count.state}} automations and {{ states.sensor.script_count.state}} scripts to
automate Anchorage House thanks to Home Assistant.", automate Anchorage House thanks to Home Assistant.",
"My config on Github (https://github.com/thejeffreystone/home-assistant-configuration) has {{ states.sensor.home_assistant_configuration.attributes.stargazers}} stars and counting. Currently with {{ states.sensor.github_stats.attributes.open_issues }} open #Todo items.", "My config on Github (https://github.com/thejeffreystone/home-assistant-configuration) has {{ states.sensor.home_assistant_configuration.attributes.stargazers}} stars and counting. Currently with {{ states.sensor.github_stats.attributes.open_issues }} open #Todo items.",
"I am running Home Assistant version {{ states.sensor.installed_version.state }} (https://github.com/thejeffreystone/home-assistant-configuration)" "I am running Home Assistant version {{ states.sensor.installed_version.state }} (https://github.com/thejeffreystone/home-assistant-configuration)"
"My configuration is at https://github.com/thejeffreystone/home-assistant-configuration and currently has {{ states.sensor.home_assistant_configuration.attributes.stargazers}} stargazers. You could be one too.", "My configuration is at https://github.com/thejeffreystone/home-assistant-configuration and currently has {{ states.sensor.home_assistant_configuration.attributes.stargazers}} stargazers. You could be one too.",
"My configuration is at https://github.com/thejeffreystone/home-assistant-configuration .The last commit was {{ states.sensor.home_assistant_configuration.attributes.latest_commit_message}}.", "My configuration is at https://github.com/thejeffreystone/home-assistant-configuration .The last commit was {{ states.sensor.home_assistant_configuration.attributes.latest_commit_message}}.",
"You can read about how I came to be and all the cool things I'm learning to do over at http://jeffreystone.net " "You can watch videos about how I came to be and all the cool things I'm learning to do at https://www.youtube.com/channel/UCipZJ6748kd8TbelSxcvcVg "
] | random -}} ] | random -}}
{%- endmacro -%} {%- endmacro -%}
{%- macro getTags() -%} {%- macro getTags() -%}

0
www/ahlogo_bw.png → config/www/ahlogo_bw.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -1,301 +0,0 @@
homeassistant:
name: Home
latitude: !secret MY_LATITUDE
longitude: !secret MY_LONGITUDE
elevation: 315
unit_system: imperial
time_zone: America/New_York
customize: !include customize.yaml
auth_providers:
- type: homeassistant
packages: !include_dir_named packages
default_config:
ssdp:
zeroconf:
system_health:
mobile_app:
person:
frontend:
themes: !include_dir_merge_named themes
javascript_version: latest
http:
#api_password: !secret MY_API_PASS
#ssl_certificate: !secret SSL_CERT
#ssl_key: !secret SSL_KEY
#base_url: !secret BASEURL
ssl_certificate: !secret ahsl_ssl_cert
ssl_key: !secret ahsl_ssl_key
base_url: !secret ahsl_base_url
use_x_forwarded_for: True
trusted_proxies:
- 127.0.0.1
- ::1
ip_ban_enabled: True
login_attempts_threshold: 3
config:
cloud:
wemo:
discovery: true
weather:
- platform: darksky
api_key: !secret darksky_api
name: Grayson
conversation:
device_tracker:
# - platform: icloud
# username: !secret ICLOUD_USER
# password: !secret ICLOUD_PASS
# track_new_devices: yes
# - platform: owntracks
#
# - platform: eero_tracker
# consider_home: 300
# interval_seconds: 60
# track_new_devices: yes
# only_macs: "d0:c5:f3:80:50:5e, f4:31:c3:84:1d:d1, 08:74:02:CC:C4:97, 5C:F5:DA:9B:5A:A2, 34:7C:25:CC:9D:0F, 64:52:99:93:F1:B3"
google:
client_id: !secret google_client_id
client_secret: !secret google_client_secret
arlo:
username: !secret arlo_user
password: !secret arlo_pass
alarm_control_panel:
- platform: arlo
home_mode_name: home
away_mode_name: armed
discovery:
ignore:
- igd
updater:
include_used_components: true
sun:
recorder:
#db_url: sqlite:///data/home-assistant_v2.db
purge_keep_days: 2
exclude:
domains:
- automation
- weblink
- updater
entities:
- sun.sun # Don't record sun data
- sensor.last_boot # Comes from 'systemmonitor' sensor platform
- sensor.date
logbook:
include:
domains:
- media_player
- automation
- script
logger:
default: warning
#logs:
# homeassistant.components.sensor.alpha_vantage: debug
history:
include:
domains:
- sensor
- switch
- media_player
- light
cast:
# speedtestdotnet:
mqtt:
broker: 192.168.7.67
port: 1883
username: !secret MQTT_USER
password: !secret MQTT_PASS
discovery: true
birth_message:
topic: 'hass/status'
payload: 'online'
will_message:
topic: 'hass/status'
payload: 'offline'
camera:
- platform: mjpeg
name: Garage Door Cam
mjpeg_url: !secret garage_cam
- platform: arlo
ffmpeg_arguments: '-pred 1 -q:v 2'
media_player:
- platform: vlc
name: hass_speaker
arguments: '--alsa-audio-device=hw:1,0'
ffmpeg:
ffmpeg_bin: /usr/bin/ffmpeg
##splunk:
# host: 192.168.7.40
# token: !secret splunkit
# port: 8088
cloudflare:
email: !secret cloudflare_user
api_key: !secret cloudflare_api
zone: !secret cloudflare_zone
records:
- ah
life360:
accounts:
- username: !secret life360_username
password: !secret life360_password
media_extractor:
### Includes ###
alert: !include_dir_merge_named alerts/
group: !include groups.yaml
automation: !include automations.yaml
sensor: !include_dir_merge_list sensors
binary_sensor: !include_dir_merge_list binary_sensors
light: !include_dir_merge_list lights
switch: !include_dir_merge_list switches
script: !include_dir_merge_named scripts
intent_script: !include intents/intents.yaml
scene: !include scenes.yaml
input_select: !include input_select.yaml
input_boolean: !include input_boolean.yaml
input_datetime: !include input_datetime.yaml
zone: !include zones.yaml
python_script:
#duckdns:
# domain: !secret duckdns_domain
# access_token: !secret duckdns_token
### Services
# Disabled due to bug that causes too many open files - Need to track it down
# cover:
# platform: myq
# username: !secret myq_user
# password: !secret myq_pass
# type: chamberlain
ecobee:
api_key: !secret ecobee_api
map:
wwlln:
radius: 75
latitude: !secret MY_LATITUDE
longitude: !secret MY_LONGITUDE
tplink:
discovery: false
switch:
- host: 192.168.7.105
- host: 192.168.7.107
# zwave:
# usb_path: /dev/ttyACM0
# network_key: !secret zwave_key
#googlehome:
# devices:
# - host: 192.168.7.97
ifttt:
key: !secret IFTTT_API_KEY
### Custom Commands
shell_command:
alarm_off: pkill mpg123
vlc_off: pkill vlc
tornado_alarm: mpg123 /media/audio/Tornado_Siren.mp3
door_chime: mpg123 /media/audio/Store_Door_Chime.mp3
security_alarm: mpg123 /media/audio/security_siren.mp3
security_alarm_intro: mpg123 /media/audio/Siren_Noise.mp3
welcome_haunted: mpg123 /media/audio/Welcome-Hunted.mp3
haunted_guest_welcome: mpg123 /media/audio/haunted_guest_welcome.mp3
haunted_mansion_preshow_full: cvlc --play-and-exit /media/audio/haunted_mansion_preshow_full.mp3
haunted_mansion_preshow_short: mpg123 /media/audio/haunted_mansion_preshow_short.mp3
haunted_mansion_hurry_back_short: mpg123 /media/audio/haunted_mansion_hurry_back_short.mp3
haunted_mansion_hurry_back_full: mpg123 /media/audio/haunted_mansion_hurry_back_full.mp3
happily_ever_after: cvlc --play-and-exit /media/audio/Happily_Ever_After_Audio.mp3
boo_to_you: cvlc --play-and-exit /media/audio/boo_to_you_audio.mp3
haunted_mansion_ride: cvlc --play-and-exit /media/audio/haunted_mansion_ride.mp3
holiday_wishes_preshow: mpg123 /media/audio/wishes_5_min.mp3
holiday_wishes: cvlc --play-and-exit /media/audio/holidaywishes.mp3
disney_springs_xmas: cvlc --play-and-exit /media/audio/disney_springs_xmas.mp3
american_adventure: cvlc --play-and-exit /media/audio/The_American_Adventure.mp3
welcome_show: cvlc --play-and-exit /media/audio/welcome_show.mp3
monorail_waiting: mpg123 /media/audio/monorail_waiting.mp3
monorail_mk: mpg123 /media/audio/monorail.mp3
monorail_resort: mpg123 /media/audio/monorail_resort.mp3
welcome_to_mk: cvlc --play-and-exit /media/audio/welcome_magic_kingdom.mp3
welcome_show_crowd: cvlc --play-and-exit /media/audio/welcome_show_crowd.mp3
spaceship_earth_ride: cvlc --play-and-exit /media/audio/spaceship_earth_ride.mp3
this_is_halloween: cvlc --play-and-exit /media/audio/This_is_Halloween.mp3
sleepy_hollow_audiobook: cvlc --play-and-exit /media/audio/the_legend_of_sleepy_hollow_read_along.mp3
dance_it: cvlc --play-and-exit /media/audio/move_it_shake_dance_audio.mp3
hass_vol_up: sudo amixer set PCM -- $[$(amixer get PCM|grep -o [0-9]*%|sed 's/%//')+5]%
hass_vol_dn: sudo amixer set PCM -- $[$(amixer get PCM|grep -o [0-9]*%|sed 's/%//')-5]%
normal_vol: amixer -c 0 set PCM 93%
tiki_vol: amixer -c 0 set PCM 95%
full_vol: amixer -c 0 set PCM 100%
reset_alexa_cookie: /home/homeassistant/bin/resetalexacookie
tiki_room_audio: cvlc --play-and-exit /media/audio/tiki_room_audio.mp3
illuminations_audio: cvlc --play-and-exit /media/audio/illuminations.mp3
mk_audio: cvlc --play-and-exit /media/audio/magic_kingdom.mp3
usps: python /home/homeassistant/bin/usps.py
backup: python /home/homeassistant/bin/dropbox.py
# haunted noises
haunted_scream: mpg123 /media/audio/haunted/Scream.mp3
haunted_raven: mpg123 /media/audio/haunted/RavenSound.mp3
haunted_door: mpg123 /media/audio/haunted/OldDoorCreaking.mp3
haunted_howling: mpg123 /media/audio/haunted/Howling.mp3
haunted_seance_horn: mpg123 /media/audio/haunted/Haunted_Mansion_Seance_Horn.mp3
haunted_piano: mpg123 /media/audio/haunted/Haunted_Mansion_Piano.mp3
haunted_leotta: mpg123 /media/audio/haunted/Haunted_Mansion_Leotta.mp3
haunted_harp: mpg123 /media/audio/haunted/Haunted_Mansion_Harp.mp3
haunted_clock: mpg123 /media/audio/haunted/Haunted_Mansion_Clock.mp3
haunted_ballroom: mpg123 /media/audio/haunted/Haunted_Mansion_Ballroom.mp3
haunted_bells: mpg123 /media/audio/haunted/Jaunted_Bells-Chimming.mp3
haunted_laugh: mpg123 /media/audio/haunted/Evil_Laugh.mp3
haunted_door2: mpg123 /media/audio/haunted/CreakingDoorSpooky.mp3
haunted_chains: mpg123 /media/audio/haunted/ChainsRattling.mp3
haunted_laugh2: mpg123 /media/audio/haunted/BigLaugh.mp3

View File

@ -1,42 +0,0 @@
- platform: mqtt
name: "Tower Lamp"
state_topic: "smartthings/Tower Lamp/switch"
command_topic: "smartthings/Tower Lamp/switch"
brightness_state_topic: "smartthings/Tower Lamp/level"
brightness_command_topic: "smartthings/Tower Lamp/level"
color_temp_command_topic: "smartthings/Tower Lamp/colorTemperature"
color_temp_state_topic: "smartthings/Tower Lamp/colorTemperature"
brightness_scale: 101
payload_on: "on"
payload_off: "off"
retain: true
- platform: mqtt
name: "Front Lamp"
state_topic: "smartthings/Front Lamp/switch"
command_topic: "smartthings/Front Lamp/switch"
brightness_state_topic: "smartthings/Front Lamp/level"
brightness_command_topic: "smartthings/Front Lamp/level"
brightness_scale: 101
payload_on: "on"
payload_off: "off"
retain: true
- platform: mqtt
name: "Master Bedroom Lamp"
state_topic: "smartthings/Jeff Lamp/switch"
command_topic: "smartthings/Jeff Lamp/switch"
brightness_state_topic: "smartthings/Jeff Lamp/level"
brightness_command_topic: "smartthings/Jeff Lamp/level"
brightness_scale: 101
payload_on: "on"
payload_off: "off"
retain: true
- platform: mqtt
name: "Side Door Light"
state_topic: "smartthings/Side Door Light/switch"
command_topic: "smartthings/Side Door Light/switch"
brightness_state_topic: "smartthings/Side Door Light/level"
brightness_command_topic: "smartthings/Side Door Light/level"
brightness_scale: 101
payload_on: "on"
payload_off: "off"
retain: true

View File

@ -1,10 +0,0 @@
- platform: mqtt
name: "Skylars Lamp"
state_topic: "smartthings/Skylars Lamp/switch"
command_topic: "smartthings/Skylars Lamp/switch"
brightness_state_topic: "smartthings/Skylars Lamp/level"
brightness_command_topic: "smartthings/Skylars Lamp/level"
brightness_scale: 101
payload_on: "on"
payload_off: "off"
retain: true

View File

@ -1,3 +0,0 @@
- platform: mqtt
name: "Washer"
state_topic: "smartthings/Washer/power"

View File

@ -1,23 +0,0 @@
#- platform: speedtest
# scan_interval:
# hours: 6
# monitored_conditions:
# - ping
# - download
# - upload
- platform: mqtt
name: "network down"
state_topic: "house/speedtest/down"
- platform: mqtt
name: "network up"
state_topic: "house/speedtest/up"
- platform: statistics
name: Internet Test Down
entity_id: sensor.network_down
max_age:
days: 7
- platform: statistics
name: Internet Test Up
entity_id: sensor.network_up
max_age:
days: 7

View File

@ -1,8 +0,0 @@
# - platform: mqtt
# name: "Rainbow Light"
# state_topic: "smartthings/Rainbow Light/switch"
# command_topic: "smartthings/Rainbow Light/switch"
# payload_on: "on"
# payload_off: "off"
# retain: true

View File

@ -1,14 +0,0 @@
# - platform: mqtt
# name: "Incense"
# state_topic: "smartthings/Incense/switch"
# command_topic: "smartthings/Incense/switch"
# payload_on: "on"
# payload_off: "off"
# retain: true
# - platform: mqtt
# name: "Living Room Fan"
# state_topic: "smartthings/Living Room Fan/switch"
# command_topic: "smartthings/Living Room Fan/switch"
# payload_on: "on"
# payload_off: "off"
# retain: true

View File

@ -1,54 +0,0 @@
- platform: mqtt
name: "Text Notify Kat"
command_topic: "kat/notify/text"
state_topic: "kat/notify/text"
qos: 1
payload_on: "on"
payload_off: "off"
retain: true
- platform: mqtt
name: "Audibly Notify Kat"
command_topic: "kat/notify/audio"
state_topic: "kat/notify/audio"
qos: 1
payload_on: "on"
payload_off: "off"
retain: true
- platform: mqtt
name: "Text Notify Jeff"
command_topic: "jeff/notify/text"
state_topic: "jeff/notify/text"
qos: 1
payload_on: "on"
payload_off: "off"
retain: true
- platform: mqtt
name: "Audibly Notify Jeff"
command_topic: "jeff/notify/audio"
state_topic: "jeff/notify/audio"
qos: 1
payload_on: "on"
payload_off: "off"
retain: true
- platform: mqtt
name: "Text Notify House"
command_topic: "house/notify/text"
state_topic: "house/notify/text"
qos: 1
payload_on: "on"
payload_off: "off"
retain: true
- platform: mqtt
name: "Audibly Notify House"
command_topic: "house/notify/audio"
state_topic: "house/notify/audio"
qos: 1
payload_on: "on"
payload_off: "off"
retain: true

View File

@ -1,8 +0,0 @@
- platform: mqtt
name: "Rail Lights"
command_topic: "cmnd/sonoff/power"
state_topic: "stat/sonoff/POWER"
qos: 1
payload_on: "ON"
payload_off: "OFF"
retain: true

View File

@ -1,7 +0,0 @@
- platform: mqtt
name: "Upstairs Fan"
state_topic: "smartthings/Upstairs Fan/switch"
command_topic: "smartthings/Upstairs Fan/switch"
payload_on: "on"
payload_off: "off"
retain: true

View File

@ -1,241 +0,0 @@
title: Anchorage House
views:
- icon: mdi:home-assistant
# View tab title.
title: Home
# Unique id for direct access /lovelace/${id}. If you don't specify one, it is added automatically.
id: home
theme: midnight-AH
# The cards to show on this view.
cards:
# The filter card will filter entities for their state
- id: anchoragehouse # Every card needs an ID, if you don't specify one, it is added automatically.
type: glance
title: Anchorage House
entities:
- entity: sensor.family_status
name:
- entity: input_boolean.guest_mode
name:
- entity: input_boolean.vacation_mode
name:
- entity: sensor.jeff_location
name:
- entity: sensor.kat_location
name:
- type: entities
title: Downstairs
entities:
- switch.fireplace_lights
- light.tower_lamp
- light.front_lamp
- switch.incense
- light.kitchen_cabinets
- light.kitchen_light_strip
- switch.master_bedroom_fan
- type: entities
title: Upstairs
entities:
- switch.upstairs_light
- light.upstairs_lamp
- type: entities
title: Outdoors
entities:
- switch.front_porch
- switch.driveway_light
- switch.side_door
- type: entities
title: Holiday
entities:
- entity: switch.christmas_tree
name: Christmas Tree
icon: mdi:pine-tree
- entity: switch.upstairs_christmas_tree
name: Upstairs Christmas Tree
icon: mdi:pine-tree
- type: vertical-stack
cards:
- id: weatheralerts
type: entity-filter
entities:
- sensor.storm_statement
- sensor.tstorm_watch
- sensor.tstorm_warning
- sensor.tornado_watch
- sensor.tornado_warning
state_filter:
- 'active'
card:
type: glance
title:
- type: weather-forecast
entity: weather.grayson
- type: glance
title:
entities:
- entity: sensor.accurite_back_porch_temperature
name: Back Temp
- entity: sensor.accurite_back_porch_humidity
name: Back Humidity
- sensor.accurite_garage_temperature
- sensor.accurite_garage_humidity
- type: thermostat
entity: climate.first_floor
- type: entities
entities:
- entity: media_player.yamaha_receiver_theater
- entity: media_player.living_room_tv
name: Theater Chromecast
- entity: media_player.roku_5s6719003683
name: Master Bedroom Roku
- entity: media_player.guest_tv
name: Master Bedroom Chromecast
- entity: media_player.googlehome7470
name: Theater Google Home
- type: vertical-stack
cards:
- id: spotifyplayer
type: entities
entities:
- entity: media_player.spotify
name: Spotify
- input_select.spotify_source
- input_boolean.shuffle_spotify
- type: horizontal-stack
cards:
- id: skylarxmas
type: entity-button
tap_action:
action: call-service
service: script.turn_on
service_data:
entity: script.play_skylars_christmas_playlist
icon: mdi:music
name: Skylar's Christmas
- id: greenplaylist
type: entity-button
tap_action:
action: call-service
service: script.turn_on
service_data:
entity: script.play_skylars_playlist
icon: mdi:music
name: Skylar's Playlist
- type: vertical-stack
cards:
- id: doorsalerts
type: entity-filter
entities:
- binary_sensor.back_door
- binary_sensor.front_door
- binary_sensor.laundry_room_door
- binary_sensor.attic_door
- binary_sensor.side_door
- binary_sensor.garage_door
- binary_sensor.garage_dome_sensor
state_filter:
- 'on'
card:
type: glance
title:
- icon: mdi:weather-sunny
title: Weather Details
cards:
- type: iframe
url: https://embed.windy.com/embed2.html?lat=33.895&lon=-84.012&zoom=12&level=surface&overlay=radar&menu=&message=&marker=&calendar=&pressure=&type=map&location=coordinates&detail=&detailLat=33.895&detailLon=-84.012&metricWind=default&metricTemp=default&radarRange=-1
aspect_ratio: 100%
- icon: mdi:settings
title: Settings
cards:
- type: entities
title: Notifications
entities:
- input_boolean.audible_notifications
- input_boolean.text_notifications
- input_boolean.text_notify_jeff
- input_boolean.text_notify_kat
- input_boolean.presence_audio_notifications
- input_boolean.presence_text_notifications
- type: entities
title: Alarms
entities:
- input_boolean.skylar_dressed_alarm
- input_select.trash_pickup
- input_select.recycle_pickup
- input_boolean.trash_notification
# The markdown card will render markdown text.
- type: markdown
title: Lovelace
content: >
Welcome to your **Lovelace UI**
- icon: mdi:home-automation
title: Home Automation
cards:
- type: entities
title: System
entities:
- sensor.cpu
- sensor.disk_use_percent_
- sensor.memory_use_percent
- sensor.network_in_eth0
- sensor.network_out_eth0
- sensor.last_boot
- sensor.ha_uptime
- sensor.lets_encrypt_expiration
- sensor.installed_version
- sensor.current_ha_version
- sensor.ha_v2db
- sensor.ha_log
- type: entities
title: Network Speed
entities:
- sensor.speedtest_ping
- sensor.speedtest_download
- sensor.speedtest_upload
- icon: mdi:human-male-female
title: People
cards:
- type: entities
title: Jeff
show_header_toggle: false
entities:
- sensor.jeff_location
- sensor.jeff_destination
- sensor.jeff_iphone_batt
- device_tracker.jeffreysapple_watch
- device_tracker.jstonemac
- device_tracker.jeffreystonesipad
- sensor.jeff_ett_home
- input_boolean.jeff_travel_monitor
- input_boolean.text_notify_jeff
- input_boolean.jeff_traffic_alerts
- type: entities
title: Kat
show_header_toggle: false
entities:
- sensor.kat_location
- sensor.kat_destination
- sensor.kat_iphone_batt
- device_tracker.katherinesmini
- device_tracker.katherinesipad
- sensor.kat_ett_home
- input_boolean.kat_travel_monitor
- input_boolean.text_notify_kat