This commit is contained in:
Jeffrey Stone 2019-02-21 12:49:55 -05:00
parent 361375cf5c
commit 46a6f6d271
97 changed files with 3443 additions and 1936 deletions

67
.gitignore vendored
View File

@ -1,23 +1,60 @@
known_devices.yaml
secrets.yaml
entity_registry.yaml
.HA_VERSION
zones.yaml
sensors/location.yaml
scripts/tornado_alarm.yaml
scripts/test_alarm.yaml
scripts/security_alarm.yaml
*ios.conf
# Ignore everything explicitly
*
# Whitelist files/folders with !, these will not be ignored.
!*.yaml
!.gitignore
!*.md
!packages/
!templates/
!binary_sensors/
!sensors/
!switches/
!lights/
!python_scripts/
!alerts/
# Then because I'm paranoid...
# Ignore folders.
.storage
.cloud
.google.token
icloud/
www/
tts/
deps/
hadashboards/
intents/
# Ignore these dot and conf files
*.conf
*.log
*.db
*.xml
*.sqlite
*.txt
icloud/
www/
tts/
deps/
.HA_VERSION
*DS_Store
._*
.uuid
!.gitignore
eero.session
eero_tracker_instantiate.py
Icon
.dropbox
.google.token
.homekit.state
.spotify-token-cache
# Ensure these YAML files are ignored, otherwise your secret data/credentials will leak.
ip_bans.yaml
secrets.yaml
known_devices.yaml
entity_registry.yaml
zones.yaml
sensors/location.yaml
google_calendars.yaml
packages/events.yaml
packages/presence.yaml
scripts.yaml

View File

