Too many updates to cover
This commit is contained in:
parent
328ecf126c
commit
d90380cc65
|
@ -40,10 +40,6 @@
|
||||||
entity_id: sensor.washer_status
|
entity_id: sensor.washer_status
|
||||||
from: running
|
from: running
|
||||||
to: complete
|
to: complete
|
||||||
condition:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.washer_notification
|
|
||||||
state: 'on'
|
|
||||||
action:
|
action:
|
||||||
- service: script.washer_finished_notification_audible
|
- service: script.washer_finished_notification_audible
|
||||||
- id: turn_off_disney
|
- id: turn_off_disney
|
||||||
|
@ -80,10 +76,6 @@
|
||||||
- platform: time
|
- platform: time
|
||||||
at: 05:00:00
|
at: 05:00:00
|
||||||
action:
|
action:
|
||||||
- service: script.add_logbook_entry
|
|
||||||
data_template:
|
|
||||||
name: Backup
|
|
||||||
message: is running
|
|
||||||
- service: shell_command.backup
|
- service: shell_command.backup
|
||||||
- service: script.twitter_notify
|
- service: script.twitter_notify
|
||||||
data_template:
|
data_template:
|
||||||
|
@ -361,11 +353,11 @@
|
||||||
data:
|
data:
|
||||||
name: midnight-AH
|
name: midnight-AH
|
||||||
- id: turn_off_audible_notifications
|
- id: turn_off_audible_notifications
|
||||||
alias: Turn Off Audible Notifications at 730pm
|
alias: Turn Off Audible Notifications
|
||||||
initial_state: true
|
initial_state: true
|
||||||
trigger:
|
trigger:
|
||||||
- platform: time
|
- platform: time
|
||||||
at: '19:30:00'
|
at: '20:30:00'
|
||||||
action:
|
action:
|
||||||
- service: input_boolean.turn_off
|
- service: input_boolean.turn_off
|
||||||
entity_id: input_boolean.audible_notifications
|
entity_id: input_boolean.audible_notifications
|
||||||
|
@ -406,7 +398,7 @@
|
||||||
- service: input_boolean.turn_on
|
- service: input_boolean.turn_on
|
||||||
entity_id: input_boolean.jeff_travel_monitor
|
entity_id: input_boolean.jeff_travel_monitor
|
||||||
- id: enable_bad_traffic_home_jeff
|
- id: enable_bad_traffic_home_jeff
|
||||||
alias: Enable Jeff Bad Traffic Home
|
alias: Notify Jeff - Bad Traffic
|
||||||
initial_state: true
|
initial_state: true
|
||||||
trigger:
|
trigger:
|
||||||
- platform: numeric_state
|
- platform: numeric_state
|
||||||
|
@ -462,170 +454,10 @@
|
||||||
condition: []
|
condition: []
|
||||||
action:
|
action:
|
||||||
- service: script.family_is_away
|
- 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'
|
- id: '1558620708807'
|
||||||
alias: Upstairs Cooling On
|
alias: Upstairs Cooling On
|
||||||
initial_state: true
|
initial_state: true
|
||||||
|
@ -723,10 +555,6 @@
|
||||||
trigger:
|
trigger:
|
||||||
- platform: template
|
- platform: template
|
||||||
value_template: "{{ states('sensor.time') == (state_attr('input_datetime.kat_pill_reminder', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}"
|
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:
|
action:
|
||||||
- data:
|
- data:
|
||||||
message: Remember to take meds
|
message: Remember to take meds
|
||||||
|
|
|
@ -10,3 +10,7 @@
|
||||||
name: Day
|
name: Day
|
||||||
after: sunrise
|
after: sunrise
|
||||||
before: sunset
|
before: sunset
|
||||||
|
- platform: tod
|
||||||
|
name: Quiet time
|
||||||
|
after: '22:00'
|
||||||
|
before: '07:00'
|
|
@ -65,11 +65,11 @@ device_tracker:
|
||||||
# track_new_devices: yes
|
# track_new_devices: yes
|
||||||
# - platform: owntracks
|
# - platform: owntracks
|
||||||
#
|
#
|
||||||
#- platform: eero_tracker
|
# - platform: eero_tracker
|
||||||
# consider_home: 300
|
# consider_home: 300
|
||||||
# interval_seconds: 60
|
# interval_seconds: 60
|
||||||
# track_new_devices: yes
|
# 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"
|
# 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:
|
google:
|
||||||
|
|
|
@ -37,6 +37,12 @@ External Doors:
|
||||||
- binary_sensor.laundry_room_door_contact_2
|
- binary_sensor.laundry_room_door_contact_2
|
||||||
- binary_sensor.garage_door
|
- 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:
|
Internal Doors:
|
||||||
- binary_sensor.attic_door_contact_2
|
- binary_sensor.attic_door_contact_2
|
||||||
|
|
||||||
|
|
|
@ -40,9 +40,6 @@ kat_heading_home:
|
||||||
jeff_heading_home:
|
jeff_heading_home:
|
||||||
name: Jeff Heading Home
|
name: Jeff Heading Home
|
||||||
icon: mdi:car
|
icon: mdi:car
|
||||||
skylar_dressed_alarm:
|
|
||||||
name: Skylar Dressed Alarm
|
|
||||||
icon: mdi:speaker-wireless
|
|
||||||
jeff_traffic_alerts:
|
jeff_traffic_alerts:
|
||||||
name: Jeff Traffic Alerts
|
name: Jeff Traffic Alerts
|
||||||
icon: mdi:bell-plus
|
icon: mdi:bell-plus
|
||||||
|
@ -70,33 +67,33 @@ presence_text_notifications:
|
||||||
presence_audio_notifications:
|
presence_audio_notifications:
|
||||||
name: Presence Audio
|
name: Presence Audio
|
||||||
icon: mdi:speaker-wireless
|
icon: mdi:speaker-wireless
|
||||||
shuffle_spotify:
|
|
||||||
name: Shuffle Playlists
|
|
||||||
icon: mdi:shuffle-variant
|
|
||||||
weather_reports:
|
weather_reports:
|
||||||
name: Weather Info
|
name: Weather Info
|
||||||
traffic_reports:
|
traffic_reports:
|
||||||
name: traffic_reports
|
name: traffic_reports
|
||||||
sun_reports:
|
sun_reports:
|
||||||
name: Sun Reports
|
name: Sun Reports
|
||||||
tweet_system:
|
#tweet_system:
|
||||||
name: Tweet System
|
# name: Tweet System
|
||||||
icon: mdi:twitter
|
# icon: mdi:twitter
|
||||||
tweet_ha_releases:
|
# tweet_ha_releases:
|
||||||
name: Tweet HA Releases
|
# name: Tweet HA Releases
|
||||||
icon: mdi:twitter
|
# icon: mdi:twitter
|
||||||
tweet_iss:
|
# tweet_iss:
|
||||||
name: Tweet ISS Sightings
|
# name: Tweet ISS Sightings
|
||||||
icon: mdi:twitter
|
# icon: mdi:twitter
|
||||||
tweet_snark:
|
# tweet_snark:
|
||||||
name: Tweet Snark
|
# name: Tweet Snark
|
||||||
icon: mdi:twitter
|
# icon: mdi:twitter
|
||||||
washer_notification:
|
# tweet_stats:
|
||||||
name: Washer Notification
|
# name: Tweet Stats
|
||||||
icon: mdi:speaker-wireless
|
# icon: mdi:twitter
|
||||||
play_weather_report:
|
# washer_notification:
|
||||||
name: Play Weather Report
|
# name: Washer Notification
|
||||||
icon: mdi:speaker-wireless
|
# icon: mdi:speaker-wireless
|
||||||
|
# play_weather_report:
|
||||||
|
# name: Play Weather Report
|
||||||
|
# icon: mdi:speaker-wireless
|
||||||
new_ha_announcement:
|
new_ha_announcement:
|
||||||
name: New HA Announcement
|
name: New HA Announcement
|
||||||
icon: mdi:twitter
|
icon: mdi:twitter
|
|
@ -18,12 +18,3 @@ recycle_pickup:
|
||||||
- Friday
|
- Friday
|
||||||
initial: Tuesday
|
initial: Tuesday
|
||||||
icon: mdi:delete-variant
|
icon: mdi:delete-variant
|
||||||
spotify_source:
|
|
||||||
name: Spotify Source
|
|
||||||
options:
|
|
||||||
- Everywhere
|
|
||||||
- Living Room
|
|
||||||
- Master Bedroom
|
|
||||||
- Kitchen
|
|
||||||
initial: Everywhere
|
|
||||||
icon: mdi:speaker-wireless
|
|
||||||
|
|
|
@ -5,70 +5,48 @@
|
||||||
# @description : Just Normal Announcements.
|
# @description : Just Normal Announcements.
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
script:
|
#script:
|
||||||
|
|
||||||
annc_storm_statement:
|
# annc_storm_statement:
|
||||||
sequence:
|
# sequence:
|
||||||
- condition: state
|
# - condition: state
|
||||||
entity_id: input_boolean.audible_notifications
|
# entity_id: input_boolean.vacation_mode
|
||||||
state: 'on'
|
# state: 'off'
|
||||||
- condition: state
|
# - service: script.text_notify
|
||||||
entity_id: input_boolean.vacation_mode
|
# data:
|
||||||
state: 'off'
|
# message: Severe Storm Statement Issued for Anchorage House
|
||||||
- service: notify.ios_all
|
# annc_tstorm_watch:
|
||||||
data:
|
# sequence:
|
||||||
message: Severe Storm Statement Issued for Anchorage House
|
# - condition: state
|
||||||
annc_tstorm_watch:
|
# entity_id: input_boolean.vacation_mode
|
||||||
sequence:
|
# state: 'off'
|
||||||
- condition: state
|
# - service: script.text_notify
|
||||||
entity_id: input_boolean.audible_notifications
|
# data:
|
||||||
state: 'on'
|
# message: Severe Thunderstorm Watch Issued for Anchorage House
|
||||||
- condition: state
|
# annc_tstorm_warning:
|
||||||
entity_id: input_boolean.vacation_mode
|
# sequence:
|
||||||
state: 'off'
|
# - condition: state
|
||||||
- service: notify.ios_all
|
# entity_id: input_boolean.vacation_mode
|
||||||
data:
|
# state: 'off'
|
||||||
message: Severe Thunderstorm Watch Issued for Anchorage House
|
# - service: script.text_notify
|
||||||
annc_tstorm_warning:
|
# data:
|
||||||
sequence:
|
# message: Severe Thunderstorm Warning Issued for Anchorage House
|
||||||
- condition: state
|
# annc_tornado_watch:
|
||||||
entity_id: input_boolean.audible_notifications
|
# sequence:
|
||||||
state: 'on'
|
# - condition: state
|
||||||
- condition: state
|
# entity_id: input_boolean.vacation_mode
|
||||||
entity_id: input_boolean.vacation_mode
|
# state: 'off'
|
||||||
state: 'off'
|
# - service: script.text_notify
|
||||||
- service: notify.ios_all
|
# data:
|
||||||
data:
|
# message: Tornado Watch Issued for Anchorage House
|
||||||
message: Severe Thunderstorm Warning Issued for Anchorage House
|
# annc_tornado_warning:
|
||||||
annc_tornado_watch:
|
# sequence:
|
||||||
sequence:
|
# - condition: state
|
||||||
- condition: state
|
# entity_id: sensor.family_status
|
||||||
entity_id: input_boolean.audible_notifications
|
# state: Home
|
||||||
state: 'on'
|
# - service: script.alert_notify
|
||||||
- condition: state
|
# data_template:
|
||||||
entity_id: input_boolean.vacation_mode
|
# message: "Tornado Warning has been Issued"
|
||||||
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"
|
|
||||||
|
|
||||||
automation:
|
automation:
|
||||||
- id: prebed_routine
|
- id: prebed_routine
|
||||||
|
@ -77,10 +55,6 @@ automation:
|
||||||
trigger:
|
trigger:
|
||||||
platform: template
|
platform: template
|
||||||
value_template: "{{ states('sensor.time') == (state_attr('input_datetime.skylar_nightly_report', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}"
|
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:
|
action:
|
||||||
- service: script.prebed_routine
|
- service: script.prebed_routine
|
||||||
- id: nightly_report
|
- id: nightly_report
|
||||||
|
@ -89,22 +63,15 @@ automation:
|
||||||
trigger:
|
trigger:
|
||||||
platform: template
|
platform: template
|
||||||
value_template: "{{ states('sensor.time') == (state_attr('input_datetime.nightly_report', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}"
|
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:
|
action:
|
||||||
- service: script.nightly_report
|
- service: script.nightly_report
|
||||||
|
|
||||||
- id: good_morning_report
|
- id: good_morning_report
|
||||||
alias: Good Morning Report
|
alias: Good Morning Report
|
||||||
initial_state: true
|
initial_state: true
|
||||||
trigger:
|
trigger:
|
||||||
platform: template
|
platform: template
|
||||||
value_template: "{{ states('sensor.time') == (state_attr('input_datetime.morning_report', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}"
|
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:
|
action:
|
||||||
- service: script.morning_report
|
- service: script.morning_report
|
||||||
- service: script.twitter_notify
|
- service: script.twitter_notify
|
||||||
|
@ -125,39 +92,7 @@ automation:
|
||||||
- wed
|
- wed
|
||||||
- thu
|
- thu
|
||||||
- fri
|
- fri
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.audible_notifications
|
|
||||||
state: 'on'
|
|
||||||
action:
|
action:
|
||||||
- service: script.skylar_morning_greeting
|
- 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. ",
|
"I have enabled guest mode. ",
|
||||||
"Guest Mode is on."
|
"Guest Mode is on."
|
||||||
] | random }}
|
] | 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:
|
script:
|
||||||
activate_house_party_protocol:
|
activate_house_party_protocol:
|
||||||
|
@ -43,13 +61,3 @@ script:
|
||||||
"Incense has been turned on.",
|
"Incense has been turned on.",
|
||||||
"I have enabled house party protocol."
|
"I have enabled house party protocol."
|
||||||
] | random }}
|
] | 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_jeffreystonesiphone
|
||||||
- service: ios_jeffreystonesipad
|
- service: ios_jeffreystonesipad
|
||||||
- service: ios_katherinestonesiphone
|
- service: ios_katherinestonesiphone
|
||||||
|
- name: ios_parents
|
||||||
|
platform: group
|
||||||
|
services:
|
||||||
|
- service: ios_jeffreystonesiphone
|
||||||
|
- service: ios_jeffreystonesipad
|
||||||
|
- service: ios_katherinestonesiphone
|
||||||
- name: jeff_ios
|
- name: jeff_ios
|
||||||
platform: group
|
platform: group
|
||||||
services:
|
services:
|
||||||
|
@ -92,6 +98,65 @@ script:
|
||||||
message: >
|
message: >
|
||||||
{{ 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
|
# Alert Notify
|
||||||
# Conditions:
|
# Conditions:
|
||||||
|
@ -152,7 +217,7 @@ script:
|
||||||
jarvis_voice:
|
jarvis_voice:
|
||||||
sequence:
|
sequence:
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: '{{ states.input_boolean.audible_notifications.state == "on" }}'
|
value_template: '{{ states.binary_sensor.quiet_time.state == "off" }}'
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: sensor.family_status
|
entity_id: sensor.family_status
|
||||||
state: 'Home'
|
state: 'Home'
|
||||||
|
@ -163,13 +228,12 @@ script:
|
||||||
{{ not is_state('media_player.hass_speaker', 'playing') }}
|
{{ not is_state('media_player.hass_speaker', 'playing') }}
|
||||||
- service: tts.amazon_polly_say
|
- service: tts.amazon_polly_say
|
||||||
data_template:
|
data_template:
|
||||||
entity_id: media_player.hass_speaker
|
entity_id: >
|
||||||
# entity_id: >
|
{% if states.input_boolean.audible_notifications.state == 'on' %}
|
||||||
# {% if states.input_boolean.audible_notifications.state == 'on' %}
|
media_player.hass_speaker
|
||||||
# media_player.hass_speaker
|
{% else %}
|
||||||
# {% else %}
|
media_player.googlehome0715, media_player.googlehomehub3492
|
||||||
# media_player.googlehome0715, media_player.googlehomehub3492
|
{% endif %}
|
||||||
# {% endif %}
|
|
||||||
message: >-
|
message: >-
|
||||||
<speak>
|
<speak>
|
||||||
{{ message }}
|
{{ message }}
|
||||||
|
@ -182,9 +246,6 @@ script:
|
||||||
|
|
||||||
twitter_notify:
|
twitter_notify:
|
||||||
sequence:
|
sequence:
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.tweet_system
|
|
||||||
state: 'on'
|
|
||||||
- service: notify.twitter
|
- service: notify.twitter
|
||||||
data_template:
|
data_template:
|
||||||
message: >
|
message: >
|
||||||
|
@ -195,18 +256,19 @@ script:
|
||||||
|
|
||||||
twitter_snark:
|
twitter_snark:
|
||||||
sequence:
|
sequence:
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.tweet_snark
|
|
||||||
state: 'on'
|
|
||||||
- service: notify.twitter
|
- service: notify.twitter
|
||||||
data_template:
|
data_template:
|
||||||
message: !include ../templates/twitter_snark.yaml
|
message: !include ../templates/twitter_snark.yaml
|
||||||
|
|
||||||
|
|
||||||
|
twitter_stats:
|
||||||
|
sequence:
|
||||||
|
- service: notify.twitter
|
||||||
|
data_template:
|
||||||
|
message: !include ../templates/twitter_stats.yaml
|
||||||
|
|
||||||
twitter_github:
|
twitter_github:
|
||||||
sequence:
|
sequence:
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.tweet_system
|
|
||||||
state: 'on'
|
|
||||||
- service: notify.twitter
|
- service: notify.twitter
|
||||||
data_template:
|
data_template:
|
||||||
message: >
|
message: >
|
||||||
|
@ -217,9 +279,6 @@ script:
|
||||||
|
|
||||||
twitter_new_ha:
|
twitter_new_ha:
|
||||||
sequence:
|
sequence:
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.tweet_releases
|
|
||||||
state: 'on'
|
|
||||||
- service: notify.twitter
|
- service: notify.twitter
|
||||||
data_template:
|
data_template:
|
||||||
message: !include ../templates/twitter_new_ha.yaml
|
message: !include ../templates/twitter_new_ha.yaml
|
||||||
|
@ -263,17 +322,12 @@ script:
|
||||||
###############################################################################
|
###############################################################################
|
||||||
weather_report:
|
weather_report:
|
||||||
sequence:
|
sequence:
|
||||||
- service: script.jarvis_voice
|
|
||||||
data_template:
|
|
||||||
message: !include ../templates/jarvis_confirmations.yaml
|
|
||||||
- delay:
|
|
||||||
seconds: 3
|
|
||||||
- service: script.jarvis_voice
|
- service: script.jarvis_voice
|
||||||
data_template:
|
data_template:
|
||||||
message: !include ../templates/weather_report.yaml
|
message: !include ../templates/weather_report.yaml
|
||||||
- delay:
|
- delay:
|
||||||
minutes: 5
|
minutes: 5
|
||||||
- service: scriot.turn_off
|
- service: script.turn_off
|
||||||
entity_id: script.weather_report
|
entity_id: script.weather_report
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
@ -284,25 +338,70 @@ script:
|
||||||
- service: script.jarvis_voice
|
- service: script.jarvis_voice
|
||||||
data_template:
|
data_template:
|
||||||
message: !include ../templates/traffic_report.yaml
|
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:
|
jeff_eta_report:
|
||||||
sequence:
|
sequence:
|
||||||
- service: script.jarvis_voice
|
- service: script.jarvis_voice
|
||||||
data_template:
|
data_template:
|
||||||
message: !include ../templates/jeff_eta.yaml
|
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:
|
kat_eta_report:
|
||||||
sequence:
|
sequence:
|
||||||
- service: script.jarvis_voice
|
- service: script.jarvis_voice
|
||||||
data_template:
|
data_template:
|
||||||
message: !include ../templates/kat_eta.yaml
|
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
|
# Prebed Routing
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
|
@ -37,6 +37,17 @@ sensor:
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ states.device_tracker.jeffreystonesiphone.state }}
|
{{ states.device_tracker.jeffreystonesiphone.state }}
|
||||||
{%- endif %}
|
{%- 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
|
- platform: template
|
||||||
sensors:
|
sensors:
|
||||||
skylar_location:
|
skylar_location:
|
||||||
|
@ -79,6 +90,19 @@ sensor:
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ states.device_tracker.katherinestonesiphone.state }}
|
{{ states.device_tracker.katherinestonesiphone.state }}
|
||||||
{%- endif %}
|
{%- 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
|
- platform: mqtt
|
||||||
name: "Family Status"
|
name: "Family Status"
|
||||||
state_topic: "house/family/status"
|
state_topic: "house/family/status"
|
||||||
|
@ -107,3 +131,210 @@ sensor:
|
||||||
or is_state('device_tracker.katherinestonesiphone', 'home')
|
or is_state('device_tracker.katherinestonesiphone', 'home')
|
||||||
or is_state('device_tracker.life360_kat_stone', 'home')
|
or is_state('device_tracker.life360_kat_stone', 'home')
|
||||||
or is_state('sensor.family_status', '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
|
- service: shell_command.door_chime
|
||||||
initial_state: true
|
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
|
- id: security_breach_door
|
||||||
alias: Security Breach Doors
|
alias: Security Breach Doors
|
||||||
trigger:
|
trigger:
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id:
|
entity_id:
|
||||||
- binary_sensor.front_door_contact_2
|
- binary_sensor.front_door
|
||||||
- binary_sensor.laundry_room_door_contact_2
|
- binary_sensor.laundry_room_door
|
||||||
- binary_sensor.attic_door_contact_2
|
- binary_sensor.back_door
|
||||||
- binary_sensor.back_door_contact_2
|
- binary_sensor.side_door
|
||||||
|
- binary_sensor.garage_door
|
||||||
from: 'off'
|
from: 'off'
|
||||||
condition:
|
condition:
|
||||||
- condition: state
|
- condition: state
|
||||||
|
@ -155,11 +204,52 @@ automation:
|
||||||
action:
|
action:
|
||||||
- service: script.jarvis_notify
|
- service: script.jarvis_notify
|
||||||
data_template:
|
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
|
- service: input_boolean.turn_on
|
||||||
entity_id: input_boolean.security_issue
|
entity_id: input_boolean.security_issue
|
||||||
initial_state: true
|
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:
|
script:
|
||||||
lockdown_issue:
|
lockdown_issue:
|
||||||
sequence:
|
sequence:
|
||||||
|
@ -171,6 +261,10 @@ script:
|
||||||
state: "Away"
|
state: "Away"
|
||||||
- service: input_boolean.turn_on
|
- service: input_boolean.turn_on
|
||||||
entity_id: input_boolean.lockdown_issue
|
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:
|
security_check_garage:
|
||||||
sequence:
|
sequence:
|
||||||
|
@ -205,18 +299,17 @@ script:
|
||||||
entity_id: input_boolean.sentry_mode
|
entity_id: input_boolean.sentry_mode
|
||||||
- service: input_boolean.turn_off
|
- service: input_boolean.turn_off
|
||||||
entity_id: input_boolean.security_issue
|
entity_id: input_boolean.security_issue
|
||||||
|
- service: input_boolean.turn_off
|
||||||
|
entity_id: input_boolean.lockdown_issue
|
||||||
- service: input_boolean.turn_off
|
- service: input_boolean.turn_off
|
||||||
entity_id: input_boolean.security_alarm
|
entity_id: input_boolean.security_alarm
|
||||||
|
|
||||||
visitors_here:
|
visitors_here:
|
||||||
sequence:
|
sequence:
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.audible_notifications
|
|
||||||
state: 'on'
|
|
||||||
- service: input_boolean.turn_on
|
- service: input_boolean.turn_on
|
||||||
data:
|
data:
|
||||||
entity_id: input_boolean.guest_mode
|
entity_id: input_boolean.guest_mode
|
||||||
- service: shell_command.haunted_guest_welcome
|
#- service: shell_command.haunted_guest_welcome
|
||||||
|
|
||||||
visitors_gone:
|
visitors_gone:
|
||||||
sequence:
|
sequence:
|
||||||
|
@ -228,48 +321,74 @@ script:
|
||||||
sequence:
|
sequence:
|
||||||
- service: shell_command.security_alarm
|
- 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:
|
# notification_sentry_mode_deactiviated_text:
|
||||||
sequence:
|
# sequence:
|
||||||
- condition: state
|
# - service: notify.jeff_ios
|
||||||
entity_id: input_boolean.audible_notifications
|
# data:
|
||||||
state: 'on'
|
# message: Sentry Mode Deactivated
|
||||||
- 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:
|
# notification_sentry_mode_activiated_text:
|
||||||
sequence:
|
# sequence:
|
||||||
- condition: state
|
# - service: notify.jeff_ios
|
||||||
entity_id: input_boolean.audible_notifications
|
# data:
|
||||||
state: 'on'
|
# message: Sentry Mode Activated
|
||||||
- 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
|
|
||||||
|
|
||||||
vacation_canceled:
|
vacation_canceled:
|
||||||
sequence:
|
sequence:
|
||||||
- data:
|
- data:
|
||||||
entity_id: input_boolean.vacation_mode
|
entity_id: input_boolean.vacation_mode
|
||||||
service: input_boolean.turn_off
|
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
|
- binary_sensor.iss
|
||||||
to: 'on'
|
to: 'on'
|
||||||
from: 'off'
|
from: 'off'
|
||||||
condition:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.audible_notifications
|
|
||||||
state: 'on'
|
|
||||||
action:
|
action:
|
||||||
- service: script.jarvis_voice
|
- service: script.jarvis_voice
|
||||||
data_template:
|
data_template:
|
||||||
|
|
|
@ -40,10 +40,6 @@ automation:
|
||||||
at: '00:00:10'
|
at: '00:00:10'
|
||||||
action:
|
action:
|
||||||
- service: shell_command.usps
|
- service: shell_command.usps
|
||||||
- service: script.add_logbook_entry
|
|
||||||
data_template:
|
|
||||||
name: USPS
|
|
||||||
message: Reset Mail Count
|
|
||||||
|
|
||||||
- id: get_usps
|
- id: get_usps
|
||||||
initial_state: true
|
initial_state: true
|
||||||
|
@ -53,10 +49,6 @@ automation:
|
||||||
at: '10:00:00'
|
at: '10:00:00'
|
||||||
action:
|
action:
|
||||||
- service: shell_command.usps
|
- 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
|
# Notify USPS mails via TTS, and iOS notification with attachment
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
@ -72,7 +64,12 @@ automation:
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: '{{ ((now().hour | int) > 7) and ((now().hour | int) < 16) }}'
|
value_template: '{{ ((now().hour | int) > 7) and ((now().hour | int) < 16) }}'
|
||||||
action:
|
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:
|
data_template:
|
||||||
message: >
|
message: >
|
||||||
{%- if states.sensor.usps_mail.state | int == 1 -%}
|
{%- if states.sensor.usps_mail.state | int == 1 -%}
|
||||||
|
@ -80,16 +77,18 @@ automation:
|
||||||
{%- else -%}
|
{%- else -%}
|
||||||
USPS is delivering {{ states.sensor.usps_mail.state }} pieces of mail today.
|
USPS is delivering {{ states.sensor.usps_mail.state }} pieces of mail today.
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
- service: notify.jeff_ios
|
- service: script.text_notify
|
||||||
data_template:
|
data_template:
|
||||||
|
who: "jeff"
|
||||||
|
title: "USPS Delivering Today"
|
||||||
message: "USPS will be delivering {{ states.sensor.usps_mail.state }} piece(s) of mail today."
|
message: "USPS will be delivering {{ states.sensor.usps_mail.state }} piece(s) of mail today."
|
||||||
data:
|
# data:
|
||||||
push:
|
# push:
|
||||||
category: camera
|
# category: camera
|
||||||
entity_id: "camera.usps_mail_pictures"
|
# entity_id: "camera.usps_mail_pictures"
|
||||||
attachment:
|
# attachment:
|
||||||
url: "{{ states.camera.usps_mail_pictures.attributes.entity_picture }}"
|
# url: "{{ states.camera.usps_mail_pictures.attributes.entity_picture }}"
|
||||||
content-type: jpg
|
# content-type: jpg
|
||||||
|
|
||||||
# Notify USPS packages via TTS. Usually there are no pictures for packages
|
# Notify USPS packages via TTS. Usually there are no pictures for packages
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
@ -105,7 +104,12 @@ automation:
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: '{{ ((now().hour | int) > 7) and ((now().hour | int) < 16) }}'
|
value_template: '{{ ((now().hour | int) > 7) and ((now().hour | int) < 16) }}'
|
||||||
action:
|
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:
|
data_template:
|
||||||
message: >
|
message: >
|
||||||
{%- if states.sensor.usps_packages.state | int == 1 -%}
|
{%- if states.sensor.usps_packages.state | int == 1 -%}
|
||||||
|
|
|
@ -86,8 +86,9 @@ automation:
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: '{{ trigger.to_state.state|float > trigger.from_state.state|float }}'
|
value_template: '{{ trigger.to_state.state|float > trigger.from_state.state|float }}'
|
||||||
action:
|
action:
|
||||||
- service: notify.jeff_ios
|
- service: script.text_notify
|
||||||
data_template:
|
data_template:
|
||||||
|
title: "Weather Alert for Anchorage House"
|
||||||
message: >
|
message: >
|
||||||
{% if states.sensor.nws_alerts.attributes.title.split(' - ')[5] is defined %}
|
{% if states.sensor.nws_alerts.attributes.title.split(' - ')[5] is defined %}
|
||||||
"NWS: {{ states.sensor.nws_alerts.attributes.title.split(' - ')[5] }}"
|
"NWS: {{ states.sensor.nws_alerts.attributes.title.split(' - ')[5] }}"
|
||||||
|
@ -185,9 +186,10 @@ automation:
|
||||||
- delay: '00:00:15'
|
- delay: '00:00:15'
|
||||||
- service: input_boolean.turn_on
|
- service: input_boolean.turn_on
|
||||||
entity_id: input_boolean.tornado_alarm
|
entity_id: input_boolean.tornado_alarm
|
||||||
- service: script.text_notify_all
|
- service: script.text_alert
|
||||||
data_template:
|
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
|
- alias: Activate Tornado alarm
|
||||||
initial_state: 'on'
|
initial_state: 'on'
|
||||||
|
@ -215,6 +217,19 @@ automation:
|
||||||
- service: media_player.media_stop
|
- service: media_player.media_stop
|
||||||
entity_id: media_player.hass_speaker
|
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:
|
script:
|
||||||
nws_popup_on_wx_alert:
|
nws_popup_on_wx_alert:
|
||||||
alias: NWS Weather Alert Pop Up
|
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
|
- condition: state
|
||||||
entity_id: sensor.family_status
|
entity_id: sensor.family_status
|
||||||
state: Home
|
state: Home
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.audible_notifications
|
|
||||||
state: 'on'
|
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: sensor.washer_status
|
entity_id: sensor.washer_status
|
||||||
state: complete
|
state: complete
|
||||||
- service: tts.google_translate_say
|
- service: script.jarvis_voice
|
||||||
entity_id: media_player.hass_speaker
|
|
||||||
data_template:
|
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:
|
girl_eyes_on_you:
|
||||||
sequence:
|
sequence:
|
||||||
- service: media_player.play_media
|
- service: media_player.play_media
|
||||||
|
@ -43,40 +48,6 @@ washer_complete:
|
||||||
topic: house/washer/status
|
topic: house/washer/status
|
||||||
payload: complete
|
payload: complete
|
||||||
retain: true
|
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:
|
normal_tower:
|
||||||
sequence:
|
sequence:
|
||||||
- service: light.turn_on
|
- service: light.turn_on
|
||||||
|
@ -97,58 +68,58 @@ open_garage:
|
||||||
state: closed
|
state: closed
|
||||||
- service: cover.open_cover
|
- service: cover.open_cover
|
||||||
entity_id: cover.cargo_bay
|
entity_id: cover.cargo_bay
|
||||||
play_skylars_christmas_playlist:
|
# play_skylars_christmas_playlist:
|
||||||
sequence:
|
# sequence:
|
||||||
- service: media_player.volume_set
|
# - service: media_player.volume_set
|
||||||
data:
|
# data:
|
||||||
entity_id: media_player.spotify
|
# entity_id: media_player.spotify
|
||||||
volume_level: '0.40'
|
# volume_level: '0.40'
|
||||||
- service: media_player.select_source
|
# - service: media_player.select_source
|
||||||
data_template:
|
# data_template:
|
||||||
entity_id: media_player.spotify
|
# entity_id: media_player.spotify
|
||||||
source: '{% if is_state("input_select.spotify_source", "Everywhere") %} Everywhere
|
# 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", "Living Room") %} Living Room
|
||||||
{% elif is_state("input_select.spotify_source", "Kitchen") %} Kitchen {% elif
|
# {% elif is_state("input_select.spotify_source", "Kitchen") %} Kitchen {% elif
|
||||||
is_state("input_select.spotify_source", "Master Bedroom") %} Master Bedroom
|
# is_state("input_select.spotify_source", "Master Bedroom") %} Master Bedroom
|
||||||
{% endif %}
|
# {% endif %}
|
||||||
|
|
||||||
'
|
# '
|
||||||
- service: media_player.play_media
|
# - service: media_player.play_media
|
||||||
data_template:
|
# data_template:
|
||||||
entity_id: media_player.spotify
|
# entity_id: media_player.spotify
|
||||||
media_content_type: playlist
|
# media_content_type: playlist
|
||||||
media_content_id: spotify:user:spotify:playlist:2lmfykOn8EK0Ow8iH9XHLa
|
# media_content_id: spotify:user:spotify:playlist:2lmfykOn8EK0Ow8iH9XHLa
|
||||||
- service: media_player.shuffle_set
|
# - service: media_player.shuffle_set
|
||||||
data:
|
# data:
|
||||||
entity_id: media_player.spotify
|
# entity_id: media_player.spotify
|
||||||
shuffle: '{% if is_state("input_boolean.shuffle_spotify", "On") %} True {% elif
|
# shuffle: '{% if is_state("input_boolean.shuffle_spotify", "On") %} True {% elif
|
||||||
is_state("input_select.shuffle_spotify", "Off") %} False {% endif %}
|
# is_state("input_select.shuffle_spotify", "Off") %} False {% endif %}
|
||||||
|
|
||||||
'
|
# '
|
||||||
play_skylars_playlist:
|
# play_skylars_playlist:
|
||||||
sequence:
|
# sequence:
|
||||||
- service: media_player.volume_set
|
# - service: media_player.volume_set
|
||||||
data:
|
# data:
|
||||||
entity_id: media_player.spotify
|
# entity_id: media_player.spotify
|
||||||
volume_level: '0.40'
|
# volume_level: '0.40'
|
||||||
- service: media_player.select_source
|
# - service: media_player.select_source
|
||||||
data_template:
|
# data_template:
|
||||||
entity_id: media_player.spotify
|
# entity_id: media_player.spotify
|
||||||
source: '{% if is_state("input_select.spotify_source", "Everywhere") %} Everywhere
|
# 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", "Living Room") %} Living Room
|
||||||
{% elif is_state("input_select.spotify_source", "Kitchen") %} Kitchen {% elif
|
# {% elif is_state("input_select.spotify_source", "Kitchen") %} Kitchen {% elif
|
||||||
is_state("input_select.spotify_source", "Master Bedroom") %} Master Bedroom
|
# is_state("input_select.spotify_source", "Master Bedroom") %} Master Bedroom
|
||||||
{% endif %}'
|
# {% endif %}'
|
||||||
- service: media_player.play_media
|
# - service: media_player.play_media
|
||||||
data_template:
|
# data_template:
|
||||||
entity_id: media_player.spotify
|
# entity_id: media_player.spotify
|
||||||
media_content_type: playlist
|
# media_content_type: playlist
|
||||||
media_content_id: spotify:user:spotify:playlist:0hYKkmUpFFG37TtFX23cMM
|
# media_content_id: spotify:user:spotify:playlist:0hYKkmUpFFG37TtFX23cMM
|
||||||
- service: media_player.shuffle_set
|
# - service: media_player.shuffle_set
|
||||||
data:
|
# data:
|
||||||
entity_id: media_player.spotify
|
# entity_id: media_player.spotify
|
||||||
shuffle: '{% if is_state("input_boolean.shuffle_spotify", "On") %} True {% elif
|
# shuffle: '{% if is_state("input_boolean.shuffle_spotify", "On") %} True {% elif
|
||||||
is_state("input_select.shuffle_spotify", "Off") %} False {% endif %}'
|
# is_state("input_select.shuffle_spotify", "Off") %} False {% endif %}'
|
||||||
tornado_alarm:
|
tornado_alarm:
|
||||||
sequence:
|
sequence:
|
||||||
- service: shell_command.tornado_alarm
|
- service: shell_command.tornado_alarm
|
||||||
|
@ -200,20 +171,15 @@ jeff_destination_harbins:
|
||||||
topic: jeff/driving/destination
|
topic: jeff/driving/destination
|
||||||
payload: Harbins
|
payload: Harbins
|
||||||
retain: true
|
retain: true
|
||||||
jeff_at_work_notification:
|
kat_destination_na:
|
||||||
sequence:
|
sequence:
|
||||||
- condition: state
|
- service: mqtt.publish
|
||||||
entity_id: input_boolean.text_notify_kat
|
|
||||||
state: 'on'
|
|
||||||
- service: notify.ios_katherinestonesiphone
|
|
||||||
data:
|
data:
|
||||||
message: Jeff has arrived at Summit
|
topic: kat/driving/destination
|
||||||
|
payload: na
|
||||||
|
retain: true
|
||||||
inside_all_on:
|
inside_all_on:
|
||||||
sequence:
|
sequence:
|
||||||
- event: LOGBOOK_ENTRY
|
|
||||||
event_data:
|
|
||||||
name: EVENT
|
|
||||||
message: Turning inside lights on.
|
|
||||||
- service: light.turn_on
|
- service: light.turn_on
|
||||||
data:
|
data:
|
||||||
entity_id: light.tower_lamp_4
|
entity_id: light.tower_lamp_4
|
||||||
|
@ -237,10 +203,6 @@ inside_all_on:
|
||||||
entity_id: scene.livingroom_normal
|
entity_id: scene.livingroom_normal
|
||||||
inside_all_off:
|
inside_all_off:
|
||||||
sequence:
|
sequence:
|
||||||
- event: LOGBOOK_ENTRY
|
|
||||||
event_data:
|
|
||||||
message: Turning inside lights off
|
|
||||||
name: EVENT
|
|
||||||
- data:
|
- data:
|
||||||
entity_id: light.tower_lamp_4
|
entity_id: light.tower_lamp_4
|
||||||
service: light.turn_off
|
service: light.turn_off
|
||||||
|
@ -344,3 +306,11 @@ voice_reports_off:
|
||||||
entity_id: input_boolean.play_weather_report
|
entity_id: input_boolean.play_weather_report
|
||||||
- service: script.turn_off
|
- service: script.turn_off
|
||||||
entity_id: script.weather_report
|
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
|
- platform: mqtt
|
||||||
name: "Washer Status"
|
name: "Washer Status"
|
||||||
state_topic: "house/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
|
- platform: history_stats
|
||||||
name: Speech time
|
name: Speech time
|
||||||
entity_id: media_player.hass_speaker
|
entity_id: media_player.hass_speaker
|
||||||
|
@ -8,7 +24,7 @@
|
||||||
type: time
|
type: time
|
||||||
end: '{{ now() }}'
|
end: '{{ now() }}'
|
||||||
duration:
|
duration:
|
||||||
hours: 24
|
days: 7
|
||||||
- platform: history_stats
|
- platform: history_stats
|
||||||
name: AppleTV time
|
name: AppleTV time
|
||||||
entity_id: media_player.apple_tv
|
entity_id: media_player.apple_tv
|
||||||
|
@ -32,7 +48,7 @@
|
||||||
type: time
|
type: time
|
||||||
end: '{{ now() }}'
|
end: '{{ now() }}'
|
||||||
duration:
|
duration:
|
||||||
hours: 24
|
days: 7
|
||||||
- platform: min_max
|
- platform: min_max
|
||||||
name: Outside Temp Stats
|
name: Outside Temp Stats
|
||||||
entity_ids:
|
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() %}
|
{% 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 is passing over. Wave.",
|
||||||
"But The International Space Station just flew by.",
|
"But The International Space Station just flew by.",
|
||||||
|
|
|
@ -1,12 +1,10 @@
|
||||||
>
|
>
|
||||||
{% macro getConfirmation() %}
|
{% macro getConfirmation() %}
|
||||||
{{ [
|
{{ [
|
||||||
"OK.",
|
"Okay.",
|
||||||
"Sure.",
|
|
||||||
"If you insist.",
|
"If you insist.",
|
||||||
"I can do that.",
|
"I am afraid I can't do that Dave,,,I am kidding,",
|
||||||
"Leave it to me.",
|
"Leave it to me.",
|
||||||
"Consider it done.",
|
|
||||||
"As you wish.",
|
"As you wish.",
|
||||||
"By your command.",
|
"By your command.",
|
||||||
"Affirmative.",
|
"Affirmative.",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
>
|
>
|
||||||
{% macro getInteruption() %}
|
{% macro getIntro() %}
|
||||||
{{ [
|
{{ [
|
||||||
"Pardon me,",
|
"Pardon me,",
|
||||||
"Excuse me,",
|
"Excuse me,",
|
||||||
|
@ -7,6 +7,8 @@
|
||||||
"I thought you might like to know."
|
"I thought you might like to know."
|
||||||
] | random }}
|
] | random }}
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|
||||||
|
|
||||||
{# a macro that removes all newline characters, empty spaces, and returns formatted text #}
|
{# a macro that removes all newline characters, empty spaces, and returns formatted text #}
|
||||||
{%- macro cleanup(data) -%}
|
{%- macro cleanup(data) -%}
|
||||||
{%- for item in data.split("\n") if item | trim != "" -%}
|
{%- for item in data.split("\n") if item | trim != "" -%}
|
||||||
|
@ -15,7 +17,7 @@
|
||||||
|
|
||||||
{# a macro to call all macros :) #}
|
{# a macro to call all macros :) #}
|
||||||
{%- macro mother_of_all_macros() -%}
|
{%- macro mother_of_all_macros() -%}
|
||||||
{{ getInteruption() }}
|
{{ getIntro() }}
|
||||||
|
|
||||||
{%- endmacro -%}
|
{%- endmacro -%}
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,42 @@
|
||||||
>
|
>
|
||||||
{% macro getIntro() %}
|
{% 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!
|
Jeff is already home!
|
||||||
{% else %}
|
{% 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 %}
|
{% endif %}
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
{# a macro that removes all newline characters, empty spaces, and returns formatted text #}
|
{# 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() %}
|
{% macro getIntro() %}
|
||||||
{% if is_state("sensor.kat_ett_home", "0") %}
|
{% if is_state("sensor.kat_location", "home") %}
|
||||||
Kat is already 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 %}
|
{% 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 %}
|
{% endif %}
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
{# a macro that removes all newline characters, empty spaces, and returns formatted text #}
|
{# 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() %}
|
{% macro getIntro() %}
|
||||||
|
|
||||||
{{ [ "Pardom me, Skylar,, ",
|
{{ [ "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.",
|
"This is your cruise director with your morning announcements.",
|
||||||
] | random }}
|
] | random }}
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
>
|
>
|
||||||
{% macro getIntro() %}
|
{% macro getIntro() %}
|
||||||
Skylar.
|
{{ [
|
||||||
{{ [ "This is your friendly neighborhood smart home ",
|
"Pardon me,",
|
||||||
"This is your digital life mate ",
|
"Excuse me,",
|
||||||
"This is your cruise director ",
|
"I do not mean to interupt, but,"
|
||||||
] | random }} with your end of day announcements.
|
] | random }}
|
||||||
Bedtime is in thirty minutes.
|
Skylar. Bedtime is in thirty minutes.
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
{% macro getPrebedRoutine() %}
|
{% 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.
|
Otherwise it is time to put on your pajamas.
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
{% macro getReminders() %}
|
{% macro getReminders() %}
|
||||||
|
|
|
@ -1,5 +1,11 @@
|
||||||
>
|
>
|
||||||
{% macro getIntro() %}
|
{% 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
|
Under current traffic conditions
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
{% macro getTrafficZoo() %}
|
{% 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. ",
|
"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've been crunching the numbers. We're going to need a bigger house. ",
|
||||||
"I see dead devices. ",
|
"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'm afraid I can't do that Dave. Wait. Did I say that outloud? ",
|
||||||
"I love the smell of zwave in the morning. ",
|
"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. ",
|
"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