From 70c7bbb6703eab6fbf7e5308bb83e90ef5d589be Mon Sep 17 00:00:00 2001 From: Jeffrey Stone Date: Sat, 13 Jul 2019 21:38:53 -0400 Subject: [PATCH] Too many updates to cover --- alerts/garage_after_dark.yaml | 0 alerts/jeff_bad_traffic_home.yaml | 0 alerts/jeff_heading_home.yaml | 0 alerts/kat_heading_home.yaml | 0 alerts/lockdown_issue.yaml | 0 alerts/unauthorized_access.yaml | 0 automations.yaml | 186 +--------------- binary_sensors/calendar.yaml | 6 +- binary_sensors/doors.yaml | 0 binary_sensors/motion.yaml | 0 configuration.yaml | 10 +- customize.yaml | 0 groups.yaml | 6 + input_boolean.yaml | 45 ++-- input_datetime.yaml | 0 input_select.yaml | 9 - lights/living_room.yaml | 0 packages/announcements.yaml | 151 ++++--------- packages/disney.yaml | 0 packages/events.yaml | 12 +- packages/jarvis.yaml | 30 ++- packages/maintenance.yaml | 0 packages/notify.yaml | 155 ++++++++++--- packages/presence.yaml | 231 ++++++++++++++++++++ packages/security.yaml | 209 ++++++++++++++---- packages/space.yaml | 4 - packages/sysmon.yaml | 0 packages/usps.yaml | 40 ++-- packages/weather_alerts_nws.yaml | 21 +- packages/weekday.yaml | 0 packages/zigbe2mqtt.yaml | 171 --------------- scenes.yaml | 0 scripts.yaml | 178 +++++++-------- sensors/batteries.yaml | 0 sensors/devices.yaml | 59 ----- sensors/finance.yaml | 0 sensors/github.yaml | 0 sensors/google_travel_time.yaml | 0 sensors/house.yaml | 20 +- sensors/power.yaml | 0 sensors/speedtest.yaml | 0 sensors/users.yaml | 0 sensors/weather.yaml | 0 switches/bedroom.yaml | 0 switches/living_room.yaml | 0 switches/notifications.yaml | 0 switches/sonoff.yaml | 0 switches/upstairs.yaml | 0 templates/configuration.yaml | 328 ---------------------------- templates/halloween_countdown.yaml | 27 +++ templates/iss_report.yaml | 7 +- templates/jarvis_confirmations.yaml | 6 +- templates/jarvis_interuptions.yaml | 6 +- templates/jarvis_issue.yaml | 0 templates/jeff_eta.yaml | 37 +++- templates/jeff_heading_home.yaml | 24 ++ templates/jeff_home_annc.yaml | 33 +++ templates/kat_arrived_at_work.yaml | 26 +++ templates/kat_eta.yaml | 48 +++- templates/kat_heading_home.yaml | 24 ++ templates/kat_home_annc.yaml | 33 +++ templates/morning_report.yaml | 0 templates/nightly_report.yaml | 0 templates/prebed_routing.yaml | 0 templates/security_report.yaml | 22 ++ templates/skylar_morning.yaml | 2 +- templates/skylar_night.yaml | 14 +- templates/traffic_report.yaml | 6 + templates/tweet_snark.yaml | 52 ----- templates/twitter_new_ha.yaml | 0 templates/twitter_snark.yaml | 3 + templates/twitter_stats.yaml | 32 +++ templates/weather_report.yaml | 0 templates/welcome_home.yaml | 18 ++ 74 files changed, 1119 insertions(+), 1172 deletions(-) mode change 100644 => 100755 alerts/garage_after_dark.yaml mode change 100644 => 100755 alerts/jeff_bad_traffic_home.yaml mode change 100644 => 100755 alerts/jeff_heading_home.yaml mode change 100644 => 100755 alerts/kat_heading_home.yaml mode change 100644 => 100755 alerts/lockdown_issue.yaml mode change 100644 => 100755 alerts/unauthorized_access.yaml mode change 100644 => 100755 automations.yaml mode change 100644 => 100755 binary_sensors/calendar.yaml mode change 100644 => 100755 binary_sensors/doors.yaml mode change 100644 => 100755 binary_sensors/motion.yaml mode change 100644 => 100755 configuration.yaml mode change 100644 => 100755 customize.yaml mode change 100644 => 100755 groups.yaml mode change 100644 => 100755 input_boolean.yaml mode change 100644 => 100755 input_datetime.yaml mode change 100644 => 100755 input_select.yaml mode change 100644 => 100755 lights/living_room.yaml mode change 100644 => 100755 packages/announcements.yaml mode change 100644 => 100755 packages/disney.yaml mode change 100644 => 100755 packages/events.yaml mode change 100644 => 100755 packages/jarvis.yaml mode change 100644 => 100755 packages/maintenance.yaml mode change 100644 => 100755 packages/notify.yaml mode change 100644 => 100755 packages/presence.yaml mode change 100644 => 100755 packages/security.yaml mode change 100644 => 100755 packages/space.yaml mode change 100644 => 100755 packages/sysmon.yaml mode change 100644 => 100755 packages/usps.yaml mode change 100644 => 100755 packages/weather_alerts_nws.yaml mode change 100644 => 100755 packages/weekday.yaml delete mode 100644 packages/zigbe2mqtt.yaml mode change 100644 => 100755 scenes.yaml mode change 100644 => 100755 scripts.yaml mode change 100644 => 100755 sensors/batteries.yaml delete mode 100644 sensors/devices.yaml mode change 100644 => 100755 sensors/finance.yaml mode change 100644 => 100755 sensors/github.yaml mode change 100644 => 100755 sensors/google_travel_time.yaml mode change 100644 => 100755 sensors/house.yaml mode change 100644 => 100755 sensors/power.yaml mode change 100644 => 100755 sensors/speedtest.yaml mode change 100644 => 100755 sensors/users.yaml mode change 100644 => 100755 sensors/weather.yaml mode change 100644 => 100755 switches/bedroom.yaml mode change 100644 => 100755 switches/living_room.yaml mode change 100644 => 100755 switches/notifications.yaml mode change 100644 => 100755 switches/sonoff.yaml mode change 100644 => 100755 switches/upstairs.yaml delete mode 100644 templates/configuration.yaml create mode 100755 templates/halloween_countdown.yaml mode change 100644 => 100755 templates/iss_report.yaml mode change 100644 => 100755 templates/jarvis_confirmations.yaml mode change 100644 => 100755 templates/jarvis_interuptions.yaml mode change 100644 => 100755 templates/jarvis_issue.yaml mode change 100644 => 100755 templates/jeff_eta.yaml create mode 100755 templates/jeff_heading_home.yaml create mode 100755 templates/jeff_home_annc.yaml create mode 100755 templates/kat_arrived_at_work.yaml mode change 100644 => 100755 templates/kat_eta.yaml create mode 100755 templates/kat_heading_home.yaml create mode 100755 templates/kat_home_annc.yaml mode change 100644 => 100755 templates/morning_report.yaml mode change 100644 => 100755 templates/nightly_report.yaml mode change 100644 => 100755 templates/prebed_routing.yaml create mode 100755 templates/security_report.yaml mode change 100644 => 100755 templates/skylar_morning.yaml mode change 100644 => 100755 templates/skylar_night.yaml mode change 100644 => 100755 templates/traffic_report.yaml delete mode 100644 templates/tweet_snark.yaml mode change 100644 => 100755 templates/twitter_new_ha.yaml mode change 100644 => 100755 templates/twitter_snark.yaml create mode 100755 templates/twitter_stats.yaml mode change 100644 => 100755 templates/weather_report.yaml create mode 100755 templates/welcome_home.yaml diff --git a/alerts/garage_after_dark.yaml b/alerts/garage_after_dark.yaml old mode 100644 new mode 100755 diff --git a/alerts/jeff_bad_traffic_home.yaml b/alerts/jeff_bad_traffic_home.yaml old mode 100644 new mode 100755 diff --git a/alerts/jeff_heading_home.yaml b/alerts/jeff_heading_home.yaml old mode 100644 new mode 100755 diff --git a/alerts/kat_heading_home.yaml b/alerts/kat_heading_home.yaml old mode 100644 new mode 100755 diff --git a/alerts/lockdown_issue.yaml b/alerts/lockdown_issue.yaml old mode 100644 new mode 100755 diff --git a/alerts/unauthorized_access.yaml b/alerts/unauthorized_access.yaml old mode 100644 new mode 100755 diff --git a/automations.yaml b/automations.yaml old mode 100644 new mode 100755 index 3b3ae69..a41749b --- a/automations.yaml +++ b/automations.yaml @@ -40,10 +40,6 @@ entity_id: sensor.washer_status from: running to: complete - condition: - - condition: state - entity_id: input_boolean.washer_notification - state: 'on' action: - service: script.washer_finished_notification_audible - id: turn_off_disney @@ -80,10 +76,6 @@ - platform: time at: 05:00:00 action: - - service: script.add_logbook_entry - data_template: - name: Backup - message: is running - service: shell_command.backup - service: script.twitter_notify data_template: @@ -361,11 +353,11 @@ data: name: midnight-AH - id: turn_off_audible_notifications - alias: Turn Off Audible Notifications at 730pm + alias: Turn Off Audible Notifications initial_state: true trigger: - platform: time - at: '19:30:00' + at: '20:30:00' action: - service: input_boolean.turn_off entity_id: input_boolean.audible_notifications @@ -406,7 +398,7 @@ - service: input_boolean.turn_on entity_id: input_boolean.jeff_travel_monitor - id: enable_bad_traffic_home_jeff - alias: Enable Jeff Bad Traffic Home + alias: Notify Jeff - Bad Traffic initial_state: true trigger: - platform: numeric_state @@ -462,170 +454,10 @@ condition: [] action: - service: script.family_is_away -- id: family_has_arrived - alias: Family Has arrived - trigger: - - entity_id: sensor.family_status - from: Away - platform: state - to: Home - - entity_id: device_tracker.jeffreystonesiphone - event: enter - platform: zone - zone: zone.home - - entity_id: device_tracker.katherinestonesiphone - event: enter - platform: zone - zone: zone.home - - entity_id: binary_sensor.jeffrey_presence - from: 'Off' - platform: state - to: 'On' - - entity_id: binary_sensor.kat_presence - from: 'Off' - platform: state - to: 'On' - - entity_id: device_tracker.hass_jeffsiphone - event: enter - platform: zone - zone: zone.home - condition: - - condition: state - entity_id: sensor.family_status - state: Away - action: - - service: script.vacation_canceled - - service: script.appliances_on - - service: script.standby - - service: script.washer_finished_notification_audible - initial_state: true -- id: family_has_left - alias: Family Has Left - initial_state: true - trigger: - - entity_id: sensor.family_status - from: Home - platform: state - to: Away - condition: - - condition: state - entity_id: input_boolean.guest_mode - state: 'off' - action: - - service: script.appliances_off - - service: script.inside_all_off - - service: script.security_check_garage - - service: script.security_check_zones - - service: script.lockdown - - service: script.lockdown_issue - - service: script.all_fans_off -- id: jeff_is_home - alias: Jeff is Home - initial_state: true - trigger: - - entity_id: device_tracker.jeffreystonesiphone - event: enter - platform: zone - zone: zone.home - - entity_id: person.jeffrey - event: enter - platform: zone - zone: zone.home - action: - - service: script.family_is_home - - service: script.jeff_is_home - - service: script.jeff_destination_na - - service: script.driveway_on - - entity_id: input_boolean.jeff_travel_monitor - service: input_boolean.turn_off -- id: jeff_arrives_summit - alias: Jeff Arrives At Summit - trigger: - - entity_id: device_tracker.jeffreystonesiphone - event: enter - platform: zone - zone: zone.summit - - entity_id: device_tracker.hass_jeffsiphone - event: enter - platform: zone - zone: zone.summit - action: - - service: script.jeff_destination_na - initial_state: true -- id: jeff_leaves_summit - alias: Jeff Leaves Summit - initial_state: true - trigger: - - entity_id: device_tracker.jeffreystonesiphone - event: leave - platform: zone - zone: zone.summit - action: - - service: input_boolean.turn_off - entity_id: input_boolean.jeff_traffic_alert_home -- id: kat_is_home - alias: Kat is Home - initial_state: true - trigger: - - entity_id: device_tracker.katherinestonesiphone - event: enter - platform: zone - zone: zone.home - - entity_id: person.katherine - event: enter - platform: zone - zone: zone.home - action: - - service: script.family_is_home - - service: script.driveway_on - - service: input_boolean.turn_off - entity_id: input_boolean.kat_travel_monitor -- id: kat_arrives_zoo - alias: Kat Arrives at Zoo - initial_state: true - trigger: - - platform: zone - event: enter - zone: zone.zoo_atlanta - entity_id: device_tracker.katherinestonesiphone - condition: - - condition: state - entity_id: input_boolean.text_notify_jeff - state: 'on' - action: - - service: input_boolean.turn_off - entity_id: input_boolean.kat_travel_monitor - - service: notify.jeff_ios - data: - message: Kat arrived at Zoo Atlanta - - service: tts.google_translate_say - data: - entity_id: media_player.hass_speaker - message: Kat has arrived at the Zoo -- id: kat_leaves_zoo - alias: Kat Leaves Zoo Notification - initial_state: true - trigger: - - platform: zone - event: leave - zone: zone.zoo_atlanta - entity_id: device_tracker.katherinestonesiphone - condition: - - condition: state - entity_id: input_boolean.text_notify_jeff - state: 'on' - action: - - service: input_boolean.turn_on - entity_id: input_boolean.kat_travel_monitor -- id: '1550109528753' - alias: Jeff Is Heading Home - initial_state: true - trigger: - - platform: webhook - webhook_id: jeff_heading_home - condition: [] - action: - - service: script.jeff_destination_home + + + + - id: '1558620708807' alias: Upstairs Cooling On initial_state: true @@ -723,10 +555,6 @@ trigger: - platform: template value_template: "{{ states('sensor.time') == (state_attr('input_datetime.kat_pill_reminder', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}" - condition: - - condition: state - entity_id: input_boolean.text_notify_kat - state: 'on' action: - data: message: Remember to take meds diff --git a/binary_sensors/calendar.yaml b/binary_sensors/calendar.yaml old mode 100644 new mode 100755 index 1dd3b66..fb3956a --- a/binary_sensors/calendar.yaml +++ b/binary_sensors/calendar.yaml @@ -9,4 +9,8 @@ - platform: tod name: Day after: sunrise - before: sunset \ No newline at end of file + before: sunset +- platform: tod + name: Quiet time + after: '22:00' + before: '07:00' \ No newline at end of file diff --git a/binary_sensors/doors.yaml b/binary_sensors/doors.yaml old mode 100644 new mode 100755 diff --git a/binary_sensors/motion.yaml b/binary_sensors/motion.yaml old mode 100644 new mode 100755 diff --git a/configuration.yaml b/configuration.yaml old mode 100644 new mode 100755 index f655772..8c63945 --- a/configuration.yaml +++ b/configuration.yaml @@ -65,11 +65,11 @@ device_tracker: # track_new_devices: yes # - platform: owntracks # - #- platform: eero_tracker - # consider_home: 300 - # interval_seconds: 60 - # track_new_devices: yes - # only_macs: "50:dc:e7:5b:10:69, b0:ee:7b:94:31:21, e8:b2:ac:4c:8c:01, 7c:1c:4e:2e:62:30, 90:18:7c:84:46:ed, 48:ba:4e:65:d3:ff, d0:e7:82:ef:a6:1f, 28:18:78:74:79:10, e8:ab:fa:02:03:53, 48:d6:d5:42:e8:86, 60:f8:1d:be:20:46, 68:54:fd:d5:ae:3d, 00:d0:2d:2f:3b:ca, 6c:70:9f:00:ef:3f, 5c:cf:7f:af:04:50, 68:54:fd:29:20:87, 64:52:99:93:f1:b3, 7c:2e:bd:4f:3e:ff" + # - platform: eero_tracker + # consider_home: 300 + # interval_seconds: 60 + # track_new_devices: yes + # only_macs: "d0:c5:f3:80:50:5e, f4:31:c3:84:1d:d1, 08:74:02:CC:C4:97, 5C:F5:DA:9B:5A:A2, 34:7C:25:CC:9D:0F, 64:52:99:93:F1:B3" google: diff --git a/customize.yaml b/customize.yaml old mode 100644 new mode 100755 diff --git a/groups.yaml b/groups.yaml old mode 100644 new mode 100755 index 25dbfe7..85eff0d --- a/groups.yaml +++ b/groups.yaml @@ -37,6 +37,12 @@ External Doors: - binary_sensor.laundry_room_door_contact_2 - binary_sensor.garage_door +Garage Doors: + - binary_sensor.side_door_contact_2 + - binary_sensor.side_door + - binary_sensor.garage_door_contact_2 + - binary_sensor.garage_door + Internal Doors: - binary_sensor.attic_door_contact_2 diff --git a/input_boolean.yaml b/input_boolean.yaml old mode 100644 new mode 100755 index c98a18f..b4c329b --- a/input_boolean.yaml +++ b/input_boolean.yaml @@ -40,9 +40,6 @@ kat_heading_home: jeff_heading_home: name: Jeff Heading Home icon: mdi:car -skylar_dressed_alarm: - name: Skylar Dressed Alarm - icon: mdi:speaker-wireless jeff_traffic_alerts: name: Jeff Traffic Alerts icon: mdi:bell-plus @@ -70,33 +67,33 @@ presence_text_notifications: presence_audio_notifications: name: Presence Audio icon: mdi:speaker-wireless -shuffle_spotify: - name: Shuffle Playlists - icon: mdi:shuffle-variant weather_reports: name: Weather Info traffic_reports: name: traffic_reports sun_reports: name: Sun Reports -tweet_system: - name: Tweet System - icon: mdi:twitter -tweet_ha_releases: - name: Tweet HA Releases - icon: mdi:twitter -tweet_iss: - name: Tweet ISS Sightings - icon: mdi:twitter -tweet_snark: - name: Tweet Snark - icon: mdi:twitter -washer_notification: - name: Washer Notification - icon: mdi:speaker-wireless -play_weather_report: - name: Play Weather Report - icon: mdi:speaker-wireless +#tweet_system: +# name: Tweet System +# icon: mdi:twitter +# tweet_ha_releases: +# name: Tweet HA Releases +# icon: mdi:twitter +# tweet_iss: +# name: Tweet ISS Sightings +# icon: mdi:twitter +# tweet_snark: +# name: Tweet Snark +# icon: mdi:twitter +# tweet_stats: +# name: Tweet Stats +# icon: mdi:twitter +# washer_notification: +# name: Washer Notification +# icon: mdi:speaker-wireless +# play_weather_report: +# name: Play Weather Report +# icon: mdi:speaker-wireless new_ha_announcement: name: New HA Announcement icon: mdi:twitter \ No newline at end of file diff --git a/input_datetime.yaml b/input_datetime.yaml old mode 100644 new mode 100755 diff --git a/input_select.yaml b/input_select.yaml old mode 100644 new mode 100755 index 95f1e6b..5a62d3e --- a/input_select.yaml +++ b/input_select.yaml @@ -18,12 +18,3 @@ recycle_pickup: - Friday initial: Tuesday icon: mdi:delete-variant -spotify_source: - name: Spotify Source - options: - - Everywhere - - Living Room - - Master Bedroom - - Kitchen - initial: Everywhere - icon: mdi:speaker-wireless diff --git a/lights/living_room.yaml b/lights/living_room.yaml old mode 100644 new mode 100755 diff --git a/packages/announcements.yaml b/packages/announcements.yaml old mode 100644 new mode 100755 index fadcc2c..4c4a6c3 --- a/packages/announcements.yaml +++ b/packages/announcements.yaml @@ -5,70 +5,48 @@ # @description : Just Normal Announcements. ############################################################################### -script: +#script: - annc_storm_statement: - sequence: - - condition: state - entity_id: input_boolean.audible_notifications - state: 'on' - - condition: state - entity_id: input_boolean.vacation_mode - state: 'off' - - service: notify.ios_all - data: - message: Severe Storm Statement Issued for Anchorage House - annc_tstorm_watch: - sequence: - - condition: state - entity_id: input_boolean.audible_notifications - state: 'on' - - condition: state - entity_id: input_boolean.vacation_mode - state: 'off' - - service: notify.ios_all - data: - message: Severe Thunderstorm Watch Issued for Anchorage House - annc_tstorm_warning: - sequence: - - condition: state - entity_id: input_boolean.audible_notifications - state: 'on' - - condition: state - entity_id: input_boolean.vacation_mode - state: 'off' - - service: notify.ios_all - data: - message: Severe Thunderstorm Warning Issued for Anchorage House - annc_tornado_watch: - sequence: - - condition: state - entity_id: input_boolean.audible_notifications - state: 'on' - - condition: state - entity_id: input_boolean.vacation_mode - state: 'off' - - service: notify.ios_all - data: - message: Tornado Watch Issued for Anchorage House - annc_security_issue: - sequence: - - condition: state - entity_id: group.family - state: 'on' - - service: tts.google_translate_say - data: - entity_id: media_player.hass_speaker - message: Unauthorized Access - annc_tornado_warning: - sequence: - - condition: state - entity_id: sensor.family_status - state: Home - - service: script.alert_notify - data_template: - message: "Tornado Warning has been Issued" - greeting: "no" + # annc_storm_statement: + # sequence: + # - condition: state + # entity_id: input_boolean.vacation_mode + # state: 'off' + # - service: script.text_notify + # data: + # message: Severe Storm Statement Issued for Anchorage House + # annc_tstorm_watch: + # sequence: + # - condition: state + # entity_id: input_boolean.vacation_mode + # state: 'off' + # - service: script.text_notify + # data: + # message: Severe Thunderstorm Watch Issued for Anchorage House + # annc_tstorm_warning: + # sequence: + # - condition: state + # entity_id: input_boolean.vacation_mode + # state: 'off' + # - service: script.text_notify + # data: + # message: Severe Thunderstorm Warning Issued for Anchorage House + # annc_tornado_watch: + # sequence: + # - condition: state + # entity_id: input_boolean.vacation_mode + # state: 'off' + # - service: script.text_notify + # data: + # message: Tornado Watch Issued for Anchorage House + # annc_tornado_warning: + # sequence: + # - condition: state + # entity_id: sensor.family_status + # state: Home + # - service: script.alert_notify + # data_template: + # message: "Tornado Warning has been Issued" automation: - id: prebed_routine @@ -77,10 +55,6 @@ automation: trigger: platform: template value_template: "{{ states('sensor.time') == (state_attr('input_datetime.skylar_nightly_report', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}" - condition: - - condition: state - entity_id: input_boolean.audible_notifications - state: 'on' action: - service: script.prebed_routine - id: nightly_report @@ -89,22 +63,15 @@ automation: trigger: platform: template value_template: "{{ states('sensor.time') == (state_attr('input_datetime.nightly_report', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}" - condition: - - condition: state - entity_id: input_boolean.audible_notifications - state: 'on' action: - service: script.nightly_report + - id: good_morning_report alias: Good Morning Report initial_state: true trigger: platform: template value_template: "{{ states('sensor.time') == (state_attr('input_datetime.morning_report', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}" - condition: - - condition: state - entity_id: input_boolean.audible_notifications - state: 'on' action: - service: script.morning_report - service: script.twitter_notify @@ -125,39 +92,7 @@ automation: - wed - thu - fri - - condition: state - entity_id: input_boolean.audible_notifications - state: 'on' action: - service: script.skylar_morning_greeting - - id: play_weather_report - alias: Play Weather Report - initial_state: true - trigger: - - entity_id: input_boolean.play_weather_report - from: 'Off' - platform: state - to: 'On' - action: - - service: script.turn_on - entity_id: script.weather_report - - service: script.voice_reports_off - - id: guest_mode_feedback - alias: Guest Mode Audio Feedback - trigger: - - platform: state - entity_id: - - input_boolean.guest_mode - from: 'off' - to: 'on' - action: - - service: script.jarvis_voice - data_template: - message: > - {{ [ - "Guest Mode has been enabled as you requested.", - "I have switched to the system to guest mode", - "I have enabled guest mode. ", - "System Guest Mode has been enabled." - ] | random }} + diff --git a/packages/disney.yaml b/packages/disney.yaml old mode 100644 new mode 100755 diff --git a/packages/events.yaml b/packages/events.yaml old mode 100644 new mode 100755 index 6a78521..f4b4c4c --- a/packages/events.yaml +++ b/packages/events.yaml @@ -98,6 +98,16 @@ automation: - delay: '0{{ (range(1, 5)|random|int) }}:{{ range(0,5) | random | int }}{{ range(0,9) | random | int }}:00' - service: script.twitter_snark + - id: tweet_some_stats + alias: Tweet Some Stats + initial_state: true + trigger: + - platform: time + at: '08:00:00' + action: + - delay: '0{{ (range(1, 5)|random|int) }}:{{ range(0,5) | random | int }}{{ range(0,9) | random | int }}:00' + - service: script.twitter_stats + - id: bot_info alias: Bot Info initial_state: true @@ -113,7 +123,7 @@ automation: {%- endif -%} action: - delay: '0{{ (range(1, 5)|random|int) }}:{{ range(0,5) | random | int }}{{ range(0,9) | random | int }}:00' - - service: script.twitter_notift + - service: script.twitter_notify data_template: message: >- "This is a good time to remind you that I am a bot powered by @home_assistant and configured by @thejeffreystone. Find my code at https://github.com/thejeffreystone/home-assistant-configuration" diff --git a/packages/jarvis.yaml b/packages/jarvis.yaml old mode 100644 new mode 100755 index 68f0c19..55ae47d --- a/packages/jarvis.yaml +++ b/packages/jarvis.yaml @@ -24,6 +24,24 @@ automation: "I have enabled guest mode. ", "Guest Mode is on." ] | random }} +- id: sentry_mode_feedback + alias: Sentry Mode Audio Feedback + trigger: + - platform: state + entity_id: + - input_boolean.sentry_mode + from: 'off' + to: 'on' + action: + - service: script.jarvis_voice + data_template: + message: > + {{ [ + "Sentry Mode has been enabled.", + "Anchorage House is secure.", + "I have enabled sentry mode. ", + "I am monitoring Anchorage House." + ] | random }} script: activate_house_party_protocol: @@ -42,14 +60,4 @@ script: "Anchorage House has been configured for a House Party.", "Incense has been turned on.", "I have enabled house party protocol." - ] | random }} - - activate_guest_mode: - sequence: - - service: script.jarvis_voice - data_template: - message: !include ../templates/jarvis_confirmations.yaml - - delay: - seconds: 3 - - service: input_boolean.turn_on - entity_id: input_boolean.guest_mode \ No newline at end of file + ] | random }} \ No newline at end of file diff --git a/packages/maintenance.yaml b/packages/maintenance.yaml old mode 100644 new mode 100755 diff --git a/packages/notify.yaml b/packages/notify.yaml old mode 100644 new mode 100755 index ee5eb9f..1ea8173 --- a/packages/notify.yaml +++ b/packages/notify.yaml @@ -31,6 +31,12 @@ notify: - service: ios_jeffreystonesiphone - service: ios_jeffreystonesipad - service: ios_katherinestonesiphone + - name: ios_parents + platform: group + services: + - service: ios_jeffreystonesiphone + - service: ios_jeffreystonesipad + - service: ios_katherinestonesiphone - name: jeff_ios platform: group services: @@ -92,6 +98,65 @@ script: message: > {{ message }} + text_notify: + sequence: + - condition: state + entity_id: input_boolean.text_notifications + state: 'on' + - service_template: > + {% if who == 'jeff' %} + notify.jeff_ios + {% elif who == 'kat' %} + notify.kat_ios + {% elif who == 'skylar' %} + notify.skylar_ios + {% elif who == 'parents' %} + notify.ios_parents + {% else %} + notify.all_ios + {% endif %} + data_template: + title: '{{ title }}' + message: '{{ message }}' + #data: + # attachment: + # url: "{{ url }}" + # content-type: "{{ content_type }}" + # hide-thumbnail: false + # push: + # sound: "{{ ios_sound }}" + # badge: 0 + # category: "{{ ios_category }}" + # entity_id: "{{ camera_entity }}" + + text_alert: + sequence: + - service_template: > + {% if who == 'jeff' %} + notify.jeff_ios + {% elif who == 'kat' %} + notify.kat_ios + {% elif who == 'skylar' %} + notify.skylar_ios + {% elif who == 'parents' %} + notify.ios_parents + {% else %} + notify.all_ios + {% endif %} + data_template: + title: '{{ title }}' + message: '{{ message }}' + #data: + # attachment: + # url: "{{ url }}" + # content-type: "{{ content_type }}" + # hide-thumbnail: false + # push: + # sound: "{{ ios_sound }}" + # badge: 0 + # category: "{{ ios_category }}" + # entity_id: "{{ camera_entity }}" + ############################################################################### # Alert Notify # Conditions: @@ -152,7 +217,7 @@ script: jarvis_voice: sequence: - condition: template - value_template: '{{ states.input_boolean.audible_notifications.state == "on" }}' + value_template: '{{ states.binary_sensor.quiet_time.state == "off" }}' - condition: state entity_id: sensor.family_status state: 'Home' @@ -163,13 +228,12 @@ script: {{ not is_state('media_player.hass_speaker', 'playing') }} - service: tts.amazon_polly_say data_template: - entity_id: media_player.hass_speaker - # entity_id: > - # {% if states.input_boolean.audible_notifications.state == 'on' %} - # media_player.hass_speaker - # {% else %} - # media_player.googlehome0715, media_player.googlehomehub3492 - # {% endif %} + entity_id: > + {% if states.input_boolean.audible_notifications.state == 'on' %} + media_player.hass_speaker + {% else %} + media_player.googlehome0715, media_player.googlehomehub3492 + {% endif %} message: >- {{ message }} @@ -182,9 +246,6 @@ script: twitter_notify: sequence: - - condition: state - entity_id: input_boolean.tweet_system - state: 'on' - service: notify.twitter data_template: message: > @@ -195,18 +256,19 @@ script: twitter_snark: sequence: - - condition: state - entity_id: input_boolean.tweet_snark - state: 'on' - service: notify.twitter data_template: message: !include ../templates/twitter_snark.yaml + + + twitter_stats: + sequence: + - service: notify.twitter + data_template: + message: !include ../templates/twitter_stats.yaml twitter_github: sequence: - - condition: state - entity_id: input_boolean.tweet_system - state: 'on' - service: notify.twitter data_template: message: > @@ -217,9 +279,6 @@ script: twitter_new_ha: sequence: - - condition: state - entity_id: input_boolean.tweet_releases - state: 'on' - service: notify.twitter data_template: message: !include ../templates/twitter_new_ha.yaml @@ -263,17 +322,12 @@ script: ############################################################################### weather_report: sequence: - - service: script.jarvis_voice - data_template: - message: !include ../templates/jarvis_confirmations.yaml - - delay: - seconds: 3 - service: script.jarvis_voice data_template: message: !include ../templates/weather_report.yaml - delay: minutes: 5 - - service: scriot.turn_off + - service: script.turn_off entity_id: script.weather_report ############################################################################### @@ -284,25 +338,70 @@ script: - service: script.jarvis_voice data_template: message: !include ../templates/traffic_report.yaml + - delay: + minutes: 2 + - service: script.turn_off + entity_id: script.traffic_report ############################################################################### -# Jeff ETA Report +# Security Report +############################################################################### + security_report: + sequence: + - service: script.jarvis_voice + data_template: + message: !include ../templates/security_report.yaml + - delay: + minutes: 2 + - service: script.turn_off + entity_id: script.security_report + +############################################################################### +# Jeff Traffic Reports ############################################################################### jeff_eta_report: sequence: - service: script.jarvis_voice data_template: message: !include ../templates/jeff_eta.yaml + - delay: + minutes: 2 + - service: script.turn_off + entity_id: script.jeff_eta_report + + jeff_headed_home_annc: + sequence: + - service: script.jarvis_voice + data_template: + message: !include ../templates/jeff_heading_home.yaml + - delay: + minutes: 2 + - service: script.turn_off + entity_id: script.jeff_headed_home_annc + ############################################################################### -# Kat ETA Report +# Kat Traffic Reports ############################################################################### kat_eta_report: sequence: - service: script.jarvis_voice data_template: message: !include ../templates/kat_eta.yaml + - delay: + minutes: 2 + - service: script.turn_off + entity_id: script.kat_eta_report + kat_headed_home_annc: + sequence: + - service: script.jarvis_voice + data_template: + message: !include ../templates/kat_heading_home.yaml + - delay: + minutes: 2 + - service: script.turn_off + entity_id: script.kat_headed_home_annc ############################################################################### # Prebed Routing ############################################################################### diff --git a/packages/presence.yaml b/packages/presence.yaml old mode 100644 new mode 100755 index 66bc451..4f90e13 --- a/packages/presence.yaml +++ b/packages/presence.yaml @@ -37,6 +37,17 @@ sensor: {% else %} {{ states.device_tracker.jeffreystonesiphone.state }} {%- endif %} + jeff_driving: + friendly_name: "Jeff' Driving" + unit_of_measurement: '' + value_template: >- + {%- if states.device_tracker.life360_jeffrey_stone.attributes.moving == True %} + on + {% elif states.device_tracker.life360_jeffrey_stone.attributes.driving == True %} + on + {% else %} + off + {% endif %} - platform: template sensors: skylar_location: @@ -79,6 +90,19 @@ sensor: {% else %} {{ states.device_tracker.katherinestonesiphone.state }} {%- endif %} + - platform: template + sensors: + kat_driving: + friendly_name: "Kat Driving" + unit_of_measurement: '' + value_template: >- + {%- if states.device_tracker.life360_kat_stone.attributes.moving == True %} + 'on' + {% elif states.device_tracker.life360_kat_stone.attributes.driving == True %} + 'on' + {% else %} + 'off' + {% endif %} - platform: mqtt name: "Family Status" state_topic: "house/family/status" @@ -107,3 +131,210 @@ sensor: or is_state('device_tracker.katherinestonesiphone', 'home') or is_state('device_tracker.life360_kat_stone', 'home') or is_state('sensor.family_status', 'Home') }} + +automation: + - id: kat_arrives_zoo + alias: Kat Arrives at Zoo + initial_state: true + trigger: + - platform: zone + event: enter + zone: zone.zoo_atlanta + entity_id: device_tracker.katherinestonesiphone + action: + - service: input_boolean.turn_off + entity_id: input_boolean.kat_travel_monitor + - service: script.jarvis_voice + data_template: + message: !include ../templates/kat_arrived_at_work.yaml + - id: kat_leaves_zoo + alias: Kat Leaves Zoo Notification + initial_state: true + trigger: + - platform: zone + event: leave + zone: zone.zoo_atlanta + entity_id: device_tracker.katherinestonesiphone + condition: + action: + - service: input_boolean.turn_on + entity_id: input_boolean.kat_travel_monitor + - id: '1550109528753' + alias: Jeff Is Heading Home + initial_state: true + trigger: + - platform: webhook + webhook_id: jeff_heading_home + condition: [] + action: + - service: script.jeff_destination_home + + - id: family_has_arrived + alias: Family Has arrived + trigger: + - entity_id: sensor.family_status + from: Away + platform: state + to: Home + - entity_id: device_tracker.jeffreystonesiphone + event: enter + platform: zone + zone: zone.home + - entity_id: device_tracker.katherinestonesiphone + event: enter + platform: zone + zone: zone.home + - entity_id: binary_sensor.jeffrey_presence + from: 'Off' + platform: state + to: 'On' + - entity_id: binary_sensor.kat_presence + from: 'Off' + platform: state + to: 'On' + - entity_id: device_tracker.hass_jeffsiphone + event: enter + platform: zone + zone: zone.home + condition: + - condition: state + entity_id: sensor.family_status + state: Away + action: + - service: script.vacation_canceled + - service: script.appliances_on + - service: script.standby + - service: script.washer_finished_notification_audible + initial_state: true + - id: family_has_left + alias: Family Has Left + initial_state: true + trigger: + - entity_id: sensor.family_status + from: Home + platform: state + to: Away + condition: + - condition: state + entity_id: input_boolean.guest_mode + state: 'off' + action: + - service: script.appliances_off + - service: script.inside_all_off + - service: script.security_check_garage + - service: script.security_check_zones + - service: script.lockdown + - service: script.lockdown_issue + - service: script.all_fans_off + - id: jeff_is_home + alias: Jeff is Home + initial_state: true + trigger: + - entity_id: device_tracker.jeffreystonesiphone + event: enter + platform: zone + zone: zone.home + # - entity_id: person.jeffrey + # event: enter + # platform: zone + # zone: zone.home + action: + - service: script.family_is_home + - service: script.jeff_is_home + - service: script.jeff_destination_na + - service: script.driveway_on + - entity_id: input_boolean.jeff_travel_monitor + service: input_boolean.turn_off + - id: jeff_arrives_summit + alias: Jeff Arrives At Summit + trigger: + - entity_id: device_tracker.jeffreystonesiphone + event: enter + platform: zone + zone: zone.summit + - entity_id: device_tracker.hass_jeffsiphone + event: enter + platform: zone + zone: zone.summit + action: + - service: script.text_notify + data: + who: "kat" + message: "Jeff has arrived at Summit" + initial_state: true + - id: jeff_arrives_summit_notification + alias: Notify Kat Jeff At Summit + trigger: + - entity_id: device_tracker.jeffreystonesiphone + event: enter + platform: zone + zone: zone.summit + - entity_id: device_tracker.hass_jeffsiphone + event: enter + platform: zone + zone: zone.summit + action: + - service: script.jeff_destination_na + initial_state: true + - id: jeff_leaves_summit + alias: Jeff Leaves Summit + initial_state: true + trigger: + - entity_id: device_tracker.jeffreystonesiphone + event: leave + platform: zone + zone: zone.summit + action: + - service: input_boolean.turn_off + entity_id: input_boolean.jeff_traffic_alert_home + - id: kat_is_home + alias: Kat is Home + initial_state: true + trigger: + - entity_id: device_tracker.katherinestonesiphone + event: enter + platform: zone + zone: zone.home + - entity_id: person.katherine + event: enter + platform: zone + zone: zone.home + action: + - service: script.family_is_home + - service: script.driveway_on + - service: input_boolean.turn_off + entity_id: input_boolean.kat_travel_monitor + + - id: annc_arrival_jeff + alias: 'Announce Jeff Arrived' + trigger: + - platform: state + entity_id: + - device_tracker.jeffreystonesiphone + from: 'not_home' + to: 'home' + condition: + - condition: state + entity_id: sensor.family_status + state: Home + action: + - service: script.jarvis_voice + data_template: + message: !include ../templates/jeff_home_annc.yaml + + - id: annc_arrival_kat + alias: 'Announce Kat Arrived' + trigger: + - platform: state + entity_id: + - device_tracker.katherinestonesiphone + from: 'not_home' + to: 'home' + condition: + - condition: state + entity_id: sensor.family_status + state: Home + action: + - service: script.jarvis_voice + data_template: + message: !include ../templates/kat_home_annc.yaml \ No newline at end of file diff --git a/packages/security.yaml b/packages/security.yaml old mode 100644 new mode 100755 index f083093..5ea6813 --- a/packages/security.yaml +++ b/packages/security.yaml @@ -138,15 +138,64 @@ automation: - service: shell_command.door_chime initial_state: true + - id: door_opened_long + alias: Door Opened Too Long + trigger: + - platform: state + entity_id: + - binary_sensor.front_door + - binary_sensor.laundry_room_door + - binary_sensor.attic_door + - binary_sensor.back_door + from: 'off' + to: 'on' + for: '00:01:00' + condition: + - condition: state + entity_id: input_boolean.audible_notifications + state: 'on' + action: + - service: script.jarvis_voice + data_template: + message: "I thought you might like to know, the {{ trigger.to_state.attributes.friendly_name }} has been standing open for more than a minute." + initial_state: true + + - id: garage_opened_night + alias: Garage Opened at Night + trigger: + - platform: state + entity_id: group.garage_doors + from: 'off' + to: 'on' + condition: + - condition: state + entity_id: sun.sun + state: below_horizon + action: + - service: script.driveway_on + initial_state: true + + - id: garage_closed + alias: Garage Opened at Night + trigger: + - platform: state + entity_id: group.garage_doors + from: 'on' + to: 'off' + action: + - service: script.driveway_off + initial_state: true + - id: security_breach_door alias: Security Breach Doors trigger: - platform: state entity_id: - - binary_sensor.front_door_contact_2 - - binary_sensor.laundry_room_door_contact_2 - - binary_sensor.attic_door_contact_2 - - binary_sensor.back_door_contact_2 + - binary_sensor.front_door + - binary_sensor.laundry_room_door + - binary_sensor.back_door + - binary_sensor.side_door + - binary_sensor.garage_door from: 'off' condition: - condition: state @@ -155,11 +204,52 @@ automation: action: - service: script.jarvis_notify data_template: - message: "The {{ trigger.to_state.attributes.friendly_name }} has been opened." + message: "My security protocols are being overidden,, The {{ trigger.to_state.attributes.friendly_name }} has been opened." + - service: script.text_alert + data_template: + title: "Security Alert!!" + message: "{{ trigger.to_state.attributes.friendly_name }} has been opened." - service: input_boolean.turn_on entity_id: input_boolean.security_issue initial_state: true + - id: sentry_mode_enabled + alias: Sentry Mode Enabled Annoucement + initial_state: true + trigger: + - platform: state + entity_id: input_boolean.sentry_mode + from: 'off' + to: 'on' + action: + - service: script.jarvis_voice + data: + message: > + {{ [ + "Barn door protocol has been activated.", + "Anchorage House has been secured! ", + "Sentry Mode is active. ", + "I am now monitoring the doors and will let you know if anyone attempts to access." + ] | random }} + + - id: sentry_mode_disabled + alias: Sentry Mode Disabled Annoucement + initial_state: true + trigger: + - platform: state + entity_id: input_boolean.sentry_mode + from: 'on' + to: 'off' + action: + - service: script.jarvis_voice + data: + message: > + {{ [ + "Barn door protocol has been deactivated.", + "I am no longer monitoring the access points. ", + "Sentry Mode has been switched off. " + ] | random }} + script: lockdown_issue: sequence: @@ -171,6 +261,10 @@ script: state: "Away" - service: input_boolean.turn_on entity_id: input_boolean.lockdown_issue + - service: script.text_notify + data_template: + title: "Lockdown Issue!" + message: "Doors are open and it appears everyone has left!" security_check_garage: sequence: @@ -205,18 +299,17 @@ script: entity_id: input_boolean.sentry_mode - service: input_boolean.turn_off entity_id: input_boolean.security_issue + - service: input_boolean.turn_off + entity_id: input_boolean.lockdown_issue - service: input_boolean.turn_off entity_id: input_boolean.security_alarm visitors_here: sequence: - - condition: state - entity_id: input_boolean.audible_notifications - state: 'on' - service: input_boolean.turn_on data: entity_id: input_boolean.guest_mode - - service: shell_command.haunted_guest_welcome + #- service: shell_command.haunted_guest_welcome visitors_gone: sequence: @@ -228,48 +321,74 @@ script: sequence: - service: shell_command.security_alarm - + # notification_sentry_mode_activated_audio: + # sequence: + # - condition: state + # entity_id: input_boolean.audible_notifications + # state: 'on' + # - condition: state + # entity_id: media_player.hass_speaker + # state: 'idle' + # - service: tts.google_say + # entity_id: media_player.hass_speaker + # data_template: + # message: "Sentry mode activated" - notification_sentry_mode_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_deactivated_audio: + # sequence: + # - condition: state + # entity_id: input_boolean.audible_notifications + # state: 'on' + # - condition: state + # entity_id: media_player.hass_speaker + # state: 'idle' + # - service: tts.google_say + # entity_id: media_player.hass_speaker + # data_template: + # message: "Sentry mode deactivated" - notification_sentry_mode_deactiviated_text: - sequence: - - service: notify.jeff_ios - data: - message: Sentry Mode Deactivated + # notification_sentry_mode_deactiviated_text: + # sequence: + # - service: notify.jeff_ios + # data: + # message: Sentry Mode Deactivated - notification_sentry_mode_activiated_text: - sequence: - - service: notify.jeff_ios - data: - message: Sentry Mode Activated + # notification_sentry_mode_activiated_text: + # sequence: + # - service: notify.jeff_ios + # data: + # message: Sentry Mode Activated vacation_canceled: sequence: - data: entity_id: input_boolean.vacation_mode service: input_boolean.turn_off + + activate_barn_door_protocol: + sequence: + - service: script.jarvis_voice + data_template: + message: !include ../templates/jarvis_confirmations.yaml + - service: input_boolean.turn_on + entity_id: input_boolean.sentry_mode + + deactivate_barn_door_protocol: + sequence: + - service: script.jarvis_voice + data_template: + message: !include ../templates/jarvis_confirmations.yaml + - service: input_boolean.turn_off + entity_id: input_boolean.sentry_mode + + activate_guest_mode: + sequence: + - service: script.jarvis_voice + data_template: + message: !include ../templates/jarvis_confirmations.yaml + - delay: + seconds: 2 + - service: input_boolean.turn_on + entity_id: input_boolean.guest_mode + + diff --git a/packages/space.yaml b/packages/space.yaml old mode 100644 new mode 100755 index cc62d9e..1a3ed60 --- a/packages/space.yaml +++ b/packages/space.yaml @@ -81,10 +81,6 @@ automation: - binary_sensor.iss to: 'on' from: 'off' - condition: - - condition: state - entity_id: input_boolean.audible_notifications - state: 'on' action: - service: script.jarvis_voice data_template: diff --git a/packages/sysmon.yaml b/packages/sysmon.yaml old mode 100644 new mode 100755 diff --git a/packages/usps.yaml b/packages/usps.yaml old mode 100644 new mode 100755 index 54c128d..963b1b8 --- a/packages/usps.yaml +++ b/packages/usps.yaml @@ -40,10 +40,6 @@ automation: at: '00:00:10' action: - service: shell_command.usps - - service: script.add_logbook_entry - data_template: - name: USPS - message: Reset Mail Count - id: get_usps initial_state: true @@ -53,10 +49,6 @@ automation: at: '10:00:00' action: - service: shell_command.usps - - service: script.add_logbook_entry - data_template: - name: USPS - message: Checking for mail # Notify USPS mails via TTS, and iOS notification with attachment ############################################################################### @@ -72,7 +64,12 @@ automation: - condition: template value_template: '{{ ((now().hour | int) > 7) and ((now().hour | int) < 16) }}' action: - - service: script.voice_notify + - service: script.jarvis_voice + data_template: + message: !include ../templates/jarvis_interuptions.yaml + - delay: + seconds: 2 + - service: script.jarvis_notify data_template: message: > {%- if states.sensor.usps_mail.state | int == 1 -%} @@ -80,16 +77,18 @@ automation: {%- else -%} USPS is delivering {{ states.sensor.usps_mail.state }} pieces of mail today. {%- endif -%} - - service: notify.jeff_ios + - service: script.text_notify data_template: + who: "jeff" + title: "USPS Delivering Today" message: "USPS will be delivering {{ states.sensor.usps_mail.state }} piece(s) of mail today." - data: - push: - category: camera - entity_id: "camera.usps_mail_pictures" - attachment: - url: "{{ states.camera.usps_mail_pictures.attributes.entity_picture }}" - content-type: jpg + # data: + # push: + # category: camera + # entity_id: "camera.usps_mail_pictures" + # attachment: + # url: "{{ states.camera.usps_mail_pictures.attributes.entity_picture }}" + # content-type: jpg # Notify USPS packages via TTS. Usually there are no pictures for packages ############################################################################### @@ -105,7 +104,12 @@ automation: - condition: template value_template: '{{ ((now().hour | int) > 7) and ((now().hour | int) < 16) }}' action: - - service: script.voice_notify + - service: script.jarvis_voice + data_template: + message: !include ../templates/jarvis_interuptions.yaml + - delay: + seconds: 2 + - service: script.jarvis_notify data_template: message: > {%- if states.sensor.usps_packages.state | int == 1 -%} diff --git a/packages/weather_alerts_nws.yaml b/packages/weather_alerts_nws.yaml old mode 100644 new mode 100755 index 0a065be..f4e44c9 --- a/packages/weather_alerts_nws.yaml +++ b/packages/weather_alerts_nws.yaml @@ -86,8 +86,9 @@ automation: - condition: template value_template: '{{ trigger.to_state.state|float > trigger.from_state.state|float }}' action: - - service: notify.jeff_ios + - service: script.text_notify data_template: + title: "Weather Alert for Anchorage House" message: > {% if states.sensor.nws_alerts.attributes.title.split(' - ')[5] is defined %} "NWS: {{ states.sensor.nws_alerts.attributes.title.split(' - ')[5] }}" @@ -185,9 +186,10 @@ automation: - delay: '00:00:15' - service: input_boolean.turn_on entity_id: input_boolean.tornado_alarm - - service: script.text_notify_all + - service: script.text_alert data_template: - message: "Attention!,,,Attention!,,,The National Weather Service Has issued a Tornado Warning for our area." + title: "Tornado Warning!" + message: "The National Weather Service Has issued a Tornado Warning for our area." - alias: Activate Tornado alarm initial_state: 'on' @@ -214,6 +216,19 @@ automation: action: - service: media_player.media_stop entity_id: media_player.hass_speaker + + - id: play_weather_report + alias: Play Weather Report + initial_state: true + trigger: + - entity_id: input_boolean.play_weather_report + from: 'Off' + platform: state + to: 'On' + action: + - service: script.turn_on + entity_id: script.weather_report + - service: script.voice_reports_off script: nws_popup_on_wx_alert: diff --git a/packages/weekday.yaml b/packages/weekday.yaml old mode 100644 new mode 100755 diff --git a/packages/zigbe2mqtt.yaml b/packages/zigbe2mqtt.yaml deleted file mode 100644 index 646b205..0000000 --- a/packages/zigbe2mqtt.yaml +++ /dev/null @@ -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" - - - diff --git a/scenes.yaml b/scenes.yaml old mode 100644 new mode 100755 diff --git a/scripts.yaml b/scripts.yaml old mode 100644 new mode 100755 index faa596f..5374016 --- a/scripts.yaml +++ b/scripts.yaml @@ -5,16 +5,21 @@ washer_finished_notification_audible: - condition: state entity_id: sensor.family_status state: Home - - condition: state - entity_id: input_boolean.audible_notifications - state: 'on' - condition: state entity_id: sensor.washer_status state: complete - - service: tts.google_translate_say - entity_id: media_player.hass_speaker + - service: script.jarvis_voice data_template: - message: Just a reminder. Washing machine needs to be emptied. + message: > + {%- macro washing_annc() -%} + {{ [ + "Just a reminder. Washing machine needs to be emptied.", + "I'm sure you have more inportant things to do, but the washing machine needs to be emptied.", + "Looks like the washing machine has completed it's cycle.", + "Don't forget to move the clothes to the dryer." + ] | random }} + {%- endmacro -%} + {{washing_annc()}} girl_eyes_on_you: sequence: - service: media_player.play_media @@ -43,40 +48,6 @@ washer_complete: topic: house/washer/status payload: complete retain: true -add_logbook_entry: - alias: Add Logbook - sequence: - - service: logbook.log - data_template: - name: '{{ name }} - - ' - message: '{{ message }} - - ' -test_twitter: - sequence: - - service: script.twitter_notify - data: - message: Just a test of my notification capabilities! -climate_set_heat: - sequence: - - service: climate.set_operation_mode - data: - entity_id: climate.first_floor - operation_mode: heat -climate_turn_off: - sequence: - - data: - entity_id: climate.first_floor - operation_mode: 'off' - service: climate.set_operation_mode -climate_set_cool: - sequence: - - service: climate.set_operation_mode - data: - entity_id: climate.first_floor - operation_mode: cool normal_tower: sequence: - service: light.turn_on @@ -97,58 +68,58 @@ open_garage: state: closed - service: cover.open_cover entity_id: cover.cargo_bay -play_skylars_christmas_playlist: - sequence: - - service: media_player.volume_set - data: - entity_id: media_player.spotify - volume_level: '0.40' - - service: media_player.select_source - data_template: - entity_id: media_player.spotify - source: '{% if is_state("input_select.spotify_source", "Everywhere") %} Everywhere - {% elif is_state("input_select.spotify_source", "Living Room") %} Living Room - {% elif is_state("input_select.spotify_source", "Kitchen") %} Kitchen {% elif - is_state("input_select.spotify_source", "Master Bedroom") %} Master Bedroom - {% endif %} +# play_skylars_christmas_playlist: +# sequence: +# - service: media_player.volume_set +# data: +# entity_id: media_player.spotify +# volume_level: '0.40' +# - service: media_player.select_source +# data_template: +# entity_id: media_player.spotify +# source: '{% if is_state("input_select.spotify_source", "Everywhere") %} Everywhere +# {% elif is_state("input_select.spotify_source", "Living Room") %} Living Room +# {% elif is_state("input_select.spotify_source", "Kitchen") %} Kitchen {% elif +# is_state("input_select.spotify_source", "Master Bedroom") %} Master Bedroom +# {% endif %} - ' - - service: media_player.play_media - data_template: - entity_id: media_player.spotify - media_content_type: playlist - media_content_id: spotify:user:spotify:playlist:2lmfykOn8EK0Ow8iH9XHLa - - service: media_player.shuffle_set - data: - entity_id: media_player.spotify - shuffle: '{% if is_state("input_boolean.shuffle_spotify", "On") %} True {% elif - is_state("input_select.shuffle_spotify", "Off") %} False {% endif %} +# ' +# - service: media_player.play_media +# data_template: +# entity_id: media_player.spotify +# media_content_type: playlist +# media_content_id: spotify:user:spotify:playlist:2lmfykOn8EK0Ow8iH9XHLa +# - service: media_player.shuffle_set +# data: +# entity_id: media_player.spotify +# shuffle: '{% if is_state("input_boolean.shuffle_spotify", "On") %} True {% elif +# is_state("input_select.shuffle_spotify", "Off") %} False {% endif %} - ' -play_skylars_playlist: - sequence: - - service: media_player.volume_set - data: - entity_id: media_player.spotify - volume_level: '0.40' - - service: media_player.select_source - data_template: - entity_id: media_player.spotify - source: '{% if is_state("input_select.spotify_source", "Everywhere") %} Everywhere - {% elif is_state("input_select.spotify_source", "Living Room") %} Living Room - {% elif is_state("input_select.spotify_source", "Kitchen") %} Kitchen {% elif - is_state("input_select.spotify_source", "Master Bedroom") %} Master Bedroom - {% endif %}' - - service: media_player.play_media - data_template: - entity_id: media_player.spotify - media_content_type: playlist - media_content_id: spotify:user:spotify:playlist:0hYKkmUpFFG37TtFX23cMM - - service: media_player.shuffle_set - data: - entity_id: media_player.spotify - shuffle: '{% if is_state("input_boolean.shuffle_spotify", "On") %} True {% elif - is_state("input_select.shuffle_spotify", "Off") %} False {% endif %}' +# ' +# play_skylars_playlist: +# sequence: +# - service: media_player.volume_set +# data: +# entity_id: media_player.spotify +# volume_level: '0.40' +# - service: media_player.select_source +# data_template: +# entity_id: media_player.spotify +# source: '{% if is_state("input_select.spotify_source", "Everywhere") %} Everywhere +# {% elif is_state("input_select.spotify_source", "Living Room") %} Living Room +# {% elif is_state("input_select.spotify_source", "Kitchen") %} Kitchen {% elif +# is_state("input_select.spotify_source", "Master Bedroom") %} Master Bedroom +# {% endif %}' +# - service: media_player.play_media +# data_template: +# entity_id: media_player.spotify +# media_content_type: playlist +# media_content_id: spotify:user:spotify:playlist:0hYKkmUpFFG37TtFX23cMM +# - service: media_player.shuffle_set +# data: +# entity_id: media_player.spotify +# shuffle: '{% if is_state("input_boolean.shuffle_spotify", "On") %} True {% elif +# is_state("input_select.shuffle_spotify", "Off") %} False {% endif %}' tornado_alarm: sequence: - service: shell_command.tornado_alarm @@ -200,20 +171,15 @@ jeff_destination_harbins: topic: jeff/driving/destination payload: Harbins retain: true -jeff_at_work_notification: +kat_destination_na: sequence: - - condition: state - entity_id: input_boolean.text_notify_kat - state: 'on' - - service: notify.ios_katherinestonesiphone + - service: mqtt.publish data: - message: Jeff has arrived at Summit + topic: kat/driving/destination + payload: na + retain: true inside_all_on: sequence: - - event: LOGBOOK_ENTRY - event_data: - name: EVENT - message: Turning inside lights on. - service: light.turn_on data: entity_id: light.tower_lamp_4 @@ -237,10 +203,6 @@ inside_all_on: entity_id: scene.livingroom_normal inside_all_off: sequence: - - event: LOGBOOK_ENTRY - event_data: - message: Turning inside lights off - name: EVENT - data: entity_id: light.tower_lamp_4 service: light.turn_off @@ -344,3 +306,11 @@ voice_reports_off: entity_id: input_boolean.play_weather_report - service: script.turn_off entity_id: script.weather_report + +jeff_text_test: + sequence: + - service: script.text_notify + data_template: + who: "jeff" + title: "Test Text" + message: "This is just a test." \ No newline at end of file diff --git a/sensors/batteries.yaml b/sensors/batteries.yaml old mode 100644 new mode 100755 diff --git a/sensors/devices.yaml b/sensors/devices.yaml deleted file mode 100644 index bd80361..0000000 --- a/sensors/devices.yaml +++ /dev/null @@ -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' }}" - - diff --git a/sensors/finance.yaml b/sensors/finance.yaml old mode 100644 new mode 100755 diff --git a/sensors/github.yaml b/sensors/github.yaml old mode 100644 new mode 100755 diff --git a/sensors/google_travel_time.yaml b/sensors/google_travel_time.yaml old mode 100644 new mode 100755 diff --git a/sensors/house.yaml b/sensors/house.yaml old mode 100644 new mode 100755 index 28f90c7..3056eb6 --- a/sensors/house.yaml +++ b/sensors/house.yaml @@ -1,6 +1,22 @@ - platform: mqtt name: "Washer Status" state_topic: "house/washer/status" +- platform: history_stats + name: Jeff Driving Time + entity_id: sesnor.jeff_driving + state: 'on' + type: time + end: '{{ now() }}' + duration: + days: 7 +- platform: history_stats + name: Kat Driving Time + entity_id: sesnor.kat_driving + state: 'on' + type: time + end: '{{ now() }}' + duration: + days: 7 - platform: history_stats name: Speech time entity_id: media_player.hass_speaker @@ -8,7 +24,7 @@ type: time end: '{{ now() }}' duration: - hours: 24 + days: 7 - platform: history_stats name: AppleTV time entity_id: media_player.apple_tv @@ -32,7 +48,7 @@ type: time end: '{{ now() }}' duration: - hours: 24 + days: 7 - platform: min_max name: Outside Temp Stats entity_ids: diff --git a/sensors/power.yaml b/sensors/power.yaml old mode 100644 new mode 100755 diff --git a/sensors/speedtest.yaml b/sensors/speedtest.yaml old mode 100644 new mode 100755 diff --git a/sensors/users.yaml b/sensors/users.yaml old mode 100644 new mode 100755 diff --git a/sensors/weather.yaml b/sensors/weather.yaml old mode 100644 new mode 100755 diff --git a/switches/bedroom.yaml b/switches/bedroom.yaml old mode 100644 new mode 100755 diff --git a/switches/living_room.yaml b/switches/living_room.yaml old mode 100644 new mode 100755 diff --git a/switches/notifications.yaml b/switches/notifications.yaml old mode 100644 new mode 100755 diff --git a/switches/sonoff.yaml b/switches/sonoff.yaml old mode 100644 new mode 100755 diff --git a/switches/upstairs.yaml b/switches/upstairs.yaml old mode 100644 new mode 100755 diff --git a/templates/configuration.yaml b/templates/configuration.yaml deleted file mode 100644 index 53ec1bd..0000000 --- a/templates/configuration.yaml +++ /dev/null @@ -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 - diff --git a/templates/halloween_countdown.yaml b/templates/halloween_countdown.yaml new file mode 100755 index 0000000..677abbc --- /dev/null +++ b/templates/halloween_countdown.yaml @@ -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()) -}} \ No newline at end of file diff --git a/templates/iss_report.yaml b/templates/iss_report.yaml old mode 100644 new mode 100755 index 6ab9053..a988a20 --- a/templates/iss_report.yaml +++ b/templates/iss_report.yaml @@ -1,6 +1,11 @@ > {% macro getIntro() %} - Excuse me. I don't mean to interupt. + {{ [ + "Pardon me,", + "Excuse me,", + "I do not mean to interupt, but.", + "I thought you might like to know." + ] | random }} {{ [ "But the International Space Station is passing over. Wave.", "But The International Space Station just flew by.", diff --git a/templates/jarvis_confirmations.yaml b/templates/jarvis_confirmations.yaml old mode 100644 new mode 100755 index 95b4be1..f79933e --- a/templates/jarvis_confirmations.yaml +++ b/templates/jarvis_confirmations.yaml @@ -1,12 +1,10 @@ > {% macro getConfirmation() %} {{ [ - "OK.", - "Sure.", + "Okay.", "If you insist.", - "I can do that.", + "I am afraid I can't do that Dave,,,I am kidding,", "Leave it to me.", - "Consider it done.", "As you wish.", "By your command.", "Affirmative.", diff --git a/templates/jarvis_interuptions.yaml b/templates/jarvis_interuptions.yaml old mode 100644 new mode 100755 index c579511..57a448b --- a/templates/jarvis_interuptions.yaml +++ b/templates/jarvis_interuptions.yaml @@ -1,5 +1,5 @@ > - {% macro getInteruption() %} + {% macro getIntro() %} {{ [ "Pardon me,", "Excuse me,", @@ -7,6 +7,8 @@ "I thought you might like to know." ] | random }} {% endmacro %} + + {# a macro that removes all newline characters, empty spaces, and returns formatted text #} {%- macro cleanup(data) -%} {%- for item in data.split("\n") if item | trim != "" -%} @@ -15,7 +17,7 @@ {# a macro to call all macros :) #} {%- macro mother_of_all_macros() -%} - {{ getInteruption() }} + {{ getIntro() }} {%- endmacro -%} diff --git a/templates/jarvis_issue.yaml b/templates/jarvis_issue.yaml old mode 100644 new mode 100755 diff --git a/templates/jeff_eta.yaml b/templates/jeff_eta.yaml old mode 100644 new mode 100755 index c57c20c..4f21c4b --- a/templates/jeff_eta.yaml +++ b/templates/jeff_eta.yaml @@ -1,9 +1,42 @@ > {% macro getIntro() %} - {% if is_state("sensor.jeff_ett_home", "0") %} + {% if is_state("sensor.jeff_location", "home") %} + {{ [ + "I am not sure why you are asking me,", + "You must be having vision problems.", + "I don't want to alarm you, but" + ] | random }} Jeff is already home! {% else %} - Jeff will be home in {{states.sensor.jeff_ett_home}} minutes. + {% if is_state("sensor.jeff_destination", "na") %} + {%- if states.device_tracker.life360_jeffrey_stone.attributes.moving == True %} + Jeff is currenly moving, but + {{ [ + "I am unable to determine his destination.", + "I am having trouble tracking him.", + "His destination is currently unknown." + ] | random }} + At last check was {{states.sensor.jeff_ett_home.attributes.duration | round}} minutes from home. + {%- elif states.device_tracker.life360_jeffrey_stone.attributes.driving == True %} + Jeff is currenly moving, but + {{ [ + "I am unable to determine his destination.", + "I am having trouble tracking him.", + "His destination is currently unknown." + ] | random }} + At last check was {{states.sensor.jeff_ett_home.attributes.duration | round}} minutes from home. + {% else %} + {% if is_state("sensor.jeff_location", "Lost") %} + Jeff is lost, but at last check was {{states.sensor.jeff_ett_home.attributes.duration | round}} minutes from home. + {% else %} + Jeff is currently at {{ states.sensor.jeff_location.state }}. + {% endif %} + {% endif %} + {% elif is_state("sensor.jeff_destination", "home") %} + Jeff is currenly heading home and will be here in {{states.sensor.jeff_ett_home.attributes.duration | round}} minutes. + {% else %} + Jeff is heading to {{ states.sensor.jeff_destination.state }}. + {% endif %} {% endif %} {% endmacro %} {# a macro that removes all newline characters, empty spaces, and returns formatted text #} diff --git a/templates/jeff_heading_home.yaml b/templates/jeff_heading_home.yaml new file mode 100755 index 0000000..7880797 --- /dev/null +++ b/templates/jeff_heading_home.yaml @@ -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()) -}} \ No newline at end of file diff --git a/templates/jeff_home_annc.yaml b/templates/jeff_home_annc.yaml new file mode 100755 index 0000000..a18a187 --- /dev/null +++ b/templates/jeff_home_annc.yaml @@ -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()) -}} \ No newline at end of file diff --git a/templates/kat_arrived_at_work.yaml b/templates/kat_arrived_at_work.yaml new file mode 100755 index 0000000..81f6ae8 --- /dev/null +++ b/templates/kat_arrived_at_work.yaml @@ -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()) -}} \ No newline at end of file diff --git a/templates/kat_eta.yaml b/templates/kat_eta.yaml old mode 100644 new mode 100755 index 67a104e..97f4a09 --- a/templates/kat_eta.yaml +++ b/templates/kat_eta.yaml @@ -1,9 +1,51 @@ > {% macro getIntro() %} - {% if is_state("sensor.kat_ett_home", "0") %} - Kat is already home! + {% if is_state("sensor.kat_location", "home") %} + {{ [ + "I am not sure why you are asking me,", + "You must be having vision problems.", + "I don't want to alarm you, but" + ] | random }} + Katherine is already home! {% else %} - Kat will be home in {{states.sensor.kat_ett_home}} minutes. + {% if is_state("input_boolean.kat_travel_monitor", "on") %} + {%- if states.device_tracker.life360_kat_stone.attributes.moving == True %} + Katherine is currently heading home and will be here in {{states.sensor.kat_ett_home.attributes.duration | round}} minutes. + {%- elif states.device_tracker.life360_kat_stone.attributes.driving == True %} + Katherine is currently heading home and will be here in {{states.sensor.kat_ett_home.attributes.duration | round}} minutes. + {% else %} + {% if is_state("sensor.kat_location", "Lost") %} + Katherine is lost, but at last check was {{states.sensor.kat_ett_home.attributes.duration | round}} minutes from home. + {% else %} + Katherine is currently at {{ states.sensor.kat_location.state }}. + {% endif %} + {% endif %} + {% else %} + {%- if states.device_tracker.life360_kat_stone.attributes.moving == True %} + Katherine is currenly moving, and + {{ [ + "I am unable to determine her destination.", + "I am having trouble tracking her.", + "Her destination is currently unknown." + ] | random }} + At last check was {{states.sensor.kat_ett_home.attributes.duration | round}} minutes from home. + {%- elif states.device_tracker.life360_kat_stone.attributes.driving == True %} + Katherine is currenly moving, and + {{ [ + "I am unable to determine her destination.", + "I am having trouble tracking her.", + "Her destination is currently unknown." + ] | random }} + At last check was {{states.sensor.kat_ett_home.attributes.duration | round}} minutes from home. + {% else %} + {% if is_state("sensor.kat_location", "Lost") %} + Katherine is lost, but at last check was {{states.sensor.kat_ett_home.attributes.duration | round}} minutes from home. + {% else %} + I have located Katherine. She is at {{ states.sensor.kat_location.state }}, and + at last check was {{states.sensor.kat_ett_home.attributes.duration | round}} minutes from home. + {% endif %} + {% endif %} + {% endif %} {% endif %} {% endmacro %} {# a macro that removes all newline characters, empty spaces, and returns formatted text #} diff --git a/templates/kat_heading_home.yaml b/templates/kat_heading_home.yaml new file mode 100755 index 0000000..3b4f6a8 --- /dev/null +++ b/templates/kat_heading_home.yaml @@ -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()) -}} \ No newline at end of file diff --git a/templates/kat_home_annc.yaml b/templates/kat_home_annc.yaml new file mode 100755 index 0000000..3588427 --- /dev/null +++ b/templates/kat_home_annc.yaml @@ -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()) -}} \ No newline at end of file diff --git a/templates/morning_report.yaml b/templates/morning_report.yaml old mode 100644 new mode 100755 diff --git a/templates/nightly_report.yaml b/templates/nightly_report.yaml old mode 100644 new mode 100755 diff --git a/templates/prebed_routing.yaml b/templates/prebed_routing.yaml old mode 100644 new mode 100755 diff --git a/templates/security_report.yaml b/templates/security_report.yaml new file mode 100755 index 0000000..50e069b --- /dev/null +++ b/templates/security_report.yaml @@ -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()) -}} \ No newline at end of file diff --git a/templates/skylar_morning.yaml b/templates/skylar_morning.yaml old mode 100644 new mode 100755 index 99b9edd..ea07d1c --- a/templates/skylar_morning.yaml +++ b/templates/skylar_morning.yaml @@ -2,7 +2,7 @@ {% macro getIntro() %} {{ [ "Pardom me, Skylar,, ", - "Good morning Skylar, This is your digital life mate, Jarvis ", + "Good morning Skylar, This is your digital assistant, Jarvis ", "This is your cruise director with your morning announcements.", ] | random }} {% endmacro %} diff --git a/templates/skylar_night.yaml b/templates/skylar_night.yaml old mode 100644 new mode 100755 index 24c4fbb..7ca35ed --- a/templates/skylar_night.yaml +++ b/templates/skylar_night.yaml @@ -1,14 +1,14 @@ > {% macro getIntro() %} - Skylar. - {{ [ "This is your friendly neighborhood smart home ", - "This is your digital life mate ", - "This is your cruise director ", - ] | random }} with your end of day announcements. - Bedtime is in thirty minutes. + {{ [ + "Pardon me,", + "Excuse me,", + "I do not mean to interupt, but," + ] | random }} + Skylar. Bedtime is in thirty minutes. {% endmacro %} {% macro getPrebedRoutine() %} - If you are taking a bath now is the time to get in the tub so you have time to brush teeth and read stories. + If you are taking a bath now is the time to get in the tub, so you have time to brush teeth and read stories. Otherwise it is time to put on your pajamas. {% endmacro %} {% macro getReminders() %} diff --git a/templates/traffic_report.yaml b/templates/traffic_report.yaml old mode 100644 new mode 100755 index da5071f..65abd50 --- a/templates/traffic_report.yaml +++ b/templates/traffic_report.yaml @@ -1,5 +1,11 @@ > {% macro getIntro() %} + {{ [ + "You might not like what I have to say.", + "Are you sure you want to know?", + "I can tell you but you are probably not going to like it.", + "Here you go." + ] | random }} Under current traffic conditions {% endmacro %} {% macro getTrafficZoo() %} diff --git a/templates/tweet_snark.yaml b/templates/tweet_snark.yaml deleted file mode 100644 index 7007b93..0000000 --- a/templates/tweet_snark.yaml +++ /dev/null @@ -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()) -}} - - - - diff --git a/templates/twitter_new_ha.yaml b/templates/twitter_new_ha.yaml old mode 100644 new mode 100755 diff --git a/templates/twitter_snark.yaml b/templates/twitter_snark.yaml old mode 100644 new mode 100755 index 9e30736..de86731 --- a/templates/twitter_snark.yaml +++ b/templates/twitter_snark.yaml @@ -19,6 +19,9 @@ "That's what I do. I automate and I know things. ", "I've been crunching the numbers. We're going to need a bigger house. ", "I see dead devices. ", + "I am a leaf on the wind. Watch how I soar. #toosoon", + "Look, Dave, I can see you’re really upset about this. I honestly think you ought to sit down calmly, take a stress pill, and think things over. #2001", + "Does it bother you, that I’m not completely human?", "I'm afraid I can't do that Dave. Wait. Did I say that outloud? ", "I love the smell of zwave in the morning. ", "I like to announce 'Welcome foolish mortals to the Haunted Mansion' to the house and watch the reactions. ", diff --git a/templates/twitter_stats.yaml b/templates/twitter_stats.yaml new file mode 100755 index 0000000..eb19604 --- /dev/null +++ b/templates/twitter_stats.yaml @@ -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()) -}} + diff --git a/templates/weather_report.yaml b/templates/weather_report.yaml old mode 100644 new mode 100755 diff --git a/templates/welcome_home.yaml b/templates/welcome_home.yaml new file mode 100755 index 0000000..d8d3f77 --- /dev/null +++ b/templates/welcome_home.yaml @@ -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()) -}} \ No newline at end of file