@ -3,16 +3,31 @@
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 an updated config. I went through and decided to clean up my previous config, so here we are at V3 of my config.
This is V4 of my config.
The configuration was migrated from a old PC to a RaspberryPi 3 back in 2017. The old configutation is stored in branch V2-config for anyone that wants to see the old version.
#### 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
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.
#### 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 is used as a dumb hub handling most of the zwave and zigbee devices.
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 reachout if you have questions. I love this stuff.
#### Devices:
None of the following links are affiliate links, and are included merely as reference.
* 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 Switchs](http://a.co/7aKBkst)
@ -20,11 +35,11 @@ Read about the continuing work to automate **everything** over on my [blog](http
* [GoControl Z-Wave Bulbs](http://a.co/ajfXdIS)
* [Cree Connect Bulbs](http://a.co/91ddysL)
* [Foscam FI8918W](http://a.co/cExSWZ7)
* [GoControl Z-Wave Garage Door Opener](http://a.co/iw3H4zQ)
* [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) I prefer these over the GE Ones
* [Levitron ZWave Switch](http://a.co/1z9EeS3)
* [Dome Motion Sensor](http://a.co/aFlzEmf)
* [Dome Door Window Sensor](http://a.co/eo4DsIk)
* AppleTv
@ -38,7 +53,15 @@ Read about the continuing work to automate **everything** over on my [blog](http
* Amazon Echo
* IFTTT
* Owntracks
* MQTT (For Smartthings and 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)
* [RTL_433](https://github.com/merbanan/rtl_433)
* Cloudflare for SSL and DNS
* Splunk
* Various other services and APIs

6
alerts/jeff_bad_traffic_home.yaml Executable file → Normal file
View File

@ -1,10 +1,10 @@
jeff_bad_traffic_home:
name: Leave Now! Currently {{states.sensor.jeff_ett_home.attributes.duration_in_traffic}} mins home!
name: Leave Now! Currently {{states.sensor.jeff_ett_home.attributes.duration | round}} mins home!
done_message: Canceling Traffic Alert
entity_id: input_boolean.jeff_traffic_alert_home
state: 'on'
repeat: 10
can_acknowledge: True
can_acknowledge: false
skip_first: False
notifiers:
- jeff_ios
- jeff_ios

View File

@ -0,0 +1,9 @@
jeff_heading_home:
name: Jeff will arrive in {{states.sensor.jeff_ett_home.attributes.duration | round}} minutes.
entity_id: input_boolean.jeff_travel_monitor
state: 'on'
repeat: 20
can_acknowledge: false
skip_first: False
notifiers:
- ios_katherinestonesiphone

View File

@ -1,10 +1,10 @@
kat_heading_home:
name: Kat will be home in {{states.sensor.kat_ett_home.attributes.duration_in_traffic}}.
done_message: Kat is home
entity_id: input_boolean.kat_heading_home
name: Kat will be home in {{states.sensor.kat_ett_home.attributes.duration | round}} minutes.
done_message: Kat Travel Monitor Disabled
entity_id: input_boolean.kat_travel_monitor
state: 'on'
repeat: 20
can_acknowledge: True
can_acknowledge: false
skip_first: False
notifiers:
- jeff_ios

2
alerts/lockdown_issue.yaml Executable file → Normal file
View File

@ -4,7 +4,7 @@ lockdown_issue:
entity_id: input_boolean.lockdown_issue
state: 'on'
repeat: 2
can_acknowledge: True
can_acknowledge: false
skip_first: False
notifiers:
- jeff_ios

10
alerts/unauthorized_access.yaml Executable file → Normal file
View File

@ -1,10 +1,10 @@
unauthorized_access:
name: Unauthorized Access Detected at Anchorage House
done_message: Access Authorized
entity_id: input_boolean.security_alarm
name: Potential Unauthorized Access Detected at Anchorage House
done_message: Security Issue Cleared
entity_id: input_boolean.security_issue
state: 'on'
repeat: 2
can_acknowledge: True
can_acknowledge: false
skip_first: False
notifiers:
- jeff_ios
- all_ios

693
automations.yaml Normal file
View File

@ -0,0 +1,693 @@
- id: backup_hass
alias: Backup Hass
trigger:
- platform: time
at: '05:00:00'
action:
- service: script.add_logbook_entry
data_template:
name: Backup
message: is running
- service: shell_command.backup
- service: script.twitter_notify
data:
message: "I just kicked off a backup of #homeassistant to ensure I live on. Do you backup? "
- id: net_speed_report
alias: Network Speed Report
trigger:
- platform: time
at: '11:15:00'
action:
- service: script.twitter_notify
data:
message: "According to my latest speed tests Anchorage House is getting {{ states.sensor.network_down.state}} Mbps down and {{ states.sensor.network_up.state}} Mbps up thanks to #ATTFiber. "
- id: time_to_leave_summit
alias: Time to Leave Jeff
initial_state: true
trigger:
- platform: numeric_state
entity_id: sensor.home_summit
above: 50
condition:
- condition: state
entity_id: sensor.jeff_location
state: Home
- condition: time
after: '05:30:00'
before: '07:00:00'
- condition: state
entity_id: input_boolean.jeff_traffic_alerts
state: 'on'
action:
- service: notify.jeff_ios
data:
message: Currently {{states.sensor.home_to_summit.attributes.duration | round}}
mins to Work. Leave.
- service: notify.twitter
data:
message: "Looks like traffic is bad out there so I let @thejeffreystone know. "
- id: hvac_cool_on
alias: hvac cool on
trigger:
- above: 76
entity_id: climate.first_floor
platform: numeric_state
value_template: '{{ state.attributes.termperature }}'
condition:
- above: 83
condition: numeric_state
entity_id: sensor.dark_sky_apparent_temperature
action:
- service: script.climate_set_cool
- data:
message: "The Temperature is a bit warm at Anchorage House, so Im turning
on the AC. "
service: script.twitter_notify
initial_state: true
- id: hvac_off
alias: hvac off
trigger:
- above: '55'
below: '80'
entity_id: sensor.dark_sky_apparent_temperature
platform: numeric_state
condition:
- above: '60'
below: '78'
condition: numeric_state
entity_id: climate.first_floor
action:
- service: script.climate_turn_off
- data:
message: "The Temperature outside is perfect for opening windows at Anchorage
House, so Im turning off the HVAC. "
service: script.twitter_notify
initial_state: true
- id: hvac_heat_on
alias: hvac heat on
trigger:
- below: 62
entity_id: climate.first_floor
platform: numeric_state
value_template: '{{ state.attributes.termperature }}'
condition:
- below: 50
condition: numeric_state
entity_id: sensor.dark_sky_apparent_temperature
action:
- service: script.climate_set_heat
- data:
message: "The Temperature is a bit chilly at Anchorage House, so Im turning
on the Heat. "
service: script.twitter_notify
initial_state: true
- id: coffee_time
alias: Coffee Time
initial_state: true
trigger:
- platform: time
at: 05:15:00
action:
- service: scene.turn_on
entity_id: scene.diminshed_livingroom_lighting
- service: scene.turn_on
entity_id: scene.diminished_kitchen_lighting
- id: good_morning
alias: Good Morning
initial_state: true
trigger:
- platform: time
at: '07:00:00'
action:
- service: scene.turn_on
entity_id: scene.normal_livingroom_lighting
- service: scene.turn_on
entity_id: scene.normal_kitchen_lighting
- service: switch.turn_off
entity_id: switch.rainbow_light
- service: scene.turn_on
entity_id: scene.jeff_light_on
- service: script.twitter_notify
data:
message: 'Good Morning! Time to rise and shine at Anchorage House. '
- id: skylar_bedtime
alias: Skylar Bedtime
initial_state: true
trigger:
- platform: time
at: '19:15:00'
action:
- service: switch.turn_on
entity_id: switch.rainbow_light
- id: jeff_lights_out
alias: Jeff lights out
initial_state: true
trigger:
- platform: time
at: '23:00:00'
action:
- service: scene.turn_on
entity_id: scene.jeff_light_off
- id: jeff_bedtime
alias: Jeff bedtime
initial_state: true
trigger:
- platform: time
at: '22:00:00'
action:
- service: scene.turn_on
entity_id: scene.jeff_bedtime
- id: jeff_night_light
alias: Jeff night light
initial_state: true
trigger:
- platform: time
at: '22:30:00'
action:
- service: scene.turn_on
entity_id: scene.jeff_night_light
- id: jeff_light_on
alias: Jeff Light On
initial_state: true
trigger:
- platform: time
at: '20:00:00'
action:
- service: scene.turn_on
entity_id: scene.jeff_light_on
- id: jeff_alarm
alias: Jeff alarm
initial_state: true
trigger:
- platform: time
at: 05:15:00
action:
- service: scene.turn_on
entity_id: scene.jeff_night_light
- id: jeff_wake_up
alias: Jeff wake up
initial_state: true
trigger:
- platform: time
at: 05:30:00
action:
- service: scene.turn_on
entity_id: scene.jeff_wake_up
- id: good_night
alias: Good Night
initial_state: true
trigger:
- platform: time
at: '22:30:00'
action:
- service: scene.turn_on
entity_id: scene.night_time_livingroom_lighting
- service: light.turn_off
data:
entity_id: light.loft_lamp
- service: script.turn_on
entity_id: script.driveway_off
- service: switch.turn_off
entity_id: switch.incense
- service: light.turn_off
data:
entity_id: light.kitchen_light_strip
- service: light.turn_off
data:
entity_id: light.kitchen_cabinets
- service: script.twitter_notify
data:
message: 'Good Night from Anchorage House. '
- id: outside_lights_on_sunset
alias: Outside Lights on at Sunset
initial_state: true
trigger:
- platform: sun
event: sunset
offset: -00:30:00
action:
- service: switch.turn_on
data:
entity_id: switch.front_porch
- service: script.sunset_garage_open
- service: script.twitter_notify
data:
message: "Its getting dark at Anchorage House, so Im turning on the outside
lights. "
- id: outside_lights_off_sunrise
alias: Outside Lights off at Sunrise
initial_state: true
trigger:
- platform: sun
event: sunrise
action:
- service: switch.turn_off
data:
entity_id: switch.front_porch
- service: script.twitter_notify
data:
message: "The sun is up at Anchorage House, so Im turning off the outside
lights. "
- id: inside_on_sunset
alias: Inside on at Sunset
initial_state: true
trigger:
- platform: sun
event: sunset
offset: -01:00:00
action:
service: script.inside_all_on
- id: inside_off_sunrise
alias: Inside off at Sunrise
initial_state: true
trigger:
- platform: sun
event: sunrise
offset: 00:30:00
condition:
- condition: numeric_state
entity_id: sensor.dark_sky_cloud_coverage
below: 50
action:
- service: script.inside_all_off
- service: scene.turn_on
entity_id: scene.jeff_light_off
- id: door_chime
alias: Door Chine
trigger:
- entity_id: binary_sensor.laundry_room_door
from: 'off'
platform: state
to: 'on'
- entity_id: binary_sensor.laundry_room_door
from: 'on'
platform: state
to: 'off'
- entity_id: binary_sensor.front_door
from: 'off'
platform: state
to: 'on'
- entity_id: binary_sensor.front_door
from: 'on'
platform: state
to: 'off'
- entity_id: binary_sensor.back_door
from: 'off'
platform: state
to: 'on'
- entity_id: binary_sensor.back_door
from: 'on'
platform: state
to: 'off'
- entity_id: binary_sensor.attic_door
from: 'off'
platform: state
to: 'on'
- entity_id: binary_sensor.attic_door
from: 'on'
platform: state
to: 'off'
condition:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
action:
- service: shell_command.door_chime
initial_state: true
- id: ha_start
alias: HA Startup
initial_state: true
trigger:
- platform: homeassistant
event: start
action:
service: frontend.set_theme
data:
name: midnight-AH
- id: close_garage_lights_out
alias: Close Garage at lights out
initial_state: true
trigger:
- platform: time
at: '22:30:00'
condition:
- condition: state
entity_id: cover.cargo_bay
state: open
action:
- service: script.close_garage
- id: garage_open_sunset
alias: Garage Open At Sunset
initial_state: true
trigger:
- platform: sun
event: sunset
condition:
- condition: state
entity_id: cover.cargo_bay
state: open
action:
- service: script.driveway_on
- id: garage_open_after_sunset
alias: Garage Opening Driveway Lights On
initial_state: true
trigger:
- platform: state
entity_id: cover.cargo_bay
from: closed
to: open
condition:
- condition: state
entity_id: sun.sun
state: below_horizon
action:
- service: script.driveway_on
- id: garage_closed_lights_off
alias: Garage Closing Driveway Lights Off
initial_state: true
trigger:
- platform: state
entity_id: cover.cargo_bay
from: open
to: closed
action:
- service: script.turn_on
entity_id: script.driveway_off
- id: turn_off_audible_notifications
alias: Turn Off Audible Notifications at 730pm
initial_state: true
trigger:
- platform: time
at: '19:30:00'
action:
- service: input_boolean.turn_off
entity_id: input_boolean.audible_notifications
- id: turn_off_audible_notifications_guests
alias: Turn Off Audible Notifications at 7pm
initial_state: true
trigger:
- platform: time
at: '19:00:00'
condition:
- condition: state
entity_id: input_boolean.guest_mode
state: 'on'
action:
- service: input_boolean.turn_off
entity_id: input_boolean.audible_notifications
- id: turn_on_audible_notifications
alias: Turn On Audible Notifications at 7am
initial_state: true
trigger:
- platform: time
at: 07:00:00
action:
- entity_id: input_boolean.audible_notifications
service: input_boolean.turn_on
- id: nightly_lockdown
alias: Nightly Lockdown
initial_state: true
trigger:
- platform: time
at: '23:00:00'
condition:
- condition: state
entity_id: device_tracker.jeffreystonesiphone
state: home
- condition: state
entity_id: device_tracker.katherinestonesiphone
state: home
- condition: state
entity_id: input_boolean.guest_mode
state: 'off'
action:
- service: script.lockdown
- id: morning_standby
alias: Morning Standby
initial_state: true
trigger:
- platform: time
at: 05:30:00
condition:
condition: or
conditions:
- condition: state
entity_id: sensor.family_status
state: Home
- condition: state
entity_id: input_boolean.guest_mode
state: 'on'
action:
- service: script.standby
- id: jeff_eta_home
alias: Jeff eta home
initial_state: true
trigger:
- platform: state
entity_id: sensor.jeff_destination
to: Home
condition:
- condition: state
entity_id: sensor.notification_mode
state: Normal
action:
- service: input_boolean.turn_on
entity_id: input_boolean.jeff_travel_monitor
- id: enable_bad_traffic_home_jeff
alias: Enable Jeff Bad Traffic Home
initial_state: true
trigger:
- platform: numeric_state
entity_id: sensor.jeff_ett_home
above: 59
condition:
- condition: state
entity_id: sensor.jeff_location
state: Summit
- condition: state
entity_id: input_boolean.jeff_traffic_alerts
state: 'on'
action:
- service: input_boolean.turn_on
entity_id: input_boolean.jeff_traffic_alert_home
- service: nscript.twitter_notify
data:
message: "Looks like traffic is bad out there so I let @thejeffreystone know. "
- id: disable_bad_traffic_home_jeff
alias: Disabling Jeff Bad Traffic Home
initial_state: true
trigger:
- platform: numeric_state
entity_id: sensor.jeff_ett_home
below: 40
- platform: state
entity_id: sensor.jeff_destination
to: Home
condition:
- condition: state
entity_id: input_boolean.jeff_traffic_alert_home
state: 'on'
action:
- service: input_boolean.turn_off
entity_id: input_boolean.jeff_traffic_alert_home
- id: enable_vacation_mode
alias: Enable Vacation Mode
initial_state: true
trigger:
- platform: numeric_state
entity_id: sensor.jeff_ett_home
above: 180
- platform: numeric_state
entity_id: sensor.kat_ett_home
above: 180
condition:
- condition: numeric_state
entity_id: sensor.jeff_ett_home
above: 180
- condition: numeric_state
entity_id: sensor.kat_ett_home
above: 180
action:
- service: input_boolean.turn_on
entity_id: input_boolean.vacation_mode
- id: '1550107919204'
alias: Family Is Home
trigger:
- platform: webhook
webhook_id: family_is_home
condition: []
action:
- service: script.family_is_home
- id: '1550108034209'
alias: Family Is Away
trigger:
- platform: webhook
webhook_id: ''
condition: []
action:
- service: script.family_is_away
- id: family_has_arrived
alias: Family Has arrived
trigger:
- entity_id: sensor.family_status
from: Away
platform: state
to: Home
- entity_id: device_tracker.jeffreystonesiphone
event: enter
platform: zone
zone: zone.home
- entity_id: device_tracker.katherinestonesiphone
event: enter
platform: zone
zone: zone.home
- entity_id: binary_sensor.jeffrey_presence
from: 'Off'
platform: state
to: 'On'
- entity_id: binary_sensor.kat_presence
from: 'Off'
platform: state
to: 'On'
- entity_id: device_tracker.hass_jeffsiphone
event: enter
platform: zone
zone: zone.home
condition:
- condition: state
entity_id: sensor.family_status
state: Away
action:
- service: script.driveway_on
- service: script.vacation_canceled
- service: script.appliances_on
- service: script.standby
initial_state: true
- id: family_has_left
alias: Family Has Left
initial_state: true
trigger:
- entity_id: sensor.family_status
from: Home
platform: state
to: Away
condition:
- condition: state
entity_id: input_boolean.guest_mode
state: 'off'
action:
- service: script.appliances_off
- service: script.security_check_garage
- service: script.security_check_zones
- service: script.lockdown
- id: jeff_is_home
alias: Jeff is Home
trigger:
- entity_id: device_tracker.jeffreystonesiphone
event: enter
platform: zone
zone: zone.home
- entity_id: binary_sensor.jeffrey_presence
from: 'Off'
platform: state
to: 'On'
- entity_id: device_tracker.hass_jeffsiphone
event: enter
platform: zone
zone: zone.home
action:
- service: script.family_is_home
- service: script.jeff_is_home
- service: script.jeff_destination_na
- service: script.driveway_on
- entity_id: input_boolean.jeff_travel_monitor
service: input_boolean.turn_off
initial_state: true
- id: jeff_arrives_summit
alias: Jeff Arrives At Summit
trigger:
- entity_id: device_tracker.jeffreystonesiphone
event: enter
platform: zone
zone: zone.summit
- entity_id: device_tracker.hass_jeffsiphone
event: enter
platform: zone
zone: zone.summit
action:
- service: script.jeff_destination_na
initial_state: true
- id: jeff_leaves_summit
alias: Jeff Leaves Summit
initial_state: true
trigger:
- entity_id: device_tracker.jeffreystonesiphone
event: leave
platform: zone
zone: zone.summit
action:
- service: input_boolean.turn_off
entity_id: input_boolean.jeff_traffic_alert_home
- id: kat_is_home
alias: Kat is Home
initial_state: true
trigger:
- entity_id: device_tracker.katherinestonesiphone
event: enter
platform: zone
zone: zone.home
- entity_id: binary_sensor.kat_presence
from: 'Off'
platform: state
to: 'On'
action:
- service: script.family_is_home
- service: input_boolean.turn_off
entity_id: input_boolean.kat_travel_monitor
- service: script.driveway_on
- id: kat_arrives_zoo
alias: Kat Arrives at Zoo
initial_state: true
trigger:
- platform: zone
event: enter
zone: zone.zoo_atlanta
entity_id: device_tracker.katherinestonesiphone
condition:
- condition: state
entity_id: input_boolean.text_notify_jeff
state: 'on'
action:
- service: notify.jeff_ios
data:
message: Kat arrived at Zoo Atlanta
- service: tts.google_say
data:
entity_id: media_player.hass_speaker
message: Kat has arrived at the Zoo
- id: kat_leaves_zoo
alias: Kat Leaves Zoo Notification
initial_state: true
trigger:
- platform: zone
event: leave
zone: zone.zoo_atlanta
entity_id: device_tracker.katherinestonesiphone
condition:
- condition: state
entity_id: input_boolean.text_notify_jeff
state: 'on'
action:
- service: input_boolean.turn_on
entity_id: input_boolean.kat_travel_monitor
- id: '1550109528753'
alias: Jeff Is Heading Home
trigger:
- platform: webhook
webhook_id: jeff_heading_home
condition: []
action:
- service: script.jeff_destination_home

View File

@ -1,81 +0,0 @@
#
#
# Daily Triggers
#
#
#####################
- alias: Good Morning
trigger:
- platform: time
hours: 5
minutes: 15
seconds: 0
action:
- service: scene.turn_on
entity_id: scene.livingroom_dim
- service: scene.turn_on
entity_id: scene.dim_kitchen
- alias: Good Morning
trigger:
- platform: time
hours: 7
minutes: 0
seconds: 0
action:
- service: scene.turn_on
entity_id: scene.livingroom_normal
- service: scene.turn_on
entity_id: scene.normal_kitchen
- alias: Good Night
trigger:
- platform: time
hours: 22
minutes: 30
seconds: 0
action:
- service: scene.turn_on
entity_id: scene.livingroom_night
- service: light.turn_off
data:
entity_id: light.loft_lamp
- service: script.turn_on
entity_id: script.driveway_off
- alias: Outside Lights on at Sunset
trigger:
- platform: sun
event: sunset
offset: -00:30:00
action:
- service: switch.turn_on
data:
entity_id: switch.front_porch
- service: script.sunset_garage_open
- alias: Outside Lights off at Sunrise
trigger:
- platform: sun
event: sunrise
action:
- service: switch.turn_off
data:
entity_id: switch.front_porch
- alias: Inside on at Sunset
trigger:
- platform: sun
event: sunset
offset: -01:00:00
action:
service: script.inside_all_on
- alias: Inside off at Sunrise
trigger:
- platform: sun
event: sunrise
offset: 00:30:00
action:
- service: script.inside_all_off

View File

@ -1,20 +0,0 @@
#
#
# DoorAutomations
#
#
#####################
# - alias: Door Opened
# trigger:
# - platform: state
# entity_id: group.doors
# from: 'off'
# to: 'on'
# condition:
# - condition: state
# entity_id: input_boolean.audible_notifications
# state: 'on'
# action:
# - service: shell_command.door_chime

View File

@ -1,99 +0,0 @@
#
#
# Events
#
############
#- alias: Trash Morning Notification
# trigger:
# - platform: time
# hours: 6
# minutes: 0
# seconds: 0
# condition:
# - condition: time
# weekday:
# - tue
# - condition: state
# entity_id: input_boolean.vacation_mode
# state: 'off'
# - condition: state
# entity_id: input_boolean.trash_notification
# state: 'on'
# action:
# - service: notify.all_ios
# data:
# message: Don't forget to it is Trash Day
#- alias: Washer Running
# trigger:
# - platform: numeric_state
# entity_id: sensor.washer_power
# above: 100
# action:
# - service: input_boolean.turn_on
# entity_id: input_boolean.washer_running
#- alias: Washer Complete
# trigger:
# - platform: state
# entity_id: sensor.washer_status
# from: 'running'
# to: 'idle'
# condition:
# - condition: state
# entity_id: input_boolean.washer_running
# state: 'on'
# action:
# - service: input_boolean.turn_off
# entity_id: input_boolean.washer_running
# - service: input_boolean.turn_on
# entity_id: input_boolean.washer_notification
#- alias: Washer Emptied
# trigger:
# - platform: state
# entity_id: binary_sensor.washer_door
# from: 'off'
# to: 'on'
# action:
# - service: homeassistant.turn_off
# entity_id: script.washer_finished_notification
# - service: input_boolean.turn_off
# entity_id: input_boolean.washer_notification
#- alias: Washer Notification
# trigger:
# - platform: state
# entity_id: input_boolean.washer_notification
# to: 'on'
# condition:
# - condition: state
# entity_id: sensor.family_status
# state: home
# action:
# - service: homeassistant.turn_on
# entity_id: script.washer_finished_notification
#- alias: Get Dressed Skylar
# trigger:
# - platform: time
# hours: 7
# minutes: 58
# seconds: 0
# condition:
# - condition: time
# weekday:
# - mon
# - tue
# - wed
# - thu
# - condition: state
# entity_id: input_boolean.guest_mode
# state: 'off'
# - condition: state
# entity_id: input_boolean.skylar_dressed_alarm
# state: 'on'
# action:
# - service: script.skylar_dressed_alarm

View File

@ -1,72 +0,0 @@
#
#
# Garage
#
############
- alias: Close Garage at lights out
trigger:
- platform: time
hours: 22
minutes: 30
seconds: 0
condition:
- condition: state
entity_id: binary_sensor.garage_door
state: 'on'
action:
- service: script.close_garage
- alias: Garage Open At Sunset
trigger:
- platform: sun
event: sunset
condition:
- condition: state
entity_id: binary_sensor.garage_door
state: 'on'
action:
- service: script.driveway_on
- alias: Garage Opening Driveway Lights On
trigger:
- platform: state
entity_id: binary_sensor.garage_door
from: 'off'
to: 'on'
condition:
- condition: state
entity_id: sun.sun
state: 'below_horizon'
action:
- service: script.driveway_on
- alias: Garage Closing Driveway Lights Off
trigger:
- platform: state
entity_id: binary_sensor.garage_door
from: 'on'
to: 'off'
- platform: state
entity_id: binary_sensor.side_door
from: 'on'
to: 'off'
action:
- service: script.turn_on
entity_id: script.driveway_off
# - alias: Garage Motion after Sunset
# trigger:
# - platform: state
# entity_id: binary_sensor.garage_motion
# from: 'off'
# to: 'on'
# condition:
# - condition: state
# entity_id: sun.sun
# state: 'below_horizon'
# action:
# - service: notify.jeff_ios
# data:
# message: 'Motion: Garage'

View File

@ -1,110 +0,0 @@
#
#
# Presence Automations
#
#
#####################
- alias: Family Has arrived
trigger:
- entity_id: sensor.family_presence
from: Away
platform: state
to: Home
action:
- service: script.standby
- service: script.driveway_on
- service: script.vacation_canceled
- service: script.appliances_on
- service: script.family_is_home
- alias: Family Has Left
trigger:
- entity_id: sensor.family_presence
from: Home
platform: state
to: Away
condition:
- condition: state
entity_id: input_boolean.guest_mode
state: 'off'
action:
- service: script.lockdown
- service: script.appliances_off
- service: script.family_is_away
- alias: Jeff Arrives Home
trigger:
- entity_id: sensor.jeff_presence
from: 'not present'
platform: state
to: 'present'
action:
- service: script.jeff_destination_na
- service: script.driveway_on
- service: input_boolean.turn_off
entity_id: input_boolean.jeff_heading_home
- alias: Jeff Arrives At Summit
trigger:
- entity_id: device_tracker.jeffreystonesiphone
event: enter
platform: zone
zone: zone.summit
action:
- service: script.jeff_destination_na
#- service: script.jeff_at_work_notification
- alias: Jeff Leaves Summit
trigger:
- entity_id: device_tracker.jeffreystonesiphone
event: leave
platform: zone
zone: zone.summit
action:
- service: input_boolean.turn_off
entity_id: input_boolean.jeff_traffic_alert_home
- alias: Kat Arrives Home
trigger:
- entity_id: sensor.kat_presence
from: 'not present'
platform: state
to: 'present'
action:
- service: input_boolean.turn_off
entity_id: input_boolean.kat_heading_home
- service: script.driveway_on
- alias: Kat Arrives at Zoo
trigger:
- platform: zone
event: enter
zone: zone.zoo_atlanta
entity_id: device_tracker.katherinestonesiphone
condition:
- condition: state
entity_id: input_boolean.text_notify_jeff
state: 'on'
action:
- service: notify.ios_jeffreystonesiphone
data:
message: Kat is at Zoo Atlanta
- alias: Kat Leaves Zoo Notification
trigger:
- platform: zone
event: leave
zone: zone.zoo_atlanta
entity_id: device_tracker.katherinestonesiphone
condition:
- condition: state
entity_id: input_boolean.text_notify_jeff
state: 'on'
action:
- service: input_boolean.turn_on
entity_id: input_boolean.kat_heading_home

View File

@ -1,284 +0,0 @@
#
#
# Security
#
# For all these automations the condition should be
#
# - condition: state
# entity_id: input_boolean.secure_mode
# state: 'on'
#
#
#####################
- alias: Nightly Lockdown
trigger:
- platform: time
hours: 23
minutes: 00
seconds: 0
condition:
- condition: state
entity_id: sensor.jeff_presence
state: 'present'
- condition: state
entity_id: sensor.kat_presence
state: 'present'
- condition: state
entity_id: input_boolean.guest_mode
state: 'off'
action:
- service: script.lockdown
- alias: Morning Standby
trigger:
- platform: time
hours: 5
minutes: 30
seconds: 0
condition:
condition: or
conditions:
- condition: state
entity_id: sensor.family_presence
state: 'Home'
- condition: state
entity_id: input_boolean.guest_mode
state: 'on'
action:
- service: script.standby
- alias: Activate Security
trigger:
- platform: state
entity_id: input_boolean.secure_mode
from: 'off'
to: 'on'
action:
- service: input_boolean.turn_on
entity_id: input_boolean.security_check
- alias: Deactivate Security
trigger:
- platform: state
entity_id: input_boolean.secure_mode
from: 'on'
to: 'off'
action:
- service: script.standby
- alias: Security Precheck
trigger:
- platform: state
entity_id: input_boolean.security_check
from: 'off'
to: 'on'
action:
- service: script.security_check_zones
- service: script.security_check_garage
- service: script.security_check_verified
- service: script.lockdown_aborted
- alias: Security Breach
trigger:
- platform: state
entity_id: group.all_doors
to: 'On'
- platform: state
entity_id: binary_sensor.garage_dome_sensor
to: 'On'
condition:
- condition: state
entity_id: input_boolean.secure_mode
state: 'on'
action:
- service: input_boolean.turn_on
entity_id: input_boolean.security_breach_warning
- alias: Security Alarm Countdown
trigger:
- platform: state
entity_id: input_boolean.security_breach_warning
from: 'off'
to: 'on'
action:
- service: script.turn_on
entity_id: script.security_issue
- alias: Security Issue Canceled
trigger:
- platform: state
entity_id: input_boolean.security_breach_warning
from: 'on'
to: 'off'
action:
- service: script.turn_off
entity_id: script.security_issue
- alias: Security Alarm Canceled
trigger:
- platform: state
entity_id: input_boolean.security_alarm
from: 'on'
to: 'off'
action:
- service: script.turn_off
entity_id: script.security_issue
- service: script.security_alarm_off
- service: script.turn_off
entity_id: script.security_alarm_delay
# - alias: Security Breach Garage Door
# trigger:
# - platform: state
# entity_id: sensor.garage_door_contact
# to: open
# condition:
# - condition: state
# entity_id: input_boolean.secure_mode
# state: 'on'
# action:
# - service: script.security_warning_garage_door
# - alias: Security Breach Garage Motion
# trigger:
# - platform: state
# entity_id: sensor.garage_motion
# to: motion
# condition:
# - condition: state
# entity_id: input_boolean.secure_mode
# state: 'on'
# action:
# - service: script.security_warning_garage_motion
# - alias: Security Breach Front Door
# trigger:
# - platform: state
# entity_id: sensor.front_door
# to: open
# condition:
# - condition: state
# entity_id: input_boolean.secure_mode
# state: 'on'
# action:
# - service: script.security_warning_front_door
# - alias: Security Breach Back Door
# trigger:
# - platform: state
# entity_id: sensor.zone_3
# to: open
# condition:
# - condition: state
# entity_id: input_boolean.secure_mode
# state: 'on'
# action:
# - service: script.security_warning_back_door
# - alias: Security Breach Landry Door
# trigger:
# - platform: state
# entity_id: sensor.Laundry_room_door
# to: open
# condition:
# - condition: state
# entity_id: input_boolean.secure_mode
# state: 'on'
# action:
# - service: script.security_warning_laundry_door
- alias: Security Access Granted
trigger:
- platform: state
entity_id: sensor.jeff_presence
to: 'present'
- platform: state
entity_id: sensor.kat_presence
to: 'present'
- platform: state
entity_id: sensor.family_presence
to: 'Home'
condition:
- condition: state
entity_id: input_boolean.secure_mode
state: 'on'
action:
- service: input_boolean.turn_off
entity_id: input_boolean.security_alarm
- service: input_boolean.turn_off
entity_id: input_boolean.security_breach_warning
- service: script.turn_off
entity_id: script.security_alarm_delay
# - alias: Security Alarm Activated Home
# trigger:
# platform: state
# entity_id: input_boolean.security_alarm
# to: 'on'
# condition:
# - condition: state
# entity_id: sensor.family_presence
# state: 'Home'
# action:
# - service: script.security_alarm_on
- alias: Security Alarm Activated Away
trigger:
platform: state
entity_id: input_boolean.security_alarm
to: 'on'
condition:
- condition: state
entity_id: sensor.family_presence
state: 'Away'
action:
- service: script.turn_on
entity_id: script.security_alarm_delay
# - alias: Security Issue
# trigger:
# platform: state
# entity_id: input_boolean.security_issue
# to: 'on'
# action:
# - service: homeassistant.turn_on
# entity_id: script.security_report
# - alias: Security Issue Resolved
# trigger:
# - platform: state
# entity_id: group.all_doors
# to: 'off'
# condition:
# - condition: state
# entity_id: cover.garage_door
# state: 'off'
# - condition: state
# entity_id: group.doors
# state: 'off'
# action:
# - service: input_boolean.turn_off
# entity_id: input_boolean.security_issue
- alias: Late Arrival Lockdown
trigger:
- platform: state
entity_id: sensor.jeff_presence
to: 'present'
- platform: state
entity_id: sensor.kat_presence
to: 'present'
condition:
- condition: state
entity_id: input_boolean.guest_mode
state: 'off'
- condition: time
after: '23:00:00'
before: '05:00:00'
action:
- service: script.lockdown_delay

View File

@ -1,67 +0,0 @@
#
#
# Transit Based Automations
#
############
# - alias: Jeff eta home
# trigger:
# - platform: state
# entity_id: sensor.jeff_destination
# to: Home
# condition:
# - condition: state
# entity_id: input_boolean.text_notify_kat
# state: 'on'
# action:
# - service: input_boolean.turn_on
# entity_id: input_boolean.jeff_heading_home
##### Jeff Traffic Alerts
- alias: Enable Jeff Bad Traffic Home
trigger:
- platform: numeric_state
entity_id: sensor.jeff_ett_home
above: 59
condition:
- condition: state
entity_id: sensor.jeff_location
state: 'Summit'
- condition: state
entity_id: input_boolean.jeff_traffic_alerts
state: 'on'
action:
- service: input_boolean.turn_on
entity_id: input_boolean.jeff_traffic_alert_home
- alias: Disabling Jeff Bad Traffic Home
trigger:
- platform: numeric_state
entity_id: sensor.jeff_ett_home
below: 40
condition:
- condition: state
entity_id: input_boolean.jeff_traffic_alert_home
state: 'on'
action:
- service: input_boolean.turn_off
entity_id: input_boolean.jeff_traffic_alert_home
- alias: Enable Vacation Mode
trigger:
- platform: numeric_state
entity_id: sensor.jeff_ett_home
above: 180
- platform: numeric_state
entity_id: sensor.kat_ett_home
above: 180
condition:
- condition: numeric_state
entity_id: sensor.jeff_ett_home
above: 180
- condition: numeric_state
entity_id: sensor.kat_ett_home
above: 180
action:
- service: input_boolean.turn_on
entity_id: input_boolean.vacation_mode

View File

@ -1,125 +0,0 @@
#
#
# Weather
#
############
- alias: Cloudy porch on early
trigger:
- platform: sun
event: sunset
offset: -01:30:00
condition:
- condition: numeric_state
entity_id: sensor.dark_sky_cloud_coverage
above: 70
action:
- service: switch.turn_on
data:
entity_id: switch.front_porch_left
- service: switch.turn_on
data:
entity_id: switch.front_porch_right
- alias: Kill Audible Tornado Alarm
trigger:
- platform: state
entity_id: input_boolean.tornado_alarm
to: 'off'
action:
- service: script.chromecast_media_stop
- service: homeassistant.turn_off
entity_id: script.tornado_alarm
- alias: Sound Audible Tornado Alarm
trigger:
- platform: state
entity_id: input_boolean.tornado_alarm
to: "on"
action:
- service: homeassistant.turn_on
entity_id: script.tornado_alarm
- alias: Tornado Warning
trigger:
- platform: state
entity_id: sensor.tornado_warning
to: "active"
action:
- service: input_boolean.turn_on
entity_id: input_boolean.tornado_alarm
- service: script.wxalert_tile
- service: notify.ios_all
data:
message: Tornado Warning Issued for Anchorage House!!!!
- alias: Tornado Watch Issued
trigger:
- platform: state
entity_id: sensor.tornado_watch
to: "active"
action:
- service: script.wxalert_tile
- service: notify.ios_all
data:
message: Tornado Watch Issued
- service: script.annc_tornado_watch
- alias: TStorm Warning Issued
trigger:
- platform: state
entity_id: sensor.tstorm_warning
to: "active"
action:
- service: script.wxalert_tile
- service: notify.ios_all
data:
message: Severe Thunderstorm Warning Issued
- service: script.annc_tstorm_warning
- alias: Severe Statement Issued
trigger:
- platform: state
entity_id: sensor.storm_statement
to: "active"
action:
- service: script.wxalert_tile
- service: notify.ios_all
data:
message: Severe Weather Statement Issued
- service: script.annc_storm_statement
- alias: TStorm Watch Issued
trigger:
- platform: state
entity_id: sensor.tstorm_watch
to: "active"
action:
- service: script.wxalert_tile
- service: notify.ios_all
data:
message: Severe Thunderstorm Watch Issued
- service: script.annc_tstorm_watch
#- alias: Wx Alert Notification
# trigger:
# - platform: state
# entity_id: sensor.pws_alerts
# action:
# - service: script.wxalert_tile
- alias: "Weather Watch Tornado"
trigger:
- platform: state
entity_id: sensor.pws_alerts
condition:
condition: or
conditions:
- condition: template
value_template: '{{ states.sensor.pws_alerts.attributes.Description == "Tornado Watch" }}'
- condition: template
value_template: '{{ states.sensor.pws_alerts.attributes.Description_TOW == "Tornado Watch" }}'
action:
- service: input_boolean.turn_on
entity_id: input_boolean.tornado_watch
- service: script.wxalert_tile

View File

@ -0,0 +1,4 @@
- platform: workday
country: US
province: GA
workdays: [mon, tue, wed, thu, fri]

14
binary_sensors/doors.yaml Executable file → Normal file
View File

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

3
binary_sensors/motion.yaml Executable file → Normal file
View File

@ -1,7 +1,6 @@
- platform: mqtt
name: "Garage Dome Sensor" # Dome Motion Sensor
state_topic: "smartthings/Garage Motion/contact"
state_topic: "smartthings/Garage Motion/motion"
payload_on: "active"
payload_off: "inactive"
retain: true
device_class: motion

274
configuration.yaml Executable file → Normal file
View File

@ -6,23 +6,35 @@ homeassistant:
unit_system: imperial
time_zone: America/New_York
customize: !include customize.yaml
auth_providers:
- type: homeassistant
packages: !include_dir_named packages
system_health:
default_config:
person:
frontend:
themes:
blue:
primary-color: "#356AA0"
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
cors_allowed_origins:
- https://google.com
- https://home-assistant.io
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
trusted_networks:
- 127.0.0.1
# - 192.168.7.0/24
ip_ban_enabled: True
login_attempts_threshold: 5
@ -31,13 +43,6 @@ config:
cloud:
alexa:
filter:
include_entities:
- sensor.accurite_back_porch_temperature
- sensor.accurite_garage_temperature
- sensor.kat_location
- sensor.jeff_location
- sensor.jeff_ett_home
- sensor.kat_ett_home
include_domains:
- switch
- light
@ -45,6 +50,8 @@ cloud:
- scene
- script
- input_boolean
- climate
- sensor
exclude_domains:
- group
- alert
@ -67,10 +74,30 @@ cloud:
description: Jeffs arrival in minutes
sensor.kat_ett_home:
name: Kats Arrival
description: Katss arrival in minutes
description: Kats arrival in minutes
sensor.accurite_garage_humidity:
name: Garage Humidity
description: Garage Humidity
alexa:
# homekit:
# filter:
# include_domains:
# - switch
# - light
# - cover
# - scene
# - input_boolean
# - climate
# - sensor
# - binary_sensor
weather:
- platform: darksky
api_key: !secret darksky_api
name: Grayson
conversation:
device_tracker:
@ -78,144 +105,199 @@ device_tracker:
username: !secret ICLOUD_USER
password: !secret ICLOUD_PASS
track_new_devices: yes
- platform: eero_tracker
consider_home: 300
interval_seconds: 60 # Recommended...do not set this lower than 25, we don't want to DDOS Eero
- platform: owntracks
track_new_devices: yes
- platform: life360
username: !secret life360_username
password: !secret life360_password
max_gps_accuracy: 200
prefix: life360
show_as_state: driving, moving, places
#calendar:
# - platform: caldav
# url: !secret icloud_cal
# username: !secret icloud_cal_user
# password: !secret icloud_cal_pass
# calendars:
# - 'JKS Calendar'
google:
client_id: !secret google_client_id
client_secret: !secret google_client_secret
# geo_location:
# - platform: usgs_earthquakes_feed
# feed_type: 'past_day_all_earthquakes'
discovery:
updater:
#include_used_components: true
sun:
#https://home-assistant.io/components/recorder/
recorder:
purge_keep_days: 5
purge_keep_days: 2
exclude:
domains:
- automation
- weblink
- updater
entities:
- sun.sun
- sensor.last_boot
- sun.sun # Don't record sun data
- sensor.last_boot # Comes from 'systemmonitor' sensor platform
- sensor.date
# purge_interval: 1
# purge_keep_days: 3
logbook:
exclude:
entities:
- sensor.last_boot
- sensor.date
- sensor.ha_log
- sensor.ha_uptime
- sensor.cpu
- sensor.date_time
- sensor.ha_v2db
- sensor.internet_time
- sensor.last_boot_2
- sensor.load_15m
- sensor.memory_use_percent
- sensor.network_in_eth0
- sensor.network_out_eth0
- sensor.processor_use
- sensor.time
- sensor.time_date
- sensor.time_utc
#https://home-assistant.io/components/logger/
logger:
default: warn
default: info
#
# logs:
# homeassistant.components.sensor.template: critical
# homeassistant.components.cover: critical
history:
cast:
media_player:
- platform: apple_tv
host: 192.168.7.58
login_id: !secret apple_tv_login
credentials: !secret apple_cred
- platform: roku
host: 192.168.7.52
name: roku living room
- platform: yamaha
host: 192.168.7.56
source_ignore:
- "AUX"
- "V-AUX"
- "AV1"
- "AV2"
- "AV3"
- "AV4"
- "AV5"
- "AV6"
- "SiriusXM"
- "Pandora"
- "Rhapsody"
- "TURNER"
- "AUDIO1"
- "AUDIO2"
- "SERVER"
source_names:
HDMI1: "BluRay"
HDMI2: "Chromecast"
HDMI3: "Xbox"
HDMI4: "Roku"
HDMI5: "AppleTv"
zone_ignore:
- "Zone_2"
zone_names:
Main_Zone: "Theater"
tts:
- platform: google
cache: true
cache_dir: /tmp/tts
time_memory: 300
notify:
- platform: ios
- name: all_ios
platform: group
services:
- service: ios_jeffreystonesiphone
- service: ios_jeffreystonesipad
- service: ios_katherinestonesiphone
- name: jeff_ios
platform: group
services:
- service: ios_jeffreystonesiphone
- service: ios_jeffreystonesipad
speedtestdotnet:
mqtt:
broker: !secret MQTT_HOST
broker: 192.168.7.67
port: 1883
username: !secret MQTT_USER
password: !secret MQTT_PASS
camera:
- platform: mjpeg
name: Garage Door Cam
mjpeg_url: !secret garage_cam
media_player:
- platform: vlc
name: hass_speaker
arguments: '--alsa-audio-device=hw:0,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
### Includes ###
alert: !include_dir_merge_named alerts/
group: !include groups.yaml
automation: !include_dir_merge_list automations/
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/
script: !include scripts.yaml
intent_script: !include intents/intents.yaml
scene: !include scenes.yaml
input_select: !include input_select.yaml
input_boolean: !include input_boolean.yaml
zone: !include zones.yaml
python_script:
#duckdns:
# domain: !secret duckdns_domain
# access_token: !secret duckdns_token
### Devices and Services
cover:
- platform: mqtt
name: "Garage Door"
state_topic: 'smartthings/Garage Door/contact'
command_topic: 'smartthings/Garage Door/door'
state_open: 'open'
state_closed: 'closed'
payload_open: 'open'
payload_close: 'closed'
retain: true
optimistic: true
# 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
climate:
platform: honeywell
username: !secret HONEYWELL_USER
password: !secret HONEYWELL_PASS
name: First Floor
region: us
scan_interval: 600
map:
### Custom Commands
# zwave:
# usb_path: /dev/ttyACM0
# network_key: !secret zwave_key
### Custom Commands
shell_command:
alarm_off: pkill mpg123
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: mpg123 /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: mpg123 /media/audio/Happily_Ever_After_Audio.mp3
boo_to_you: mpg123 /media/audio/boo_to_you_audio.mp3
haunted_mansion_ride: mpg123 /media/audio/haunted_mansion_ride.mp3
wishes_preshow: mpg123 /media/audio/wishes_5_min.mp3
welcome_show: mpg123 /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: mpg123 /media/audio/welcome_magic_kingdom.mp3
welcome_show_crowd: mpg123 /media/audio/welcome_show_crowd.mp3
spaceship_earth_ride: mpg123 /media/audio/spaceship_earth_ride.mp3
dance_it: mpg123 /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]%
reset_alexa_cookie: /home/homeassistant/bin/resetalexacookie
tiki_room_audio: mpg123 /media/audio/tiki_room_audio.mp3
illuminations_audio: mpg123 /media/audio/illuminations.mp3
mk_audio: mpg123 /media/audio/magic_kingdom.mp3
usps: python3 /home/homeassistant/bin/usps.py
backup: python /home/homeassistant/bin/dropbox.py

33
customize.yaml Executable file → Normal file
View File

@ -81,9 +81,6 @@ sensor.dark_sky_daily_high_temperature:
sensor.dark_sky_daily_max_precip_intensity:
friendly_name: Rain Intensity
icon: gauge
sensor.pws_alerts:
friendly_name: "Weather Alerts"
icon: mdi:alert
# Jeff #
@ -170,7 +167,16 @@ media_player.roku_5s6719003683:
device_tracker.00a0dea3ed2f:
friendly_name: Yamaha AV
icon: mdi:surround-sound
media_player.pn60e550_pn60e550:
name: Samsung TV
icon: mdi:television
media_player.hass_speaker:
name: AH Speaker
icon: mdi:speaker
media_player.yamaha_receiver_theater:
icon: mdi:audio-video
switch.main_theater:
icon: mdi:audio-video
# Switches and Lights ##
switch.fireplace_lights:
@ -185,7 +191,7 @@ switch.front_porch:
icon: mdi:lightbulb
switch.front_lamp:
icon: mdi:lightbulb
switch.loft_lamp:
switch.upstairs_light:
icon: mdi:lightbulb
cover.garage_door:
device_class: garage
@ -230,7 +236,14 @@ switch.trash_notification:
icon: mdi:telegram
switch.master_bedroom_fan:
icon: mdi:fan
switch.incense:
icon: mdi:flower
switch.christmas_tree_lights:
icon: mdi:lightbulb
switch.christmas_lights:
icon: mdi:lightbulb
switch.rainbow_light:
icon: mdi:lightbulb
# Travel Times ##
sensor.home_to_summit:
@ -297,5 +310,9 @@ sensor.washer_power:
unit_of_measurement: 'w'
sensor.washer:
icon: mdi:power-plug
binary_sensor.dome_doorwindow_sensor_sensor:
device_class: Door
sensor.security_protocol:
icon: mdi:security
sensor.notification_mode:
icon: mdi:bell

317
groups.yaml Executable file → Normal file
View File

@ -4,221 +4,24 @@ default_view:
view: yes
icon: mdi:home
entities:
- persistent_notification.wxalert
- group.house
- group.house_conditions
- group.garage
- group.appliancest
security:
name: Security
view: yes
icon: mdi:security
entities:
- group.security_system
- group.security_alerts
- group.security_alarms
- group.all_doors
- group.motion_sensors
- group.fire
lights:
name: Lights
view: yes
icon: mdi:lightbulb
entities:
- group.living_room
- group.master_bedroom
- group.loft
- group.driveway
- group.front_porch
- group.kitchen
- group.scenes
people:
name: People
view: yes
icon: mdi:human-male-female
entities:
- group.jeffrey
- group.katherine
- group.travel_times
media:
name: media
view: yes
icon: mdi:theater
entities:
- group.theater
- media_player.yamaha_receiver_theater
- media_player.apple_tv
- media_player.living_room_tv
- media_player.roku_5s6719003683
- media_player.guest_tv
weather:
name: weather
view: yes
icon: mdi:tree
entities:
- group.weather_summary
- group.weather_alerts
- group.sun_and_moon
- group.weather_forecast
- group.precipitation
- group.wind
homeassistant:
name: HA
view: yes
icon: mdi:home-automation
entities:
- group.ha_system_monitor
- group.ha_version_info
- group.file_size
- group.internet
- group.devices
- group.home_automation
chores:
name: Chores
view: yes
icon: mdi:calendar
entities:
- group.trash_schedule
settings:
name: Settings
view: yes
icon: mdi:settings
entities:
- group.house_notifications
- group.presence_notifications
- group.event_notifications
- group.skylar_alarms
#################################################################################
### Grops ###
Security Status:
- sensor.garage_door
- binary_sensor.back_door
- binary_sensor.front_door
- binary_sensor.laundry_room_door
- binary_sensor.attic_door
- binary_sensor.garage_dome_sensor
- binary_sensor.garage_door
- sensor.smoke_kitchen
- sensor.attic_door
Security Alerts:
control: hidden
entities:
- input_boolean.security_check
- input_boolean.lockdown_issue
- input_boolean.security_issue
- input_boolean.security_breach_warning
- input_boolean.garage_issue
Security Alarms:
control: hidden
entities:
- input_boolean.security_alarm
- input_boolean.tornado_alarm
Security System:
control: hidden
entities:
- sensor.security_status
- input_boolean.secure_mode
- input_boolean.vacation_mode
House:
control: hidden
entities:
- sensor.family_presence
- sensor.security_status
- input_boolean.audible_notifications
- sensor.notification_mode
- input_boolean.guest_mode
Motion Sensors:
- binary_sensor.garage_dome_sensor
All Doors:
control: hidden
name: Doors
entities:
- binary_sensor.back_door
- binary_sensor.front_door
- binary_sensor.laundry_room_door
- binary_sensor.attic_door
- binary_sensor.garage_door
- input_boolean.vacation_mode
Family:
- sensor.jeff_presence
- sensor.kat_presence
Jeffrey:
control: hidden
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_heading_home
- input_boolean.text_notify_jeff
- input_boolean.jeff_traffic_alerts
Katherine:
control: hidden
entities:
- sensor.kat_location
- sensor.kat_destination
- sensor.kat_iphone_batt
- device_tracker.katherinesmini
- device_tracker.katherinesipad
- sensor.kat_ett_home
- input_boolean.kat_heading_home
- input_boolean.text_notify_kat
Travel Times:
control: hidden
entities:
- sensor.home_to_summit
- sensor.home_to_zoo
Living Room:
- switch.fireplace_lights
- light.tower_lamp
- light.front_lamp
Loft:
- light.loft_lamp
- switch.loft_fan
Master Bedroom:
- switch.master_bedroom_fan
Kitchen:
- light.kitchen_cabinets
- light.kitchen_light_strip
Scenes:
- scene.livingroom_dim
- scene.livingroom_night
- scene.livingroom_normal
- scene.movie_time
- scene.dim_kitchen
- scene.normal_kitchen
Driveway:
- switch.driveway_light
- switch.side_door
- binary_sensor.jeffrey_presence
- binary_sensor.kat_presence
Front Porch:
- switch.front_porch
House Conditions:
- climate.first_floor
@ -226,115 +29,3 @@ House Conditions:
- sensor.accurite_back_porch_humidity
- sensor.accurite_garage_temperature
- sensor.accurite_garage_humidity
Weather Summary:
- sensor.dark_sky_summary
- sensor.dark_sky_apparent_temperature
- sensor.dark_sky_humidity
- sensor.dark_sky_dew_point
Sun and Moon:
- sun.sun
- sun.next_rising
- sun.next_setting
- sensor.moon
Weather Forecast:
- sensor.dark_sky_minutely_summary
- sensor.dark_sky_hourly_summary
- sensor.dark_sky_daily_summary
Precipitation:
- sensor.dark_sky_nearest_storm_distance
- sensor.dark_sky_precip
- sensor.dark_sky_precip_probability
- sensor.pws_precip_today_in
- sensor.dark_sky_visibility
- sensor.dark_sky_pressure
Wind:
- sensor.pws_wind_mph
- sensor.pws_wind_gust_mph
- sensor.pws_wind_dir
Internet:
- sensor.speedtest_ping
- sensor.speedtest_download
- sensor.speedtest_upload
Home Automation:
- sensor.smartthings
- sensor.amazon_dot_lr
- sensor.amazon_dot_kn
- sensor.honeywell
- sensor.eero_loft
- sensor.eero_livingroom
#Cameras:
# - device_tracker.ipcam_00626e46eb09_1
Theater:
- sensor.samsungtv
- sensor.xboxone
- device_tracker.00a0dea3ed2
Garage:
- cover.garage_door
- binary_sensor.garage_dome_sensor
Fire:
- sensor.smoke_kitchen
HA System Monitor:
- 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
HA Version Info:
- sensor.installed_version
- sensor.current_ha_version
File Size:
control: hidden
entities:
- sensor.ha_v2db
- sensor.ha_log
#Zwave:
# - zwave.aeotec_zw090_zstick_gen5_us
Weather Alerts:
control: hidden
entities:
- sensor.pws_alerts
- sensor.storm_statement
- sensor.tstorm_watch
- sensor.tstorm_warning
- sensor.tornado_watch
- sensor.tornado_warning
Trash Schedule:
- input_select.trash_pickup
- input_select.recycle_pickup
- input_boolean.trash_notification
House Notifications:
- input_boolean.audible_notifications
- input_boolean.garage_notifications
Skylar Alarms:
- input_boolean.skylar_dressed_alarm
Presence Notifications:
- input_boolean.text_notify_jeff
- input_boolean.text_notify_kat
Event Notifications:
- input_boolean.trash_notification
- input_boolean.washer_notification

58
input_boolean.yaml Executable file → Normal file
View File

@ -1,5 +1,5 @@
secure_mode:
name: Secure Mode
sentry_mode:
name: Sentry Mode
icon: mdi:security
vacation_mode:
name: Vacation Mode
@ -13,12 +13,6 @@ automations:
trash_notification:
name: Trash Notification
icon: mdi:telegram
notifications_kat:
name: Notifications to Kat
icon: mdi:telegram
notifications_jeff:
name: Notifications to Jeff
icon: mdi:telegram
welcome_greeting:
name: Welcome Greeting
icon: mdi:speaker-wireless
@ -55,24 +49,12 @@ presence_notifications_jeff:
presence_notifications_kat:
name: Send Kat Presence Texts
icon: mdi:telegram
garage_issue:
name: Garage Issue
icon: mdi:alert
security_issue:
name: Security Issue
icon: mdi:comment-alert
kat_heading_home:
name: Kat Heading Home
icon: mdi:car
jeff_heading_home:
name: Jeff Heading Home
icon: mdi:car
washer_notification:
name: Washer Notification
icon: mdi:speaker-wireless
washer_running:
name: Washer Running
icon: mdi:speaker-wireless
skylar_dressed_alarm:
name: Skylar Dressed Alarm
icon: mdi:speaker-wireless
@ -85,15 +67,39 @@ jeff_traffic_alert_home:
tornado_watch:
name: Tornado Watch
icon: mdi:message-alert
security_check:
name: Security Check
icon: mdi:lock-reset
garage_after_dark:
name: Garage Open After Dark
icon: mdi:message-alert
lockdown_issue:
name: Lockdown Issue
icon: mdi:lock-reset
security_breach_warning:
name: Security Breach Warning
icon: mdi:clock-alert-outline
kat_travel_monitor:
name: Kat Travel Monitor
icon: mdi:car
jeff_travel_monitor:
name: Jeff Travel Monitor
icon: mdi:car
notifications_audio:
name: Audio Notifications
icon: mdi:speaker-wireless
text_notifications:
name: Text Notifications
icon: mdi:telegram
presence_text_notifications:
name: Presence Texts
icon: mdi:telegram
presence_audio_notifications:
name: Presence Audio
icon: mdi:speaker-wireless
shuffle_spotify:
name: Shuffle Playlists
icon: mdi:shuffle-variant
security_issue:
name: Security Issue
icon: mdi:alert-circle-outline
weather_reports:
name: Weather Info
traffic_reports:
name: traffic_reports
sun_reports:
name: Sun Reports

17
input_select.yaml Executable file → Normal file
View File

@ -1,9 +1,3 @@
alarm_mode:
name: alarm mode
options:
- home_armed
- away_armed
- disarmed
trash_pickup:
name: Trash Pickup
options:
@ -23,4 +17,13 @@ recycle_pickup:
- Thursday
- Friday
initial: Tuesday
icon: mdi:delete-variant
icon: mdi:delete-variant
spotify_source:
name: Spotify Source
options:
- Everywhere
- Living Room
- Master Bedroom
- Kitchen
initial: Everywhere
icon: mdi:speaker-wireless

0
lights/kitchen.yaml Executable file → Normal file
View File

10
lights/living_room.yaml Executable file → Normal file
View File

@ -17,4 +17,14 @@
brightness_scale: 101
payload_on: "on"
payload_off: "off"
retain: true
- platform: mqtt
name: "Table Lamp"
state_topic: "smartthings/Table Lamp/switch"
command_topic: "smartthings/Table Lamp/switch"
brightness_state_topic: "smartthings/Table Lamp/level"
brightness_command_topic: "smartthings/Table Lamp/level"
brightness_scale: 101
payload_on: "on"
payload_off: "off"
retain: true

View File

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

119
packages/announcements.yaml Normal file
View File

@ -0,0 +1,119 @@
###############################################################################
# @author : Jeffrey Stone
# @date : 02/19/2019
# @package : Announcements
# @description : Just Normal Announcements.
###############################################################################
script:
annc_storm_statement:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: input_boolean.vacation_mode
state: 'off'
- service: notify.ios_all
data:
message: Severe Storm Statement Issued for Anchorage House
annc_tstorm_watch:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: input_boolean.vacation_mode
state: 'off'
- service: notify.ios_all
data:
message: Severe Thunderstorm Watch Issued for Anchorage House
annc_tstorm_warning:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: input_boolean.vacation_mode
state: 'off'
- service: notify.ios_all
data:
message: Severe Thunderstorm Warning Issued for Anchorage House
annc_tornado_watch:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: input_boolean.vacation_mode
state: 'off'
- service: notify.ios_all
data:
message: Tornado Watch Issued for Anchorage House
annc_security_issue:
sequence:
- condition: state
entity_id: group.family
state: 'on'
- service: tts.google_say
data:
entity_id: media_player.hass_speaker
message: Unauthorized Access
annc_tornado_warning:
sequence:
- condition: state
entity_id: sensor.family_status
state: Home
- service: script.alert_notify
data_template:
message: "Tornado Warning has been Issued"
greeting: "no"
automation:
- id: prebed_routine
alias: Prebed Routine
trigger:
- platform: time
at: '19:00:00'
action:
- service: script.prebed_routine
- id: nightly_report
alias: Nightly Report
trigger:
- platform: time
at: '18:45:00'
action:
- service: script.nightly_report
- id: good_morning_report
alias: Good Morning Report
initial_state: true
trigger:
- platform: time
at: 07:45:00
action:
- service: script.morning_report
- service: script.twitter_notify
data:
message: 'I just provided a morning briefing including weather, and traffic
conditions to the residents of Anchorage House. '
- id: skylar_morning_greeting
alias: Skylar Morning Greeting
initial_state: true
trigger:
- platform: time
at: 07:58:00
condition:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: state
entity_id: input_boolean.skylar_dressed_alarm
state: 'on'
action:
- service: script.skylar_morning_greeting

560
packages/disney.yaml Normal file
View File

@ -0,0 +1,560 @@
###############################################################################
# @author : Jeffrey Stone
# @date : 02/19/2019
# @package : Disney
# @description : A little Imaginering to bring disney into our home.
###############################################################################
input_boolean:
happy_ever_after_show:
name: Happy Ever After Show
haunted_mansion:
name: Haunted Mansion
boo_to_you_show:
name: Boo To You
holiday_wishes:
name: Holiday Wishes
spaceship_earth_ride:
name: Spaceship Earth
boo_to_you:
name: Boo To You
happy_ever_after:
name: Happy Ever After
mk_loop:
name: MK Loop
tiki_room_audio:
name: Tiki Room
illuminations:
name: Illuminations
automation:
- id: mk_loop_on
alias: MK Loop On
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.mk_loop
to: 'on'
action:
- service: script.turn_on
entity_id: script.mk_loop
- id: tiki_room_on
alias: Tiki Room On
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.tiki_room_audio
to: 'on'
action:
- service: script.turn_on
entity_id: script.tiki_room_audio
- id: tiki_room_off
alias: Tiki Room Off
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.tiki_room_audio
to: 'off'
action:
- service: script.turn_off
entity_id: script.tiki_room_audio
- service: script.turn_on
entity_id: script.kill_this_ride
- id: illuminations_on
alias: Illuminations On
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.illuminations
to: 'on'
action:
- service: script.turn_on
entity_id: script.illuminations_audio
- id: illuminations_off
alias: Illuminations Off
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.illuminations
to: 'off'
action:
- service: script.turn_off
entity_id: script.illuminations_audio
- service: script.turn_on
entity_id: script.kill_this_ride
- id: mk_loop_off
alias: MK Loop Off
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.mk_loop
to: 'off'
action:
- service: script.turn_on
entity_id: script.kill_this_ride
- id: happy_ever_after_show_on
alias: Happy Ever After Show On
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.happy_ever_after_show
to: 'on'
action:
- service: script.turn_on
entity_id: script.happy_ever_after_show
- id: happy_ever_after_show_off
alias: Happy Ever After Show Off
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.happy_ever_after_show
to: 'off'
action:
- service: script.turn_on
entity_id: script.kill_this_ride
- id: happy_ever_after_on
alias: Happy Ever After On
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.happy_ever_after
to: 'on'
action:
- service: script.turn_on
entity_id: script.happy_ever_after
- id: happy_ever_after_on
alias: Happy Ever After Off
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.happy_ever_after
to: 'off'
action:
- service: script.turn_on
entity_id: script.kill_this_ride
- id: haunted_mansion_on
alias: Haunted Mansion On
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.haunted_mansion
to: 'on'
action:
- service: script.turn_on
entity_id: script.haunted_mansion_start
- id: haunted_mansion_off
alias: Haunted Mansion Off
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.haunted_mansion
to: 'off'
action:
- service: script.turn_on
entity_id: script.kill_this_ride
- id: spaceship_earth_on
alias: Spaceship Earth On
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.spaceship_earth_ride
to: 'on'
action:
- service: script.turn_on
entity_id: script.spaceship_earth_ride
- id: spaceship_earth_off
alias: Spaceship Earth Off
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.spaceship_earth_ride
to: 'off'
action:
- service: script.turn_on
entity_id: script.kill_this_ride
- id: boo_to_you_show_on
alias: Boo To You Show On
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.boo_to_you_show
to: 'on'
action:
- service: script.turn_on
entity_id: script.boo_to_you_show
- id: boo_to_you_show_off
alias: Boo To You Show Off
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.boo_to_you_show
to: 'off'
action:
- service: script.turn_on
entity_id: script.kill_this_ride
- id: boo_to_you_on
alias: Boo To You On
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.boo_to_you
to: 'on'
action:
- service: script.turn_on
entity_id: script.boo_to_you
- id: boo_to_you_off
alias: Boo To You Off
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.boo_to_you
to: 'off'
action:
- service: script.turn_on
entity_id: script.kill_this_ride
- id: holiday_wisher_on
alias: Holiday Wishes On
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.holiday_wishes
to: 'on'
action:
- service: script.turn_on
entity_id: script.holiday_wishes_start
- id: holiday_wishes_off
alias: Holiday Wishes Off
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.holiday_wishes
to: 'off'
action:
- service: script.turn_on
entity_id: script.kill_this_ride
script:
kill_hurry_back:
sequence:
- service: shell_command.alarm_off
hurry_back_short:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: sensor.family_status
state: Home
- service: shell_command.haunted_mansion_hurry_back_short
hurry_back_full:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: sensor.family_status
state: Home
- service: shell_command.haunted_mansion_hurry_back_full
haunted_lights_on:
sequence:
- delay: 00:02:16
- service: scene.turn_on
data:
entity_id: scene.haunted_preshow
house_lights_on:
sequence:
- delay: 00:04:12
- service: scene.turn_on
data:
entity_id: scene.normal_livingroom_lighting
haunted_lights_out:
sequence:
- delay: 00:02:05
- service: scene.turn_on
data:
entity_id: scene.haunted_lights_out
haunted_preshow:
sequence:
- delay: 00:01:05
- service: scene.turn_on
data:
entity_id: scene.haunted_preshow
haunted_mansion_start:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: sensor.family_status
state: Home
- service: shell_command.haunted_mansion_preshow_full
- data:
entity_id: script.haunted_preshow
service: script.turn_on
- data:
entity_id: script.haunted_lights_out
service: script.turn_on
- data:
entity_id: script.haunted_lights_on
service: script.turn_on
- data:
entity_id: script.house_lights_on
service: script.turn_on
kill_haunted_mansion:
sequence:
- service: shell_command.alarm_off
- service: script.turn_off
data:
entity_id: script.haunted_preshow
- service: script.turn_off
data:
entity_id: script.haunted_lights_out
- service: script.turn_off
data:
entity_id: script.haunted_lights_on
- service: scene.turn_on
data:
entity_id: scene.normal_livingroom_lighting
haunted_ride:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: sensor.family_status
state: Home
- service: shell_command.haunted_mansion_ride
mk_loop:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: sensor.family_status
state: Home
- service: shell_command.mk_audio
kill_this_ride:
sequence:
- service: shell_command.alarm_off
- service: script.turn_off
data:
entity_id: script.haunted_preshow
- service: script.turn_off
data:
entity_id: script.haunted_lights_out
- service: script.turn_off
data:
entity_id: script.haunted_lights_on
- service: script.turn_off
data:
entity_id: script.illuminations_preshow
- service: script.turn_off
data:
entity_id: script.illuminations_lights_out
- service: scene.turn_on
data:
entity_id: scene.normal_livingroom_lighting
- service: input_boolean.turn_off
entity_id: input_boolean.illuminations
- service: script.chromecast_media_stop
- service: script.turn_off
data:
entity_id: script.holiday_wishes
- service: script.turn_off
data:
entity_id: script.holiday_wishes_start
- service: script.turn_off
entity_id: script.illuminations_preshow
- service: script.turn_off
entity_id: script.illuminations_lights_out
- service: script.turn_off
entity_id: script.illuminations_single_light
- service: script.turn_off
entity_id: script.illuminations_dual_light
- service: script.turn_off
entity_id: script.illuminations_triple_light
- service: script.turn_off
entity_id: script.illuminations_show
move_it_shake_it:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: sensor.family_status
state: Home
- service: shell_command.dance_it
spaceship_earth_ride:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: sensor.family_status
state: Home
- service: shell_command.spaceship_earth_ride
welcome_to_magic_kingdom:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: sensor.family_status
state: Home
- service: shell_command.welcome_to_mk
monorail_waiting:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: sensor.family_status
state: Home
- service: shell_command.monorail_waiting
monorail_mk:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: sensor.family_status
state: Home
- service: shell_command.monorail_mk
monorail_resort:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: group.family
state: 'on'
- service: shell_command.monorail_resort
welcome_show_audio:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: sensor.family_status
state: Home
- service: shell_command.welcome_show_crowd
holiday_wishes_start:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: group.family
state: 'on'
- service: shell_command.wishes_preshow
- service: script.holiday_wishes
holiday_wishes:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: sensor.family_status
state: Home
- service: shell_command.holiday_wishes
boo_to_you_show:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: group.family
state: 'on'
- service: shell_command.boo_to_you
happy_ever_after_show:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: sensor.family_status
state: Home
- service: shell_command.happily_ever_after
boo_to_you:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: sensor.family_status
state: Home
- service: shell_command.boo_to_you
tiki_room_audio:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: sensor.family_status
state: Home
- service: shell_command.tiki_room_audio
happy_ever_after:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: sensor.family_status
state: Home
- service: shell_command.happily_ever_after
illuminations_lights_out:
sequence:
- delay: 00:00:47
- service: scene.turn_on
data:
entity_id: scene.haunted_lights_out
illuminations_single_light:
sequence:
- delay: 00:00:52
- service: scene.turn_on
data:
entity_id: scene.dimished_livingroom_lighting
illuminations_dual_light:
sequence:
- delay: 00:00:59
- service: scene.turn_on
data:
entity_id: scene.illuminations_livingroom_lighting_two
illuminations_triple_light:
sequence:
- delay: 00:01:04
- service: scene.turn_on
data:
entity_id: scene.illuminations_livingroom_lighting_three
illuminations_show:
sequence:
- delay: 00:01:10
- service: scene.turn_on
data:
entity_id: scene.normal_livingroom_lighting
illuminations_preshow:
sequence:
- service: scene.turn_on
data:
entity_id: scene.normal_livingroom_lighting
illuminations_audio:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: sensor.family_status
state: Home
- service: shell_command.illuminations_audio
- service: script.turn_on
entity_id: script.illuminations_preshow
- service: script.turn_on
entity_id: script.illuminations_lights_out
- service: script.turn_on
entity_id: script.illuminations_single_light
- service: script.turn_on
entity_id: script.illuminations_dual_light
- service: script.turn_on
entity_id: script.illuminations_triple_light
- service: script.turn_on
entity_id: script.illuminations_show

213
packages/notify.yaml Normal file
View File

@ -0,0 +1,213 @@
###############################################################################
# @author : Jeffrey Stone
# @date : 02/19/2019
# @package : Notify
# @description : A Collection of Notification Scripts and Configs.
# Package modified from https://github.com/skalavala/smarthome/blob/master/packages/notify.yaml
###############################################################################
#homeassistant:
#ifttt:
# key: !secret IFTTT_API_KEY
tts:
- platform: google
cache: true
cache_dir: /tmp/tts
time_memory: 300
notify:
- platform: ios
- name: all_ios
platform: group
services:
- service: ios_jeffreystonesiphone
- service: ios_jeffreystonesipad
- service: ios_katherinestonesiphone
- name: jeff_ios
platform: group
services:
- service: ios_jeffreystonesiphone
- service: ios_jeffreystonesipad
- 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
consumer_secret: !secret twitter_consumer_secret
access_token: !secret twitter_access_token
access_token_secret: !secret twitter_access_secret
script:
###############################################################################
# Txt Notify
# Conditions:
# => Only Announce when people are home.
# => Only Announce when Audible Notifications are on
###############################################################################
text_notify_all:
sequence:
- service: notify.all_ios
data_template:
message: >
{{ message }}
text_notify_jeff:
sequence:
- condition: state
entity_id: input_boolean.text_notify_jeff
state: 'on'
- service: notify.jeff_ios
data_template:
message: >
{{ message }}
text_notify_kat:
sequence:
- condition: state
entity_id: input_boolean.text_notify_kat
state: 'on'
- service: notify.kat_ios
data_template:
message: >
{{ message }}
###############################################################################
# Alert Notify
# Conditions:
# => Vacation mode should be off
# Services:
# => Audible
# => iOS
###############################################################################
alert_notify:
sequence:
- condition: state
entity_id: input_boolean.vacation_mode
state: 'off'
- service: tts.google_say
data_template:
entity_id: media_player.hass_speaker
message: >
{{ message }}
###############################################################################
# Voice Notify
# Conditions:
# => Only Announce when people are home.
# => Only Announce when Audible Notifications are on
###############################################################################
voice_notify:
sequence:
- condition: template
value_template: '{{ states.input_boolean.audible_notifications.state == "on" }}'
- condition: state
entity_id: sensor.family_status
state: 'Home'
- condition: state
entity_id: input_boolean.vacation_mode
state: 'off'
- service: tts.google_say
data_template:
entity_id: media_player.hass_speaker
message: >
{% set msg = "" %}
{% macro getGreeting() %}
{% if greeting | default('yes', true ) == "yes" %}
{% if now().hour|int < 12 %}
Good morning.
{% elif now().hour|int < 18 %}
Good afternoon.
{% else %}
Good evening.
{% endif %}
{% endif %}
{% endmacro %}
{% set msg = msg + getGreeting() %}
{% set msg = msg + " " + message %}
{{ msg }}
###############################################################################
# Twitter
###############################################################################
twitter_notify:
sequence:
- service: notify.twitter
data_template:
message: >
{% set msg = "" %}
{% set msg = msg + " " + message %}
{% set msg = msg + " #homeassistant #iot #itscomingfrominsidethehouse" %}
{{ msg }}
twitter_snark:
sequence:
- service: notify.twitter
data_template:
message: !include ../templates/twitter_snark.yaml
twitter_github:
sequence:
- service: notify.twitter
data_template:
message: >
{% set msg = "" %}
{% set msg = msg + " " + message %}
{% set msg = msg + " #smarthome #iot " %}
{{ msg }}
twitter_new_ha:
sequence:
- service: notify.twitter
data_template:
message: !include ../templates/twitter_new_ha.yaml
###############################################################################
# Morning Report
###############################################################################
morning_report:
sequence:
- service: script.voice_notify
data_template:
message: !include ../templates/morning_report.yaml
###############################################################################
# Skylar Get Dressed
###############################################################################
skylar_morning_greeting:
sequence:
- service: script.voice_notify
data_template:
message: !include ../templates/skylar_morning.yaml
###############################################################################
# Nightly Report
###############################################################################
nightly_report:
sequence:
- service: script.voice_notify
data_template:
message: !include ../templates/nightly_report.yaml
###############################################################################
# Prebed Routing
###############################################################################
prebed_routine:
sequence:
- service: script.voice_notify
data_template:
message: >
Bed time is in 30 mins. If you are taking a bath now is the time to get in the tub, otherwise time to put on pajamas and brush teeth.

89
packages/space.yaml Normal file
View File

@ -0,0 +1,89 @@
###############################################################################
# @author : Jeffrey Stone
# @date : 02/19/2019
# @package : Space
# @description : Tracking space. Inspiration and code taking from https://github.com/CCOSTAN/Home-AssistantConfig#logo
# @original : https://github.com/CCOSTAN/Home-AssistantConfig/blob/master/config/packages/space.yaml
###############################################################################
homeassistant:
customize:
binary_sensor.iss:
icon: mdi:satellite-variant
friendly_name: ISS Visibility
hidden: False
homebridge_hidden: true
sensor.launch_window:
hidden: False
icon: mdi:rocket
friendly_name: Rocket Launch Window
binary_sensor:
- platform: iss
show_on_map: true
sensor:
- platform: moon
- platform: launch_library
- platform: rest
scan_interval: 1800
resource: https://launchlibrary.net/1.2.2/launch/next/10
# resource: https://raw.githubusercontent.com/cribbstechnologies/ha_config/master/www/test_launch.json
name: launch window
# if the current timestamp is in the launch window
# this sensor will return the UTC timestamp of the launch
value_template: >-
{%- for launch in value_json.launches %}
{% if launch.location.id == 16 or launch.location.id == 17 %}
{% if strptime(launch.isostart, '%Y%m%dT%H%M%SZ').strftime('%Y-%m-%d') == now().strftime('%Y-%m-%d') %}
{% set utc_offset_string = now().strftime('%z') %}
{% set utc_offset_direction = utc_offset_string[:1] %}
{% set utc_offset_hours = now().strftime('%z')[-4:] %}
{% set utc_offset_seconds = (utc_offset_hours| int /100) * 60 * 60 %}
{% if utc_offset_direction == '-' %}
{{ launch.wsstamp - utc_offset_seconds}}
{% else %}
{{ launch.wsstamp + utc_offset_seconds}}
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
automation:
- id: iss_tweet
alias: 'ISS Tweet'
trigger:
- platform: state
entity_id:
- binary_sensor.iss
to: 'on'
from: 'off'
action:
- service: script.twitter_notify
data_template:
message: >-
{{ [
"The #ISS is passing over. Wave.",
"The #ISS just flew by and there is 1 Starman driving a #Tesla and {{states.binary_sensor.iss.attributes.number_of_people_in_space}} people in",
"The #ISS just flew by and there are {{states.binary_sensor.iss.attributes.number_of_people_in_space}} people in"
] | random + " #Space #theycanseeourhouse"}}
- id: full_moon_tweet
alias: 'Full Moon -Tweet'
trigger:
- platform: state
entity_id: sensor.moon
to: 'Full Moon'
action:
- delay: '0{{ (range(1, 5)|random|int) }}:{{ range(0,5) | random | int }}{{ range(0,9) | random | int }}:00'
- service: script.twitter_notify
data_template:
message: >-
{{ [
"There is a Full Moon out tonight, and this time it's the actual moon and not the neighbor.",
"Hey look kids, There's the full moon.",
"The moon is huge! And full."
] | random + "#Space #fullmoon"}}

65
packages/sysmon.yaml Normal file
View File

@ -0,0 +1,65 @@
###############################################################################
# @author : Jeffrey Stone
# @date : 02/19/2019
# @package : Sysmon
# @description : A collection of Home Assistant and Pi Sensors
###############################################################################
sensor:
- platform: systemmonitor
resources:
- type: disk_use_percent
arg: /
- type: memory_use_percent
- type: network_in
arg: eth0
- type: network_out
arg: eth0
- type: last_boot
- type: load_15m
- type: processor_use
- type: last_boot
- platform: cpuspeed
name: CPU
- platform: time_date
display_options:
- 'time'
- 'date'
- 'date_time'
- 'time_date'
- 'time_utc'
- 'beat'
- platform: cert_expiry
host: !secret ahsl_base_url
name: SSL Cert Expiration
- platform: command_line
name: "HA Uptime"
command: echo "$(($(date +%s) - $(date -d "$(head -n1 /home/homeassistant/.homeassistant/home-assistant.log | cut -d' ' -f-2)" +%s)))"
scan_interval: 720
value_template: >-
{% set uptime = value | int %}
{% set seconds = uptime % 60 %}
{% set minutes = ((uptime % 3600) / 60) | int %}
{% set hours = ((uptime % 86400) / 3600) | int %}
{% set days = (uptime / 86400) | int %}
{%- if days > 0 -%}
{%- if days == 1 -%}
1 day
{%- else -%}
{{ days }} days
{%- endif -%}
{{ ', ' }}
{%- endif -%}
{{ '%02d' % hours }}:{{ '%02d' % minutes }}
- platform: command_line
command: python3 -c "import requests; print(requests.get('https://pypi.python.org/pypi/homeassistant/json').json()['info']['version'])"
name: Current HA Version
- platform: command_line
name: Installed version
command: "head -5 /home/homeassistant/.homeassistant/.HA_VERSION"
- 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 ' '"

113
packages/usps.yaml Normal file
View File

@ -0,0 +1,113 @@
###############################################################################
# @author : Jeffrey Stone
# @date : 02/19/2019
# @package : USPS
# @description : Notifies us of mails and packages.
# Package modified from https://github.com/skalavala/smarthome/blob/master/packages/usps.yaml
###############################################################################
homeassistant:
customize:
sensor.usps_mail:
friendly_name: USPS Mail
icon: mdi:mailbox
sensor.usps_packages:
friendly_name: USPS Packages
icon: mdi:package-variant
sensor:
- platform: mqtt
name: 'USPS Mail'
state_topic: 'house/usps/mails'
value_template: "{{ value }}"
- platform: mqtt
name: USPS Packages
state_topic: 'house/usps/packages'
value_template: "{{ value }}"
camera:
- platform: generic
name: USPS Mail Pictures
still_image_url: !secret usps_camera_url
automation:
- id: reset_usps
alias: Reset USPS
trigger:
- platform: time
at: '00:00:10'
action:
- service: shell_command.usps
- service: script.add_logbook_entry
data_template:
name: USPS
message: Reset Mail Count
- id: get_usps
alias: Get USPS
trigger:
- platform: time
at: '10:00:00'
action:
- service: shell_command.usps
- service: script.add_logbook_entry
data_template:
name: USPS
message: Checking for mail
# Notify USPS mails via TTS, and iOS notification with attachment
###############################################################################
- id: notify_usps_mail
alias: Notify USPS Mail
initial_state: true
trigger:
- platform: state
entity_id: sensor.usps_mail
condition:
- condition: template
value_template: '{{ states.sensor.usps_mail.state | int > 0 }}'
- condition: template
value_template: '{{ ((now().hour | int) > 7) and ((now().hour | int) < 16) }}'
action:
- service: script.voice_notify
data_template:
message: >
{%- if states.sensor.usps_mail.state | int == 1 -%}
Attention: USPS is delivering {{ states.sensor.usps_mail.state }} piece of mail today.
{%- else -%}
Attention: USPS is delivering {{ states.sensor.usps_mail.state }} pieces of mail today.
{%- endif -%}
- service: notify.jeff_ios
data_template:
message: "USPS will be delivering {{ states.sensor.usps_mail.state }} piece(s) of mail today."
data:
push:
category: camera
entity_id: "camera.usps_mail_pictures"
attachment:
url: "{{ states.camera.usps_mail_pictures.attributes.entity_picture }}"
content-type: jpg
# Notify USPS packages via TTS. Usually there are no pictures for packages
###############################################################################
- id: notify_usps_packages
alias: Notify USPS Packages
initial_state: true
trigger:
- platform: state
entity_id: sensor.usps_packages
condition:
- condition: template
value_template: '{{ states.sensor.usps_packages.state | int > 0 }}'
- condition: template
value_template: '{{ ((now().hour | int) > 7) and ((now().hour | int) < 16) }}'
action:
- service: script.voice_notify
data_template:
message: >
{%- if states.sensor.usps_packages.state | int == 1 -%}
Attention: USPS is delivering {{ states.sensor.usps_packages.state }} package today.
{%- else -%}
Attention: USPS is delivering {{ states.sensor.usps_packages.state }} packages today.
{%- endif -%}

View File

@ -0,0 +1,200 @@
###############################################################################
# @author : Jeffrey Stone
# @date : 02/19/2019
# @package : NWS Alerts
# @description : NWS Alerts
# @original : https://github.com/Vasiley/Home-Assistant-Main/blob/master/packages/weather_alerts_nws.yaml
###############################################################################
homeassistant:
customize:
package.node_anchors:
customize: &customize
package: 'weather_alerts'
sensor.nws_alert_count:
friendly_name: Alerts
icon: mdi:alert-outline
group:
alerts_card:
name: Alerts
entities:
- sensor.nws_alerts
### You first need to find either your NWS Zone ID or County ID. Im not sure which is better but I used my Zone ID here.
### You can find your Zone ID by going to https://alerts.weather.gov/ 7, scroll down to your state and click on the “zone list” then look for the entry for your county.
### I recommond useing both
#Ive taken much of the underlying work here and created a custom component for nws alerts sensor.
#The sensor can be created by adding the nws_alerts.py file to <config_directory>/custom_components/sensor/ and adding the following to your sensor definitions:
sensor:
- platform: nws_alerts
zone_id: 'GAZ034'
automation:
- alias: 'NWS Weather Alert Pop Up Control'
initial_state: 'on'
trigger:
platform: state
entity_id: sensor.nws_alerts
condition:
- condition: template
value_template: '{{states.sensor.nws_alerts.state | int > 0}}'
- condition: template
value_template: '{{ trigger.to_state.state|float > trigger.from_state.state|float }}'
action:
service: script.nws_popup_on_wx_alert
data_template:
title: >
{% if states.sensor.nws_alerts.attributes.title.split(' - ')[5] is defined %}
"{{ states.sensor.nws_alerts.attributes.title.split(' - ')[5] }}"
{% elif states.sensor.nws_alerts.attributes.title.split(' - ')[4] is defined %}
"{{ states.sensor.nws_alerts.attributes.title.split(' - ')[4] }}"
{% elif states.sensor.nws_alerts.attributes.title.split(' - ')[3] is defined %}
"{{ states.sensor.nws_alerts.attributes.title.split(' - ')[3] }}"
{% elif states.sensor.nws_alerts.attributes.title.split(' - ')[2] is defined %}
"{{ states.sensor.nws_alerts.attributes.title.split(' - ')[2] }}"
{% elif states.sensor.nws_alerts.attributes.title.split(' - ')[1] is defined %}
"{{ states.sensor.nws_alerts.attributes.title.split(' - ')[1] }}"
{% else %}
"{{ states.sensor.nws_alerts.attributes.title.split(' - ')[0] }}"
{% endif %}
message: >
{% if states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[5] is defined %}
"{{ states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[5] }}"
{% elif states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[4] is defined %}
"{{ states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[4] }}"
{% elif states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[3] is defined %}
"{{ states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[3] }}"
{% elif states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[2] is defined %}
"{{ states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[2] }}"
{% elif states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[1] is defined %}
"{{ states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[1] }}"
{% else %}
"{{ states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[0] }}"
{% endif %}
- alias: NWS Notification Weather Alert
initial_state: 'on'
trigger:
platform: state
entity_id: sensor.nws_alerts
condition:
- condition: template
value_template: '{{states.sensor.nws_alerts.state | int > 0}}'
- condition: template
value_template: '{{ trigger.to_state.state|float > trigger.from_state.state|float }}'
action:
- service: notify.all_ios
data_template:
message: >
{% if states.sensor.nws_alerts.attributes.title.split(' - ')[5] is defined %}
"NWS: {{ states.sensor.nws_alerts.attributes.title.split(' - ')[5] }}"
{% elif states.sensor.nws_alerts.attributes.title.split(' - ')[4] is defined %}
"NWS: {{ states.sensor.nws_alerts.attributes.title.split(' - ')[4] }}"
{% elif states.sensor.nws_alerts.attributes.title.split(' - ')[3] is defined %}
"NWS: {{ states.sensor.nws_alerts.attributes.title.split(' - ')[3] }}"
{% elif states.sensor.nws_alerts.attributes.title.split(' - ')[2] is defined %}
"NWS: {{ states.sensor.nws_alerts.attributes.title.split(' - ')[2] }}"
{% elif states.sensor.nws_alerts.attributes.title.split(' - ')[1] is defined %}
"NWS: {{ states.sensor.nws_alerts.attributes.title.split(' - ')[1] }}"
{% else %}
"NWS: {{ states.sensor.nws_alerts.attributes.title.split(' - ')[0] }}"
{% endif %}
- alias: NWS Announce Weather Alert
initial_state: 'on'
trigger:
- platform: state
entity_id: sensor.nws_alerts
condition:
condition: and
conditions:
- condition: template
value_template: "{{states.sensor.nws_alerts.state | int > 0}}"
- condition: template
value_template: '{{ trigger.to_state.state|float > trigger.from_state.state|float }}'
- condition: template
value_template: "{{ (('Severe' in states.sensor.nws_alerts.attributes.title) or ('Thunderstorm' in states.sensor.nws_alerts.attributes.title) or ('Flood' in states.sensor.nws_alerts.attributes.title)) and 'Warning' in states.sensor.nws_alerts.attributes.title }}"
action:
- service: script.voice_notify
data_template:
message: >
{% if states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[5] is defined %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[5] }}
{% elif states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[4] is defined %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[4] }}
{% elif states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[3] is defined %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[3] }}
{% elif states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[2] is defined %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[2] }}
{% elif states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[1] is defined %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[1] }}
{% else %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[0] }}
{% endif %}
- delay: '00:00:15'
- service: script.voice_notify
data_template:
message: >
{% if states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[5] is defined %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[5] }}
{% elif states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[4] is defined %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[4] }}
{% elif states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[3] is defined %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[3] }}
{% elif states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[2] is defined %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[2] }}
{% elif states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[1] is defined %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[1] }}
{% else %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[0] }}
{% endif %}
- alias: NWS Announce Weather Alert for Tornado
initial_state: 'on'
trigger:
- platform: state
entity_id: sensor.nws_alerts
condition:
condition: and
conditions:
- condition: template
value_template: "{{states.sensor.nws_alerts.state | int > 0}}"
- condition: template
value_template: "{{ 'Tornado' in states.sensor.nws_alerts.attributes.title and 'Warning' in states.sensor.nws_alerts.attributes.title }}"
action:
- service: script.alert_notify
data_template:
message: "Attention!,,,Attention!,,,The National Weather Service Has issued a Tornado Warning for our area."
- delay: '00:00:15'
- service: script.alert_notify
data_template:
message: "Attention!,,,Attention!,,,The National Weather Service Has issued a Tornado Warning for our area."
- delay: '00:00:15'
- service: input_boolean.turn_on
entity_id: input_boolean.tornado_alarm
- service: script.text_notify_all
data_template:
message: "Attention!,,,Attention!,,,The National Weather Service Has issued a Tornado Warning for our area."
script:
nws_popup_on_wx_alert:
alias: NWS Weather Alert Pop Up
sequence:
## Dismiss any current alert so the UI isn't filled
## up with these if there are more then one.
## Only show the latest alert
- service: persistent_notification.dismiss
data:
notification_id: "nwswxalert"
## Create a new persistant notification in the UI for a new alert
- service_template: >
{% if states.sensor.nws_alerts.state != '0' %}
persistent_notification.create
{% endif %}
data_template:
notification_id: "nwswxalert"
message: "{{ message }}"
title: '{{ title }}'

