diff --git a/.gitignore b/.gitignore
index 5c8a599..3564e4f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
\ No newline at end of file
diff --git a/README.md b/README.md
index 76e08b8..9d72a3d 100755
--- a/README.md
+++ b/README.md
@@ -1,77 +1,121 @@
-
+
Anchorage House - Home Assistant Configuration
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.**
+
+
+
+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?
+
+
+Buy me a coffee
+
+Find your next Home Automation device on Amazon using my affiliate link
+
+
+Affiliate Disclosure
+
+
diff --git a/binary_sensors/doors.yaml b/binary_sensors/doors.yaml
deleted file mode 100755
index b1f0725..0000000
--- a/binary_sensors/doors.yaml
+++ /dev/null
@@ -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
\ No newline at end of file
diff --git a/binary_sensors/motion.yaml b/binary_sensors/motion.yaml
deleted file mode 100755
index 387b22a..0000000
--- a/binary_sensors/motion.yaml
+++ /dev/null
@@ -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
\ No newline at end of file
diff --git a/alerts/garage_after_dark.yaml b/config/alerts/garage_after_dark.yaml
similarity index 100%
rename from alerts/garage_after_dark.yaml
rename to config/alerts/garage_after_dark.yaml
diff --git a/alerts/jeff_bad_traffic_home.yaml b/config/alerts/jeff_bad_traffic_home.yaml
similarity index 100%
rename from alerts/jeff_bad_traffic_home.yaml
rename to config/alerts/jeff_bad_traffic_home.yaml
diff --git a/alerts/jeff_heading_home.yaml b/config/alerts/jeff_heading_home.yaml
similarity index 100%
rename from alerts/jeff_heading_home.yaml
rename to config/alerts/jeff_heading_home.yaml
diff --git a/alerts/kat_heading_home.yaml b/config/alerts/kat_heading_home.yaml
similarity index 100%
rename from alerts/kat_heading_home.yaml
rename to config/alerts/kat_heading_home.yaml
diff --git a/alerts/lockdown_issue.yaml b/config/alerts/lockdown_issue.yaml
similarity index 100%
rename from alerts/lockdown_issue.yaml
rename to config/alerts/lockdown_issue.yaml
diff --git a/alerts/unauthorized_access.yaml b/config/alerts/unauthorized_access.yaml
similarity index 100%
rename from alerts/unauthorized_access.yaml
rename to config/alerts/unauthorized_access.yaml
diff --git a/automations.yaml b/config/automations.yaml
old mode 100755
new mode 100644
similarity index 97%
rename from automations.yaml
rename to config/automations.yaml
index dd6ed11..151d103
--- a/automations.yaml
+++ b/config/automations.yaml
@@ -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 %}
diff --git a/binary_sensors/calendar.yaml b/config/binary_sensors/calendar.yaml
similarity index 100%
rename from binary_sensors/calendar.yaml
rename to config/binary_sensors/calendar.yaml
diff --git a/config/binary_sensors/doors.yaml b/config/binary_sensors/doors.yaml
new file mode 100755
index 0000000..238bb6a
--- /dev/null
+++ b/config/binary_sensors/doors.yaml
@@ -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
\ No newline at end of file
diff --git a/config/binary_sensors/motion.yaml b/config/binary_sensors/motion.yaml
new file mode 100755
index 0000000..65b1712
--- /dev/null
+++ b/config/binary_sensors/motion.yaml
@@ -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
\ No newline at end of file
diff --git a/config/configuration.yaml b/config/configuration.yaml
new file mode 100644
index 0000000..c31124a
--- /dev/null
+++ b/config/configuration.yaml
@@ -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
diff --git a/config/custom_components/amazon_polly/_inti_.py b/config/custom_components/amazon_polly/_inti_.py
new file mode 100755
index 0000000..1843c13
--- /dev/null
+++ b/config/custom_components/amazon_polly/_inti_.py
@@ -0,0 +1 @@
+"""Support for Amazon Polly integration."""
\ No newline at end of file
diff --git a/config/custom_components/amazon_polly/tts.py b/config/custom_components/amazon_polly/tts.py
new file mode 100755
index 0000000..b3f59a3
--- /dev/null
+++ b/config/custom_components/amazon_polly/tts.py
@@ -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(),
+ )
\ No newline at end of file
diff --git a/config/custom_components/nws_alerts/__init__.py b/config/custom_components/nws_alerts/__init__.py
new file mode 100755
index 0000000..e69de29
diff --git a/config/custom_components/nws_alerts/sensor.py b/config/custom_components/nws_alerts/sensor.py
new file mode 100755
index 0000000..de94c57
--- /dev/null
+++ b/config/custom_components/nws_alerts/sensor.py
@@ -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 += '%s \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
+
diff --git a/customize.yaml b/config/customize.yaml
similarity index 100%
rename from customize.yaml
rename to config/customize.yaml
diff --git a/groups.yaml b/config/groups.yaml
similarity index 92%
rename from groups.yaml
rename to config/groups.yaml
index 116833f..3eec8ca 100755
--- a/groups.yaml
+++ b/config/groups.yaml
@@ -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
diff --git a/input_boolean.yaml b/config/input_boolean.yaml
similarity index 99%
rename from input_boolean.yaml
rename to config/input_boolean.yaml
index 754ce8c..521f8ae 100755
--- a/input_boolean.yaml
+++ b/config/input_boolean.yaml
@@ -146,5 +146,3 @@ clean_fish_tank:
heartworm:
name: Heartworm
icon: mdi:dog-side
-
-
diff --git a/input_datetime.yaml b/config/input_datetime.yaml
similarity index 100%
rename from input_datetime.yaml
rename to config/input_datetime.yaml
diff --git a/input_select.yaml b/config/input_select.yaml
similarity index 100%
rename from input_select.yaml
rename to config/input_select.yaml
diff --git a/config/lights.yaml b/config/lights.yaml
new file mode 100644
index 0000000..25a568e
--- /dev/null
+++ b/config/lights.yaml
@@ -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
\ No newline at end of file
diff --git a/packages/announcements.yaml b/config/packages/announcements.yaml
similarity index 100%
rename from packages/announcements.yaml
rename to config/packages/announcements.yaml
diff --git a/packages/disney.yaml b/config/packages/disney.yaml
similarity index 82%
rename from packages/disney.yaml
rename to config/packages/disney.yaml
index dc6a5e8..c6f30aa 100755
--- a/packages/disney.yaml
+++ b/config/packages/disney.yaml
@@ -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"
\ No newline at end of file
+ - 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"
\ No newline at end of file
diff --git a/packages/events.yaml b/config/packages/events.yaml
similarity index 100%
rename from packages/events.yaml
rename to config/packages/events.yaml
diff --git a/packages/haunted_mansion_show.yaml b/config/packages/haunted_mansion_show.yaml
old mode 100644
new mode 100755
similarity index 100%
rename from packages/haunted_mansion_show.yaml
rename to config/packages/haunted_mansion_show.yaml
diff --git a/packages/holidays.yaml b/config/packages/holidays.yaml
old mode 100644
new mode 100755
similarity index 93%
rename from packages/holidays.yaml
rename to config/packages/holidays.yaml
index 7bc6a41..53cfd76
--- a/packages/holidays.yaml
+++ b/config/packages/holidays.yaml
@@ -195,4 +195,17 @@ script:
-
\ No newline at end of file
+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
diff --git a/packages/jarvis.yaml b/config/packages/jarvis.yaml
similarity index 100%
rename from packages/jarvis.yaml
rename to config/packages/jarvis.yaml
diff --git a/packages/notify.yaml b/config/packages/notify.yaml
similarity index 98%
rename from packages/notify.yaml
rename to config/packages/notify.yaml
index 4c35a4d..06e8db6 100755
--- a/packages/notify.yaml
+++ b/config/packages/notify.yaml
@@ -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
diff --git a/packages/presence.yaml b/config/packages/presence.yaml
similarity index 98%
rename from packages/presence.yaml
rename to config/packages/presence.yaml
index a71ace7..d25066f 100755
--- a/packages/presence.yaml
+++ b/config/packages/presence.yaml
@@ -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:
diff --git a/packages/reminders.yaml b/config/packages/reminders.yaml
similarity index 100%
rename from packages/reminders.yaml
rename to config/packages/reminders.yaml
diff --git a/packages/security.yaml b/config/packages/security.yaml
similarity index 95%
rename from packages/security.yaml
rename to config/packages/security.yaml
index c6850f5..32a2d1e 100755
--- a/packages/security.yaml
+++ b/config/packages/security.yaml
@@ -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
diff --git a/packages/space.yaml b/config/packages/space.yaml
similarity index 100%
rename from packages/space.yaml
rename to config/packages/space.yaml
diff --git a/packages/sysmon.yaml b/config/packages/sysmon.yaml
similarity index 92%
rename from packages/sysmon.yaml
rename to config/packages/sysmon.yaml
index 885d3f1..7046ce2 100755
--- a/packages/sysmon.yaml
+++ b/config/packages/sysmon.yaml
@@ -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 ' '"
\ No newline at end of file
+ command: "ls -sh /home/homeassistant/.homeassistant/home-assistant.log | cut -f1 -d ' '"
+ - platform: uptime
+ name: Time Online
+ unit_of_measurement: days
diff --git a/packages/twitter.yaml b/config/packages/twitter.yaml
similarity index 100%
rename from packages/twitter.yaml
rename to config/packages/twitter.yaml
diff --git a/packages/usps.yaml b/config/packages/usps.yaml
similarity index 100%
rename from packages/usps.yaml
rename to config/packages/usps.yaml
diff --git a/packages/weather_alerts_nws.yaml b/config/packages/weather_alerts_nws.yaml
similarity index 100%
rename from packages/weather_alerts_nws.yaml
rename to config/packages/weather_alerts_nws.yaml
diff --git a/packages/weekday.yaml b/config/packages/weekday.yaml
similarity index 100%
rename from packages/weekday.yaml
rename to config/packages/weekday.yaml
diff --git a/config/packages/zigbee2mqtt.yaml b/config/packages/zigbee2mqtt.yaml
new file mode 100755
index 0000000..adf77cd
--- /dev/null
+++ b/config/packages/zigbee2mqtt.yaml
@@ -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
\ No newline at end of file
diff --git a/config/python_scripts/light_transistion.py b/config/python_scripts/light_transistion.py
new file mode 100755
index 0000000..3cde481
--- /dev/null
+++ b/config/python_scripts/light_transistion.py
@@ -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)
\ No newline at end of file
diff --git a/python_scripts/special_events.py b/config/python_scripts/special_events.py
old mode 100644
new mode 100755
similarity index 100%
rename from python_scripts/special_events.py
rename to config/python_scripts/special_events.py
diff --git a/scenes.yaml b/config/scenes.yaml
similarity index 89%
rename from scenes.yaml
rename to config/scenes.yaml
index a03b9df..6dead1f 100755
--- a/scenes.yaml
+++ b/config/scenes.yaml
@@ -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
diff --git a/config/scripts.yaml b/config/scripts.yaml
new file mode 100644
index 0000000..e69de29
diff --git a/scripts/appliances.yaml b/config/scripts/appliances.yaml
old mode 100644
new mode 100755
similarity index 100%
rename from scripts/appliances.yaml
rename to config/scripts/appliances.yaml
diff --git a/scripts/general.yaml b/config/scripts/general.yaml
old mode 100644
new mode 100755
similarity index 97%
rename from scripts/general.yaml
rename to config/scripts/general.yaml
index 756619e..83c7e05
--- a/scripts/general.yaml
+++ b/config/scripts/general.yaml
@@ -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
diff --git a/scripts/lights.yaml b/config/scripts/lights.yaml
old mode 100644
new mode 100755
similarity index 100%
rename from scripts/lights.yaml
rename to config/scripts/lights.yaml
diff --git a/scripts/spotify.yaml b/config/scripts/spotify.yaml
old mode 100644
new mode 100755
similarity index 100%
rename from scripts/spotify.yaml
rename to config/scripts/spotify.yaml
diff --git a/sensors/batteries.yaml b/config/sensors/batteries.yaml
similarity index 76%
rename from sensors/batteries.yaml
rename to config/sensors/batteries.yaml
index 107ab2e..d5cea1b 100755
--- a/sensors/batteries.yaml
+++ b/config/sensors/batteries.yaml
@@ -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"
\ No newline at end of file
+ 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"
\ No newline at end of file
diff --git a/sensors/finance.yaml b/config/sensors/finance.yaml
similarity index 100%
rename from sensors/finance.yaml
rename to config/sensors/finance.yaml
diff --git a/sensors/github.yaml b/config/sensors/github.yaml
similarity index 100%
rename from sensors/github.yaml
rename to config/sensors/github.yaml
diff --git a/sensors/google_travel_time.yaml b/config/sensors/google_travel_time.yaml
similarity index 100%
rename from sensors/google_travel_time.yaml
rename to config/sensors/google_travel_time.yaml
diff --git a/sensors/house.yaml b/config/sensors/house.yaml
similarity index 99%
rename from sensors/house.yaml
rename to config/sensors/house.yaml
index c8ff8cc..89ac016 100755
--- a/sensors/house.yaml
+++ b/config/sensors/house.yaml
@@ -109,3 +109,4 @@
entity_id: []
value_template: >-
{{ states.camera | list | count }}
+
diff --git a/config/sensors/power.yaml b/config/sensors/power.yaml
new file mode 100755
index 0000000..ed2890a
--- /dev/null
+++ b/config/sensors/power.yaml
@@ -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"
diff --git a/sensors/users.yaml b/config/sensors/users.yaml
similarity index 100%
rename from sensors/users.yaml
rename to config/sensors/users.yaml
diff --git a/sensors/weather.yaml b/config/sensors/weather.yaml
similarity index 100%
rename from sensors/weather.yaml
rename to config/sensors/weather.yaml
diff --git a/config/switches.yaml b/config/switches.yaml
new file mode 100644
index 0000000..5a7def4
--- /dev/null
+++ b/config/switches.yaml
@@ -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"
\ No newline at end of file
diff --git a/templates/twitter_new_ha.yaml b/config/templates/twitter_new_ha.yaml
similarity index 100%
rename from templates/twitter_new_ha.yaml
rename to config/templates/twitter_new_ha.yaml
diff --git a/templates/twitter_snark.yaml b/config/templates/twitter_snark.yaml
similarity index 100%
rename from templates/twitter_snark.yaml
rename to config/templates/twitter_snark.yaml
diff --git a/templates/twitter_stats.yaml b/config/templates/twitter_stats.yaml
similarity index 85%
rename from templates/twitter_stats.yaml
rename to config/templates/twitter_stats.yaml
index be02ef1..51e4d15 100755
--- a/templates/twitter_stats.yaml
+++ b/config/templates/twitter_stats.yaml
@@ -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() -%}
diff --git a/www/ahlogo_bw.png b/config/www/ahlogo_bw.png
old mode 100644
new mode 100755
similarity index 100%
rename from www/ahlogo_bw.png
rename to config/www/ahlogo_bw.png
diff --git a/configuration.yaml b/configuration.yaml
deleted file mode 100755
index fdc48df..0000000
--- a/configuration.yaml
+++ /dev/null
@@ -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
\ No newline at end of file
diff --git a/lights/living_room.yaml b/lights/living_room.yaml
deleted file mode 100755
index 7c52a51..0000000
--- a/lights/living_room.yaml
+++ /dev/null
@@ -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
\ No newline at end of file
diff --git a/lights/skylars_room.yaml b/lights/skylars_room.yaml
deleted file mode 100644
index 9a597fd..0000000
--- a/lights/skylars_room.yaml
+++ /dev/null
@@ -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
\ No newline at end of file
diff --git a/sensors/power.yaml b/sensors/power.yaml
deleted file mode 100755
index 0f1df1e..0000000
--- a/sensors/power.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-- platform: mqtt
- name: "Washer"
- state_topic: "smartthings/Washer/power"
\ No newline at end of file
diff --git a/sensors/speedtest.yaml b/sensors/speedtest.yaml
deleted file mode 100755
index 949b5e9..0000000
--- a/sensors/speedtest.yaml
+++ /dev/null
@@ -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
diff --git a/switches/bedroom.yaml b/switches/bedroom.yaml
deleted file mode 100755
index eee27ee..0000000
--- a/switches/bedroom.yaml
+++ /dev/null
@@ -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
-
diff --git a/switches/living_room.yaml b/switches/living_room.yaml
deleted file mode 100755
index 7498181..0000000
--- a/switches/living_room.yaml
+++ /dev/null
@@ -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
\ No newline at end of file
diff --git a/switches/notifications.yaml b/switches/notifications.yaml
deleted file mode 100755
index 9d09838..0000000
--- a/switches/notifications.yaml
+++ /dev/null
@@ -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
-
diff --git a/switches/sonoff.yaml b/switches/sonoff.yaml
deleted file mode 100755
index 872cad7..0000000
--- a/switches/sonoff.yaml
+++ /dev/null
@@ -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
diff --git a/switches/upstairs.yaml b/switches/upstairs.yaml
deleted file mode 100755
index 3030e23..0000000
--- a/switches/upstairs.yaml
+++ /dev/null
@@ -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
\ No newline at end of file
diff --git a/ui-lovelace.yaml b/ui-lovelace.yaml
deleted file mode 100644
index 9de0915..0000000
--- a/ui-lovelace.yaml
+++ /dev/null
@@ -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