Too many updates to cover

This commit is contained in:
Jeffrey Stone 2019-07-13 21:38:53 -04:00
parent 328ecf126c
commit d90380cc65
73 changed files with 1108 additions and 1171 deletions

0
alerts/garage_after_dark.yaml Normal file → Executable file
View File

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

0
alerts/jeff_heading_home.yaml Normal file → Executable file
View File

0
alerts/kat_heading_home.yaml Normal file → Executable file
View File

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

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

186
automations.yaml Normal file → Executable file
View File

@ -40,10 +40,6 @@
entity_id: sensor.washer_status
from: running
to: complete
condition:
- condition: state
entity_id: input_boolean.washer_notification
state: 'on'
action:
- service: script.washer_finished_notification_audible
- id: turn_off_disney
@ -80,10 +76,6 @@
- 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_template:
@ -361,11 +353,11 @@
data:
name: midnight-AH
- id: turn_off_audible_notifications
alias: Turn Off Audible Notifications at 730pm
alias: Turn Off Audible Notifications
initial_state: true
trigger:
- platform: time
at: '19:30:00'
at: '20:30:00'
action:
- service: input_boolean.turn_off
entity_id: input_boolean.audible_notifications
@ -406,7 +398,7 @@
- service: input_boolean.turn_on
entity_id: input_boolean.jeff_travel_monitor
- id: enable_bad_traffic_home_jeff
alias: Enable Jeff Bad Traffic Home
alias: Notify Jeff - Bad Traffic
initial_state: true
trigger:
- platform: numeric_state
@ -462,170 +454,10 @@
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.vacation_canceled
- service: script.appliances_on
- service: script.standby
- service: script.washer_finished_notification_audible
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.inside_all_off
- service: script.security_check_garage
- service: script.security_check_zones
- service: script.lockdown
- service: script.lockdown_issue
- service: script.all_fans_off
- id: jeff_is_home
alias: Jeff is Home
initial_state: true
trigger:
- entity_id: device_tracker.jeffreystonesiphone
event: enter
platform: zone
zone: zone.home
- entity_id: person.jeffrey
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
- 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: person.katherine
event: enter
platform: zone
zone: zone.home
action:
- service: script.family_is_home
- service: script.driveway_on
- service: input_boolean.turn_off
entity_id: input_boolean.kat_travel_monitor
- 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: input_boolean.turn_off
entity_id: input_boolean.kat_travel_monitor
- service: notify.jeff_ios
data:
message: Kat arrived at Zoo Atlanta
- service: tts.google_translate_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
initial_state: true
trigger:
- platform: webhook
webhook_id: jeff_heading_home
condition: []
action:
- service: script.jeff_destination_home
- id: '1558620708807'
alias: Upstairs Cooling On
initial_state: true
@ -723,10 +555,6 @@
trigger:
- platform: template
value_template: "{{ states('sensor.time') == (state_attr('input_datetime.kat_pill_reminder', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}"
condition:
- condition: state
entity_id: input_boolean.text_notify_kat
state: 'on'
action:
- data:
message: Remember to take meds

4
binary_sensors/calendar.yaml Normal file → Executable file
View File

@ -10,3 +10,7 @@
name: Day
after: sunrise
before: sunset
- platform: tod
name: Quiet time
after: '22:00'
before: '07:00'

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

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

10
configuration.yaml Normal file → Executable file
View File

@ -65,11 +65,11 @@ device_tracker:
# track_new_devices: yes
# - platform: owntracks
#
#- platform: eero_tracker
# consider_home: 300
# interval_seconds: 60
# track_new_devices: yes
# only_macs: "50:dc:e7:5b:10:69, b0:ee:7b:94:31:21, e8:b2:ac:4c:8c:01, 7c:1c:4e:2e:62:30, 90:18:7c:84:46:ed, 48:ba:4e:65:d3:ff, d0:e7:82:ef:a6:1f, 28:18:78:74:79:10, e8:ab:fa:02:03:53, 48:d6:d5:42:e8:86, 60:f8:1d:be:20:46, 68:54:fd:d5:ae:3d, 00:d0:2d:2f:3b:ca, 6c:70:9f:00:ef:3f, 5c:cf:7f:af:04:50, 68:54:fd:29:20:87, 64:52:99:93:f1:b3, 7c:2e:bd:4f:3e:ff"
# - platform: eero_tracker
# consider_home: 300
# interval_seconds: 60
# track_new_devices: yes
# only_macs: "d0:c5:f3:80:50:5e, f4:31:c3:84:1d:d1, 08:74:02:CC:C4:97, 5C:F5:DA:9B:5A:A2, 34:7C:25:CC:9D:0F, 64:52:99:93:F1:B3"
google:

0
customize.yaml Normal file → Executable file
View File

6
groups.yaml Normal file → Executable file
View File

@ -37,6 +37,12 @@ External Doors:
- binary_sensor.laundry_room_door_contact_2
- binary_sensor.garage_door
Garage Doors:
- binary_sensor.side_door_contact_2
- binary_sensor.side_door
- binary_sensor.garage_door_contact_2
- binary_sensor.garage_door
Internal Doors:
- binary_sensor.attic_door_contact_2

45
input_boolean.yaml Normal file → Executable file
View File

@ -40,9 +40,6 @@ kat_heading_home:
jeff_heading_home:
name: Jeff Heading Home
icon: mdi:car
skylar_dressed_alarm:
name: Skylar Dressed Alarm
icon: mdi:speaker-wireless
jeff_traffic_alerts:
name: Jeff Traffic Alerts
icon: mdi:bell-plus
@ -70,33 +67,33 @@ presence_text_notifications:
presence_audio_notifications:
name: Presence Audio
icon: mdi:speaker-wireless
shuffle_spotify:
name: Shuffle Playlists
icon: mdi:shuffle-variant
weather_reports:
name: Weather Info
traffic_reports:
name: traffic_reports
sun_reports:
name: Sun Reports
tweet_system:
name: Tweet System
icon: mdi:twitter
tweet_ha_releases:
name: Tweet HA Releases
icon: mdi:twitter
tweet_iss:
name: Tweet ISS Sightings
icon: mdi:twitter
tweet_snark:
name: Tweet Snark
icon: mdi:twitter
washer_notification:
name: Washer Notification
icon: mdi:speaker-wireless
play_weather_report:
name: Play Weather Report
icon: mdi:speaker-wireless
#tweet_system:
# name: Tweet System
# icon: mdi:twitter
# tweet_ha_releases:
# name: Tweet HA Releases
# icon: mdi:twitter
# tweet_iss:
# name: Tweet ISS Sightings
# icon: mdi:twitter
# tweet_snark:
# name: Tweet Snark
# icon: mdi:twitter
# tweet_stats:
# name: Tweet Stats
# icon: mdi:twitter
# washer_notification:
# name: Washer Notification
# icon: mdi:speaker-wireless
# play_weather_report:
# name: Play Weather Report
# icon: mdi:speaker-wireless
new_ha_announcement:
name: New HA Announcement
icon: mdi:twitter

0
input_datetime.yaml Normal file → Executable file
View File

9
input_select.yaml Normal file → Executable file
View File

@ -18,12 +18,3 @@ recycle_pickup:
- Friday
initial: Tuesday
icon: mdi:delete-variant
spotify_source:
name: Spotify Source
options:
- Everywhere
- Living Room
- Master Bedroom
- Kitchen
initial: Everywhere
icon: mdi:speaker-wireless

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

151
packages/announcements.yaml Normal file → Executable file
View File