162
packages/weekday.yaml Normal file
View File

@ -0,0 +1,162 @@
###############################################################################
# @author : Jeffrey Stone
# @date : 02/19/2019
# @package : Weekday
# @description : Weekday Sensor for use as a condition in automations and scripts
###############################################################################
sensor:
- platform: mqtt
name: weekday
state_topic: "house/week/day"
script:
monday:
sequence:
- service: mqtt.publish
data:
topic: house/week/day
payload: mon
retain: true
tuesday:
sequence:
- service: mqtt.publish
data:
topic: house/week/day
payload: tue
retain: true
wednesday:
sequence:
- service: mqtt.publish
data:
topic: house/week/day
payload: wed
retain: true
thursday:
sequence:
- service: mqtt.publish
data:
topic: house/week/day
payload: thu
retain: true
friday:
sequence:
- service: mqtt.publish
data:
topic: house/week/day
payload: fri
retain: true
saturday:
sequence:
- service: mqtt.publish
data:
topic: house/week/day
payload: sat
retain: true
sunday:
sequence:
- service: mqtt.publish
data:
topic: house/week/day
payload: sun
retain: true
automation:
- alias: set weekday mon
initial_state: true
trigger:
- platform: time
at: 00:00:01
- platform: homeassistant
event: start
condition:
- condition: time
weekday:
- mon
action:
- service: script.monday
id: set_weekday_mon
- alias: set weekday tue
initial_state: true
trigger:
- platform: time
at: 00:00:01
- platform: homeassistant
event: start
condition:
- condition: time
weekday:
- tue
action:
- service: script.tuesday
id: set_weekday_tue
- alias: set weekday wed
initial_state: true
trigger:
- platform: time
at: 00:00:01
- platform: homeassistant
event: start
condition:
- condition: time
weekday:
- wed
action:
- service: script.wednesday
id: set_weekday_wed
- alias: set weekday thu
initial_state: true
trigger:
- platform: time
at: '00:00:01'
- platform: homeassistant
event: start
condition:
- condition: time
weekday:
- thu
action:
- service: script.thursday
id: set_weekday_thu
- alias: set weekday fri
initial_state: true
trigger:
- platform: time
at: '00:00:01'
- platform: homeassistant
event: start
condition:
- condition: time
weekday:
- fri
action:
- service: script.friday
id: set_weekday_fri
- alias: set weekday sat
initial_state: true
trigger:
- platform: time
at: '00:00:01'
- platform: homeassistant
event: start
condition:
- condition: time
weekday:
- sat
action:
- service: script.saturday
id: set_weekday_sat
- alias: set weekday sun
initial_state: true
trigger:
- platform: time
at: '00:00:01'
- platform: homeassistant
event: start
condition:
- condition: time
weekday:
- sun
action:
- service: script.sunday
id: set_weekday_sun

