Too many updates to cover
This commit is contained in:
parent
328ecf126c
commit
d90380cc65
|
@ -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
|
||||
|
|
|
@ -10,3 +10,7 @@
|
|||
name: Day
|
||||
after: sunrise
|
||||
before: sunset
|
||||
- platform: tod
|
||||
name: Quiet time
|
||||
after: '22:00'
|
||||
before: '07:00'
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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 }}
|
||||
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
###############################################################################
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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 -%}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
||||
|
|
@ -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."
|
|
@ -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' }}"
|
||||
|
||||
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
@ -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()) -}}
|
|
@ -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.",
|
||||
|
|
|
@ -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.",
|
||||
|
|
|
@ -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 -%}
|
||||
|
||||
|
|
|
@ -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 #}
|
||||
|
|
|
@ -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()) -}}
|
|
@ -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()) -}}
|
|
@ -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()) -}}
|
|
@ -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 #}
|
||||
|
|
|
@ -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()) -}}
|
|
@ -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,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,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 %}
|
||||
|
|
|
@ -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() %}
|
||||
|
|
|
@ -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() %}
|
||||
|
|
|
@ -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 door’s malfunctioning. I guess somebody’s 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()) -}}
|
||||
|
||||
|
||||
|
||||
|
|
@ -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 you’re 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 I’m 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. ",
|
||||
|
|
|
@ -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,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()) -}}
|
Loading…
Reference in New Issue