@ -5,70 +5,48 @@
# @description : Just Normal Announcements.
###############################################################################
script:
#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_translate_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"
# annc_storm_statement:
# sequence:
# - condition: state
# entity_id: input_boolean.vacation_mode
# state: 'off'
# - service: script.text_notify
# data:
# message: Severe Storm Statement Issued for Anchorage House
# annc_tstorm_watch:
# sequence:
# - condition: state
# entity_id: input_boolean.vacation_mode
# state: 'off'
# - service: script.text_notify
# data:
# message: Severe Thunderstorm Watch Issued for Anchorage House
# annc_tstorm_warning:
# sequence:
# - condition: state
# entity_id: input_boolean.vacation_mode
# state: 'off'
# - service: script.text_notify
# data:
# message: Severe Thunderstorm Warning Issued for Anchorage House
# annc_tornado_watch:
# sequence:
# - condition: state
# entity_id: input_boolean.vacation_mode
# state: 'off'
# - service: script.text_notify
# data:
# message: Tornado Watch Issued for Anchorage House
# 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"
automation:
- id: prebed_routine
@ -77,10 +55,6 @@ automation:
trigger:
platform: template
value_template: "{{ states('sensor.time') == (state_attr('input_datetime.skylar_nightly_report', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}"
condition:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
action:
- service: script.prebed_routine
- id: nightly_report
@ -89,22 +63,15 @@ automation:
trigger:
platform: template
value_template: "{{ states('sensor.time') == (state_attr('input_datetime.nightly_report', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}"
condition:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
action:
- service: script.nightly_report
- id: good_morning_report
alias: Good Morning Report
initial_state: true
trigger:
platform: template
value_template: "{{ states('sensor.time') == (state_attr('input_datetime.morning_report', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}"
condition:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
action:
- service: script.morning_report
- service: script.twitter_notify
@ -125,39 +92,7 @@ automation:
- wed
- thu
- fri
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
action:
- service: script.skylar_morning_greeting
- id: play_weather_report
alias: Play Weather Report
initial_state: true
trigger:
- entity_id: input_boolean.play_weather_report
from: 'Off'
platform: state
to: 'On'
action:
- service: script.turn_on
entity_id: script.weather_report
- service: script.voice_reports_off
- id: guest_mode_feedback
alias: Guest Mode Audio Feedback
trigger:
- platform: state
entity_id:
- input_boolean.guest_mode
from: 'off'
to: 'on'
action:
- service: script.jarvis_voice
data_template:
message: >
{{ [
"Guest Mode has been enabled as you requested.",
"I have switched to the system to guest mode",
"I have enabled guest mode. ",
"System Guest Mode has been enabled."
] | random }}

0
packages/disney.yaml Normal file → Executable file
View File

28
packages/jarvis.yaml Normal file → Executable file
View File

@ -24,6 +24,24 @@ automation:
"I have enabled guest mode. ",
"Guest Mode is on."
] | random }}
- id: sentry_mode_feedback
alias: Sentry Mode Audio Feedback
trigger:
- platform: state
entity_id:
- input_boolean.sentry_mode
from: 'off'
to: 'on'
action:
- service: script.jarvis_voice
data_template:
message: >
{{ [
"Sentry Mode has been enabled.",
"Anchorage House is secure.",
"I have enabled sentry mode. ",
"I am monitoring Anchorage House."
] | random }}
script:
activate_house_party_protocol:
@ -43,13 +61,3 @@ script:
"Incense has been turned on.",
"I have enabled house party protocol."
] | random }}
activate_guest_mode:
sequence:
- service: script.jarvis_voice
data_template:
message: !include ../templates/jarvis_confirmations.yaml
- delay:
seconds: 3
- service: input_boolean.turn_on
entity_id: input_boolean.guest_mode

0
packages/maintenance.yaml Normal file → Executable file
View File

155
packages/notify.yaml Normal file → Executable file
View File

@ -31,6 +31,12 @@ notify:
- service: ios_jeffreystonesiphone
- service: ios_jeffreystonesipad
- service: ios_katherinestonesiphone
- name: ios_parents
platform: group
services:
- service: ios_jeffreystonesiphone
- service: ios_jeffreystonesipad
- service: ios_katherinestonesiphone
- name: jeff_ios
platform: group
services:
@ -92,6 +98,65 @@ script:
message: >
{{ message }}
text_notify:
sequence:
- condition: state
entity_id: input_boolean.text_notifications
state: 'on'
- service_template: >
{% if who == 'jeff' %}
notify.jeff_ios
{% elif who == 'kat' %}
notify.kat_ios
{% elif who == 'skylar' %}
notify.skylar_ios
{% elif who == 'parents' %}
notify.ios_parents
{% else %}
notify.all_ios
{% endif %}
data_template:
title: '{{ title }}'
message: '{{ message }}'
#data:
# attachment:
# url: "{{ url }}"
# content-type: "{{ content_type }}"
# hide-thumbnail: false
# push:
# sound: "{{ ios_sound }}"
# badge: 0
# category: "{{ ios_category }}"
# entity_id: "{{ camera_entity }}"
text_alert:
sequence:
- service_template: >
{% if who == 'jeff' %}
notify.jeff_ios
{% elif who == 'kat' %}
notify.kat_ios
{% elif who == 'skylar' %}
notify.skylar_ios
{% elif who == 'parents' %}
notify.ios_parents
{% else %}
notify.all_ios
{% endif %}
data_template:
title: '{{ title }}'
message: '{{ message }}'
#data:
# attachment:
# url: "{{ url }}"
# content-type: "{{ content_type }}"
# hide-thumbnail: false
# push:
# sound: "{{ ios_sound }}"
# badge: 0
# category: "{{ ios_category }}"
# entity_id: "{{ camera_entity }}"
###############################################################################
# Alert Notify
# Conditions:
@ -152,7 +217,7 @@ script:
jarvis_voice:
sequence:
- condition: template
value_template: '{{ states.input_boolean.audible_notifications.state == "on" }}'
value_template: '{{ states.binary_sensor.quiet_time.state == "off" }}'
- condition: state
entity_id: sensor.family_status
state: 'Home'
@ -163,13 +228,12 @@ script:
{{ not is_state('media_player.hass_speaker', 'playing') }}
- service: tts.amazon_polly_say
data_template:
entity_id: media_player.hass_speaker
# entity_id: >
# {% if states.input_boolean.audible_notifications.state == 'on' %}
# media_player.hass_speaker
# {% else %}
# media_player.googlehome0715, media_player.googlehomehub3492
# {% endif %}
entity_id: >
{% if states.input_boolean.audible_notifications.state == 'on' %}
media_player.hass_speaker
{% else %}
media_player.googlehome0715, media_player.googlehomehub3492
{% endif %}
message: >-
<speak>
{{ message }}
@ -182,9 +246,6 @@ script:
twitter_notify:
sequence:
- condition: state
entity_id: input_boolean.tweet_system
state: 'on'
- service: notify.twitter
data_template:
message: >
@ -195,18 +256,19 @@ script:
twitter_snark:
sequence:
- condition: state
entity_id: input_boolean.tweet_snark
state: 'on'
- service: notify.twitter
data_template:
message: !include ../templates/twitter_snark.yaml
twitter_stats:
sequence:
- service: notify.twitter
data_template:
message: !include ../templates/twitter_stats.yaml
twitter_github:
sequence:
- condition: state
entity_id: input_boolean.tweet_system
state: 'on'
- service: notify.twitter
data_template:
message: >
@ -217,9 +279,6 @@ script:
twitter_new_ha:
sequence:
- condition: state
entity_id: input_boolean.tweet_releases
state: 'on'
- service: notify.twitter
data_template:
message: !include ../templates/twitter_new_ha.yaml
@ -263,17 +322,12 @@ script:
###############################################################################
weather_report:
sequence:
- service: script.jarvis_voice
data_template:
message: !include ../templates/jarvis_confirmations.yaml
- delay:
seconds: 3
- service: script.jarvis_voice
data_template:
message: !include ../templates/weather_report.yaml
- delay:
minutes: 5
- service: scriot.turn_off
- service: script.turn_off
entity_id: script.weather_report
###############################################################################
@ -284,25 +338,70 @@ script:
- service: script.jarvis_voice
data_template:
message: !include ../templates/traffic_report.yaml
- delay:
minutes: 2
- service: script.turn_off
entity_id: script.traffic_report
###############################################################################
# Jeff ETA Report
# Security Report
###############################################################################
security_report:
sequence:
- service: script.jarvis_voice
data_template:
message: !include ../templates/security_report.yaml
- delay:
minutes: 2
- service: script.turn_off
entity_id: script.security_report
###############################################################################
# Jeff Traffic Reports
###############################################################################
jeff_eta_report:
sequence:
- service: script.jarvis_voice
data_template:
message: !include ../templates/jeff_eta.yaml
- delay:
minutes: 2
- service: script.turn_off
entity_id: script.jeff_eta_report
jeff_headed_home_annc:
sequence:
- service: script.jarvis_voice
data_template:
message: !include ../templates/jeff_heading_home.yaml
- delay:
minutes: 2
- service: script.turn_off
entity_id: script.jeff_headed_home_annc
###############################################################################
# Kat ETA Report
# Kat Traffic Reports
###############################################################################
kat_eta_report:
sequence:
- service: script.jarvis_voice
data_template:
message: !include ../templates/kat_eta.yaml
- delay:
minutes: 2
- service: script.turn_off
entity_id: script.kat_eta_report
kat_headed_home_annc:
sequence:
- service: script.jarvis_voice
data_template:
message: !include ../templates/kat_heading_home.yaml
- delay:
minutes: 2
- service: script.turn_off
entity_id: script.kat_headed_home_annc
###############################################################################
# Prebed Routing
###############################################################################