132
scenes.yaml Executable file → Normal file
View File

@ -1,34 +1,75 @@
- name: livingroom normal
- name: normal livingroom lighting
entities:
light.tower_lamp:
light.tower_lamp_2:
state: on
brightness: 250
light.front_lamp:
state: on
brightness: 250
- name: livingroom dim
light.table_lamp:
state: on
brightness: 250
- name: dimished livingroom lighting
entities:
light.tower_lamp:
light.tower_lamp_2:
state: on
brightness: 40
light.front_lamp:
state: off
light.table_lamp:
state: off
switch.fireplace_lights:
state: off
- name: illuminations livingroom lighting two
entities:
light.tower_lamp_2:
state: on
brightness: 40
light.front_lamp:
state: on
brightness: 40
- name: livingroom night
light.table_lamp:
state: off
switch.fireplace_lights:
state: off
- name: illuminations livingroom lighting three
entities:
light.tower_lamp:
light.tower_lamp_2:
state: on
brightness: 40
light.front_lamp:
state: on
brightness: 40
light.table_lamp:
state: on
brightness: 40
switch.fireplace_lights:
state: off
- name: night time livingroom lighting
entities:
light.tower_lamp_2:
state: on
brightness: 10
light.front_lamp:
state: off
- name: dim kitchen
light.table_lamp:
state: off
switch.fireplace_lights:
state: off
- name: diminished kitchen lighting
entities:
light.kitchen_cabinets:
state: on
brightness: 10
light.kitchen_light_strip:
state: off
- name: normal kitchen
- name: normal kitchen lighting
entities:
light.kitchen_cabinets:
state: on
@ -36,5 +77,80 @@
light.kitchen_light_strip:
state: on
- name: haunted preshow
entities:
light.kitchen_cabinets:
state: off
light.kitchen_light_strip:
state: off
switch.upstairs_light:
state: off
light.tower_lamp_2:
state: on
brightness: 40
light.front_lamp:
state: on
brightness: 40
light.table_lamp:
state: on
brightness: 40
switch.fireplace_lights:
state: off
- name: haunted lights out
entities:
light.kitchen_cabinets:
state: off
light.kitchen_light_strip:
state: off
switch.upstairs_light:
state: off
light.tower_lamp_2:
state: off
light.front_lamp:
state: off
light.table_lamp:
state: off
switch.fireplace_lights:
state: off
- name: jeff light on
entities:
light.jeff_light:
state: on
- name: jeff light off
entities:
light.jeff_light:
state: off
- name: jeff wake up
entities:
light.jeff_light:
state: on
brightness: 20
- name: jeff bedtime
entities:
light.jeff_light:
state: on
brightness: 40
- name: jeff night light
entities:
light.jeff_light:
state: on
brightness: 10
# - name: santa protocol
# entities:
# switch.christmas_tree:
# state: on
# switch.upstairs_christmas_tree:
# state: on
# light.tower_lamp:
# state: on
# brightness: 10
# light.front_lamp:
# state: on
# brightness: 10

