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:
parent
f00f5bdccb
commit
e02d084c92
|
@ -1,38 +1,41 @@
|
|||
# Ignore everything explicitly
|
||||
*
|
||||
# ignore my git update script
|
||||
update_git.py
|
||||
|
||||
|
||||
# Whitelist files/folders with !, these will not be ignored.
|
||||
!*.yaml
|
||||
!.gitignore
|
||||
!*.md
|
||||
!templates/
|
||||
!binary_sensors/
|
||||
!sensors/
|
||||
!packages/
|
||||
!switches/
|
||||
!lights/
|
||||
!python_scripts/
|
||||
!alerts/
|
||||
!scripts/
|
||||
# ignore hidden folders
|
||||
/config/.storage
|
||||
/config/.cloud
|
||||
/config/.google.token
|
||||
|
||||
# ignore some directories.
|
||||
/config/icloud/
|
||||
/config/www/
|
||||
/config/tts/
|
||||
/config/deps/
|
||||
/config/hadashboards/
|
||||
/config/intents/
|
||||
/config/themes/
|
||||
/config/custom_components
|
||||
|
||||
|
||||
# Then because I'm paranoid...
|
||||
# Ignore folders.
|
||||
.storage
|
||||
.cloud
|
||||
.google.token
|
||||
.homekit.state
|
||||
icloud/
|
||||
www/
|
||||
tts/
|
||||
deps/
|
||||
hadashboards/
|
||||
intents/
|
||||
secrets.yaml
|
||||
ip_bans.yaml
|
||||
._*
|
||||
google_calendars.yaml
|
||||
known_devices*
|
||||
zones.yaml
|
||||
scripts/test.yaml
|
||||
# ignore any of these filesno matter where they are
|
||||
**.DS_Store
|
||||
**._*
|
||||
**.HA_VERSION
|
||||
**.pyc
|
||||
**.conf
|
||||
**.uuid
|
||||
**.txt
|
||||
**.log
|
||||
**.db
|
||||
**.sqlite
|
||||
**.xml
|
||||
**secrets*
|
||||
**known_devices.yaml
|
||||
**google_calendars.yaml
|
||||
**ip_bans.yaml
|
||||
**.spotify-token-cache
|
||||
**zones.yaml
|
||||
**test.yaml
|
||||
**.homekit*
|
||||
**.vscode
|
142
README.md
142
README.md
|
@ -1,77 +1,121 @@
|
|||
|
||||
<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>
|
||||
Anchorage House - Home Assistant Configuration
|
||||
</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 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:
|
||||
* Moved to Lovelace UI
|
||||
* Started migrating to packages to better organize sesnors, scripts, and automations
|
||||
* Continued work to streamline the config
|
||||
* Anchorage House now tweets throughout the day - [@anchoragehouse2](https://twitter.com/anchoragehouse2)
|
||||
* Due to a required garage door opener replacement the GoControl ZWave Garage Opener has been replaced with Chamberlain MyQ
|
||||
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.
|
||||
|
||||
#### Anchorage House's Three Laws of Home Automation
|
||||
|
||||
When designing Anchorage House's automations I have made every effort to prioritize the solution based on the following three laws.
|
||||
|
||||
**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
|
||||
|
||||
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.
|
||||
|
||||
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)
|
||||
* [Isabella Gross Alström](https://isabellaalstrom.github.io/)
|
||||
* [Mahasri Kalavala](https://github.com/skalavala/mysmarthome)
|
||||
|
||||
#### 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)
|
||||
* [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)
|
||||
##### Media
|
||||
* AppleTv
|
||||
* ChromeCast
|
||||
* Roku Streaming Stick
|
||||
* [NeoTec USB SDR](http://a.co/giwQvX1) For getting data from Accurite temperture and humidty sensors
|
||||
* [Accurite Temp and Humidty Sensors](http://a.co/hcppyvF)
|
||||
* [Sonoff Wifi Switches](http://a.co/dh5hCZu)
|
||||
* Google Home Hub / Home Mini
|
||||
* [Amazon Echo Dot](https://amzn.to/32vt6vr)
|
||||
* [Amazon Echo](https://amzn.to/34LSajw)
|
||||
* [ChromeCast](https://amzn.to/34HIjuL)
|
||||
* [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:
|
||||
* Amazon Echo
|
||||
* IFTTT
|
||||
* Owntracks
|
||||
* Life360
|
||||
* Spotify
|
||||
* Goolge (Calendar API, GMail for sensors, and Google Home)
|
||||
* Waze API
|
||||
* Dropbox for backup
|
||||
* MQTT (For Smartthings, Owntracks, Life360)
|
||||
* Eero For Networked Devices
|
||||
* [Smartthings-MQTT-Bridge](https://github.com/stjohnjohnson/smartthings-mqtt-bridge)
|
||||
* [RTL_433](https://github.com/merbanan/rtl_433)
|
||||
* Cloudflare for SSL and DNS
|
||||
* Splunk
|
||||
* Amazon Echo - Voice Control and Music
|
||||
* IFTTT - Automations
|
||||
* Life360 - Presence Detection
|
||||
* Spotify - Music
|
||||
* Google (Calendar API, GMail for sensors, and Google Home) - Voice Control, Automations based on Calendar, USPS Informed Delivery
|
||||
* Waze API - Transit time and Automations
|
||||
* Dropbox b- Config ackup
|
||||
* MQTT - For Zwave, Zigbee, various sensors running on a different host.
|
||||
* Eero - Networked Devices
|
||||
* [RTL_433](https://github.com/merbanan/rtl_433) - Indoor and Outdoor Temperature Sensors
|
||||
* Cloudflare - 15 year SSL Cert
|
||||
* Splunk - Data Analytics
|
||||
* 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>
|
||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -2,7 +2,7 @@
|
|||
alias: Washer Running
|
||||
trigger:
|
||||
- above: 5
|
||||
entity_id: sensor.washer
|
||||
entity_id: sensor.washer_power
|
||||
platform: numeric_state
|
||||
action:
|
||||
- service: script.washer_running
|
||||
|
@ -11,7 +11,7 @@
|
|||
alias: Washer Complete
|
||||
trigger:
|
||||
- below: 3
|
||||
entity_id: sensor.washer
|
||||
entity_id: sensor.washer_power
|
||||
platform: numeric_state
|
||||
condition:
|
||||
- condition: state
|
||||
|
@ -25,7 +25,7 @@
|
|||
alias: Washer Emptied
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: binary_sensor.washer_door_contact
|
||||
entity_id: binary_sensor.washer_door
|
||||
from: 'off'
|
||||
to: 'on'
|
||||
action:
|
||||
|
@ -111,7 +111,9 @@
|
|||
- service: scene.turn_on
|
||||
entity_id: scene.normal_kitchen_lighting
|
||||
- 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
|
||||
entity_id: scene.jeff_light_on
|
||||
- service: script.twitter_notify
|
||||
|
@ -133,9 +135,9 @@
|
|||
state: 'off'
|
||||
action:
|
||||
- service: switch.turn_on
|
||||
entity_id: switch.rainbow_light_3
|
||||
entity_id: switch.0xf0d1b80000052281_switch # Rainbow Light
|
||||
- service: light.turn_on
|
||||
entity_id: light.table_lamp_2
|
||||
entity_id: light.0xe20db9fffe003637_light
|
||||
- service: alarm_control_panel.alarm_arm_away
|
||||
entity_id: alarm_control_panel.ah_base_station
|
||||
- id: jeff_lights_out
|
||||
|
@ -238,7 +240,7 @@
|
|||
- service: switch.turn_off
|
||||
entity_id: switch.incense
|
||||
- service: switch.turn_off
|
||||
entity_id: switch.artemis_2
|
||||
entity_id: switch.artemis
|
||||
- service: light.turn_off
|
||||
data:
|
||||
entity_id: light.kitchen_cabinet_lights
|
||||
|
@ -456,7 +458,7 @@
|
|||
data_template:
|
||||
time: >
|
||||
{% if states.binary_sensor.workday_sensor.state == 'on' %}
|
||||
05:15
|
||||
04:30
|
||||
{% else %}
|
||||
07:15
|
||||
{% endif %}
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -0,0 +1 @@
|
|||
"""Support for Amazon Polly integration."""
|
|
@ -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(),
|
||||
)
|
|
@ -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
|
||||
|
|
@ -58,6 +58,6 @@ Disney Audio:
|
|||
- input_boolean.happy_ever_after
|
||||
|
||||
rgb_lr:
|
||||
- light.tower_lamp_2
|
||||
- light.front_door_lamp
|
||||
- light.living_room_lamp
|
||||
- light.0xb0ce18140003608a_light_2
|
||||
- light.0xb0ce181400051b4c_light_2
|
||||
- light.0xb0ce181400051072_light_2
|
|
@ -146,5 +146,3 @@ clean_fish_tank:
|
|||
heartworm:
|
||||
name: Heartworm
|
||||
icon: mdi:dog-side
|
||||
|
||||
|
|
@ -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
|
|
@ -67,7 +67,7 @@ automation:
|
|||
to: 'off'
|
||||
action:
|
||||
- service: media_player.media_stop
|
||||
entity_id: media_player.ha_speaker
|
||||
entity_id: media_player.theater
|
||||
- service: script.turn_on
|
||||
entity_id: script.kill_this_ride
|
||||
- id: illuminations_on
|
||||
|
@ -123,7 +123,7 @@ automation:
|
|||
- service: script.turn_on
|
||||
entity_id: script.kill_this_ride
|
||||
- service: media_player.media_stop
|
||||
entity_id: media_player.ha_speaker
|
||||
entity_id: media_player.theater
|
||||
- id: happy_ever_after_on
|
||||
alias: Happy Ever After On
|
||||
initial_state: true
|
||||
|
@ -145,7 +145,7 @@ automation:
|
|||
- service: script.turn_on
|
||||
entity_id: script.kill_this_ride
|
||||
- service: media_player.media_stop
|
||||
entity_id: media_player.ha_speaker
|
||||
entity_id: media_player.theater
|
||||
|
||||
|
||||
# #######################################
|
||||
|
@ -171,7 +171,7 @@ automation:
|
|||
# action:
|
||||
# - service: script.kill_this_ride
|
||||
# - 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
|
||||
entity_id: script.kill_this_ride
|
||||
- service: media_player.media_stop
|
||||
entity_id: media_player.ha_speaker
|
||||
entity_id: media_player.theater
|
||||
- id: boo_to_you_show_on
|
||||
alias: Boo To You Show On
|
||||
initial_state: true
|
||||
|
@ -218,7 +218,7 @@ automation:
|
|||
- service: script.turn_on
|
||||
entity_id: script.kill_this_ride
|
||||
- service: media_player.media_stop
|
||||
entity_id: media_player.ha_speaker
|
||||
entity_id: media_player.theater
|
||||
- id: boo_to_you_on
|
||||
alias: Boo To You On
|
||||
initial_state: true
|
||||
|
@ -240,7 +240,7 @@ automation:
|
|||
- service: script.turn_on
|
||||
entity_id: script.kill_this_ride
|
||||
- service: media_player.media_stop
|
||||
entity_id: media_player.ha_speaker
|
||||
entity_id: media_player.theater
|
||||
|
||||
- id: holiday_wishes_on
|
||||
alias: Holiday Wishes On
|
||||
|
@ -263,7 +263,7 @@ automation:
|
|||
- service: script.turn_on
|
||||
entity_id: script.kill_this_ride
|
||||
- service: media_player.media_stop
|
||||
entity_id: media_player.ha_speaker
|
||||
entity_id: media_player.theater
|
||||
|
||||
- id: welcome_show_on
|
||||
alias: Welcome Show On
|
||||
|
@ -286,7 +286,7 @@ automation:
|
|||
- service: script.turn_on
|
||||
entity_id: script.kill_this_ride
|
||||
- service: media_player.media_stop
|
||||
entity_id: media_player.ha_speaker
|
||||
entity_id: media_player.theater
|
||||
|
||||
- id: american_adventure_on
|
||||
alias: American Adventure On
|
||||
|
@ -309,7 +309,7 @@ automation:
|
|||
- service: script.turn_on
|
||||
entity_id: script.kill_this_ride
|
||||
- service: media_player.media_stop
|
||||
entity_id: media_player.ha_speaker
|
||||
entity_id: media_player.theater
|
||||
|
||||
- id: springs_christmas_on
|
||||
alias: Disney Springs XMas On
|
||||
|
@ -332,7 +332,7 @@ automation:
|
|||
- service: script.turn_on
|
||||
entity_id: script.kill_this_ride
|
||||
- service: media_player.media_stop
|
||||
entity_id: media_player.ha_speaker
|
||||
entity_id: media_player.theater
|
||||
|
||||
- id: sleepy_hollow_readalong_on
|
||||
alias: Sleepy Hollow Readalong On
|
||||
|
@ -355,7 +355,7 @@ automation:
|
|||
- service: script.turn_on
|
||||
entity_id: script.kill_this_ride
|
||||
- service: media_player.media_stop
|
||||
entity_id: media_player.ha_speaker
|
||||
entity_id: media_player.theater
|
||||
|
||||
- id: move_dance_on
|
||||
alias: Move It Shake It On
|
||||
|
@ -378,7 +378,7 @@ automation:
|
|||
- service: script.turn_on
|
||||
entity_id: script.kill_this_ride
|
||||
- service: media_player.media_stop
|
||||
entity_id: media_player.ha_speaker
|
||||
entity_id: media_player.theater
|
||||
|
||||
|
||||
- id: kill_show
|
||||
|
@ -406,7 +406,7 @@ automation:
|
|||
to: 'off'
|
||||
action:
|
||||
- service: media_player.media_stop
|
||||
entity_id: media_player.ha_speaker
|
||||
entity_id: media_player.theater
|
||||
- service: scene.turn_on
|
||||
entity_id: scene.normal_livingroom_lighting
|
||||
- service: script.reset_show_inputs
|
||||
|
@ -559,7 +559,7 @@ script:
|
|||
kill_this_ride:
|
||||
sequence:
|
||||
- service: media_player.media_stop
|
||||
entity_id: media_player.ha_speaker
|
||||
entity_id: media_player.theater
|
||||
- service: shell_command.alarm_off
|
||||
- service: shell_command.vlc_off
|
||||
- service: script.turn_off
|
||||
|
@ -668,18 +668,18 @@ script:
|
|||
- condition: state
|
||||
entity_id: sensor.family_status
|
||||
state: Home
|
||||
- service: shell_command.dance_it
|
||||
# - service: media_player.turn_on
|
||||
# entity_id: media_player.ha_speaker
|
||||
# - service: media_player.volume_set
|
||||
# data_template:
|
||||
# entity_id: media_player.ha_speaker
|
||||
# volume_level: .5
|
||||
# - service: media_player.play_media
|
||||
# entity_id: media_player.ha_speaker
|
||||
# data:
|
||||
# media_content_id: http://192.168.7.40/audio/move_it_shake_dance_audio.mp3
|
||||
# media_content_type: "music"
|
||||
# - service: shell_command.dance_it
|
||||
- service: media_player.turn_on
|
||||
entity_id: media_player.theater
|
||||
- service: media_player.volume_set
|
||||
data_template:
|
||||
entity_id: media_player.theater
|
||||
volume_level: .5
|
||||
- service: media_player.play_media
|
||||
entity_id: media_player.theater
|
||||
data:
|
||||
media_content_id: http://192.168.7.40/audio/move_it_shake_dance_audio.mp3
|
||||
media_content_type: "music"
|
||||
american_adventure:
|
||||
sequence:
|
||||
- condition: state
|
||||
|
@ -697,21 +697,21 @@ script:
|
|||
- condition: state
|
||||
entity_id: sensor.family_status
|
||||
state: Home
|
||||
- service: shell_command.disney_springs_xmas
|
||||
# - service: shell_command.disney_springs_xmas
|
||||
# - service: switch.turn_on
|
||||
# entity_id: switch.ha_speaker
|
||||
# - service: media_player.turn_on
|
||||
# entity_id: media_player.theater
|
||||
# - service: media_player.volume_set
|
||||
# data_template:
|
||||
# entity_id: media_player.theater
|
||||
# volume_level: >
|
||||
# .5
|
||||
# - service: media_player.play_media
|
||||
# entity_id: media_player.theater
|
||||
# data:
|
||||
# media_content_id: http://192.168.7.40/audio/Disney_Springs_Xmas_Loop.mp3.mp3
|
||||
# media_content_type: "music"
|
||||
- service: media_player.turn_on
|
||||
entity_id: media_player.theater
|
||||
- service: media_player.volume_set
|
||||
data_template:
|
||||
entity_id: media_player.theater
|
||||
volume_level: >
|
||||
.5
|
||||
- service: media_player.play_media
|
||||
entity_id: media_player.theater
|
||||
data:
|
||||
media_content_id: http://192.168.7.40/audio/Disney_Springs_Xmas_Loop.mp3.mp3
|
||||
media_content_type: "music"
|
||||
sleepy_hollow_readalong:
|
||||
sequence:
|
||||
- condition: state
|
||||
|
@ -729,18 +729,18 @@ script:
|
|||
- condition: state
|
||||
entity_id: sensor.family_status
|
||||
state: Home
|
||||
- service: shell_command.spaceship_earth_ride
|
||||
# - service: media_player.turn_on
|
||||
# entity_id: media_player.ha_speaker
|
||||
# - service: media_player.volume_set
|
||||
# data_template:
|
||||
# entity_id: media_player.ha_speaker
|
||||
# volume_level: .5
|
||||
# - service: media_player.play_media
|
||||
# entity_id: media_player.ha_speaker
|
||||
# data:
|
||||
# media_content_id: http://192.168.7.40/audio/spaceship_earth_ride.mp3
|
||||
# media_content_type: "music"
|
||||
# - service: shell_command.spaceship_earth_ride
|
||||
- service: media_player.turn_on
|
||||
entity_id: media_player.theater
|
||||
- service: media_player.volume_set
|
||||
data_template:
|
||||
entity_id: media_player.theater
|
||||
volume_level: .5
|
||||
- service: media_player.play_media
|
||||
entity_id: media_player.theater
|
||||
data:
|
||||
media_content_id: http://192.168.7.40/audio/spaceship_earth_ride.mp3
|
||||
media_content_type: "music"
|
||||
welcome_to_magic_kingdom:
|
||||
sequence:
|
||||
- condition: state
|
||||
|
@ -785,18 +785,18 @@ script:
|
|||
- condition: state
|
||||
entity_id: sensor.family_status
|
||||
state: Home
|
||||
- service: shell_command.welcome_show
|
||||
# - service: media_player.turn_on
|
||||
# entity_id: media_player.ha_speaker
|
||||
# - service: media_player.volume_set
|
||||
# data_template:
|
||||
# entity_id: media_player.ha_speaker
|
||||
# volume_level: .5
|
||||
# - service: media_player.play_media
|
||||
# entity_id: media_player.ha_speaker
|
||||
# data:
|
||||
# media_content_id: http://192.168.7.40/audio/welcome_show_crowd.mp3
|
||||
# media_content_type: "music"
|
||||
# - service: shell_command.welcome_show
|
||||
- service: media_player.turn_on
|
||||
entity_id: media_player.theater
|
||||
- service: media_player.volume_set
|
||||
data_template:
|
||||
entity_id: media_player.theater
|
||||
volume_level: .5
|
||||
- service: media_player.play_media
|
||||
entity_id: media_player.theater
|
||||
data:
|
||||
media_content_id: http://192.168.7.40/audio/welcome_show_crowd.mp3
|
||||
media_content_type: "music"
|
||||
holiday_wishes_preshow:
|
||||
sequence:
|
||||
- condition: state
|
||||
|
@ -817,14 +817,14 @@ script:
|
|||
- condition: state
|
||||
entity_id: sensor.family_status
|
||||
state: Home
|
||||
- service: shell_command.holiday_wishes
|
||||
# - service: media_player.turn_on
|
||||
# entity_id: media_player.ha_speaker
|
||||
# - service: media_player.play_media
|
||||
# entity_id: media_player.ha_speaker
|
||||
# data:
|
||||
# media_content_id: http://192.168.7.40/audio/wishes_5_min.mp3
|
||||
# media_content_type: "music"
|
||||
# - service: shell_command.holiday_wishes
|
||||
- service: media_player.turn_on
|
||||
entity_id: media_player.theater
|
||||
- service: media_player.play_media
|
||||
entity_id: media_player.theater
|
||||
data:
|
||||
media_content_id: http://192.168.7.40/audio/wishes_5_min.mp3
|
||||
media_content_type: "music"
|
||||
boo_to_you_show:
|
||||
sequence:
|
||||
- condition: state
|
||||
|
@ -833,14 +833,14 @@ script:
|
|||
- condition: state
|
||||
entity_id: sensor.family_status
|
||||
state: Home
|
||||
- service: shell_command.boo_to_you
|
||||
# - service: media_player.turn_on
|
||||
# entity_id: media_player.ha_speaker
|
||||
# - service: media_player.play_media
|
||||
# entity_id: media_player.ha_speaker
|
||||
# data:
|
||||
# media_content_id: http://192.168.7.40/audio/boo_to_you_audio.mp3
|
||||
# media_content_type: "music"
|
||||
# - service: shell_command.boo_to_you
|
||||
- service: media_player.turn_on
|
||||
entity_id: media_player.theater
|
||||
- service: media_player.play_media
|
||||
entity_id: media_player.theater
|
||||
data:
|
||||
media_content_id: http://192.168.7.40/audio/boo_to_you_audio.mp3
|
||||
media_content_type: "music"
|
||||
happy_ever_after_show:
|
||||
sequence:
|
||||
- condition: state
|
||||
|
@ -849,14 +849,14 @@ script:
|
|||
- condition: state
|
||||
entity_id: sensor.family_status
|
||||
state: Home
|
||||
- service: shell_command.happily_ever_after
|
||||
# - service: media_player.turn_on
|
||||
# entity_id: media_player.hass_speaker
|
||||
# - service: media_player.play_media
|
||||
# entity_id: media_player.hass_speaker
|
||||
# data:
|
||||
# media_content_id: http://192.168.7.40/audio/Happily_Ever_After_Audio.mp3
|
||||
# media_content_type: "music"
|
||||
# - service: shell_command.happily_ever_after
|
||||
- service: media_player.turn_on
|
||||
entity_id: media_player.theater
|
||||
- service: media_player.play_media
|
||||
entity_id: media_player.theater
|
||||
data:
|
||||
media_content_id: http://192.168.7.40/audio/Happily_Ever_After_Audio.mp3
|
||||
media_content_type: "music"
|
||||
# boo_to_you:
|
||||
# sequence:
|
||||
# - condition: state
|
||||
|
@ -867,9 +867,9 @@ script:
|
|||
# state: Home
|
||||
# #- service: shell_command.boo_to_you
|
||||
# - service: media_player.turn_on
|
||||
# entity_id: media_player.ha_speaker
|
||||
# entity_id: media_player.theater
|
||||
# - service: media_player.play_media
|
||||
# entity_id: media_player.ha_speaker
|
||||
# entity_id: media_player.theater
|
||||
# data:
|
||||
# media_content_id: http://192.168.7.40/audio/boo_to_you_audio.mp3
|
||||
# media_content_type: "music"
|
||||
|
@ -881,21 +881,21 @@ script:
|
|||
- condition: state
|
||||
entity_id: sensor.family_status
|
||||
state: Home
|
||||
- service: shell_command.tiki_vol
|
||||
- service: shell_command.tiki_room_audio
|
||||
# - service: media_player.turn_on
|
||||
# entity_id: media_player.ha_speaker
|
||||
# - service: media_player.turn_on
|
||||
# entity_id: media_player.ha_speaker
|
||||
# - service: media_player.volume_set
|
||||
# data_template:
|
||||
# entity_id: media_player.ha_speaker
|
||||
# volume_level: .5
|
||||
# - service: media_player.play_media
|
||||
# entity_id: media_player.ha_speaker
|
||||
# data:
|
||||
# media_content_id: http://192.168.7.40/audio/tiki_room_audio.mp3
|
||||
# media_content_type: "music"
|
||||
# - service: shell_command.tiki_vol
|
||||
# - service: shell_command.tiki_room_audio
|
||||
- service: media_player.turn_on
|
||||
entity_id: media_player.theater
|
||||
- service: media_player.turn_on
|
||||
entity_id: media_player.theater
|
||||
- service: media_player.volume_set
|
||||
data_template:
|
||||
entity_id: media_player.theater
|
||||
volume_level: .5
|
||||
- service: media_player.play_media
|
||||
entity_id: media_player.theater
|
||||
data:
|
||||
media_content_id: http://192.168.7.40/audio/tiki_room_audio.mp3
|
||||
media_content_type: "music"
|
||||
# happy_ever_after:
|
||||
# sequence:
|
||||
# - condition: state
|
||||
|
@ -906,13 +906,13 @@ script:
|
|||
# state: Home
|
||||
# #- service: shell_command.happily_ever_after
|
||||
# - service: media_player.turn_on
|
||||
# entity_id: media_player.ha_speaker
|
||||
# entity_id: media_player.theater
|
||||
# - service: media_player.volume_set
|
||||
# data_template:
|
||||
# entity_id: media_player.ha_speaker
|
||||
# entity_id: media_player.theater
|
||||
# volume_level: .5
|
||||
# - service: media_player.play_media
|
||||
# entity_id: media_player.ha_speaker
|
||||
# entity_id: media_player.theater
|
||||
# data:
|
||||
# media_content_id: http://192.168.7.40/audio/Happily_Ever_After_Audio.mp3
|
||||
# media_content_type: "music"
|
||||
|
@ -959,18 +959,18 @@ script:
|
|||
- condition: state
|
||||
entity_id: sensor.family_status
|
||||
state: Home
|
||||
- service: shell_command.illuminations_audio
|
||||
# - service: media_player.turn_on
|
||||
# entity_id: media_player.ha_speaker
|
||||
# - service: media_player.volume_set
|
||||
# data_template:
|
||||
# entity_id: media_player.ha_speaker
|
||||
# volume_level: .5
|
||||
# - service: media_player.play_media
|
||||
# entity_id: media_player.ha_speaker
|
||||
# data:
|
||||
# media_content_id: http://192.168.7.40/audio/illuminations.mp3
|
||||
# media_content_type: "music"
|
||||
# - service: shell_command.illuminations_audio
|
||||
- service: media_player.turn_on
|
||||
entity_id: media_player.theater
|
||||
- service: media_player.volume_set
|
||||
data_template:
|
||||
entity_id: media_player.theater
|
||||
volume_level: .5
|
||||
- service: media_player.play_media
|
||||
entity_id: media_player.theater
|
||||
data:
|
||||
media_content_id: http://192.168.7.40/audio/illuminations.mp3
|
||||
media_content_type: "music"
|
||||
- service: script.turn_on
|
||||
entity_id: script.illuminations_preshow
|
||||
- service: script.turn_on
|
||||
|
@ -992,18 +992,18 @@ script:
|
|||
- condition: state
|
||||
entity_id: sensor.family_status
|
||||
state: Home
|
||||
- service: shell_command.this_is_halloween
|
||||
# - service: shell_command.this_is_halloween
|
||||
# - service: switch.turn_on
|
||||
# entity_id: switch.ha_speaker
|
||||
# - service: media_player.turn_on
|
||||
# entity_id: media_player.theater
|
||||
# - service: media_player.volume_set
|
||||
# data_template:
|
||||
# entity_id: media_player.theater
|
||||
# volume_level: >
|
||||
# .5
|
||||
# - service: media_player.play_media
|
||||
# entity_id: media_player.theater
|
||||
# data:
|
||||
# media_content_id: http://192.168.7.40/audio/This_is_Halloween.mp3
|
||||
# media_content_type: "music"
|
||||
- service: media_player.turn_on
|
||||
entity_id: media_player.theater
|
||||
- service: media_player.volume_set
|
||||
data_template:
|
||||
entity_id: media_player.theater
|
||||
volume_level: >
|
||||
.5
|
||||
- service: media_player.play_media
|
||||
entity_id: media_player.theater
|
||||
data:
|
||||
media_content_id: http://192.168.7.40/audio/This_is_Halloween.mp3
|
||||
media_content_type: "music"
|
0
packages/haunted_mansion_show.yaml → config/packages/haunted_mansion_show.yaml
Normal file → Executable file
0
packages/haunted_mansion_show.yaml → config/packages/haunted_mansion_show.yaml
Normal file → Executable 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
|
|
@ -47,18 +47,6 @@ notify:
|
|||
platform: group
|
||||
services:
|
||||
- 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
|
||||
platform: twitter
|
||||
consumer_key: !secret twitter_consumer_key
|
||||
|
@ -231,17 +219,17 @@ script:
|
|||
retain: true
|
||||
- condition: template
|
||||
value_template: '{{ states.binary_sensor.quiet_time.state == "off" }}'
|
||||
- condition: state
|
||||
entity_id: binary_sensor.vlc_player
|
||||
state: 'off'
|
||||
# - condition: state
|
||||
# entity_id: binary_sensor.vlc_player
|
||||
# state: 'off'
|
||||
- condition: state
|
||||
entity_id: sensor.family_status
|
||||
state: 'Home'
|
||||
- condition: state
|
||||
entity_id: input_boolean.vacation_mode
|
||||
state: 'off'
|
||||
- service: switch.turn_on
|
||||
entity_id: switch.ha_speaker
|
||||
# - service: switch.turn_on
|
||||
# entity_id: switch.ha_speaker
|
||||
- service: media_player.turn_on
|
||||
entity_id: media_player.theater
|
||||
- service: media_player.volume_set
|
|
@ -125,7 +125,7 @@ sensor:
|
|||
sensors:
|
||||
kat_home:
|
||||
value_template: >-
|
||||
{{ is_state('device_tracker.katherinestonesiphone', 'home')
|
||||
{{ is_state('device_tracker.iphone', 'home')
|
||||
or is_state('device_tracker.life360_kat_stone', 'home') }}
|
||||
- platform: template
|
||||
sensors:
|
||||
|
@ -134,7 +134,7 @@ sensor:
|
|||
{{ is_state('device_tracker.jeffreystonesiphone', 'home')
|
||||
or is_state('device_tracker.hass_jeffsiphone', '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('sensor.family_status', 'Home') }}
|
||||
|
||||
|
@ -370,8 +370,8 @@ automation:
|
|||
trigger:
|
||||
- platform: state
|
||||
entity_id:
|
||||
- device_tracker.jeffreystonesiphone
|
||||
- device_tracker.katherinestonesiphone
|
||||
- person.jeffrey
|
||||
- person.katherine
|
||||
from: 'not_home'
|
||||
to: 'home'
|
||||
condition:
|
|
@ -79,10 +79,10 @@ automation:
|
|||
at: '23:00:00'
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: device_tracker.jeffreystonesiphone
|
||||
entity_id: person.jeffrey
|
||||
state: home
|
||||
- condition: state
|
||||
entity_id: device_tracker.katherinestonesiphone
|
||||
entity_id: person.katherine
|
||||
state: home
|
||||
- condition: state
|
||||
entity_id: input_boolean.guest_mode
|
||||
|
@ -145,10 +145,10 @@ automation:
|
|||
trigger:
|
||||
- platform: state
|
||||
entity_id:
|
||||
- binary_sensor.front_door_contact_2
|
||||
- binary_sensor.laundry_room_door_contact_2
|
||||
- binary_sensor.attic_door_contact_2
|
||||
- binary_sensor.back_door_contact_2
|
||||
- binary_sensor.front_door
|
||||
- binary_sensor.laundry_room_door
|
||||
- binary_sensor.attic_door
|
||||
- binary_sensor.back_door
|
||||
from: 'off'
|
||||
to: 'on'
|
||||
for: '00:01:00'
|
||||
|
@ -194,11 +194,11 @@ automation:
|
|||
trigger:
|
||||
- platform: state
|
||||
entity_id:
|
||||
- binary_sensor.front_door_contact_2
|
||||
- binary_sensor.laundry_room_door_contact_2
|
||||
- binary_sensor.back_door_contact_2
|
||||
- binary_sensor.side_door_contact_2
|
||||
- binary_sensor.garage_door_contact_2
|
||||
- binary_sensor.front_door
|
||||
- binary_sensor.laundry_room_door
|
||||
- binary_sensor.back_door
|
||||
- binary_sensor.side_door
|
||||
- binary_sensor.garage_door
|
||||
from: 'off'
|
||||
condition:
|
||||
- condition: state
|
|
@ -64,10 +64,16 @@ sensor:
|
|||
#command: "head -5 /home/homeassistant/.homeassistant/.HA_VERSION"
|
||||
- platform: version
|
||||
name: Released Version
|
||||
source: pypi
|
||||
source: pypi
|
||||
- platform: version
|
||||
name: Released Hassio Ver
|
||||
source: hassio
|
||||
- platform: command_line
|
||||
name: ha_v2db
|
||||
command: "ls -sh /home/homeassistant/.homeassistant/home-assistant_v2.db | cut -f1 -d ' '"
|
||||
- platform: command_line
|
||||
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
|
|
@ -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
|
|
@ -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)
|
0
python_scripts/special_events.py → config/python_scripts/special_events.py
Normal file → Executable file
0
python_scripts/special_events.py → config/python_scripts/special_events.py
Normal file → Executable file
|
@ -55,13 +55,13 @@
|
|||
|
||||
- name: dimished livingroom lighting
|
||||
entities:
|
||||
light.tower_lamp_2:
|
||||
light.0xb0ce18140003608a_light_2:
|
||||
state: on
|
||||
brightness: 40
|
||||
color_temp: 369
|
||||
light.front_ldoor_amp:
|
||||
light.0xb0ce181400051072_light_2:
|
||||
state: off
|
||||
light.living_room_lamp:
|
||||
light.0xb0ce181400051b4c_light_2:
|
||||
state: off
|
||||
switch.fireplace_lights:
|
||||
state: off
|
||||
|
@ -97,15 +97,19 @@
|
|||
switch.fireplace_lights:
|
||||
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
|
||||
entities:
|
||||
light.tower_lamp_2:
|
||||
light.0xb0ce18140003608a_light_2:
|
||||
state: on
|
||||
brightness: 10
|
||||
color_temp: 369
|
||||
light.front_door_lamp:
|
||||
light.0xb0ce181400051072_light_2:
|
||||
state: off
|
||||
light.living_room_lamp:
|
||||
light.0xb0ce181400051b4c_light_2:
|
||||
state: off
|
||||
switch.fireplace_lights:
|
||||
state: off
|
||||
|
@ -165,31 +169,31 @@
|
|||
|
||||
- name: jeff light on
|
||||
entities:
|
||||
light.jeff_lamp:
|
||||
light.0xe20db9fffe004207_light:
|
||||
state: on
|
||||
brightness: 100
|
||||
|
||||
- name: jeff light off
|
||||
entities:
|
||||
light.jeff_lamp:
|
||||
light.0xe20db9fffe004207_light:
|
||||
state: off
|
||||
|
||||
|
||||
- name: jeff wake up
|
||||
entities:
|
||||
light.jeff_lamp:
|
||||
light.0xe20db9fffe004207_light:
|
||||
state: on
|
||||
brightness: 20
|
||||
|
||||
- name: jeff bedtime
|
||||
entities:
|
||||
light.jeff_lamp:
|
||||
light.0xe20db9fffe004207_light:
|
||||
state: on
|
||||
brightness: 40
|
||||
|
||||
- name: jeff night light
|
||||
entities:
|
||||
light.jeff_lamp:
|
||||
light.0xe20db9fffe004207_light:
|
||||
state: on
|
||||
brightness: 10
|
||||
|
|
@ -107,7 +107,7 @@ driveway_on:
|
|||
entity_id: switch.driveway_light
|
||||
service: switch.turn_on
|
||||
- data:
|
||||
entity_id: light.side_door_light_3
|
||||
entity_id: light.side_door_light
|
||||
service: light.turn_on
|
||||
driveway_off:
|
||||
sequence:
|
||||
|
@ -122,7 +122,7 @@ driveway_off:
|
|||
- service: switch.turn_off
|
||||
entity_id: switch.driveway_light
|
||||
- service: light.turn_off
|
||||
entity_id: light.side_door_light_3
|
||||
entity_id: light.side_door_light
|
||||
chromecast_media_stop:
|
||||
sequence:
|
||||
- service: media_player.media_stop
|
|
@ -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 %}'
|
||||
- platform: mqtt
|
||||
name: "Front Door Battery"
|
||||
state_topic: "smartthings/Front Door/battery"
|
||||
state_topic: "zwave2mqtt/nodeID_27/128/1/0"
|
||||
- platform: mqtt
|
||||
name: "Laundry Door Battery"
|
||||
state_topic: "smartthings/Laundry Room Door/battery"
|
||||
state_topic: "zwave2mqtt/nodeID_26/128/1/0"
|
||||
- platform: mqtt
|
||||
name: "Kitchen Smoke Battery"
|
||||
state_topic: "smartthings/Kitchen Smoke/battery"
|
||||
state_topic: "zwave2mqtt/nodeID_19/128/1/0"
|
||||
- platform: mqtt
|
||||
name: "Attic Door Battery"
|
||||
state_topic: "smartthings/Attic Door/battery"
|
||||
state_topic: "zwave2mqtt/nodeID_18/128/1/0"
|
||||
- platform: mqtt
|
||||
name: "Washer Door Battery"
|
||||
state_topic: "smartthings/Washer Door/battery"
|
||||
state_topic: "zwave2mqtt/washer_door/128/1/0"
|
||||
- platform: mqtt
|
||||
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"
|
|
@ -109,3 +109,4 @@
|
|||
entity_id: []
|
||||
value_template: >-
|
||||
{{ states.camera | list | count }}
|
||||
|
|
@ -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"
|
|
@ -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"
|
|
@ -3,14 +3,14 @@
|
|||
{%- 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.",
|
||||
"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
|
||||
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.",
|
||||
"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 .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 -}}
|
||||
{%- endmacro -%}
|
||||
{%- macro getTags() -%}
|
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 57 KiB |
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -1,3 +0,0 @@
|
|||
- platform: mqtt
|
||||
name: "Washer"
|
||||
state_topic: "smartthings/Washer/power"
|
|
@ -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
|
|
@ -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
|
||||
|
|
@ -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
|
|
@ -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
|
||||
|
|
@ -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
|
|
@ -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
|
241
ui-lovelace.yaml
241
ui-lovelace.yaml
|
@ -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
|
Loading…
Reference in New Issue