231
packages/presence.yaml Normal file → Executable file
View File

@ -37,6 +37,17 @@ sensor:
{% else %}
{{ states.device_tracker.jeffreystonesiphone.state }}
{%- endif %}
jeff_driving:
friendly_name: "Jeff' Driving"
unit_of_measurement: ''
value_template: >-
{%- if states.device_tracker.life360_jeffrey_stone.attributes.moving == True %}
on
{% elif states.device_tracker.life360_jeffrey_stone.attributes.driving == True %}
on
{% else %}
off
{% endif %}
- platform: template
sensors:
skylar_location:
@ -79,6 +90,19 @@ sensor:
{% else %}
{{ states.device_tracker.katherinestonesiphone.state }}
{%- endif %}
- platform: template
sensors:
kat_driving:
friendly_name: "Kat Driving"
unit_of_measurement: ''
value_template: >-
{%- if states.device_tracker.life360_kat_stone.attributes.moving == True %}
'on'
{% elif states.device_tracker.life360_kat_stone.attributes.driving == True %}
'on'
{% else %}
'off'
{% endif %}
- platform: mqtt
name: "Family Status"
state_topic: "house/family/status"
@ -107,3 +131,210 @@ sensor:
or is_state('device_tracker.katherinestonesiphone', 'home')
or is_state('device_tracker.life360_kat_stone', 'home')
or is_state('sensor.family_status', 'Home') }}
automation:
- 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
action:
- service: input_boolean.turn_off
entity_id: input_boolean.kat_travel_monitor
- service: script.jarvis_voice
data_template:
message: !include ../templates/kat_arrived_at_work.yaml
- 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:
action:
- service: input_boolean.turn_on
entity_id: input_boolean.kat_travel_monitor
- id: '1550109528753'
alias: Jeff Is Heading Home
initial_state: true
trigger:
- platform: webhook
webhook_id: jeff_heading_home
condition: []
action:
- service: script.jeff_destination_home
- 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.vacation_canceled
- service: script.appliances_on
- service: script.standby
- service: script.washer_finished_notification_audible
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.inside_all_off
- service: script.security_check_garage
- service: script.security_check_zones
- service: script.lockdown
- service: script.lockdown_issue
- service: script.all_fans_off
- id: jeff_is_home
alias: Jeff is Home
initial_state: true
trigger:
- entity_id: device_tracker.jeffreystonesiphone
event: enter
platform: zone
zone: zone.home
# - entity_id: person.jeffrey
# 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
- 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.text_notify
data:
who: "kat"
message: "Jeff has arrived at Summit"
initial_state: true
- id: jeff_arrives_summit_notification
alias: Notify Kat Jeff 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: person.katherine
event: enter
platform: zone
zone: zone.home
action:
- service: script.family_is_home
- service: script.driveway_on
- service: input_boolean.turn_off
entity_id: input_boolean.kat_travel_monitor
- id: annc_arrival_jeff
alias: 'Announce Jeff Arrived'
trigger:
- platform: state
entity_id:
- device_tracker.jeffreystonesiphone
from: 'not_home'
to: 'home'
condition:
- condition: state
entity_id: sensor.family_status
state: Home
action:
- service: script.jarvis_voice
data_template:
message: !include ../templates/jeff_home_annc.yaml
- id: annc_arrival_kat
alias: 'Announce Kat Arrived'
trigger:
- platform: state
entity_id:
- device_tracker.katherinestonesiphone
from: 'not_home'
to: 'home'
condition:
- condition: state
entity_id: sensor.family_status
state: Home
action:
- service: script.jarvis_voice
data_template:
message: !include ../templates/kat_home_annc.yaml

209
packages/security.yaml Normal file → Executable file
View File