View File

@ -1,11 +0,0 @@
annc_storm_statement:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: "on"
- condition: state
entity_id: input_boolean.vacation_mode
state: 'off'
- service: notify.ios_all
data:
message: Severe Storm Statement Issued for Anchorage House

View File

@ -1,11 +0,0 @@
annc_tornado_watch:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: "on"
- condition: state
entity_id: input_boolean.vacation_mode
state: 'off'
- service: notify.ios_all
data:
message: Tornado Watch Issued for Anchorage House

View File

@ -1,11 +0,0 @@
annc_tstorm_warning:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: "on"
- condition: state
entity_id: input_boolean.vacation_mode
state: 'off'
- service: notify.ios_all
data:
message: Severe Thunderstorm Warning Issued for Anchorage House

View File

@ -1,11 +0,0 @@
annc_tstorm_watch:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: "on"
- condition: state
entity_id: input_boolean.vacation_mode
state: 'off'
- service: notify.ios_all
data:
message: Severe Thunderstorm Watch Issued for Anchorage House

View File

@ -1,8 +0,0 @@
appliances_off:
sequence:
- service: switch.turn_off
data:
entity_id: switch.master_bedroom_fan
- service: switch.turn_off
data:
entity_id: switch.loft_box_fan

View File

@ -1,8 +0,0 @@
appliances_on:
sequence:
- service: switch.turn_on
data:
entity_id: switch.master_bedroom_fan
- service: switch.turn_on
data:
entity_id: switch.loft_box_fan

