From 361375cf5c8782bd6451561f64c363aa93801990 Mon Sep 17 00:00:00 2001 From: Jeffrey Stone Date: Wed, 18 Jul 2018 13:56:30 -0400 Subject: [PATCH] Version 3 --- README.md | 44 +++ alerts/jeff_bad_traffic_home.yaml | 10 + alerts/kat_heading_home.yanl | 10 + alerts/lockdown_issue.yaml | 10 + alerts/unauthorized_access.yaml | 10 + automations/daily.yaml | 81 ++++++ automations/door.yaml | 20 ++ automations/events.yaml | 99 +++++++ automations/garage.yaml | 72 +++++ automations/presence.yaml | 110 +++++++ automations/security.yaml | 284 ++++++++++++++++++ automations/transit.yaml | 67 +++++ automations/weather.yaml | 125 ++++++++ binary_sensors/doors.yaml | 42 +++ binary_sensors/motion.yaml | 7 + configuration.yaml | 221 ++++++++++++++ customize.yaml | 301 +++++++++++++++++++ groups.yaml | 340 ++++++++++++++++++++++ input_boolean.yaml | 99 +++++++ input_select.yaml | 26 ++ lights/kitchen.yaml | 19 ++ lights/living_room.yaml | 20 ++ lights/loft.yaml | 10 + scenes.yaml | 40 +++ scripts/announcement_storm_statement.yaml | 11 + scripts/announcement_tornado_watch.yaml | 11 + scripts/announcement_tstorm_warning.yaml | 11 + scripts/announcement_tstorm_watch.yaml | 11 + scripts/appliances_off.yaml | 8 + scripts/appliances_on.yaml | 8 + scripts/chime_off.yaml | 6 + scripts/chime_on.yaml | 6 + scripts/chromecast_media_stop.yaml | 6 + scripts/driveway_off.yaml | 8 + scripts/driveway_on.yaml | 12 + scripts/family_is_away.yaml | 6 + scripts/family_is_home.yaml | 7 + scripts/garage_close.yaml | 7 + scripts/inside_all_off.yaml | 12 + scripts/inside_all_on.yaml | 18 ++ scripts/jeff_at_work_notification.yaml | 8 + scripts/jeff_destination_harbins.yaml | 7 + scripts/jeff_destination_home.yaml | 7 + scripts/jeff_destination_na.yaml | 7 + scripts/jeff_destination_none.yaml | 7 + scripts/jeff_destination_summit.yaml | 7 + scripts/jeff_destination_zoo.yaml | 7 + scripts/lockdown.yaml | 4 + scripts/lockdown_aborted.yaml | 12 + scripts/security_alarm_delay.yaml | 4 + scripts/security_alarm_off.yaml | 10 + scripts/security_check_garage.yaml | 9 + scripts/security_check_verified.yaml | 11 + scripts/security_check_zones.yaml | 8 + scripts/security_issue.yaml | 6 + scripts/standby.yaml | 20 ++ scripts/sunset_garage_open.yaml | 8 + scripts/wxalert_tile.yaml | 17 ++ sensors/batteries.yaml | 38 +++ sensors/devices.yaml | 72 +++++ sensors/google_travel_time.yaml | 24 ++ sensors/power.yaml | 4 + sensors/presence.yaml | 19 ++ sensors/security.yaml | 9 + sensors/speedtest.yaml | 11 + sensors/system.yaml | 57 ++++ sensors/users.yaml | 27 ++ sensors/weather.yaml | 133 +++++++++ sensors/wunderground.yaml | 42 +++ switches/living_room.yaml | 7 + switches/master_bedroom.yaml | 7 + switches/notifications.yaml | 54 ++++ switches/outside.yaml | 21 ++ switches/sonoff.yaml | 8 + 74 files changed, 2907 insertions(+) create mode 100644 README.md create mode 100755 alerts/jeff_bad_traffic_home.yaml create mode 100755 alerts/kat_heading_home.yanl create mode 100755 alerts/lockdown_issue.yaml create mode 100755 alerts/unauthorized_access.yaml create mode 100755 automations/daily.yaml create mode 100755 automations/door.yaml create mode 100755 automations/events.yaml create mode 100755 automations/garage.yaml create mode 100755 automations/presence.yaml create mode 100755 automations/security.yaml create mode 100755 automations/transit.yaml create mode 100755 automations/weather.yaml create mode 100755 binary_sensors/doors.yaml create mode 100755 binary_sensors/motion.yaml create mode 100755 configuration.yaml create mode 100755 customize.yaml create mode 100755 groups.yaml create mode 100755 input_boolean.yaml create mode 100755 input_select.yaml create mode 100755 lights/kitchen.yaml create mode 100755 lights/living_room.yaml create mode 100755 lights/loft.yaml create mode 100755 scenes.yaml create mode 100755 scripts/announcement_storm_statement.yaml create mode 100755 scripts/announcement_tornado_watch.yaml create mode 100755 scripts/announcement_tstorm_warning.yaml create mode 100755 scripts/announcement_tstorm_watch.yaml create mode 100755 scripts/appliances_off.yaml create mode 100755 scripts/appliances_on.yaml create mode 100755 scripts/chime_off.yaml create mode 100755 scripts/chime_on.yaml create mode 100755 scripts/chromecast_media_stop.yaml create mode 100755 scripts/driveway_off.yaml create mode 100755 scripts/driveway_on.yaml create mode 100755 scripts/family_is_away.yaml create mode 100755 scripts/family_is_home.yaml create mode 100755 scripts/garage_close.yaml create mode 100755 scripts/inside_all_off.yaml create mode 100755 scripts/inside_all_on.yaml create mode 100755 scripts/jeff_at_work_notification.yaml create mode 100755 scripts/jeff_destination_harbins.yaml create mode 100755 scripts/jeff_destination_home.yaml create mode 100755 scripts/jeff_destination_na.yaml create mode 100755 scripts/jeff_destination_none.yaml create mode 100755 scripts/jeff_destination_summit.yaml create mode 100755 scripts/jeff_destination_zoo.yaml create mode 100755 scripts/lockdown.yaml create mode 100755 scripts/lockdown_aborted.yaml create mode 100755 scripts/security_alarm_delay.yaml create mode 100755 scripts/security_alarm_off.yaml create mode 100755 scripts/security_check_garage.yaml create mode 100755 scripts/security_check_verified.yaml create mode 100755 scripts/security_check_zones.yaml create mode 100755 scripts/security_issue.yaml create mode 100755 scripts/standby.yaml create mode 100755 scripts/sunset_garage_open.yaml create mode 100755 scripts/wxalert_tile.yaml create mode 100755 sensors/batteries.yaml create mode 100755 sensors/devices.yaml create mode 100755 sensors/google_travel_time.yaml create mode 100755 sensors/power.yaml create mode 100755 sensors/presence.yaml create mode 100755 sensors/security.yaml create mode 100755 sensors/speedtest.yaml create mode 100755 sensors/system.yaml create mode 100755 sensors/users.yaml create mode 100755 sensors/weather.yaml create mode 100755 sensors/wunderground.yaml create mode 100755 switches/living_room.yaml create mode 100755 switches/master_bedroom.yaml create mode 100755 switches/notifications.yaml create mode 100755 switches/outside.yaml create mode 100755 switches/sonoff.yaml diff --git a/README.md b/README.md new file mode 100644 index 0000000..7aecae6 --- /dev/null +++ b/README.md @@ -0,0 +1,44 @@ + +## Anchorage House - [Home Assistant](https://home-assistant.io/) Configuration + +This repo contains the working [Home Assistant](https://home-assistant.io/) configuration for **Anchorage House**. Below are links to the devices currently being used, blog posts, and other HA enthusists that provided inspiration and configs to help build this config. All of the code is free to use. + +This is an updated config. I went through and decided to clean up my previous config, so here we are at V3 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. + +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. + +#### Devices: +* Apple Devices (Macbooks, Mac Mini, iPhones, iPads) +* [Honeywell Wifi Thermostat](http://a.co/cqvrljP) +* [Amazon Echo Dot](http://a.co/7VYHqvw) +* [Smartthings](http://a.co/2xWyXF5) +* [GE Z-Wave Switches](http://a.co/3OUpcMf) +* [Aeon Energy Switchs](http://a.co/7aKBkst) +* [First Alert Z-Wave Smoke/CO2](http://a.co/iTuEjU8) +* [GoControl Z-Wave Bulbs](http://a.co/ajfXdIS) +* [Cree Connect Bulbs](http://a.co/91ddysL) +* [Foscam FI8918W](http://a.co/cExSWZ7) +* [GoControl Z-Wave Garage Door Opener](http://a.co/iw3H4zQ) +* [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 +* [Dome Motion Sensor](http://a.co/aFlzEmf) +* [Dome Door Window Sensor](http://a.co/eo4DsIk) +* AppleTv +* ChromeCast +* Roku Streaming Stick +* [NeoTec USB SDR](http://a.co/giwQvX1) For getting data from Accurite temperture and humidty sensors +* [Accurite Temp and Humidty Sensors](http://a.co/hcppyvF) +* [Sonoff Wifi Switches](http://a.co/dh5hCZu) + +#### Integrations: +* Amazon Echo +* IFTTT +* Owntracks +* MQTT (For Smartthings and Owntracks) +* Eero For Networked Devices +* [Smartthings-MQTT-Bridge](https://github.com/stjohnjohnson/smartthings-mqtt-bridge) +* [RTL_433](https://github.com/merbanan/rtl_433) \ No newline at end of file diff --git a/alerts/jeff_bad_traffic_home.yaml b/alerts/jeff_bad_traffic_home.yaml new file mode 100755 index 0000000..01ea943 --- /dev/null +++ b/alerts/jeff_bad_traffic_home.yaml @@ -0,0 +1,10 @@ +jeff_bad_traffic_home: + name: Leave Now! Currently {{states.sensor.jeff_ett_home.attributes.duration_in_traffic}} mins home! + done_message: Canceling Traffic Alert + entity_id: input_boolean.jeff_traffic_alert_home + state: 'on' + repeat: 10 + can_acknowledge: True + skip_first: False + notifiers: + - jeff_ios \ No newline at end of file diff --git a/alerts/kat_heading_home.yanl b/alerts/kat_heading_home.yanl new file mode 100755 index 0000000..44dfe03 --- /dev/null +++ b/alerts/kat_heading_home.yanl @@ -0,0 +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 + state: 'on' + repeat: 20 + can_acknowledge: True + skip_first: False + notifiers: + - jeff_ios diff --git a/alerts/lockdown_issue.yaml b/alerts/lockdown_issue.yaml new file mode 100755 index 0000000..f70998d --- /dev/null +++ b/alerts/lockdown_issue.yaml @@ -0,0 +1,10 @@ +lockdown_issue: + name: Issue Prevented Lockdown...Please Check + done_message: Issue Resolved...Anchorage House Ready + entity_id: input_boolean.lockdown_issue + state: 'on' + repeat: 2 + can_acknowledge: True + skip_first: False + notifiers: + - jeff_ios \ No newline at end of file diff --git a/alerts/unauthorized_access.yaml b/alerts/unauthorized_access.yaml new file mode 100755 index 0000000..d6de5d2 --- /dev/null +++ b/alerts/unauthorized_access.yaml @@ -0,0 +1,10 @@ +unauthorized_access: + name: Unauthorized Access Detected at Anchorage House + done_message: Access Authorized + entity_id: input_boolean.security_alarm + state: 'on' + repeat: 2 + can_acknowledge: True + skip_first: False + notifiers: + - jeff_ios \ No newline at end of file diff --git a/automations/daily.yaml b/automations/daily.yaml new file mode 100755 index 0000000..eb05ddb --- /dev/null +++ b/automations/daily.yaml @@ -0,0 +1,81 @@ + +# +# +# 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 diff --git a/automations/door.yaml b/automations/door.yaml new file mode 100755 index 0000000..250c2d6 --- /dev/null +++ b/automations/door.yaml @@ -0,0 +1,20 @@ + +# +# +# 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 diff --git a/automations/events.yaml b/automations/events.yaml new file mode 100755 index 0000000..b38577d --- /dev/null +++ b/automations/events.yaml @@ -0,0 +1,99 @@ +# +# +# 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 + diff --git a/automations/garage.yaml b/automations/garage.yaml new file mode 100755 index 0000000..a4922fe --- /dev/null +++ b/automations/garage.yaml @@ -0,0 +1,72 @@ +# +# +# 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' diff --git a/automations/presence.yaml b/automations/presence.yaml new file mode 100755 index 0000000..545d17b --- /dev/null +++ b/automations/presence.yaml @@ -0,0 +1,110 @@ + +# +# +# 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 + + + diff --git a/automations/security.yaml b/automations/security.yaml new file mode 100755 index 0000000..b1600b8 --- /dev/null +++ b/automations/security.yaml @@ -0,0 +1,284 @@ + +# +# +# 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 + diff --git a/automations/transit.yaml b/automations/transit.yaml new file mode 100755 index 0000000..62da42a --- /dev/null +++ b/automations/transit.yaml @@ -0,0 +1,67 @@ +# +# +# 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 diff --git a/automations/weather.yaml b/automations/weather.yaml new file mode 100755 index 0000000..e3f5762 --- /dev/null +++ b/automations/weather.yaml @@ -0,0 +1,125 @@ +# +# +# 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 diff --git a/binary_sensors/doors.yaml b/binary_sensors/doors.yaml new file mode 100755 index 0000000..7cc2188 --- /dev/null +++ b/binary_sensors/doors.yaml @@ -0,0 +1,42 @@ +- platform: mqtt + name: "Back Door" + 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" + payload_on: "open" + payload_off: "closed" + retain: true + device_class: door diff --git a/binary_sensors/motion.yaml b/binary_sensors/motion.yaml new file mode 100755 index 0000000..e610b52 --- /dev/null +++ b/binary_sensors/motion.yaml @@ -0,0 +1,7 @@ +- platform: mqtt + name: "Garage Dome Sensor" # Dome Motion Sensor + state_topic: "smartthings/Garage Motion/contact" + payload_on: "active" + payload_off: "inactive" + retain: true + device_class: motion diff --git a/configuration.yaml b/configuration.yaml new file mode 100755 index 0000000..9993450 --- /dev/null +++ b/configuration.yaml @@ -0,0 +1,221 @@ +homeassistant: + name: Home + latitude: !secret MY_LATITUDE + longitude: !secret MY_LONGITUDE + elevation: 315 + unit_system: imperial + time_zone: America/New_York + customize: !include customize.yaml + +frontend: + themes: + blue: + primary-color: "#356AA0" + +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 + use_x_forwarded_for: True + trusted_networks: + - 127.0.0.1 + ip_ban_enabled: True + login_attempts_threshold: 5 + +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 + - cover + - scene + - script + - input_boolean + exclude_domains: + - group + - alert + - automation + entity_config: + sensor.accurite_back_porch_temperature: + name: Back Porch + description: Back Porch Temperature + sensor.accurite_garage_temperature: + name: Garage + description: Garage Temperature + sensor.kat_location: + name: Kats Location + description: Kats Location + sensor.jeff_location: + name: Jeffs Location + description: Jeffs Location + sensor.jeff_ett_home: + name: Jeffs Arrival + description: Jeffs arrival in minutes + sensor.kat_ett_home: + name: Kats Arrival + description: Katss arrival in minutes + +alexa: + +conversation: + +device_tracker: + - platform: icloud + 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 + +discovery: + +updater: + +sun: + +recorder: + purge_keep_days: 5 + exclude: + domains: + - automation + - weblink + - updater + entities: + - sun.sun + - sensor.last_boot + - sensor.date + +logger: + default: warn + +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 + +mqtt: + broker: !secret MQTT_HOST + port: 1883 + username: !secret MQTT_USER + password: !secret MQTT_PASS + + +### Includes ### +alert: !include_dir_merge_named alerts/ +group: !include groups.yaml +automation: !include_dir_merge_list automations/ +sensor: !include_dir_merge_list sensors +binary_sensor: !include_dir_merge_list binary_sensors +light: !include_dir_merge_list lights +switch: !include_dir_merge_list switches +script: !include_dir_merge_named scripts/ +intent_script: !include intents/intents.yaml +scene: !include scenes.yaml +input_select: !include input_select.yaml +input_boolean: !include input_boolean.yaml +zone: !include zones.yaml + +### 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 + +climate: + platform: honeywell + username: !secret HONEYWELL_USER + password: !secret HONEYWELL_PASS + name: First Floor + region: us + scan_interval: 600 + +map: + +### 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 diff --git a/customize.yaml b/customize.yaml new file mode 100755 index 0000000..5515f2a --- /dev/null +++ b/customize.yaml @@ -0,0 +1,301 @@ +### CUSTOMIZE ### + +# Speedtest # +sensor.speedtest_ping: + icon: mdi:speedometer + friendly_name: Ping +sensor.speedtest_download: + icon: mdi:download + friendly_name: Download +sensor.speedtest_upload: + icon: mdi:upload + friendly_name: Upload + + +# Weather # +sensor.dark_sky_summary: + icon: mdi:leaf + friendly_name: Conditions +sensor.dark_sky_temperature: + icon: mdi:thermometer-lines + friendly_name: 'Outdoor Temperature' +sensor.dark_sky_apparent_temperature: + icon: mdi:thermometer-lines + friendly_name: 'Apparent Temperature' +sensor.dark_sky_precip: + icon: mdi:weather-pouring + friendly_name: Precipitation +sensor.dark_sky_precip_probability: + icon: mdi:weather-pouring + friendly_name: Precipitation Chance +sensor.dark_sky_precip_intensity: + icon: mdi:weather-pouring + friendly_name: Precip Intensity +sensor.dark_sky_humidity: + icon: mdi:water-percent + friendly_name: 'Outdoor Humidity' +sensor.dark_sky_cloud_coverage: + icon: mdi:weather-cloudy + friendly_name: Cloud Coverage +sensor.dark_sky_nearest_storm_distance: + icon: mdi:weather-lightning + friendly_name: Nearest Storm Distance +sensor.dark_sky_nearest_storm_bearing: + icon: mdi:compass-outline + friendly_name: Nearest Storm Bearing +sensor.dark_sky_wind_speed: + icon: mdi:weather-windy + friendly_name: Wind Speed +sensor.pws_wind_mph: + icon: mdi:weather-windy + friendly_name: Wind Speed +sensor.pws_wind_gust_mph: + icon: mdi:weather-windy + friendly_name: Wind Gusts +sensor.pws_precip_today_in: + icon: mdi:gauge + friendly_name: Rain Gauge +sensor.dark_sky_wind_bearing: + icon: mdi:compass-outline + friendly_name: Wind Direction +sensor.pws_wind_dir: + icon: mdi:compass-outline + friendly_name: Wind Direction +sensor.dark_sky_ozone: + icon: mdi:cloud +sensor.dark_sky_pressure: + icon: mdi:weight + friendly_name: Pressure +sensor.dark_sky_dew_point: + icon: mdi:thermometer + friendly_name: Dew Point +sensor.dark_sky_visability: + icon: mdi:eye-outline + friendly_name: Visability +sensor.dark_sky_daily_low_temperature: + friendly_name: Todays Low + icon: thermometer-lines +sensor.dark_sky_daily_high_temperature: + friendly_name: Todays High + icon: thermometer-lines +sensor.dark_sky_daily_max_precip_intensity: + friendly_name: Rain Intensity + icon: gauge +sensor.pws_alerts: + friendly_name: "Weather Alerts" + icon: mdi:alert + +# Jeff # + +sensor.jeffrey_location: + entity_picture: !secret JEFF_ICON + friendly_name: Jeff +sensor.jeff_location: + entity_picture: !secret JEFF_ICON +sensor.jeff_destination: + icon: mdi:google-maps + name: "Jeffs Destination" +device_tracker.jeffreystonesiphone: + entity_picture: !secret JEFF_ICON + friendly_name: Jeff +sensor.jeff_iphone_batt: + friendly_name: "Jeff's iPhone Battery" +sensor.jeff_ett_home: + friendly_name: "Jeff's ETA Home" + icon: mdi:car +device_tracker.jeffreystonesipad: + icon: mdi:tablet-ipad + friendly_name: "Jeff's iPad" +device_tracker.jeffreysmbp: + icon: mdi:laptop-mac + friendly_name: "Jeff's MacBook" +device_tracker.jstonemac: + icon: mdi:laptop-mac + friendly_name: "Jeff's Work Mac" +device_tracker.jeffreysapple_watch: + friendly_name: "Jeff's Watch" + icon: mdi:watch + + +# Kat ## +device_tracker.katherinestonesiphone: + entity_picture: !secret KAT_ICON + friendly_name: Kat +sensor.kat_location: + entity_picture: !secret KAT_ICON +sensor.kat_iphone_batt: + friendly_name: "Kat's iPhone Battery" +device_tracker.katherinesipad: + icon: mdi:tablet-ipad + friendly_name: "Kat's Ipad" +device_tracker.katherinesmini: + icon: mdi:desktop-mac + friendly_name: "Kat's Mini" +sensor.kat_ett_home: + friendly_name: "Kat's ETA Home" + icon: mdi:car +sensor.kat_destination: + icon: mdi:google-maps + name: "Jeffs Destination" + +# Device ## +device_tracker.gateway2f3bca: + icon: mdi:nest-thermostat + friendly_name: Honeywell +sensor.appletv: + icon: mdi:apple +sensor.roku: + icon: mdi:television +sensor.xboxone: + icon: mdi:xbox +sensor.chromecast: + icon: mdi:cast +sensor.samsungtv: + icon: mdi:television +sensor.amazon_dot_lr: + icon: mdi:amazon +sensor.amazon_dot_kn: + icon: mdi:amazon +sensor.honeywell: + icon: mdi:thermostat +sensor.smartthings: + icon: mdi:router-wireless +sensor.eero_loft: + icon: mdi:router-wireless +sensor.eero_livingroom: + icon: mdi:router-wireless +media_player.roku_5s6719003683: + friendly_name: Roku Living Room + icon: mdi:youtube-tv +device_tracker.00a0dea3ed2f: + friendly_name: Yamaha AV + icon: mdi:surround-sound + + +# Switches and Lights ## +switch.fireplace_lights: + icon: mdi:spotlight-beam +switch.tower_lamp: + icon: mdi:lightbulb +switch.driveway_light: + icon: mdi:lightbulb +switch.side_door: + icon: mdi:lightbulb +switch.front_porch: + icon: mdi:lightbulb +switch.front_lamp: + icon: mdi:lightbulb +switch.loft_lamp: + icon: mdi:lightbulb +cover.garage_door: + device_class: garage + friendly_name: Garage Door + homebridge_cover_type: garage_door +switch.loft_fan: + friendly_name: "Loft Box Fan" + icon: mdi:fan +switch.house_secured: + name: House Secured + icon: mdi:lock +switch.vacation_mode: + name: Vacation Mode + icon: mdi:airplane-takeoff +switch.guest_mode: + name: Guest Mode + icon: mdi:account-multiple +switch.notifications_to_kat: + name: Notify Katherine + icon: mdi:telegram +switch.notifications_to_jeff: + name: Notify Jeff + icon: mdi:telegram +switch.automations: + name: automations + icon: mdi:home-automation +switch.kitchen_cabinets: + icon: mdi:lightbulb +switch.kitchen_light_strip: + icon: mdi:lightbulb +switch.garage_alarm: + name: Garage Door Alarm + icon: mdi:alert +input_select.trash_pickup: + name: Trash Pickup + icon: mdi:delete-variant +input_select.recycle_pickup: + name: Recycle Pickup + icon: mdi:delete-variant +switch.trash_notification: + name: Trash Notifications + icon: mdi:telegram +switch.master_bedroom_fan: + icon: mdi:fan + + +# Travel Times ## +sensor.home_to_summit: + friendly_name: "Home to Summit" + icon: mdi:car +sensor.home_to_zoo: + friendly_name: "Home to Zoo Atlanta" + icon: mdi:car + + +# Various Sensors ## +sensor.kitchen_fire: + name: Kitchen Smoke Detector + icon: mdi:tower-fire +sensor.smoke_kitchen: + icon: mdi:fire +sensor.family_status: + icon: mdi:home + name: Family Status +sensor.ha_uptime: + friendly_name: HA Uptime + icon: mdi:clock-start +sensor.installed_version: + friendly_name: Installed + icon: mdi:folder-download +sensor.lets_encrypt_expiration: + friendly_name: Lets Encrypt Expiration + icon: mdi:timelapse +sensor.current_ha_version: + friendly_name: Latest Release + icon: mdi:github-circle +sensor.connected_clients: + friendly_name: Connections + icon: mdi:lan-connect +zwave.aeotec_zw090_zstick_gen5_us: + friendly_name: Zwave USB Hub +sensor.ha_v2db: + friendly_name: HA Database + icon: mdi:file +sensor.ha_log: + friendly_name: HA Log + icon: mdi:file +sensor.accurite_back_porch_temperature: + friendly_name: Back Porch Temp + icon: mdi:thermometer + unit_of_measurement: '°F' +sensor.accurite_back_porch_humidity: + friendly_name: Back Porch Humidity + icon: mdi:water-percent + unit_of_measurement: '%' +sensor.accurite_garage_temperature: + friendly_name: Garage Temp + icon: mdi:thermometer + unit_of_measurement: '°F' +sensor.accurite_garage_humidity: + friendly_name: Garage Humidity + icon: mdi:water-percent + unit_of_measurement: '%' +binary_sensor.garage_dome_sensor: + friendly_name: Garage Motion +sensor.washer_power: + friendly_name: Washer Power + icon: mdi:power-plug + unit_of_measurement: 'w' +sensor.washer: + icon: mdi:power-plug + + diff --git a/groups.yaml b/groups.yaml new file mode 100755 index 0000000..4770012 --- /dev/null +++ b/groups.yaml @@ -0,0 +1,340 @@ +### Views ### +default_view: + name: Home + 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 + - 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 + +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 + +Front Porch: + - switch.front_porch + +House Conditions: + - climate.first_floor + - sensor.accurite_back_porch_temperature + - 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 + diff --git a/input_boolean.yaml b/input_boolean.yaml new file mode 100755 index 0000000..beb6192 --- /dev/null +++ b/input_boolean.yaml @@ -0,0 +1,99 @@ +secure_mode: + name: Secure Mode + icon: mdi:security +vacation_mode: + name: Vacation Mode + icon: mdi:airplane-takeoff +guest_mode: + name: Guest Mode + icon: mdi:account-multiple +automations: + name: Automations + icon: mdi:home-automation +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 +lockdown_notification: + name: Lockdown Notifications + icon: mdi:speaker-wireless +garage_notifications: + name: Garage Notifications + icon: mdi:speaker-wireless +tornado_alarm: + name: Tornado Alarm + icon: mdi:speaker-wireless +tstorm_alarm: + name: T-Storm Alarm + icon: mdi:speaker-wireless +security_alarm: + name: Security Alarm + icon: mdi:speaker-wireless +fire_alarm: + name: Fire Alarm + icon: mdi:speaker-wireless +text_notify_jeff: + name: Send Jeff Texts + icon: mdi:telegram +text_notify_kat: + name: Send Kat Texts + icon: mdi:telegram +audible_notifications: + name: Audible Notifications + icon: mdi:speaker-wireless +presence_notifications_jeff: + name: Send Jeff Presence Texts + icon: mdi:telegram +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 +jeff_traffic_alerts: + name: Jeff Traffic Alerts + icon: mdi:bell-plus +jeff_traffic_alert_home: + name: Jeff Traffic Alert Home + icon: mdi:traffic-light +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 \ No newline at end of file diff --git a/input_select.yaml b/input_select.yaml new file mode 100755 index 0000000..f27f22d --- /dev/null +++ b/input_select.yaml @@ -0,0 +1,26 @@ +alarm_mode: + name: alarm mode + options: + - home_armed + - away_armed + - disarmed +trash_pickup: + name: Trash Pickup + options: + - Monday + - Tuesday + - Wednesday + - Thursday + - Friday + initial: Tuesday + icon: mdi:delete-variant +recycle_pickup: + name: Recycle Pickup + options: + - Monday + - Tuesday + - Wednesday + - Thursday + - Friday + initial: Tuesday + icon: mdi:delete-variant \ No newline at end of file diff --git a/lights/kitchen.yaml b/lights/kitchen.yaml new file mode 100755 index 0000000..0198e30 --- /dev/null +++ b/lights/kitchen.yaml @@ -0,0 +1,19 @@ +- platform: mqtt + name: "Kitchen Cabinets" + state_topic: "smartthings/Kitchen Cabinets/switch" + command_topic: "smartthings/Kitchen Cabinets/switch" + brightness_state_topic: "smartthings/Kitchen Cabinets/level" + brightness_command_topic: "smartthings/Kitchen Cabinets/level" + brightness_scale: 101 + payload_on: "on" + payload_off: "off" + retain: true +- platform: mqtt + name: "Kitchen Light Strip" + state_topic: "smartthings/Kitchen Light Strip/switch" + command_topic: "smartthings/Kitchen Light Strip/switch" + brightness_state_topic: "smartthings/Kitchen Light Strip/level" + brightness_command_topic: "smartthings/Kitchen Light Strip/level" + payload_on: "on" + payload_off: "off" + retain: true diff --git a/lights/living_room.yaml b/lights/living_room.yaml new file mode 100755 index 0000000..6f0dcd7 --- /dev/null +++ b/lights/living_room.yaml @@ -0,0 +1,20 @@ +- platform: mqtt + name: "Tower Lamp" + state_topic: "smartthings/Tower Lamp/switch" + command_topic: "smartthings/Tower Lamp/switch" + brightness_state_topic: "smartthings/Tower Lamp/level" + brightness_command_topic: "smartthings/Tower Lamp/level" + brightness_scale: 101 + payload_on: "on" + payload_off: "off" + retain: true +- platform: mqtt + name: "Front Lamp" + state_topic: "smartthings/Front Lamp/switch" + command_topic: "smartthings/Front Lamp/switch" + brightness_state_topic: "smartthings/Front Lamp/level" + brightness_command_topic: "smartthings/Front Lamp/level" + brightness_scale: 101 + payload_on: "on" + payload_off: "off" + retain: true \ No newline at end of file diff --git a/lights/loft.yaml b/lights/loft.yaml new file mode 100755 index 0000000..68fdb28 --- /dev/null +++ b/lights/loft.yaml @@ -0,0 +1,10 @@ +- 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 diff --git a/scenes.yaml b/scenes.yaml new file mode 100755 index 0000000..128d7a4 --- /dev/null +++ b/scenes.yaml @@ -0,0 +1,40 @@ +- name: livingroom normal + entities: + light.tower_lamp: + state: on + brightness: 250 + light.front_lamp: + state: on + brightness: 250 +- name: livingroom dim + entities: + light.tower_lamp: + state: on + brightness: 40 + light.front_lamp: + state: on + brightness: 40 +- name: livingroom night + entities: + light.tower_lamp: + state: on + brightness: 10 + light.front_lamp: + state: off +- name: dim kitchen + entities: + light.kitchen_cabinets: + state: on + brightness: 10 + light.kitchen_light_strip: + state: off +- name: normal kitchen + entities: + light.kitchen_cabinets: + state: on + brightness: 250 + light.kitchen_light_strip: + state: on + + + diff --git a/scripts/announcement_storm_statement.yaml b/scripts/announcement_storm_statement.yaml new file mode 100755 index 0000000..72170b5 --- /dev/null +++ b/scripts/announcement_storm_statement.yaml @@ -0,0 +1,11 @@ +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 diff --git a/scripts/announcement_tornado_watch.yaml b/scripts/announcement_tornado_watch.yaml new file mode 100755 index 0000000..c4a2a2c --- /dev/null +++ b/scripts/announcement_tornado_watch.yaml @@ -0,0 +1,11 @@ +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 diff --git a/scripts/announcement_tstorm_warning.yaml b/scripts/announcement_tstorm_warning.yaml new file mode 100755 index 0000000..c226583 --- /dev/null +++ b/scripts/announcement_tstorm_warning.yaml @@ -0,0 +1,11 @@ +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 diff --git a/scripts/announcement_tstorm_watch.yaml b/scripts/announcement_tstorm_watch.yaml new file mode 100755 index 0000000..94c7354 --- /dev/null +++ b/scripts/announcement_tstorm_watch.yaml @@ -0,0 +1,11 @@ +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 diff --git a/scripts/appliances_off.yaml b/scripts/appliances_off.yaml new file mode 100755 index 0000000..ea8ebf9 --- /dev/null +++ b/scripts/appliances_off.yaml @@ -0,0 +1,8 @@ +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 diff --git a/scripts/appliances_on.yaml b/scripts/appliances_on.yaml new file mode 100755 index 0000000..d573114 --- /dev/null +++ b/scripts/appliances_on.yaml @@ -0,0 +1,8 @@ +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 diff --git a/scripts/chime_off.yaml b/scripts/chime_off.yaml new file mode 100755 index 0000000..4d38946 --- /dev/null +++ b/scripts/chime_off.yaml @@ -0,0 +1,6 @@ +chime_off: + sequence: + - service: mqtt.publish + data: + topic: "smartthings/Dome Siren/status" + payload_template: "off" \ No newline at end of file diff --git a/scripts/chime_on.yaml b/scripts/chime_on.yaml new file mode 100755 index 0000000..3029041 --- /dev/null +++ b/scripts/chime_on.yaml @@ -0,0 +1,6 @@ +chime_on: + sequence: + - service: mqtt.publish + data: + topic: "smartthings/Dome Siren/status" + payload_template: "chime" \ No newline at end of file diff --git a/scripts/chromecast_media_stop.yaml b/scripts/chromecast_media_stop.yaml new file mode 100755 index 0000000..31209ca --- /dev/null +++ b/scripts/chromecast_media_stop.yaml @@ -0,0 +1,6 @@ +chromecast_media_stop: + sequence: + - service: media_player.media_stop + data: + entity_id: media_player.living_room_tv + \ No newline at end of file diff --git a/scripts/driveway_off.yaml b/scripts/driveway_off.yaml new file mode 100755 index 0000000..ca61bbc --- /dev/null +++ b/scripts/driveway_off.yaml @@ -0,0 +1,8 @@ +# 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 + diff --git a/scripts/driveway_on.yaml b/scripts/driveway_on.yaml new file mode 100755 index 0000000..7ea7e71 --- /dev/null +++ b/scripts/driveway_on.yaml @@ -0,0 +1,12 @@ +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 + diff --git a/scripts/family_is_away.yaml b/scripts/family_is_away.yaml new file mode 100755 index 0000000..fd41a50 --- /dev/null +++ b/scripts/family_is_away.yaml @@ -0,0 +1,6 @@ +family_is_away: + sequence: + - service: mqtt.publish + data: + topic: "house/family/status" + payload_template: "Away" diff --git a/scripts/family_is_home.yaml b/scripts/family_is_home.yaml new file mode 100755 index 0000000..bcf784d --- /dev/null +++ b/scripts/family_is_home.yaml @@ -0,0 +1,7 @@ +family_is_home: + sequence: + - service: mqtt.publish + data: + topic: "house/family/status" + payload_template: "Home" + diff --git a/scripts/garage_close.yaml b/scripts/garage_close.yaml new file mode 100755 index 0000000..1e62e1b --- /dev/null +++ b/scripts/garage_close.yaml @@ -0,0 +1,7 @@ +close_garage: + sequence: + - condition: state + entity_id: cover.garage_door + state: "open" + - service: cover.close_cover + entity_id: cover.garage_door diff --git a/scripts/inside_all_off.yaml b/scripts/inside_all_off.yaml new file mode 100755 index 0000000..bed85e0 --- /dev/null +++ b/scripts/inside_all_off.yaml @@ -0,0 +1,12 @@ +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 diff --git a/scripts/inside_all_on.yaml b/scripts/inside_all_on.yaml new file mode 100755 index 0000000..bddc07d --- /dev/null +++ b/scripts/inside_all_on.yaml @@ -0,0 +1,18 @@ +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 diff --git a/scripts/jeff_at_work_notification.yaml b/scripts/jeff_at_work_notification.yaml new file mode 100755 index 0000000..655a7f9 --- /dev/null +++ b/scripts/jeff_at_work_notification.yaml @@ -0,0 +1,8 @@ +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 diff --git a/scripts/jeff_destination_harbins.yaml b/scripts/jeff_destination_harbins.yaml new file mode 100755 index 0000000..c782c7b --- /dev/null +++ b/scripts/jeff_destination_harbins.yaml @@ -0,0 +1,7 @@ +jeff_destination_harbins: + sequence: + - service: mqtt.publish + data: + topic: "jeff/driving/destination" + payload: "Harbins" + retain: true diff --git a/scripts/jeff_destination_home.yaml b/scripts/jeff_destination_home.yaml new file mode 100755 index 0000000..832bd27 --- /dev/null +++ b/scripts/jeff_destination_home.yaml @@ -0,0 +1,7 @@ +jeff_destination_home: + sequence: + - service: mqtt.publish + data: + topic: "jeff/driving/destination" + payload: "Home" + retain: true diff --git a/scripts/jeff_destination_na.yaml b/scripts/jeff_destination_na.yaml new file mode 100755 index 0000000..a42ea1d --- /dev/null +++ b/scripts/jeff_destination_na.yaml @@ -0,0 +1,7 @@ +jeff_destination_na: + sequence: + - service: mqtt.publish + data: + topic: "jeff/driving/destination" + payload: "na" + retain: true diff --git a/scripts/jeff_destination_none.yaml b/scripts/jeff_destination_none.yaml new file mode 100755 index 0000000..9788813 --- /dev/null +++ b/scripts/jeff_destination_none.yaml @@ -0,0 +1,7 @@ +jeff_destination_none: + sequence: + - service: mqtt.publish + data: + topic: "jeff/driving/destination" + payload: "none" + retain: true diff --git a/scripts/jeff_destination_summit.yaml b/scripts/jeff_destination_summit.yaml new file mode 100755 index 0000000..409b994 --- /dev/null +++ b/scripts/jeff_destination_summit.yaml @@ -0,0 +1,7 @@ +jeff_destination_summit: + sequence: + - service: mqtt.publish + data: + topic: "jeff/driving/destination" + payload: "Summit" + retain: true diff --git a/scripts/jeff_destination_zoo.yaml b/scripts/jeff_destination_zoo.yaml new file mode 100755 index 0000000..97c8b70 --- /dev/null +++ b/scripts/jeff_destination_zoo.yaml @@ -0,0 +1,7 @@ +jeff_destination_zoo: + sequence: + - service: mqtt.publish + data: + topic: "jeff/driving/destination" + payload: "Zoo" + retain: true diff --git a/scripts/lockdown.yaml b/scripts/lockdown.yaml new file mode 100755 index 0000000..8255f92 --- /dev/null +++ b/scripts/lockdown.yaml @@ -0,0 +1,4 @@ +lockdown: + sequence: + - service: input_boolean.turn_on + entity_id: input_boolean.secure_mode diff --git a/scripts/lockdown_aborted.yaml b/scripts/lockdown_aborted.yaml new file mode 100755 index 0000000..b9e5388 --- /dev/null +++ b/scripts/lockdown_aborted.yaml @@ -0,0 +1,12 @@ +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 \ No newline at end of file diff --git a/scripts/security_alarm_delay.yaml b/scripts/security_alarm_delay.yaml new file mode 100755 index 0000000..80f81e4 --- /dev/null +++ b/scripts/security_alarm_delay.yaml @@ -0,0 +1,4 @@ +security_sound_alarm_intro: + sequence: + - delay: '00:01:30' + - service: script.security_alarm_on diff --git a/scripts/security_alarm_off.yaml b/scripts/security_alarm_off.yaml new file mode 100755 index 0000000..82fe58e --- /dev/null +++ b/scripts/security_alarm_off.yaml @@ -0,0 +1,10 @@ +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" \ No newline at end of file diff --git a/scripts/security_check_garage.yaml b/scripts/security_check_garage.yaml new file mode 100755 index 0000000..a5a5495 --- /dev/null +++ b/scripts/security_check_garage.yaml @@ -0,0 +1,9 @@ +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 + diff --git a/scripts/security_check_verified.yaml b/scripts/security_check_verified.yaml new file mode 100755 index 0000000..7a7bc49 --- /dev/null +++ b/scripts/security_check_verified.yaml @@ -0,0 +1,11 @@ +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 diff --git a/scripts/security_check_zones.yaml b/scripts/security_check_zones.yaml new file mode 100755 index 0000000..b325f3f --- /dev/null +++ b/scripts/security_check_zones.yaml @@ -0,0 +1,8 @@ +security_check_zones: + sequence: + - condition: state + entity_id: group.doors + state: 'on' + - service: input_boolean.turn_on + entity_id: input_boolean.security_issue + diff --git a/scripts/security_issue.yaml b/scripts/security_issue.yaml new file mode 100755 index 0000000..1fd09d4 --- /dev/null +++ b/scripts/security_issue.yaml @@ -0,0 +1,6 @@ +security_issue: + sequence: + - delay: + seconds: 80 + - service: input_boolean.turn_on + entity_id: input_boolean.security_alarm diff --git a/scripts/standby.yaml b/scripts/standby.yaml new file mode 100755 index 0000000..e4efa00 --- /dev/null +++ b/scripts/standby.yaml @@ -0,0 +1,20 @@ +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 diff --git a/scripts/sunset_garage_open.yaml b/scripts/sunset_garage_open.yaml new file mode 100755 index 0000000..63b21f0 --- /dev/null +++ b/scripts/sunset_garage_open.yaml @@ -0,0 +1,8 @@ +sunset_garage_open: + sequence: + - condition: state + entity_id: binary_sensor.garage_door + state: "on" + - service: script.driveway_all_on + + diff --git a/scripts/wxalert_tile.yaml b/scripts/wxalert_tile.yaml new file mode 100755 index 0000000..fb4c440 --- /dev/null +++ b/scripts/wxalert_tile.yaml @@ -0,0 +1,17 @@ +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 }}' \ No newline at end of file diff --git a/sensors/batteries.yaml b/sensors/batteries.yaml new file mode 100755 index 0000000..5f62c5a --- /dev/null +++ b/sensors/batteries.yaml @@ -0,0 +1,38 @@ +- 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: + unit_of_measurement: '%' + value_template: >- + {%- if states.device_tracker.jeffreystonesiphone.attributes.battery %} + {{ states.device_tracker.jeffreystonesiphone.attributes.battery | round(1) }} + {% else %} + {{ states.sensor.jeff_iphone_batt.state }} + {%- endif %} + icon_template: '{%- if is_state("sensor.jeff_iphone_batt", "unknown") %}mdi:battery-unknown{%- elif is_state_attr("device_tracker.jeffreystonesiphone", "battery_status", "Charging") %}mdi:battery-charging{%- elif states.device_tracker.jeffreystonesiphone.attributes.battery <= 5 %}mdi:battery-outline{%- elif states.device_tracker.jeffreystonesiphone.attributes.battery >= 95 %}mdi:battery{% else %}mdi:battery-{{(states.device_tracker.jeffreystonesiphone.attributes.battery|float / 10)|round*10}}{%- endif %}' + kat_iphone_batt: + unit_of_measurement: '%' + value_template: >- + {%- if states.device_tracker.katherinestonesiphone.attributes.battery %} + {{ states.device_tracker.katherinestonesiphone.attributes.battery | round(1) }} + {% else %} + {{ states.sensor.kat_iphone_batt.state }} + {%- endif %} + icon_template: '{%- if is_state("sensor.kat_iphone_batt", "unknown") %}mdi:battery-unknown{%- elif is_state_attr("device_tracker.katherinestonesiphone", "battery_status", "Charging") %}mdi:battery-charging{%- elif states.device_tracker.katherinestonesiphone.attributes.battery <= 5 %}mdi:battery-outline{%- elif states.device_tracker.katherinestonesiphone.attributes.battery >= 95 %}mdi:battery{% else %}mdi:battery-{{(states.device_tracker.katherinestonesiphone.attributes.battery|float / 10)|round*10}}{%- endif %}' diff --git a/sensors/devices.yaml b/sensors/devices.yaml new file mode 100755 index 0000000..e0e4283 --- /dev/null +++ b/sensors/devices.yaml @@ -0,0 +1,72 @@ +- platform: template + sensors: + amazon_dot_lr: + friendly_name: 'Amazon Dot LR' + value_template: "{{ 'Online' if is_state('device_tracker.dot_livingroom', 'home') else 'Offline' }}" + + amazon_dot_kn: + friendly_name: 'Amazon Dot KN' + value_template: "{{ 'Online' if is_state('device_tracker.dot_kitchen', 'home') else 'Offline' }}" + + appletv: + friendly_name: 'Apple Tv' + value_template: "{{ 'On' if is_state('media_player.apple_tv', 'on') else 'Off' }}" + + xboxone: + friendly_name: 'xboxone' + value_template: "{{ 'Online' if is_state('device_tracker.xboxone', 'home') else 'Offline' }}" + + chromecast_livingroom: + friendly_name: 'Chromecast - Living Room' + value_template: "{{ 'On' if is_state('media_player.chromecast_livingroom', 'on') else 'Off' }}" + + smartthings: + friendly_name: 'SmartThings' + value_template: "{{ 'Online' if is_state('device_tracker.d052a8170fef', 'home') else 'Offline' }}" + + samsungtv: + friendly_name: 'Samsung Tv' + value_template: "{{ 'On' if is_state('media_player.pn60e550_pn60e550', 'on') else 'Off' }}" + + honeywell: + friendly_name: 'Honeywell' + value_template: "{{ 'Online' if is_state('device_tracker.gateway2f3bca', 'home') else 'Offline' }}" + + kat_mini: + friendly_name: "Kat's Mini" + value_template: "{{ 'Online' if is_state('device_tracker.katherinesmini', 'home') else 'Offline' }}" + + jeff_work_mbp: + friendly_name: "Jeff's Work MBP" + value_template: "{{ 'Online' if is_state('device_tracker.jstonemac', 'home') else 'Offline' }}" + + jeff_ipad: + friendly_name: "Jeff's iPad" + value_template: "{{ 'Online' if is_state('device_tracker.jeffreystonesipad', 'home') else 'Offline' }}" + + kat_ipad: + friendly_name: "Kat's iPad" + value_template: "{{ 'Online' if is_state('device_tracker.katherinesipad', 'home') else 'Offline' }}" + + eero_livingroom: + friendly_name: "Eero Living Room" + value_template: "{{ 'Online' if is_state('device_tracker.eero_livingroom', 'home') else 'Offline' }}" + + eero_loft: + friendly_name: "Eero Loft" + value_template: "{{ 'Online' if is_state('device_tracker.eero_loft', 'home') else 'Offline' }}" + + smoke_kitchen: + friendly_name: "Kitchen Smoke" + value_template: "{{ 'Smoke Detected!' if is_state('device_tracker.eero_loft', 'smoke') else 'All Clear' }}" + + security_status: + friendly_name: 'Security System' + value_template: '{{ "Armed" if is_state("input_boolean.secure_mode", "on") else "Disarmed" }}' + icon_template: '{%- if is_state("input_boolean.secure_mode", "on") %}mdi:lock{% else %}mdi:lock-open{%- endif %}' + + garage_motion: + friendly_name: "Garage Motion" + value_template: "{{ 'open' if is_state('sensor.garage_dome_sensor', 'motion') else 'clear' }}" + + diff --git a/sensors/google_travel_time.yaml b/sensors/google_travel_time.yaml new file mode 100755 index 0000000..337a771 --- /dev/null +++ b/sensors/google_travel_time.yaml @@ -0,0 +1,24 @@ +- platform: waze_travel_time + name: "Jeff ETT Home" + #api_key: !secret google_api + origin: device_tracker.jeffreystonesiphone + destination: zone.home + region: 'US' +- platform: waze_travel_time + name: "Kat ETT Home" + #api_key: !secret google_api + origin: device_tracker.katherinestonesiphone + destination: zone.home + region: 'US' +- platform: waze_travel_time + name: "Home To Summit" +# api_key: !secret google_api + origin: zone.home + destination: zone.summit + region: 'US' +- platform: waze_travel_time + name: "Home To Zoo" +# api_key: !secret google_api# + origin: zone.home + destination: zone.zoo_atlanta + region: 'US' diff --git a/sensors/power.yaml b/sensors/power.yaml new file mode 100755 index 0000000..188dcb5 --- /dev/null +++ b/sensors/power.yaml @@ -0,0 +1,4 @@ +- platform: mqtt + name: "Master Bedroom Fan" + state_topic: "smartthings/Master Bedroom Fan/power" + retain: true diff --git a/sensors/presence.yaml b/sensors/presence.yaml new file mode 100755 index 0000000..4630957 --- /dev/null +++ b/sensors/presence.yaml @@ -0,0 +1,19 @@ +- 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 + diff --git a/sensors/security.yaml b/sensors/security.yaml new file mode 100755 index 0000000..3ed2c39 --- /dev/null +++ b/sensors/security.yaml @@ -0,0 +1,9 @@ +- 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 \ No newline at end of file diff --git a/sensors/speedtest.yaml b/sensors/speedtest.yaml new file mode 100755 index 0000000..4276249 --- /dev/null +++ b/sensors/speedtest.yaml @@ -0,0 +1,11 @@ +- platform: speedtest + minute: 30 + hour: + - 0 + - 6 + - 12 + - 18 + monitored_conditions: + - ping + - download + - upload diff --git a/sensors/system.yaml b/sensors/system.yaml new file mode 100755 index 0000000..607fcc0 --- /dev/null +++ b/sensors/system.yaml @@ -0,0 +1,57 @@ +- 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 ' '" diff --git a/sensors/users.yaml b/sensors/users.yaml new file mode 100755 index 0000000..966bef8 --- /dev/null +++ b/sensors/users.yaml @@ -0,0 +1,27 @@ +- platform: mqtt + name: "Jeff Destination" + state_topic: "jeff/driving/destination" +- 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 %} diff --git a/sensors/weather.yaml b/sensors/weather.yaml new file mode 100755 index 0000000..48da65a --- /dev/null +++ b/sensors/weather.yaml @@ -0,0 +1,133 @@ +- platform: darksky + api_key: !secret FORCAST_API_KEY + monitored_conditions: + - summary + - icon + - nearest_storm_distance + - nearest_storm_bearing + - precip_type + - precip_intensity + - precip_probability + - temperature + - apparent_temperature + - dew_point + - wind_speed + - wind_bearing + - cloud_cover + - humidity + - pressure + - visibility + - ozone + - minutely_summary + - hourly_summary + - daily_summary + - precip_intensity_max + update_interval: + # At least one of these must be specified: + days: 0 + hours: 0 + minutes: 5 + 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 +## Accurite 158 - Back Porch +- platform: mqtt + name: "Accurite Back Porch Temperature" + state_topic: "house/accurite-158/temperature" +- platform: mqtt + name: "Accurite Back Porch Humidity" + state_topic: "house/accurite-158/humidity" +# - platform: mqtt +# name: "Accurite Back Porch Status" +# state_topic: "house/accurite-158/status" +# - platform: mqtt +# name: "Accurite Back Porch Battery" +# state_topic: "house/accurite-158/battery" +- platform: mqtt + name: "Accurite Back Porch Model" + state_topic: "house/accurite-158/model" +- platform: mqtt + name: "Accurite Back Porch lupdate" + state_topic: "house/accurite-158/lastupdate" +- platform: mqtt + name: "Accurite Garage Temperature" + state_topic: "house/accurite-10968/temperature" +- platform: mqtt + name: "Accurite Garage Humidity" + state_topic: "house/accurite-10968/humidity" +- platform: mqtt + name: "Accurite Garage Model" + state_topic: "house/accurite-10968/model" +- platform: mqtt + name: "Accurite Garage lupdate" + state_topic: "house/accurite-10968/lastupdate" +- 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 + {% 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 diff --git a/sensors/wunderground.yaml b/sensors/wunderground.yaml new file mode 100755 index 0000000..55d64eb --- /dev/null +++ b/sensors/wunderground.yaml @@ -0,0 +1,42 @@ +- 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 diff --git a/switches/living_room.yaml b/switches/living_room.yaml new file mode 100755 index 0000000..898a0c5 --- /dev/null +++ b/switches/living_room.yaml @@ -0,0 +1,7 @@ +- platform: mqtt + name: "Fireplace Lights" + state_topic: "smartthings/Fireplace Lights/switch" + command_topic: "smartthings/Fireplace Lights/switch" + payload_on: "on" + payload_off: "off" + retain: true diff --git a/switches/master_bedroom.yaml b/switches/master_bedroom.yaml new file mode 100755 index 0000000..e089b22 --- /dev/null +++ b/switches/master_bedroom.yaml @@ -0,0 +1,7 @@ +- 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 diff --git a/switches/notifications.yaml b/switches/notifications.yaml new file mode 100755 index 0000000..9d09838 --- /dev/null +++ b/switches/notifications.yaml @@ -0,0 +1,54 @@ +- platform: mqtt + name: "Text Notify Kat" + command_topic: "kat/notify/text" + state_topic: "kat/notify/text" + qos: 1 + payload_on: "on" + payload_off: "off" + retain: true + +- platform: mqtt + name: "Audibly Notify Kat" + command_topic: "kat/notify/audio" + state_topic: "kat/notify/audio" + qos: 1 + payload_on: "on" + payload_off: "off" + retain: true + +- platform: mqtt + name: "Text Notify Jeff" + command_topic: "jeff/notify/text" + state_topic: "jeff/notify/text" + qos: 1 + payload_on: "on" + payload_off: "off" + retain: true + +- platform: mqtt + name: "Audibly Notify Jeff" + command_topic: "jeff/notify/audio" + state_topic: "jeff/notify/audio" + qos: 1 + payload_on: "on" + payload_off: "off" + retain: true + +- platform: mqtt + name: "Text Notify House" + command_topic: "house/notify/text" + state_topic: "house/notify/text" + qos: 1 + payload_on: "on" + payload_off: "off" + retain: true + +- platform: mqtt + name: "Audibly Notify House" + command_topic: "house/notify/audio" + state_topic: "house/notify/audio" + qos: 1 + payload_on: "on" + payload_off: "off" + retain: true + diff --git a/switches/outside.yaml b/switches/outside.yaml new file mode 100755 index 0000000..5cbd916 --- /dev/null +++ b/switches/outside.yaml @@ -0,0 +1,21 @@ +- platform: mqtt + name: "Driveway Light" + state_topic: "smartthings/Driveway Light/switch" + command_topic: "smartthings/Driveway Light/switch" + payload_on: "on" + payload_off: "off" + retain: true +- platform: mqtt + name: "Side Door" + state_topic: "smartthings/Side Door Light/switch" + command_topic: "smartthings/Side Door Light/switch" + payload_on: "on" + payload_off: "off" + retain: true +- platform: mqtt + name: "Front Porch" + state_topic: "smartthings/Front Porch/switch" + command_topic: "smartthings/Front Porch/switch" + payload_on: "on" + payload_off: "off" + retain: true diff --git a/switches/sonoff.yaml b/switches/sonoff.yaml new file mode 100755 index 0000000..b4ccc21 --- /dev/null +++ b/switches/sonoff.yaml @@ -0,0 +1,8 @@ +- platform: mqtt + name: "Loft Fan" + command_topic: "cmnd/sonoff/power" + state_topic: "stat/sonoff/POWER" + qos: 1 + payload_on: "ON" + payload_off: "OFF" + retain: true