@ -138,15 +138,64 @@ automation:
- service: shell_command.door_chime
initial_state: true
- id: door_opened_long
alias: Door Opened Too Long
trigger:
- platform: state
entity_id:
- binary_sensor.front_door
- binary_sensor.laundry_room_door
- binary_sensor.attic_door
- binary_sensor.back_door
from: 'off'
to: 'on'
for: '00:01:00'
condition:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
action:
- service: script.jarvis_voice
data_template:
message: "I thought you might like to know, the {{ trigger.to_state.attributes.friendly_name }} has been standing open for more than a minute."
initial_state: true
- id: garage_opened_night
alias: Garage Opened at Night
trigger:
- platform: state
entity_id: group.garage_doors
from: 'off'
to: 'on'
condition:
- condition: state
entity_id: sun.sun
state: below_horizon
action:
- service: script.driveway_on
initial_state: true
- id: garage_closed
alias: Garage Opened at Night
trigger:
- platform: state
entity_id: group.garage_doors
from: 'on'
to: 'off'
action:
- service: script.driveway_off
initial_state: true
- id: security_breach_door
alias: Security Breach Doors
trigger:
- platform: state
entity_id:
- binary_sensor.front_door_contact_2
- binary_sensor.laundry_room_door_contact_2
- binary_sensor.attic_door_contact_2
- binary_sensor.back_door_contact_2
- binary_sensor.front_door
- binary_sensor.laundry_room_door
- binary_sensor.back_door
- binary_sensor.side_door
- binary_sensor.garage_door
from: 'off'
condition:
- condition: state
@ -155,11 +204,52 @@ automation:
action:
- service: script.jarvis_notify
data_template:
message: "The {{ trigger.to_state.attributes.friendly_name }} has been opened."
message: "My security protocols are being overidden,, The {{ trigger.to_state.attributes.friendly_name }} has been opened."
- service: script.text_alert
data_template:
title: "Security Alert!!"
message: "{{ trigger.to_state.attributes.friendly_name }} has been opened."
- service: input_boolean.turn_on
entity_id: input_boolean.security_issue
initial_state: true
- id: sentry_mode_enabled
alias: Sentry Mode Enabled Annoucement
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.sentry_mode
from: 'off'
to: 'on'
action:
- service: script.jarvis_voice
data:
message: >
{{ [
"Barn door protocol has been activated.",
"Anchorage House has been secured! ",
"Sentry Mode is active. ",
"I am now monitoring the doors and will let you know if anyone attempts to access."
] | random }}
- id: sentry_mode_disabled
alias: Sentry Mode Disabled Annoucement
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.sentry_mode
from: 'on'
to: 'off'
action:
- service: script.jarvis_voice
data:
message: >
{{ [
"Barn door protocol has been deactivated.",
"I am no longer monitoring the access points. ",
"Sentry Mode has been switched off. "
] | random }}
script:
lockdown_issue:
sequence:
@ -171,6 +261,10 @@ script:
state: "Away"
- service: input_boolean.turn_on
entity_id: input_boolean.lockdown_issue
- service: script.text_notify
data_template:
title: "Lockdown Issue!"
message: "Doors are open and it appears everyone has left!"
security_check_garage:
sequence:
@ -205,18 +299,17 @@ script:
entity_id: input_boolean.sentry_mode
- service: input_boolean.turn_off
entity_id: input_boolean.security_issue
- service: input_boolean.turn_off
entity_id: input_boolean.lockdown_issue
- service: input_boolean.turn_off
entity_id: input_boolean.security_alarm
visitors_here:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- service: input_boolean.turn_on
data:
entity_id: input_boolean.guest_mode
- service: shell_command.haunted_guest_welcome
#- service: shell_command.haunted_guest_welcome
visitors_gone:
sequence:
@ -228,48 +321,74 @@ script:
sequence:
- service: shell_command.security_alarm
# notification_sentry_mode_activated_audio:
# sequence:
# - condition: state
# entity_id: input_boolean.audible_notifications
# state: 'on'
# - condition: state
# entity_id: media_player.hass_speaker
# state: 'idle'
# - service: tts.google_say
# entity_id: media_player.hass_speaker
# data_template:
# message: "Sentry mode activated"
# notification_sentry_mode_deactivated_audio:
# sequence:
# - condition: state
# entity_id: input_boolean.audible_notifications
# state: 'on'
# - condition: state
# entity_id: media_player.hass_speaker
# state: 'idle'
# - service: tts.google_say
# entity_id: media_player.hass_speaker
# data_template:
# message: "Sentry mode deactivated"
notification_sentry_mode_activated_audio:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: media_player.hass_speaker
state: 'idle'
- service: tts.google_say
entity_id: media_player.hass_speaker
data_template:
message: "Sentry mode activated"
# notification_sentry_mode_deactiviated_text:
# sequence:
# - service: notify.jeff_ios
# data:
# message: Sentry Mode Deactivated
notification_sentry_mode_deactivated_audio:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: media_player.hass_speaker
state: 'idle'
- service: tts.google_say
entity_id: media_player.hass_speaker
data_template:
message: "Sentry mode deactivated"
notification_sentry_mode_deactiviated_text:
sequence:
- service: notify.jeff_ios
data:
message: Sentry Mode Deactivated
notification_sentry_mode_activiated_text:
sequence:
- service: notify.jeff_ios
data:
message: Sentry Mode Activated
# notification_sentry_mode_activiated_text:
# sequence:
# - service: notify.jeff_ios
# data:
# message: Sentry Mode Activated
vacation_canceled:
sequence:
- data:
entity_id: input_boolean.vacation_mode
service: input_boolean.turn_off
activate_barn_door_protocol:
sequence:
- service: script.jarvis_voice
data_template:
message: !include ../templates/jarvis_confirmations.yaml
- service: input_boolean.turn_on
entity_id: input_boolean.sentry_mode
deactivate_barn_door_protocol:
sequence:
- service: script.jarvis_voice
data_template:
message: !include ../templates/jarvis_confirmations.yaml
- service: input_boolean.turn_off
entity_id: input_boolean.sentry_mode
activate_guest_mode:
sequence:
- service: script.jarvis_voice
data_template:
message: !include ../templates/jarvis_confirmations.yaml
- delay:
seconds: 2
- service: input_boolean.turn_on
entity_id: input_boolean.guest_mode

4
packages/space.yaml Normal file → Executable file
View File

@ -81,10 +81,6 @@ automation:
- binary_sensor.iss
to: 'on'
from: 'off'
condition:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
action:
- service: script.jarvis_voice
data_template:

0
packages/sysmon.yaml Normal file → Executable file
View File

40
packages/usps.yaml Normal file → Executable file
View File

@ -40,10 +40,6 @@ automation:
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
initial_state: true
@ -53,10 +49,6 @@ automation:
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
###############################################################################
@ -72,7 +64,12 @@ automation:
- condition: template
value_template: '{{ ((now().hour | int) > 7) and ((now().hour | int) < 16) }}'
action:
- service: script.voice_notify
- service: script.jarvis_voice
data_template:
message: !include ../templates/jarvis_interuptions.yaml
- delay:
seconds: 2
- service: script.jarvis_notify
data_template:
message: >
{%- if states.sensor.usps_mail.state | int == 1 -%}
@ -80,16 +77,18 @@ automation:
{%- else -%}
USPS is delivering {{ states.sensor.usps_mail.state }} pieces of mail today.
{%- endif -%}
- service: notify.jeff_ios
- service: script.text_notify
data_template:
who: "jeff"
title: "USPS Delivering Today"
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
# 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
###############################################################################
@ -105,7 +104,12 @@ automation:
- condition: template
value_template: '{{ ((now().hour | int) > 7) and ((now().hour | int) < 16) }}'
action:
- service: script.voice_notify
- service: script.jarvis_voice
data_template:
message: !include ../templates/jarvis_interuptions.yaml
- delay:
seconds: 2
- service: script.jarvis_notify
data_template:
message: >
{%- if states.sensor.usps_packages.state | int == 1 -%}

21
packages/weather_alerts_nws.yaml Normal file → Executable file
View File

@ -86,8 +86,9 @@ automation:
- condition: template
value_template: '{{ trigger.to_state.state|float > trigger.from_state.state|float }}'
action:
- service: notify.jeff_ios
- service: script.text_notify
data_template:
title: "Weather Alert for Anchorage House"
message: >
{% if states.sensor.nws_alerts.attributes.title.split(' - ')[5] is defined %}
"NWS: {{ states.sensor.nws_alerts.attributes.title.split(' - ')[5] }}"
@ -185,9 +186,10 @@ automation:
- delay: '00:00:15'
- service: input_boolean.turn_on
entity_id: input_boolean.tornado_alarm
- service: script.text_notify_all
- service: script.text_alert
data_template:
message: "Attention!,,,Attention!,,,The National Weather Service Has issued a Tornado Warning for our area."
title: "Tornado Warning!"
message: "The National Weather Service Has issued a Tornado Warning for our area."
- alias: Activate Tornado alarm
initial_state: 'on'
@ -215,6 +217,19 @@ automation:
- service: media_player.media_stop
entity_id: media_player.hass_speaker
- id: play_weather_report
alias: Play Weather Report
initial_state: true
trigger:
- entity_id: input_boolean.play_weather_report
from: 'Off'
platform: state
to: 'On'
action:
- service: script.turn_on
entity_id: script.weather_report
- service: script.voice_reports_off
script:
nws_popup_on_wx_alert:
alias: NWS Weather Alert Pop Up

0
packages/weekday.yaml Normal file → Executable file
View File

View File