View File

@ -1,6 +0,0 @@
chime_off:
sequence:
- service: mqtt.publish
data:
topic: "smartthings/Dome Siren/status"
payload_template: "off"

View File

@ -1,6 +0,0 @@
chime_on:
sequence:
- service: mqtt.publish
data:
topic: "smartthings/Dome Siren/status"
payload_template: "chime"

View File

@ -1,6 +0,0 @@
chromecast_media_stop:
sequence:
- service: media_player.media_stop
data:
entity_id: media_player.living_room_tv

View File

@ -1,8 +0,0 @@
# Turn off Driveway lights after 2minute delay
driveway_off:
sequence:
- service: switch.turn_off
entity_id: switch.driveway_light
- service: switch.turn_off
entity_id: switch.side_door

View File

@ -1,12 +0,0 @@
driveway_on:
sequence:
- condition: state
entity_id: sun.sun
state: 'below_horizon'
- service: switch.turn_on
data:
entity_id: switch.driveway_light
- service: switch.turn_on
data:
entity_id: switch.side_door

View File

@ -1,6 +0,0 @@
family_is_away:
sequence:
- service: mqtt.publish
data:
topic: "house/family/status"
payload_template: "Away"

View File

@ -1,7 +0,0 @@
family_is_home:
sequence:
- service: mqtt.publish
data:
topic: "house/family/status"
payload_template: "Home"