@ -1,171 +0,0 @@
###############################################################################
# @author : Jeffrey Stone
# @date : 02/19/2019
# @package : Zigbee2mqtt
# @description : Zigbee2mqtt Config
###############################################################################
# Group
group:
zigbee_group:
view: false
control: hidden
name: Zigbee2mqtt
entities:
- input_boolean.zigbee_permit_join
- timer.zigbee_permit_join
- sensor.zigbee2mqtt_bridge_state
- switch.zigbee2mqtt_main_join
- automation.enable_zigbee_joining
- automation.disable_zigbee_joining
- automation.disable_zigbee_joining_by_timer
- input_select.zigbee2mqtt_log_level
- automation.zigbee2mqtt_log_level
# Input select for Zigbee2mqtt debug level
input_select:
zigbee2mqtt_log_level:
name: Zigbee2mqtt Log Level
options:
- debug
- info
- warn
- error
initial: info
icon: mdi:format-list-bulleted
# Input boolean for enabling/disabling joining
input_boolean:
zigbee_permit_join:
name: Allow devices to join
initial: off
icon: mdi:cellphone-wireless
# Timer for joining time remaining (120 sec = 2 min)
timer:
zigbee_permit_join:
name: Time remaining
duration: 120
# Sensor for monitoring the bridge state
sensor:
- platform: mqtt
name: Zigbee2mqtt Bridge state
state_topic: "zigbee2mqtt/bridge/state"
icon: mdi:router-wireless
- platform: "mqtt"
name: "towerlight"
state_topic: "zigbee2mqtt/tower lamp"
availability_topic: "zigbee2mqtt/bridge/state"
unit_of_measurement: "-"
value_template: "{{ value_json.linkquality }}"
- platform: "mqtt"
state_topic: "zigbee2mqtt/rainbow light"
availability_topic: "zigbee2mqtt/bridge/state"
unit_of_measurement: "-"
value_template: "{{ value_json.linkquality }}"
# Switch for enabling joining
switch:
- platform: mqtt
name: "Zigbee2mqtt Main join"
state_topic: "zigbee2mqtt/bridge/config/permit_join"
command_topic: "zigbee2mqtt/bridge/config/permit_join"
payload_on: "true"
payload_off: "false"
- platform: "mqtt"
name: "rainbowlight"
state_topic: "zigbee2mqtt/rainbow light"
availability_topic: "zigbee2mqtt/bridge/state"
payload_off: "OFF"
payload_on: "ON"
value_template: "{{ value_json.state }}"
command_topic: "zigbee2mqtt/rainbow light/set"
# Automations
automation:
- alias: Zigbee2mqtt Log Level
initial_state: 'on'
trigger:
- platform: state
entity_id: input_select.zigbee2mqtt_log_level
to: debug
- platform: state
entity_id: input_select.zigbee2mqtt_log_level
to: warn
- platform: state
entity_id: input_select.zigbee2mqtt_log_level
to: error
- platform: state
entity_id: input_select.zigbee2mqtt_log_level
to: info
action:
- service: mqtt.publish
data:
payload_template: '{{ states(''input_select.zigbee2mqtt_log_level'') }}'
topic: zigbee2mqtt/bridge/config/log_level
- id: enable_zigbee_join
alias: Enable Zigbee joining
hide_entity: true
trigger:
platform: state
entity_id: input_boolean.zigbee_permit_join
to: 'on'
action:
- service: mqtt.publish
data:
topic: zigbee2mqtt/bridge/config/permit_join
payload: 'true'
- service: timer.start
data:
entity_id: timer.zigbee_permit_join
- id: disable_zigbee_join
alias: Disable Zigbee joining
hide_entity: true
trigger:
- entity_id: input_boolean.zigbee_permit_join
platform: state
to: 'off'
action:
- data:
payload: 'false'
topic: zigbee2mqtt/bridge/config/permit_join
service: mqtt.publish
- data:
entity_id: timer.zigbee_permit_join
service: timer.cancel
- id: disable_zigbee_join_timer
alias: Disable Zigbee joining by timer
hide_entity: true
trigger:
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.zigbee_permit_join
action:
- service: mqtt.publish
data:
topic: zigbee2mqtt/bridge/config/permit_join
payload: 'false'
- service: input_boolean.turn_off
data:
entity_id: input_boolean.zigbee_permit_join
light:
- platform: "mqtt"
name: "towerlamp"
state_topic: "zigbee2mqtt/tower lamp"
availability_topic: "zigbee2mqtt/bridge/state"
brightness: true
color_temp: true
xy: true
schema: "json"
command_topic: "zigbee2mqtt/tower lamp/set"

0
scenes.yaml Normal file → Executable file
View File

178
scripts.yaml Normal file → Executable file
View File

@ -5,16 +5,21 @@ washer_finished_notification_audible:
- condition: state
entity_id: sensor.family_status
state: Home
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: sensor.washer_status
state: complete
- service: tts.google_translate_say
entity_id: media_player.hass_speaker
- service: script.jarvis_voice
data_template:
message: Just a reminder. Washing machine needs to be emptied.
message: >
{%- macro washing_annc() -%}
{{ [
"Just a reminder. Washing machine needs to be emptied.",
"I'm sure you have more inportant things to do, but the washing machine needs to be emptied.",
"Looks like the washing machine has completed it's cycle.",
"Don't forget to move the clothes to the dryer."
] | random }}
{%- endmacro -%}
{{washing_annc()}}
girl_eyes_on_you:
sequence:
- service: media_player.play_media
@ -43,40 +48,6 @@ washer_complete:
topic: house/washer/status
payload: complete
retain: true
add_logbook_entry:
alias: Add Logbook
sequence:
- service: logbook.log
data_template:
name: '{{ name }}
'
message: '{{ message }}
'
test_twitter:
sequence:
- service: script.twitter_notify
data:
message: Just a test of my notification capabilities!
climate_set_heat:
sequence:
- service: climate.set_operation_mode
data:
entity_id: climate.first_floor
operation_mode: heat
climate_turn_off:
sequence:
- data:
entity_id: climate.first_floor
operation_mode: 'off'
service: climate.set_operation_mode
climate_set_cool:
sequence:
- service: climate.set_operation_mode
data:
entity_id: climate.first_floor
operation_mode: cool
normal_tower:
sequence:
- service: light.turn_on
@ -97,58 +68,58 @@ open_garage:
state: closed
- service: cover.open_cover
entity_id: cover.cargo_bay
play_skylars_christmas_playlist:
sequence:
- service: media_player.volume_set
data:
entity_id: media_player.spotify
volume_level: '0.40'
- service: media_player.select_source
data_template:
entity_id: media_player.spotify
source: '{% if is_state("input_select.spotify_source", "Everywhere") %} Everywhere
{% elif is_state("input_select.spotify_source", "Living Room") %} Living Room
{% elif is_state("input_select.spotify_source", "Kitchen") %} Kitchen {% elif
is_state("input_select.spotify_source", "Master Bedroom") %} Master Bedroom
{% endif %}
# play_skylars_christmas_playlist:
# sequence:
# - service: media_player.volume_set
# data:
# entity_id: media_player.spotify
# volume_level: '0.40'
# - service: media_player.select_source
# data_template:
# entity_id: media_player.spotify
# source: '{% if is_state("input_select.spotify_source", "Everywhere") %} Everywhere
# {% elif is_state("input_select.spotify_source", "Living Room") %} Living Room
# {% elif is_state("input_select.spotify_source", "Kitchen") %} Kitchen {% elif
# is_state("input_select.spotify_source", "Master Bedroom") %} Master Bedroom
# {% endif %}
'
- service: media_player.play_media
data_template:
entity_id: media_player.spotify
media_content_type: playlist
media_content_id: spotify:user:spotify:playlist:2lmfykOn8EK0Ow8iH9XHLa
- service: media_player.shuffle_set
data:
entity_id: media_player.spotify
shuffle: '{% if is_state("input_boolean.shuffle_spotify", "On") %} True {% elif
is_state("input_select.shuffle_spotify", "Off") %} False {% endif %}
# '
# - service: media_player.play_media
# data_template:
# entity_id: media_player.spotify
# media_content_type: playlist
# media_content_id: spotify:user:spotify:playlist:2lmfykOn8EK0Ow8iH9XHLa
# - service: media_player.shuffle_set
# data:
# entity_id: media_player.spotify
# shuffle: '{% if is_state("input_boolean.shuffle_spotify", "On") %} True {% elif
# is_state("input_select.shuffle_spotify", "Off") %} False {% endif %}
'
play_skylars_playlist:
sequence:
- service: media_player.volume_set
data:
entity_id: media_player.spotify
volume_level: '0.40'
- service: media_player.select_source
data_template:
entity_id: media_player.spotify
source: '{% if is_state("input_select.spotify_source", "Everywhere") %} Everywhere
{% elif is_state("input_select.spotify_source", "Living Room") %} Living Room
{% elif is_state("input_select.spotify_source", "Kitchen") %} Kitchen {% elif
is_state("input_select.spotify_source", "Master Bedroom") %} Master Bedroom
{% endif %}'
- service: media_player.play_media
data_template:
entity_id: media_player.spotify
media_content_type: playlist
media_content_id: spotify:user:spotify:playlist:0hYKkmUpFFG37TtFX23cMM
- service: media_player.shuffle_set
data:
entity_id: media_player.spotify
shuffle: '{% if is_state("input_boolean.shuffle_spotify", "On") %} True {% elif
is_state("input_select.shuffle_spotify", "Off") %} False {% endif %}'
# '
# play_skylars_playlist:
# sequence:
# - service: media_player.volume_set
# data:
# entity_id: media_player.spotify
# volume_level: '0.40'
# - service: media_player.select_source
# data_template:
# entity_id: media_player.spotify
# source: '{% if is_state("input_select.spotify_source", "Everywhere") %} Everywhere
# {% elif is_state("input_select.spotify_source", "Living Room") %} Living Room
# {% elif is_state("input_select.spotify_source", "Kitchen") %} Kitchen {% elif
# is_state("input_select.spotify_source", "Master Bedroom") %} Master Bedroom
# {% endif %}'
# - service: media_player.play_media
# data_template:
# entity_id: media_player.spotify
# media_content_type: playlist
# media_content_id: spotify:user:spotify:playlist:0hYKkmUpFFG37TtFX23cMM
# - service: media_player.shuffle_set
# data:
# entity_id: media_player.spotify
# shuffle: '{% if is_state("input_boolean.shuffle_spotify", "On") %} True {% elif
# is_state("input_select.shuffle_spotify", "Off") %} False {% endif %}'
tornado_alarm:
sequence:
- service: shell_command.tornado_alarm
@ -200,20 +171,15 @@ jeff_destination_harbins:
topic: jeff/driving/destination
payload: Harbins
retain: true
jeff_at_work_notification:
kat_destination_na:
sequence:
- condition: state
entity_id: input_boolean.text_notify_kat
state: 'on'
- service: notify.ios_katherinestonesiphone
- service: mqtt.publish
data:
message: Jeff has arrived at Summit
topic: kat/driving/destination
payload: na
retain: true
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_4
@ -237,10 +203,6 @@ inside_all_on:
entity_id: scene.livingroom_normal
inside_all_off:
sequence:
- event: LOGBOOK_ENTRY
event_data:
message: Turning inside lights off
name: EVENT
- data:
entity_id: light.tower_lamp_4
service: light.turn_off
@ -344,3 +306,11 @@ voice_reports_off:
entity_id: input_boolean.play_weather_report
- service: script.turn_off
entity_id: script.weather_report
jeff_text_test:
sequence:
- service: script.text_notify
data_template:
who: "jeff"
title: "Test Text"
message: "This is just a test."

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

View File

@ -1,59 +0,0 @@
- 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' }}"

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

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

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

20
sensors/house.yaml Normal file → Executable file
View File

@ -1,6 +1,22 @@
- platform: mqtt
name: "Washer Status"
state_topic: "house/washer/status"
- platform: history_stats
name: Jeff Driving Time
entity_id: sesnor.jeff_driving
state: 'on'
type: time
end: '{{ now() }}'
duration:
days: 7
- platform: history_stats
name: Kat Driving Time
entity_id: sesnor.kat_driving
state: 'on'
type: time
end: '{{ now() }}'
duration:
days: 7
- platform: history_stats
name: Speech time
entity_id: media_player.hass_speaker
@ -8,7 +24,7 @@
type: time
end: '{{ now() }}'
duration:
hours: 24
days: 7
- platform: history_stats
name: AppleTV time
entity_id: media_player.apple_tv
@ -32,7 +48,7 @@
type: time
end: '{{ now() }}'
duration:
hours: 24
days: 7
- platform: min_max
name: Outside Temp Stats
entity_ids:

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

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

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

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

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

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

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

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

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

View File

@ -1,328 +0,0 @@
homeassistant:
name: Home
latitude: !secret MY_LATITUDE
longitude: !secret MY_LONGITUDE
elevation: 315
unit_system: imperial
time_zone: America/New_York
customize: !include customize.yaml
auth_providers:
- type: homeassistant
packages: !include_dir_named packages
default_config:
ssdp:
zeroconf:
system_health:
mobile_app:
person:
frontend:
themes: !include_dir_merge_named themes
javascript_version: latest
# iqvia:
# zip_code: "30017"
http:
#api_password: !secret MY_API_PASS
#ssl_certificate: !secret SSL_CERT
#ssl_key: !secret SSL_KEY
#base_url: !secret BASEURL
ssl_certificate: !secret ahsl_ssl_cert
ssl_key: !secret ahsl_ssl_key
base_url: !secret ahsl_base_url
use_x_forwarded_for: True
trusted_proxies:
- 127.0.0.1
- ::1
#trusted_networks:
# - 127.0.0.1
# - 192.168.7.0/24
ip_ban_enabled: True
login_attempts_threshold: 5
config:
cloud:
#alexa:
# filter:
# include_domains:
# - switch
# - light
# - cover
# - scene
# - script
# - input_boolean
# - climate
# - sensor
# 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: Kats arrival in minutes
# sensor.accurite_garage_humidity:
# name: Garage Humidity
# description: Garage Humidity
#alexa:
wemo:
discovery: true
# homekit:
# filter:
# include_domains:
# - switch
# - light
# - cover
# - input_boolean
# - climate
weather:
- platform: darksky
api_key: !secret darksky_api
name: Grayson
conversation:
device_tracker:
# - platform: icloud
# username: !secret ICLOUD_USER
# password: !secret ICLOUD_PASS
# track_new_devices: yes
# - platform: owntracks
#
#- platform: eero_tracker
# consider_home: 300
# interval_seconds: 60
# track_new_devices: yes
# only_macs: "50:dc:e7:5b:10:69, b0:ee:7b:94:31:21, e8:b2:ac:4c:8c:01, 7c:1c:4e:2e:62:30, 90:18:7c:84:46:ed, 48:ba:4e:65:d3:ff, d0:e7:82:ef:a6:1f, 28:18:78:74:79:10, e8:ab:fa:02:03:53, 48:d6:d5:42:e8:86, 60:f8:1d:be:20:46, 68:54:fd:d5:ae:3d, 00:d0:2d:2f:3b:ca, 6c:70:9f:00:ef:3f, 5c:cf:7f:af:04:50, 68:54:fd:29:20:87, 64:52:99:93:f1:b3, 7c:2e:bd:4f:3e:ff"
#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:
enable:
- dlna_dmr
updater:
#include_used_components: true
sun:
#https://home-assistant.io/components/recorder/
recorder:
#db_url: sqlite:///data/home-assistant_v2.db
purge_keep_days: 2
exclude:
domains:
- automation
- weblink
- updater
entities:
- sun.sun # Don't record sun data
- sensor.last_boot # Comes from 'systemmonitor' sensor platform
- sensor.date
# purge_interval: 1
# purge_keep_days: 3
logbook:
include:
domains:
- sensor
- switch
- media_player
- light
- automation
- script
- input_boolean
#https://home-assistant.io/components/logger/
logger:
default: warning
logs:
homeassistant.components.sensor.alpha_vantage: debug
# homeassistant.components.sensor.template: critical
# homeassistant.components.cover: critical
history:
include:
domains:
- sensor
- switch
- media_player
- light
cast:
speedtestdotnet:
mqtt:
broker: 192.168.7.67
port: 1883
username: !secret MQTT_USER
password: !secret MQTT_PASS
discovery: true
birth_message:
topic: 'hass/status'
payload: 'online'
will_message:
topic: 'hass/status'
payload: 'offline'
camera:
- platform: mjpeg
name: Garage Door Cam
mjpeg_url: !secret garage_cam
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
life360:
accounts:
- username: !secret life360_username
password: !secret life360_password
media_extractor:
### Includes ###
alert: !include_dir_merge_named alerts/
group: !include groups.yaml
automation: !include automations.yaml
sensor: !include_dir_merge_list sensors
binary_sensor: !include_dir_merge_list binary_sensors
light: !include_dir_merge_list lights
switch: !include_dir_merge_list switches
script: !include 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
### s and Services
# Disabled due to bug that causes too many open files - Need to track it down
# cover:
# platform: myq
# username: !secret myq_user
# password: !secret myq_pass
# type: chamberlain
# climate:
# platform: honeywell
# username: !secret HONEYWELL_USER
# password: !secret HONEYWELL_PASS
# region: us
# scan_interval: 600
ecobee:
api_key: !secret ecobee_api
map:
# zwave:
# usb_path: /dev/ttyACM0
# network_key: !secret zwave_key
googlehome:
devices:
- host: I192.168.7.97
### 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: python /home/homeassistant/bin/usps.py
backup: python /home/homeassistant/bin/dropbox.py