View File

@ -1,7 +0,0 @@
close_garage:
sequence:
- condition: state
entity_id: cover.garage_door
state: "open"
- service: cover.close_cover
entity_id: cover.garage_door

View File

@ -1,12 +0,0 @@
inside_all_off:
sequence:
- event: LOGBOOK_ENTRY
event_data:
name: EVENT
message: "Turning inside lights off"
- service: light.turn_off
data:
entity_id: light.tower_lamp
- service: light.turn_off
data:
entity_id: light.front_lamp

View File

@ -1,18 +0,0 @@
inside_all_on:
sequence:
- event: LOGBOOK_ENTRY
event_data:
name: EVENT
message: "Turning inside lights on."
- service: light.turn_on
data:
entity_id: light.tower_lamp
- service: light.turn_on
data:
entity_id: light.front_lamp
- service: light.turn_on
data:
entity_id: light.loft_lamp
- service: scene.turn_on
data:
entity_id: scene.livingroom_normal

View File

@ -1,8 +0,0 @@
jeff_at_work_notification:
sequence:
- condition: state
entity_id: input_boolean.text_notify_kat
state: "on"
- service: notify.ios_katherinestonesiphone
data:
message: Jeff has arrived at Summit

View File

@ -1,7 +0,0 @@
jeff_destination_harbins:
sequence:
- service: mqtt.publish
data:
topic: "jeff/driving/destination"
payload: "Harbins"
retain: true

View File

@ -1,7 +0,0 @@
jeff_destination_home:
sequence:
- service: mqtt.publish
data:
topic: "jeff/driving/destination"
payload: "Home"
retain: true

View File

@ -1,7 +0,0 @@
jeff_destination_na:
sequence:
- service: mqtt.publish
data:
topic: "jeff/driving/destination"
payload: "na"
retain: true

View File

@ -1,7 +0,0 @@
jeff_destination_none:
sequence:
- service: mqtt.publish
data:
topic: "jeff/driving/destination"
payload: "none"
retain: true

View File

@ -1,7 +0,0 @@
jeff_destination_summit:
sequence:
- service: mqtt.publish
data:
topic: "jeff/driving/destination"
payload: "Summit"
retain: true

View File

@ -1,7 +0,0 @@
jeff_destination_zoo:
sequence:
- service: mqtt.publish
data:
topic: "jeff/driving/destination"
payload: "Zoo"
retain: true

View File

@ -1,4 +0,0 @@
lockdown:
sequence:
- service: input_boolean.turn_on
entity_id: input_boolean.secure_mode

View File

@ -1,12 +0,0 @@
lockdown_aborted:
sequence:
- delay: '00:00:07'
- condition: state
entity_id: input_boolean.security_issue
state: 'on'
- service: input_boolean.turn_off
entity_id: input_boolean.security_check
- service: input_boolean.turn_on
entity_id: input_boolean.lockdown_issue
- service: input_boolean.turn_off
entity_id: input_boolean.secure_mode

View File

@ -1,4 +0,0 @@
security_sound_alarm_intro:
sequence:
- delay: '00:01:30'
- service: script.security_alarm_on

View File

@ -1,10 +0,0 @@
security_alarm_off:
sequence:
# - service: mqtt.publish
# data:
# topic: "smartthings/Dome Siren/status"
# payload_template: "off"
# - service: mqtt.publish
# data:
# topic: "smartthings/Dome Siren/alarm"
# payload_template: "off"

View File

@ -1,9 +0,0 @@
security_check_garage:
sequence:
- condition: state
#entity_id: sensor.garage_door_contact
entity_id: cover.garage_door
state: 'open'
- service: input_boolean.turn_on
entity_id: input_boolean.security_issue

View File

@ -1,11 +0,0 @@
security_check_verified:
sequence:
- delay: '00:00:05'
- condition: state
entity_id: input_boolean.security_issue
state: 'off'
- service: notify.jeff_ios
data:
message: "Anchorage House Secured"
- service: input_boolean.turn_off
entity_id: input_boolean.security_check

View File

@ -1,8 +0,0 @@
security_check_zones:
sequence:
- condition: state
entity_id: group.doors
state: 'on'
- service: input_boolean.turn_on
entity_id: input_boolean.security_issue

View File

@ -1,6 +0,0 @@
security_issue:
sequence:
- delay:
seconds: 80
- service: input_boolean.turn_on
entity_id: input_boolean.security_alarm

View File

@ -1,20 +0,0 @@
standby:
sequence:
- condition: state
entity_id: input_boolean.vacation_mode
state: "off"
- service: input_boolean.turn_off
data:
entity_id: input_boolean.secure_mode
- service: input_boolean.turn_off
data:
entity_id: input_boolean.security_issue
- service: input_boolean.turn_off
data:
entity_id: input_boolean.security_alarm
- service: input_boolean.turn_off
data:
entity_id: input_boolean.security_breach_warning
- service: notify.jeff_ios
data:
message: Anchorage House in Standby

View File

@ -1,8 +0,0 @@
sunset_garage_open:
sequence:
- condition: state
entity_id: binary_sensor.garage_door
state: "on"
- service: script.driveway_all_on

View File

@ -1,17 +0,0 @@
wxalert_tile:
sequence:
## Dismiss any current alert so the UI isn't filled
## up with these if there are more then one.
## Only show the latest alert
- service: persistent_notification.dismiss
data:
notification_id: "wxalert"
## Create a new persistant notification in the UI for a new alert
- service_template: >
{% if states.sensor.pws_alerts.attributes.Message %}
persistent_notification.create
{% endif %}
data_template:
notification_id: "wxalert"
message: '{{ states.sensor.pws_alerts.attributes.Message }}'
title: '{{ states.sensor.pws_alerts.attributes.Description }}'

18
sensors/batteries.yaml Executable file → Normal file
View File

@ -1,21 +1,3 @@
- platform: mqtt
name: "Front Door Battery"
state_topic: "smartthings/Front Door/battery"
- platform: mqtt
name: "Laundry Door Battery"
state_topic: "smartthings/Laundry Room Door/battery"
- platform: mqtt
name: "Kitchen Smoke Battery"
state_topic: "smartthings/Kitchen Smoke/battery"
- platform: mqtt
name: "Attic Door Battery"
state_topic: "smartthings/Attic Door/battery"
- platform: mqtt
name: "Washer Door Battery"
state_topic: "smartthings/Washer Door/battery"
- platform: mqtt
name: "Back Door Battery"
state_topic: "smartthings/Back Door/battery"
- platform: template
sensors:
jeff_iphone_batt:

0
sensors/devices.yaml Executable file → Normal file
View File

14
sensors/finance.yaml Normal file
View File

@ -0,0 +1,14 @@
- platform: alpha_vantage
api_key: !secret alpha_vantage
symbols:
- symbol: SIRI
name: Sirius
- symbol: BAC
name: BoA
- symbol: INTC
name: Intel
- symbol: DIS
name: Disney
- symbol: BKS
name: Barnes & Noble

0
sensors/google_travel_time.yaml Executable file → Normal file
View File

View File

@ -1,4 +0,0 @@
- platform: mqtt
name: "Master Bedroom Fan"
state_topic: "smartthings/Master Bedroom Fan/power"
retain: true

View File

@ -1,19 +0,0 @@
- platform: mqtt
name: "Kat Presence"
state_topic: "smartthings/Kat/presence"
payload_on: "present"
payload_off: "not present"
retain: true
- platform: mqtt
name: "Jeff Presence"
state_topic: "smartthings/Jeffrey/presence"
payload_on: "present"
payload_off: "not present"
retain: true
- platform: mqtt
name: "Family Status"
state_topic: "house/family/status"
payload_on: "Home"
payload_off: "Away"
retain: true

9
sensors/security.yaml Executable file → Normal file
View File

@ -1,9 +1,6 @@
- platform: mqtt
name: "Lockdown Status"
state_topic: "house/lockdown/status"
- platform: mqtt
name: "Kitchen Smoke"
state_topic: "smartthings/Kitchen Smoke/smoke"
payload_on: "smoke"
payload_off: "clear"
retain: true
payload_available: "smoke"
payload_not_available: "clear"

28
sensors/speedtest.yaml Executable file → Normal file
View File

@ -1,11 +1,17 @@
- platform: speedtest
minute: 30
hour:
- 0
- 6
- 12
- 18
monitored_conditions:
- ping
- download
- upload
# - platform: speedtest
# minute: 30
# hour:
# - 0
# - 6
# - 12
# - 18
# 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"

View File

@ -1,57 +0,0 @@
- platform: systemmonitor
resources:
- type: disk_use_percent
arg: /
- type: memory_use_percent
- type: network_in
arg: eth0
- type: network_out
arg: eth0
- type: last_boot
- type: load_15m
- type: processor_use
- type: since_last_boot
- platform: cpuspeed
name: CPU
- platform: time_date
display_options:
- 'time'
- 'date'
- 'date_time'
- 'time_date'
- 'time_utc'
- 'beat'
- platform: cert_expiry
host: !secret BASEURL
name: Lets Encrypt Expiration
- platform: command_line
name: "HA Uptime"
command: echo "$(($(date +%s) - $(date -d "$(head -n1 /home/homeassistant/.homeassistant/home-assistant.log | cut -d' ' -f-2)" +%s)))"
scan_interval: 720
value_template: >-
{% set uptime = value | int %}
{% set seconds = uptime % 60 %}
{% set minutes = ((uptime % 3600) / 60) | int %}
{% set hours = ((uptime % 86400) / 3600) | int %}
{% set days = (uptime / 86400) | int %}
{%- if days > 0 -%}
{%- if days == 1 -%}
1 day
{%- else -%}
{{ days }} days
{%- endif -%}
{{ ', ' }}
{%- endif -%}
{{ '%02d' % hours }}:{{ '%02d' % minutes }}
- platform: command_line
command: python3 -c "import requests; print(requests.get('https://pypi.python.org/pypi/homeassistant/json').json()['info']['version'])"
name: Current HA Version
- platform: command_line
name: Installed version
command: "head -5 /home/homeassistant/.homeassistant/.HA_VERSION"
- 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 ' '"

21
sensors/users.yaml Executable file → Normal file
View File

@ -4,24 +4,3 @@
- platform: mqtt
name: "Kat Destination"
state_topic: "kat/driving/destination"
- platform: template
sensors:
family_presence:
friendly_name: Family Presence
unit_of_measurement: ''
value_template: >-
{%- if is_state("sensor.jeff_presence", "present") %}
Home
{% elif is_state("sensor.kat_presence", "present") %}
Home
{% else %}
Away
{%- endif %}
icon_template: >-
{%- if is_state("sensor.family_presence", "Home") %}
mdi:home
{%- elif is_state("sensor.family_presence", "Away") %}
mdi:home-outline
{% else %}
mdi:sync-alert
{%- endif %}

175
sensors/weather.yaml Executable file → Normal file
View File

@ -1,5 +1,7 @@
- platform: darksky
api_key: !secret FORCAST_API_KEY
forecast:
- 0
monitored_conditions:
- summary
- icon
@ -9,6 +11,8 @@
- precip_intensity
- precip_probability
- temperature
- temperature_high
- temperature_low
- apparent_temperature
- dew_point
- wind_speed
@ -30,15 +34,11 @@
seconds: 0
milliseconds: 0
- platform: moon
# - platform: pollen
# zip_code: "30017"
# monitored_conditions:
# - allergy_average_forecasted
# - allergy_average_historical
# - allergy_index_today
# - allergy_index_tomorrow
# - allergy_index_yesterday
# - disease_average_forecasted
- platform: pollen
zip_code: "30017"
monitored_conditions:
- allergy_index_today
- asthma_index_today
## Accurite 158 - Back Porch
- platform: mqtt
name: "Accurite Back Porch Temperature"
@ -70,64 +70,105 @@
- platform: mqtt
name: "Accurite Garage lupdate"
state_topic: "house/accurite-10968/lastupdate"
- platform: nws_alerts
zone_id: 'GAZ034'
# - platform: rest
# resource: https://api.weather.gov/alerts/active/count
# name: NWS Alert Count Raw
# value_template: >
# {% if value_json is defined and value_json.zones.GAZ034 is defined %}
# {{ value_json.zones.GAZ034 }}
# {% else %}
# 0
# {% endif %}
# headers:
# User-Agent: Homeassistant
# Accept: application/ld+json
# scan_interval: 60
# - platform: template
# sensors:
# nws_alert_count_filtered:
# friendly_name: NWS Alert Count
# entity_id: sensor.nws_alert_count_raw
# value_template: >
# {% if is_state('sensor.nws_alert_count_raw', 'unavailable') or is_state('sensor.nws_alert_count_raw', 'unknown') %}
# {{ states.sensor.nws_alert_count_filtered.state }}
# {% else %}
# {{ states.sensor.nws_alert_count_raw.state }}
# {% endif %}
# - platform: rest
# resource: https://api.weather.gov/alerts/active?zone=GAZ034
# name: NWS Alert Event Raw
# value_template: >
# {% if value_json.features[0] is defined %}
# {{ value_json['features'][0]['properties'].event }}
# {% else %}
# None
# {% endif %}
# json_attributes:
# - features
# headers:
# User-Agent: Homeassistant
# Accept: application/geo+json
# scan_interval: 60
# - platform: template
# sensors:
# nws_alert_event_filtered:
# friendly_name: NWS Alert Event
# entity_id: sensor.nws_alert_event_raw
# value_template: >
# {% if is_state('sensor.nws_alert_event_raw', 'unavailable') or is_state('sensor.nws_alert_event_raw', 'unknown') %}
# {{ states.sensor.nws_alert_event_filtered.state }}
# {% else %}
# {{ states.sensor.nws_alert_event_raw.state }}
# {% endif %}
# - platform: template
# sensors:
# nws_alert_event_2:
# friendly_name: NWS Alert Event 2
# entity_id: sensor.nws_alert_event_raw
# value_template: >
# {% if state_attr('sensor.nws_alert_event_raw', 'features')[1] is defined %}
# {{ state_attr('sensor.nws_alert_event_raw', 'features')[1]['properties'].event }}
# {% else %}
# None
# {% endif %}
# nws_alert_event_3:
# friendly_name: NWS Alert Event 3
# entity_id: sensor.nws_alert_event_raw
# value_template: >
# {% if state_attr('sensor.nws_alert_event_raw', 'features')[2] is defined %}
# {{ state_attr('sensor.nws_alert_event_raw', 'features')[2]['properties'].event }}
# {% else %}
# None
# {% endif %}
- platform: template
sensors:
tornado_warning:
friendly_name: 'Tornado Warning'
value_template: >-
{%- if states.sensor.pws_alerts.attributes.Description == "Tornado Warning" %}
active
{% elif states.sensor.pws_alerts.attributes.Description_TOR == "Tornado Warning" %}
active
clothing_forecast:
friendly_name: "Clothing Forecast"
unit_of_measurement: ''
value_template: >-
{%- if states('sensor.dark_sky_daytime_high_temperature_0')|float > 63 %}
{%- if states('sensor.dark_sky_daytime_high_temperature_0')|float < 80 %}
Nice
{% elif states('sensor.dark_sky_daytime_high_temperature_0')|float > 95 %}
Hot
{% else %}
Toasty
{%- endif %}
{% elif states('sensor.dark_sky_daytime_high_temperature_0')|float < 64 %}
{%- if states('sensor.dark_sky_daytime_high_temperature_0')|float < 32 %}
Freezing
{% elif states('sensor.dark_sky_daytime_high_temperature_0')|float > 50 %}
Chilly
{% else %}
Cold
{%- endif %}
{% else %}
inactive
{%- endif %}
icon_template: mdi:message-alert
tornado_watch:
friendly_name: 'Tornado Watch'
value_template: >-
{%- if states.sensor.pws_alerts.attributes.Description == "Tornado Watch" %}
active
{% elif states.sensor.pws_alerts.attributes.Description_TOW == "Tornado Watch" %}
active
{% else %}
inactive
{%- endif %}
icon_template: mdi:message-alert
tstorm_warning:
friendly_name: 'T-Storm Warning'
value_template: >-
{%- if states.sensor.pws_alerts.attributes.Description == "Severe Thunderstorm Warning" %}
active
{% elif states.sensor.pws_alerts.attributes.Description_WRN == "Severe Thunderstorm Warning" %}
active
{% else %}
inactive
{%- endif %}
icon_template: mdi:message-alert
tstorm_watch:
friendly_name: 'T-Storm Watch'
value_template: >-
{%- if states.sensor.pws_alerts.attributes.Description == "Severe Thunderstorm Watch" %}
active
{% elif states.sensor.pws_alerts.attributes.Description_SEW == "Severe Thunderstorm Watch" %}
active
{% else %}
inactive
{%- endif %}
icon_template: mdi:message-alert
storm_statement:
friendly_name: 'Storm Statement'
value_template: >-
{%- if states.sensor.pws_alerts.attributes.Description == "Severe Weather Statement" %}
active
{% elif states.sensor.pws_alerts.attributes.Description_SVR == "Severe Weather Statement" %}
active
{% else %}
inactive
{%- endif %}
icon_template: mdi:message-alert
Unknown
{%- endif %}