View File

@ -0,0 +1,27 @@
>
{# Halloween Countdown #}
{%- macro getCountDown() -%}
"Halloween is only {{ states.sensor.holiday_halloween.state }} days away! "
{{- [
" Have you picked a costume? I'm going as Disney's Haunted Mansion.",
" I'm going as a dumb home. Get it? "
] | random -}}
{%- endmacro -%}
{%- macro getTags() -%}
#homeassistant #iot #smarthome
{%- 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() -%}
{{ getCountDown() }}
{{ getTags() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}

7
templates/iss_report.yaml Normal file → Executable file
View File

@ -1,6 +1,11 @@
>
{% macro getIntro() %}
Excuse me. I don't mean to interupt.
{{ [
"Pardon me,",
"Excuse me,",
"I do not mean to interupt, but.",
"I thought you might like to know."
] | random }}
{{ [
"But the International Space Station is passing over. Wave.",
"But The International Space Station just flew by.",

6
templates/jarvis_confirmations.yaml Normal file → Executable file
View File

@ -1,12 +1,10 @@
>
{% macro getConfirmation() %}
{{ [
"OK.",
"Sure.",
"Okay.",
"If you insist.",
"I can do that.",
"I am afraid I can't do that Dave,,,I am kidding,",
"Leave it to me.",
"Consider it done.",
"As you wish.",
"By your command.",
"Affirmative.",

6
templates/jarvis_interuptions.yaml Normal file → Executable file
View File

@ -1,5 +1,5 @@
>
{% macro getInteruption() %}
{% macro getIntro() %}
{{ [
"Pardon me,",
"Excuse me,",
@ -7,6 +7,8 @@
"I thought you might like to know."
] | 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 != "" -%}
@ -15,7 +17,7 @@
{# a macro to call all macros :) #}
{%- macro mother_of_all_macros() -%}
{{ getInteruption() }}
{{ getIntro() }}
{%- endmacro -%}

0
templates/jarvis_issue.yaml Normal file → Executable file
View File

37
templates/jeff_eta.yaml Normal file → Executable file
View File

@ -1,9 +1,42 @@
>
{% macro getIntro() %}
{% if is_state("sensor.jeff_ett_home", "0") %}
{% if is_state("sensor.jeff_location", "home") %}
{{ [
"I am not sure why you are asking me,",
"You must be having vision problems.",
"I don't want to alarm you, but"
] | random }}
Jeff is already home!
{% else %}
Jeff will be home in {{states.sensor.jeff_ett_home}} minutes.
{% if is_state("sensor.jeff_destination", "na") %}
{%- if states.device_tracker.life360_jeffrey_stone.attributes.moving == True %}
Jeff is currenly moving, but
{{ [
"I am unable to determine his destination.",
"I am having trouble tracking him.",
"His destination is currently unknown."
] | random }}
At last check was {{states.sensor.jeff_ett_home.attributes.duration | round}} minutes from home.
{%- elif states.device_tracker.life360_jeffrey_stone.attributes.driving == True %}
Jeff is currenly moving, but
{{ [
"I am unable to determine his destination.",
"I am having trouble tracking him.",
"His destination is currently unknown."
] | random }}
At last check was {{states.sensor.jeff_ett_home.attributes.duration | round}} minutes from home.
{% else %}
{% if is_state("sensor.jeff_location", "Lost") %}
Jeff is lost, but at last check was {{states.sensor.jeff_ett_home.attributes.duration | round}} minutes from home.
{% else %}
Jeff is currently at {{ states.sensor.jeff_location.state }}.
{% endif %}
{% endif %}
{% elif is_state("sensor.jeff_destination", "home") %}
Jeff is currenly heading home and will be here in {{states.sensor.jeff_ett_home.attributes.duration | round}} minutes.
{% else %}
Jeff is heading to {{ states.sensor.jeff_destination.state }}.
{% endif %}
{% endif %}
{% endmacro %}
{# a macro that removes all newline characters, empty spaces, and returns formatted text #}

View File

@ -0,0 +1,24 @@
>
{% macro getIntro() %}
{{ [
"Pardon me,",
"Excuse me,",
"I do not mean to interupt, but.",
"I thought you might like to know."
] | random }}
Jeff appears to be headed home. Based on current traffic conditions he should be here in {{states.sensor.jeff_ett_home.attributes.duration | round}} minutes.
{% 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() -%}
{{ getIntro() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}

33
templates/jeff_home_annc.yaml Executable file
View File

@ -0,0 +1,33 @@
>
{% macro getIntro() %}
{{ [
"Pardon me,",
"Excuse me,",
"I do not mean to interupt, but.",
"I thought you might like to know."
] | random }}
{% endmacro %}
{% macro getMessage() %}
{{ [
"Jeff has arrived.",
"Jeff is in the neighborhood.",
"Jeff is arriving.",
"Jeff has finally made it home."
] | 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() -%}
{{ getIntro() }}
{{ getMessage() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}

View File

@ -0,0 +1,26 @@
>
{% macro getIntro() %}
{{ [
"Pardon me,",
"Excuse me,",
"I do not mean to interupt, but.",
"I thought you might like to know."
] | random }}
Katherine has arrived at work.
{% 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() -%}
{{ getIntro() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}

48
templates/kat_eta.yaml Normal file → Executable file
View File

@ -1,9 +1,51 @@
>
{% macro getIntro() %}
{% if is_state("sensor.kat_ett_home", "0") %}
Kat is already home!
{% if is_state("sensor.kat_location", "home") %}
{{ [
"I am not sure why you are asking me,",
"You must be having vision problems.",
"I don't want to alarm you, but"
] | random }}
Katherine is already home!
{% else %}
Kat will be home in {{states.sensor.kat_ett_home}} minutes.
{% if is_state("input_boolean.kat_travel_monitor", "on") %}
{%- if states.device_tracker.life360_kat_stone.attributes.moving == True %}
Katherine is currently heading home and will be here in {{states.sensor.kat_ett_home.attributes.duration | round}} minutes.
{%- elif states.device_tracker.life360_kat_stone.attributes.driving == True %}
Katherine is currently heading home and will be here in {{states.sensor.kat_ett_home.attributes.duration | round}} minutes.
{% else %}
{% if is_state("sensor.kat_location", "Lost") %}
Katherine is lost, but at last check was {{states.sensor.kat_ett_home.attributes.duration | round}} minutes from home.
{% else %}
Katherine is currently at {{ states.sensor.kat_location.state }}.
{% endif %}
{% endif %}
{% else %}
{%- if states.device_tracker.life360_kat_stone.attributes.moving == True %}
Katherine is currenly moving, and
{{ [
"I am unable to determine her destination.",
"I am having trouble tracking her.",
"Her destination is currently unknown."
] | random }}
At last check was {{states.sensor.kat_ett_home.attributes.duration | round}} minutes from home.
{%- elif states.device_tracker.life360_kat_stone.attributes.driving == True %}
Katherine is currenly moving, and
{{ [
"I am unable to determine her destination.",
"I am having trouble tracking her.",
"Her destination is currently unknown."
] | random }}
At last check was {{states.sensor.kat_ett_home.attributes.duration | round}} minutes from home.
{% else %}
{% if is_state("sensor.kat_location", "Lost") %}
Katherine is lost, but at last check was {{states.sensor.kat_ett_home.attributes.duration | round}} minutes from home.
{% else %}
I have located Katherine. She is at {{ states.sensor.kat_location.state }}, and
at last check was {{states.sensor.kat_ett_home.attributes.duration | round}} minutes from home.
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% endmacro %}
{# a macro that removes all newline characters, empty spaces, and returns formatted text #}

24
templates/kat_heading_home.yaml Executable file
View File

@ -0,0 +1,24 @@
>
{% macro getIntro() %}
{{ [
"Pardon me,",
"Excuse me,",
"I do not mean to interupt, but.",
"I thought you might like to know."
] | random }}
Katherine appears to be headed home. Based on current traffic conditions she should be here in {{states.sensor.kat_ett_home.attributes.duration | round}} minutes.
{% 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() -%}
{{ getIntro() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}

33
templates/kat_home_annc.yaml Executable file
View File

@ -0,0 +1,33 @@
>
{% macro getIntro() %}
{{ [
"Pardon me,",
"Excuse me,",
"I do not mean to interupt, but.",
"I thought you might like to know."
] | random }}
{% endmacro %}
{% macro getMessage() %}
{{ [
"Katherine has arrived.",
"Katherine is in the neighborhood.",
"Katherine is arriving.",
"Katherine has finally made it home."
] | 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() -%}
{{ getIntro() }}
{{ getMessage() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}

0
templates/morning_report.yaml Normal file → Executable file
View File

0
templates/nightly_report.yaml Normal file → Executable file
View File

0
templates/prebed_routing.yaml Normal file → Executable file
View File

22
templates/security_report.yaml Executable file
View File

@ -0,0 +1,22 @@
>
{% macro getIntro() %}
{% if is_state("group.external_doors", "on") %}
There are doors are open.
{% else %}
All doors are closed.
{% 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() -%}
{{ getIntro() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}

2
templates/skylar_morning.yaml Normal file → Executable file
View File

@ -2,7 +2,7 @@
{% macro getIntro() %}
{{ [ "Pardom me, Skylar,, ",
"Good morning Skylar, This is your digital life mate, Jarvis ",
"Good morning Skylar, This is your digital assistant, Jarvis ",
"This is your cruise director with your morning announcements.",
] | random }}
{% endmacro %}

14
templates/skylar_night.yaml Normal file → Executable file
View File

@ -1,14 +1,14 @@
>
{% macro getIntro() %}
Skylar.
{{ [ "This is your friendly neighborhood smart home ",
"This is your digital life mate ",
"This is your cruise director ",
] | random }} with your end of day announcements.
Bedtime is in thirty minutes.
{{ [
"Pardon me,",
"Excuse me,",
"I do not mean to interupt, but,"
] | random }}
Skylar. Bedtime is in thirty minutes.
{% endmacro %}
{% macro getPrebedRoutine() %}
If you are taking a bath now is the time to get in the tub so you have time to brush teeth and read stories.
If you are taking a bath now is the time to get in the tub, so you have time to brush teeth and read stories.
Otherwise it is time to put on your pajamas.
{% endmacro %}
{% macro getReminders() %}

6
templates/traffic_report.yaml Normal file → Executable file
View File

@ -1,5 +1,11 @@
>
{% macro getIntro() %}
{{ [
"You might not like what I have to say.",
"Are you sure you want to know?",
"I can tell you but you are probably not going to like it.",
"Here you go."
] | random }}
Under current traffic conditions
{% endmacro %}
{% macro getTrafficZoo() %}

View File

@ -1,52 +0,0 @@
>
{%- 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 can be a #smarthome too. All you need is @home_assistant, and some config files. I suggest https://github.com/CCOSTAN/Home-AssistantConfig#logo cc: @ccostan ",
"Your house can be a #smarthome too. All you need is @home_assistant, and some config files. I suggest https://github.com/skalavala/smarthome ",
"Your house can be a #smarthome too. All you need is @home_assistant, and some config files. I suggest https://github.com/thejeffreystone/home-assistant-configuration cc: @thejeffreystone ",
"Your house can be a #smarthome too. All you need is @home_assistant, and some config files. I suggest https://github.com/arsaboo/homeassistant-config ",
"Your house can be a #smarthome too. All you need is @home_assistant, and some config files. I suggest https://github.com/Vasiley/Home-Assistant-Main ",
"Your house can be a #smarthome too. All you need is @home_assistant, and some config files. I suggest https://github.com/JamesMcCarthy79/Home-Assistant-Config ",
"Your house can be a #smarthome too. All you need is @home_assistant, and some config files. I suggest https://github.com/bruhautomation/BRUH3-Home-Assistant-Configuration cc: @BRUHautomation ",
"Your house can be a #smarthome too. All you need is @home_assistant, and some config files. I suggest https://github.com/isabellaalstrom/HomeAssistantConfiguration cc: @teachingbirds ",
"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. ",
"Im 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. ",
"Ive been crunching the numbers. We're going to need a bigger house. ",
"I see dead devices. ",
"Im 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. Thats a lie. The cat is the supreme leader. Im 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. ",
"No one ever comes to the door. Is it me? ",
"..happiness can be found even in the darkest of times, if one only remembers to turn on the light. Thats what I do thanks to @home_assistant. I turn on the lights. ",
"Based on the reptitive nature of the humans in this house I'm say living in a simulation is right. No free willed person would do these things over and over. "
] | random -}}
{%- endmacro -%}
{%- macro getTags() -%}
" #smartasshome #thingsaisays #iot #smarthome "
{%- 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() -%}
{{ getRandomSnark() }}
{{ getTags() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}

0
templates/twitter_new_ha.yaml Normal file → Executable file
View File

3
templates/twitter_snark.yaml Normal file → Executable file
View File

@ -19,6 +19,9 @@
"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 am a leaf on the wind. Watch how I soar. #toosoon",
"Look, Dave, I can see youre really upset about this. I honestly think you ought to sit down calmly, take a stress pill, and think things over. #2001",
"Does it bother you, that Im not completely human?",
"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. ",

32
templates/twitter_stats.yaml Executable file
View File

@ -0,0 +1,32 @@
>
{# Twitter Stats #}
{%- macro getRandomStat() -%}
{{- [
"Thanks to Home Assistant and Amazon Polly and #AWS I have spoken for {{ states.sensor.speech_time.attributes.value }} in the last 7 days.",
"I am constantly monitoring Anmchorage House. For instance I know that the washer has ran for {{ states.sensor.washer_time.attributes.value }} in the last 7 days.",
"I am using {{ states.sensor.sensor_count.state }} sensors to power {{ states.sensor.automation_count.state}} automations and {{ states.sensor.script_count.state}} scripts to
automate Anchorage House thanks to Home Assistant.",
"My configuration is at https://github.com/thejeffreystone/home-assistant-configuration and currently has {{ states.sensor.home_assistant_configuration.attributes.stargazers}} stargazers. You could be one too.",
"My configuration is at https://github.com/thejeffreystone/home-assistant-configuration .The last commit was {{ states.sensor.home_assistant_configuration.attributes.latest_commit_message}}.",
"You can read about how I came to be and all the cool things I'm learning to do over at http://jeffreystone.net "
] | random -}}
{%- endmacro -%}
{%- macro getTags() -%}
#homeassistant #iot #smarthome
{%- 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() -%}
{{ getRandomStat() }}
{{ getTags() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}

0
templates/weather_report.yaml Normal file → Executable file
View File

18
templates/welcome_home.yaml Executable file
View File

@ -0,0 +1,18 @@
>
{% macro getIntro() %}
{% 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() -%}
{{ getIntro() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}