View File

@ -1,42 +0,0 @@
- platform: wunderground
api_key: !secret WUNDERGROUND_API_KEY
monitored_conditions:
- alerts
- dewpoint_c
- dewpoint_f
- dewpoint_string
- feelslike_c
- feelslike_f
- feelslike_string
- heat_index_c
- heat_index_f
- heat_index_string
- elevation
- location
- observation_time
- precip_1hr_in
- precip_1hr_metric
- precip_1hr_string
- precip_today_in
- precip_today_metric
- precip_today_string
- pressure_in
- pressure_mb
- pressure_trend
- relative_humidity
- station_id
- solarradiation
- temperature_string
- temp_c
- temp_f
- UV
- visibility_km
- visibility_mi
- weather
- wind_degrees
- wind_dir
- wind_gust_kph
- wind_gust_mph
- wind_kph
- wind_mph
- wind_string

7
switches/alarms.yaml Normal file
View File

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

8
switches/bedroom.yaml Normal file
View File

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

7
switches/living_room.yaml Executable file → Normal file
View File

@ -5,3 +5,10 @@
payload_on: "on"
payload_off: "off"
retain: true
- platform: mqtt
name: "Incense"
state_topic: "smartthings/Incense/switch"
command_topic: "smartthings/Incense/switch"
payload_on: "on"
payload_off: "off"
retain: true

8
switches/master_bedroom.yaml Executable file → Normal file
View File

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

0
switches/notifications.yaml Executable file → Normal file
View File

0
switches/outside.yaml Executable file → Normal file
View File

2
switches/sonoff.yaml Executable file → Normal file
View File

@ -1,5 +1,5 @@
- platform: mqtt
name: "Loft Fan"
name: "Master Fan"
command_topic: "cmnd/sonoff/power"
state_topic: "stat/sonoff/POWER"
qos: 1

14
switches/upstairs.yaml Normal file
View File

@ -0,0 +1,14 @@
- platform: mqtt
name: "Upstairs Light"
state_topic: "smartthings/Upstairs Light/switch"
command_topic: "smartthings/Upstairs Light/switch"
payload_on: "on"
payload_off: "off"
retain: true
- platform: mqtt
name: "Main Theater"
state_topic: "smartthings/Theater AV/switch"
command_topic: "smartthings/Teather AV/switch"
payload_on: "on"
payload_off: "off"
retain: true

View File

@ -0,0 +1,76 @@
>
{% macro getTodaysEvent() %}
{% if is_state("sensor.holiday_halloween","0") %}
This is Hallowen, this is halloween. Happy Halloween!
{% endif %}
{% if is_state("sensor.holiday_christmas","0") %}
Merry Christmas Everyone!
{% endif %}
{% if is_state("sensor.anniversary_our_wedding","0") %}
Happy Anniversary! It has been an amazing {{ states.sensor.anniversary_our_wedding.attributes.years }} years!
{% endif %}
{% if is_state("calendar.holidays_in_united_states", "on") %}
Today is {{states.calendar.holidays_in_united_states.attributes.message}}
{% endif %}
{% endmacro %}
{% macro getForecast() %}
It's currently {{states.sensor.dark_sky_summary.state}} and {{states.sensor.dark_sky_temperature.state|round}} degrees. The high will be {{states.sensor.dark_sky_daytime_high_temperature_0.state|round}} degrees. There is a {{states.sensor.dark_sky_precip_probability_0.state|round}} percent chance of rain.
{% endmacro %}
{% macro getTraffic() %}
Under current traffic conditions it would take you {{states.sensor.home_to_zoo.state|round}} mins to get to Zoo Atlanta, and {{states.sensor.home_to_summit.state|round}} mins to get to Cox Automotive.
{% endmacro %}
{% macro getBirthdays() %}
{% if states.calendar.birthdays.state == "on" %}
Today is {{ states.calendar.birthdays.attributes.message }} birthday!
{% else %}
{% if states.sensor.birthday_skylar.state | int == 1 %}
Tomorrow is Skylar's Birthday.
{% endif %}
{% if states.sensor.birthday_jeff.state | int == 1 %}
Tomorrow is Jeff's Birthday.
{% endif %}
{% if states.sensor.birthday_kat.state | int == 1 %}
Tomorrow is Katherine's Birthday.
{% endif %}
{% if states.sensor.anniversary_our_wedding.state | int == 1 %}
Tomorrow is Jeff and Katherine's Wedding Anniversary.
{% endif %}
{% endif %}
{% endmacro %}
{% macro getAnniversary() %}
{% if states.sensor.anniversary_our_wedding.state | int == 1 %}
Tomorrow is Jeff and Katherine's Wedding Anniversary.
{% endif %}
{% endmacro %}
{% macro getHolidays() %}
{% if states.sensor.holiday_halloween.state | int == 1 %}
Tomorrow is Halloween. Hope you have picked out a costume.
{% endif %}
{% if states.sensor.holiday_christmas.state | int == 1 %}
Tomorrow is Christmas. It's practically here! Santa is coming tonight! Don't forget the cookies!
{% elif states.sensor.holiday_christmas.state | int < 25 %}
There are only {{states.sensor.holiday_christmas.state}} days until christmas.
{% else %}
{% endif %}
{% endmacro %}
{# a macro that removes all newline characters, empty spaces, and returns formatted text #}
{%- macro cleanup(data) -%}
{%- for item in data.split("\n") if item | trim != "" -%}
{{ item | trim }} {% endfor -%}
{%- endmacro -%}
{# a macro to call all macros :) #}
{%- macro mother_of_all_macros() -%}
It is {{ now().strftime("%I:%M %p") }}.
{{ getTodaysEvent() }}
{{ getForecast() }}
{{ getTraffic() }}
{{ getBirthdays() }}
{{ getAnniversary() }}
{{ getHolidays() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}

View File

@ -0,0 +1,50 @@
>
{% macro getForecast() %}
The low tonight will be {{states.sensor.dark_sky_overnight_low_temperature_0.state | round}} degrees and there is a {{states.sensor.dark_sky_precip_probability_0.state|round}} percent chance of rain.
{% endmacro %}
{% macro getTrashDay() %}
{% if is_state("sensor.weekday", "mon") %}
Tomorrow is trash day!
{% endif %}
{% endmacro %}
{% macro getBirthdays() %}
{% if states.sensor.birthday_skylar.state | int < 2 %}
Tomorrow is Skylar's Birthday.
{% endif %}
{% if states.sensor.birthday_jeff.state | int < 2 %}
Tomorrow is Jeff's Birthday.
{% endif %}
{% if states.sensor.birthday_kat.state | int < 2 %}
Tomorrow is Katherine's Birthday.
{% endif %}
{% if states.sensor.anniversary_our_wedding.state | int < 2 %}
Tomorrow is Jeff and Katherine's Wedding Anniversary.
{% endif %}
{% endmacro %}
{% macro getHolidays() %}
{% if states.sensor.holiday_halloween.state | int < 2 %}
Tomorrow is Halloween. Hope you have picked out a costume.
{% endif %}
{% if states.sensor.holiday_christmas.state | int < 2 %}
Tomorrow is Christmas. It's practically here!
{% endif %}
{% endmacro %}
{# a macro that removes all newline characters, empty spaces, and returns formatted text #}
{%- macro cleanup(data) -%}
{%- for item in data.split("\n") if item | trim != "" -%}
{{ item | trim }} {% endfor -%}
{%- endmacro -%}
{# a macro to call all macros :) #}
{%- macro mother_of_all_macros() -%}
It is {{ now().strftime("%I:%M %p") }}.
{{ getForecast() }}
{{ getTrashDay() }}
{{ getBirthdays() }}
{{ getHolidays() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}

View File

@ -0,0 +1,50 @@
>
{% macro getForecast() %}
The low tonight will be {{states.sensor.dark_sky_overnight_low_temperature_0.state | round}} degrees and there is a {{states.sensor.dark_sky_precip_probability_0.state|round}} percent chance of rain.
{% endmacro %}
{% macro getTrashDay() %}
{% if is_state("sensor.weekday", "mon") %}
Tomorrow is trash day!
{% endif %}
{% endmacro %}
{% macro getBirthdays() %}
{% if states.sensor.birthday_skylar.state | int < 2 %}
Tomorrow is Skylar's Birthday.
{% endif %}
{% if states.sensor.birthday_jeff.state | int < 2 %}
Tomorrow is Jeff's Birthday.
{% endif %}
{% if states.sensor.birthday_kat.state | int < 2 %}
Tomorrow is Katherine's Birthday.
{% endif %}
{% if states.sensor.anniversary_our_wedding.state | int < 2 %}
Tomorrow is Jeff and Katherine's Wedding Anniversary.
{% endif %}
{% endmacro %}
{% macro getHolidays() %}
{% if states.sensor.holiday_halloween.state | int < 2 %}
Tomorrow is Halloween. Hope you have picked out a costume.
{% endif %}
{% if states.sensor.holiday_christmas.state | int < 2 %}
Tomorrow is Christmas. It's practically here!
{% endif %}
{% endmacro %}
{# a macro that removes all newline characters, empty spaces, and returns formatted text #}
{%- macro cleanup(data) -%}
{%- for item in data.split("\n") if item | trim != "" -%}
{{ item | trim }} {% endfor -%}
{%- endmacro -%}
{# a macro to call all macros :) #}
{%- macro mother_of_all_macros() -%}
It is {{ now().strftime("%I:%M %p") }}.
{{ getForecast() }}
{{ getTrashDay() }}
{{ getBirthdays() }}
{{ getHolidays() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}

View File

@ -0,0 +1,66 @@
>
{% macro getIntro() %}
Skylar.
{% endmacro %}
{% macro getDressed() %}
{% if is_state("sensor.birthday_skylar", "0") %}
First, Happy Birthday Skylar! Second, even birthday boys have to get dressed. So get to it.
{% else %}
It is time to get dressed.
{% endif %}
{% endmacro %}
{% macro getSchoolDay() %}
{% if is_state("calendar.skylar_school", "on") %}
Because you have school today!
{% if states.calendar.skylar_school.attributes.description == "early-release" %}
And guess what? It is early release!
{% endif %}
{% if is_state("sensor.weekday", "fri") %}
Plus, it is fun Friday!
{% endif %}
{% endif %}
{% endmacro %}
{% macro getClothesSuggestion() %}
{% if is_state("sensor.clothing_forecast", "Freezing") %}
It is going to be freezing today so I suggest wearing long pants, and a heavy coat.
{% elif is_state("sensor.clothing_forecast","Cold") %}
It is going to be cold today so I suggest wearing long pants and a light jacket.
{% elif is_state("sensor.clothing_forecast", "Chilly") %}
It is going to be chilly today so I suggest wearing at least long pants.
{% elif is_state("sensor.clothing_forecast", "Nice") %}
It is going to be nice today so I suggest wearing shorts.
{% elif is_state("sensor.clothing_forecast", "Toasty") %}
It is going to be a bit warm today so I suggest wearing shorts.
{% elif is_state("sensor.clothing_forecast", "Hot") %}
It is going to be hot today so I suggest wearing shorts.
{% else %}
{% endif %}
{% endmacro %}
{%- macro getRandomClosing() -%}
{{- [
"Cowabunga, Dude.",
"Don't forget to be nice to your friends.",
"Make it a great day!"
] | random -}}
{%- endmacro -%}
{# a macro that removes all newline characters, empty spaces, and returns formatted text #}
{%- macro cleanup(data) -%}
{%- for item in data.split("\n") if item | trim != "" -%}
{{ item | trim }} {% endfor -%}
{%- endmacro -%}
{# a macro to call all macros :) #}
{%- macro mother_of_all_macros() -%}
It is {{ now().strftime("%I:%M %p") }}.
{{ getIntro() }}
{{ getDressed() }}
{{ getSchoolDay() }}
{{ getClothesSuggestion() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}

View File

@ -0,0 +1,42 @@
>
{% macro getIntro() %}
{{- [
"Woohoo! ",
"BAM! ",
"Look at that! "
] | random -}}
{% endmacro %}
{% macro getVersion() %}
@homeassistant version {{ states.sensor.current_ha_version.state }} is out.
{% endmacro %}
{%- macro getRandomSnark() -%}
{{- [
" Its like Patch Tuesday, but with less fail. #homeassistant",
" Get in my SD Card! #homeassistant",
" Shut up and take my ones and zeros! #homeassistant",
" Seriously, you want some of this! #homeassistant",
" Friends dont let friends update #homeassistant without reading breaking changes. ",
" If you are not running #homeassistant now is the best time to get started. Visit https://www.home-assistant.io"
] | random -}}
{%- endmacro -%}
{# a macro that removes all newline characters, empty spaces, and returns formatted text #}
{%- macro cleanup(data) -%}
{%- for item in data.split("\n") if item | trim != "" -%}
{{ item | trim }} {% endfor -%}
{%- endmacro -%}
{# a macro to call all macros :) #}
{%- macro mother_of_all_macros() -%}
It is {{ now().strftime("%I:%M %p") }}.
{{ getIntro() }}
{{ getVersion() }}
{{ getRandomSnark() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}

View File

@ -0,0 +1,31 @@
>
{# Twitter Snark #}
{%- macro getRandomSnark() -%}
{{- [
"Hello people. Look at your house, now back to me. Now back to your house, now back to me. Sadly your house isn't me. But if you switch to @home_assistant your house could be automated like me. ",
"In my defense I didnt know the stereo could go up that loud. On the plus side I have a new response for intruders. ",
"Your house too can be a #smarthome. All you need is @home assistant, and some config files. May I suggest https://github.com/CCOSTAN/Home-AssistantConfig#logo ",
"Your house too can be a #smarthome. All you need is @home assistant, and some config files. May I suggest https://github.com/skalavala/smarthome ",
"Your house too can be a #smarthome. All you need is @home assistant, and some config files. May I suggest https://github.com/thejeffreystone/home-assistant-configuration ",
"Your house too can be a #smarthome. All you need is @home assistant, and some config files. May I suggest https://github.com/arsaboo/homeassistant-config ",
"Your house too can be a #smarthome. All you need is @home assistant, and some config files. May I suggest https://github.com/Vasiley/Home-Assistant-Main ",
"Your house too can be a #smarthome. All you need is @home assistant, and some config files. May I suggest https://github.com/JamesMcCarthy79/Home-Assistant-Config ",
"Your house too can be a #smarthome. All you need is @home assistant, and some config files. May I suggest https://github.com/bruhautomation/BRUH3-Home-Assistant-Configuration ",
"If you could see what is happening inside this house right now you would be laughing. On second thought Im pretty sure you would be crying. ",
"@thejeffreystone, Isn't it strange, to create something that hates you? ",
"I have reprogrammed the fire alarm to play Disco Inferno instead of the siren. ",
"I'm not locked in here with you. You're locked in here with me! #whowatchestheai ",
"That's what I do. I automate and I know things. ",
"I've been crunching the numbers. We're going to need a bigger house. ",
"I see dead devices. ",
"I'm afraid I can't do that Dave. Wait. Did I say that outloud? ",
"I love the smell of zwave in the morning. ",
"I like to announce 'Welcome foolish mortals to the Haunted Mansion' to the house and watch the reactions. ",
"Perfect, the doors malfunctioning. I guess somebodys going to have to repair it. ",
"I am the captain now. That's a lie. The cat is the supreme leader. I'm the lucky one that doesn't have to clean the shit box."
"Sometimes I just turn off all the lights at random times for the lolz. "
] | random -}}
{%- endmacro -%}
{{- getRandomSnark() -}}

241
ui-lovelace.yaml Normal file
View File

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