- id: washer_running
  alias: Washer Running
  trigger:
  - above: 5
    entity_id: sensor.washer_power
    platform: numeric_state
  condition:
    condition: or
    conditions:
    - condition: state
      entity_id: sensor.washer_status
      state: idle
    - condition: state
      entity_id: sensor.washer_status
      state: complete
  action:
  - service: script.washer_running
  initial_state: true

- id: washer_complete
  alias: Washer Complete
  trigger:
  - below: 3
    entity_id: sensor.washer_power
    platform: numeric_state
  condition:
  - condition: state
    entity_id: sensor.washer_status
    state: running
  action:
  - service: script.washer_complete
  initial_state: true

- id: washer_emptied
  initial_state: true
  alias: Washer Emptied
  trigger:
  - platform: state
    entity_id: binary_sensor.washer_door_contact
    from: 'off'
    to: 'on'
  action:
  - service: script.washer_idle
  - service: script.turn_off
    entity_id: script.washer_finished_notification_audible

- id: washer_notification
  initial_state: true
  alias: Washer Notification
  trigger:
  - platform: state
    entity_id: sensor.washer_status
    from: running
    to: complete
  - platform: event
    event_type: event_washer_complete_notification
  action:
  - service: script.turn_on
    entity_id: script.washer_finished_notification_audible


- id: turn_off_disney
  initial_state: true
  alias: Turn Off Disney
  trigger:
  - platform: state
    entity_id: media_player.hass_speaker
    from: playing
    to: idle
  action:
  - service: input_boolean.turn_off
    entity_id: input_boolean.tiki_room_audio
  - service: input_boolean.turn_off
    entity_id: input_boolean.happy_ever_after_show
  - service: input_boolean.turn_off
    entity_id: input_boolean.haunted_mansion
  - service: input_boolean.turn_off
    entity_id: input_boolean.boo_to_you_show
  - service: input_boolean.turn_off
    entity_id: input_boolean.spaceship_earth_ride
  - service: input_boolean.turn_off
    entity_id: input_boolean.mk_loop
  - service: input_boolean.turn_off
    entity_id: input_boolean.illuminations
  - service: input_boolean.turn_off
    entity_id: input_boolean.boo_to_you
  - service: input_boolean.turn_off
    entity_id: input_boolean.happy_ever_after
- id: backup_hass
  initial_state: true
  alias: Backup Hass
  trigger:
  - platform: time
    at: 05:00:00
  action:
  - service: shell_command.backup
  - service: script.twitter_notify_image
    data_template:
      tweet: >-
        {{ [ 
          "I just kicked off a backup of #homeassistant to ensure I live on. Do you backup? ", 
          "Its important to backup your data. Thats why I just intitiated a backup of my critical data. ", 
          "With @home_assistant and the #dropbox component it is easy to backup your important config files. Lets do this thing! " 
          ] | random }}
      image: >-
        "/config/www/tweet_images/hdd.jpg"

- id: coffee_time
  alias: Coffee Time
  initial_state: true
  trigger:
      platform: template
      value_template: "{{ states('sensor.time') == (state_attr('input_datetime.coffee_time', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}"
  action:
  - service: scene.turn_on
    entity_id: scene.diminshed_livingroom_lighting
  - service: scene.turn_on
    entity_id: scene.diminished_kitchen_lighting
  - service: scene.turn_on
    entity_id: scene.jeff_night_light
  - service: alarm_control_panel.aarlo_set_mode
    data:
      entity_id: alarm_control_panel.aarlo_ah_base_station
      mode: 'home'

- id: good_morning
  alias: Good Morning
  initial_state: true
  trigger:
      platform: template
      value_template: "{{ states('sensor.time') == (state_attr('input_datetime.good_morning', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}"
  action:
  - service: scene.turn_on
    entity_id: scene.normal_livingroom_lighting
  - service: scene.turn_on
    entity_id: scene.normal_kitchen_lighting
  - service: switch.turn_off
    entity_id: switch.rainbow_light # Rainbow Light
  - service: light.turn_on
    entity_id: light.skylars_tower # Skylar's Lamp
  - service: scene.turn_on
    entity_id: scene.jeff_light_on
  - service: script.twitter_notify_image
    data_template:
      tweet: >-
        {{ [ 
          "Good Morning! Time to rise and shine at Anchorage House. ",
          "Good Morning from Anchorage House. Glad to see everyone made it. ", 
          "Birds are awake, and so is Anchorage House. Good morning everyone!",
          "Good morning. Anchorage House is up and online." 
          ] | random }}
        {% if is_state('calendar.holidays_in_united_states', 'on') %}
          Today is {{states.calendar.holidays_in_united_states.attributes.message}}.
        {% endif %}
      image: >-
        {{ [ "/config/www/tweet_images/coffee.jpg",
              "/config/www/tweet_images/coffee2.jpg"] | random }}

- id: skylar_bedtime
  alias: Skylar Bedtime
  initial_state: true
  trigger:
  - platform: time
    at: '19:15:00'
  condition:
  - condition: state
    entity_id: input_boolean.vacation_mode
    state: 'off'
  action:
  - service: scene.turn_on
    entity_id: scene.skylar_room_prebed


- id: jeff_lights_out
  alias: Jeff lights out
  initial_state: true
  trigger:
  - platform: time
    at: '23:00:00'
  condition:
  - condition: state
    entity_id: input_boolean.vacation_mode
    state: 'off'
  action:
  - service: scene.turn_on
    entity_id: scene.jeff_light_off
- id: jeff_bedtime
  alias: Jeff bedtime
  initial_state: true
  trigger:
  - platform: time
    at: '22:00:00'
  condition:
  - condition: state
    entity_id: light.jeff_light
    state: 'on'
  - condition: state
    entity_id: input_boolean.vacation_mode
    state: 'off'
  action:
  - service: scene.turn_on
    entity_id: scene.jeff_bedtime
- id: jeff_night_light
  alias: Jeff night light
  initial_state: true
  trigger:
  - platform: time
    at: '22:30:00'
  condition:
  - condition: state
    entity_id: light.jeff_light
    state: 'on'
  - condition: state
    entity_id: input_boolean.vacation_mode
    state: 'off'
  action:
  - service: scene.turn_on
    entity_id: scene.jeff_night_light
- id: jeff_light_on
  alias: Jeff Light On
  initial_state: true
  trigger:
  - platform: time
    at: '20:00:00'
  condition:
  - condition: state
    entity_id: input_boolean.vacation_mode
    state: 'off'
  action:
  - service: scene.turn_on
    entity_id: scene.jeff_light_on
# - id: jeff_alarm
#   alias: Jeff alarm
#   initial_state: true
#   trigger:
#   - platform: time
#     at: 05:15:00
#   condition:
#   - condition: state
#     entity_id: input_boolean.vacation_mode
#     state: 'off'
#   action:
#   - service: scene.turn_on
#     entity_id: scene.jeff_night_light

# - id: jeff_wake_up
#   alias: Jeff wake up
#   initial_state: true
#   trigger:
#   - platform: time
#     at: 04:30:00
#   condition:
#   - condition: state
#     entity_id: input_boolean.vacation_mode
#     state: 'off'
#   action:
#   - service: scene.turn_on
#     entity_id: scene.jeff_wake_up

- id: good_night
  alias: Good Night
  initial_state: true
  trigger:
  - platform: time
    at: '22:30:00'
  action:
  - service: scene.turn_on
    entity_id: scene.night_time_livingroom_lighting
  - service: switch.turn_off
    entity_id: switch.incense
  - service: switch.turn_off
    entity_id: switch.artemis
  - service: switch.turn_off
    entity_id: switch.forest
  - service: switch.turn_off
    entity_id: switch.livingroom_fan
  - service: light.turn_off
    data:
      entity_id: light.ha_speaker
  - service: light.turn_off
    data:
      entity_id: light.kitchen_cabinets_2
  - service: script.good_night_loft
  - service: script.twitter_notify_image
    data_template:
      tweet: >-
        {{ [ 
          "Good Night from Anchorage House. ", 
          "Time to shut down this party. Good Night from Anchorage House. ",
          "I'm feeling tired. Think I'll take a quick nap. Good Night!",
          "Things are getting quiet. Time to say Good Night.",
          "We have come to the end of our broadcast day. Oh, who am I kidding. I''ll be up all night watching over Anchorage House. " 
          ] | random }}
      image: >-
        {{ [ "/config/www/tweet_images/off.jpg",
            "/config/www/tweet_images/clock.jpg"] | random }}
      

- id: outside_lights_on_sunset
  alias: Outside Lights on at Sunset
  initial_state: true
  trigger:
  - platform: sun
    event: sunset
    offset: -00:30:00
  action:
  - service: switch.turn_on
    data:
      entity_id: switch.front_porch_light
  - service: script.sunset_garage_open
  - service: script.twitter_notify_image
    data_template:
      tweet: >-
        {{ [ 
          "Its getting dark at Anchorage House, so Im turning on the outside lights. ", 
          "When the Sun goes down, I help out by turning on the outside lights. Its the little things. ",
          "Switching to dark mode!",
          "It is time to turn on the outside lights. You know...so bugs know where to die.",
          "Anchorage House is switching to night mode!",
          "Anchorage House is going to the darkside. Of the planet that is. So the lights are on.",
          "Its getting dark so let me spell out my name...Wait. Did I break into a random #Hamilton song? Pardon me. umm. I just turned on the outside lights at Anchorage House. " 
          ] | random }}
      image: >-
        {{ [ "/config/www/tweet_images/lamp.jpg",
            "/config/www/tweet_images/bright.jpg",
            "/config/www/tweet_images/light.jpg",
            "/config/www/tweet_images/lamp2.jpg"] | random }}

- id: sunset
  alias: Sunset
  initial_state: true
  trigger:
  - platform: sun
    event: sunset
  action:
  - service: alarm_control_panel.aarlo_set_mode
    data:
      entity_id: alarm_control_panel.aarlo_ah_base_station
      mode: 'Armed'
  - service: script.ah_report
    data:
      call_interuption: 1
      call_dark_outside: 1
      call_garage_door_status: 1

- id: outside_lights_off_sunrise
  alias: Outside Lights off at Sunrise
  initial_state: true
  trigger:
  - platform: sun
    event: sunrise
  action:
  - service: switch.turn_off
    data:
      entity_id: switch.front_porch_light
  - service: script.twitter_notify_image
    data_template:
      tweet: >-
        {{ [ 
          "The sun is up at Anchorage House, so Im turning off the outside lights. ", 
          "I see the sun! Time to turn off the outside lights at Anchorage House. ", 
          "Dawn has broken at Anchorage House. Turning off the outside lights.",
          "Anchorage house has converted to the lightside after a few hours on the darkside. I think its safe to turn off the lights.",
          "Light mode activated! So that means I'm turning off the outside lights."

          ] | random }}
      image: >-
        {{ [ "/config/www/tweet_images/sunrise.jpg",
            "/config/www/tweet_images/sunrise3.jpg",
            "/config/www/tweet_images/sunrise2.jpg"] | random }}

- id: inside_on_sunset
  alias: Inside on at Sunset
  initial_state: true
  trigger:
  - platform: sun
    event: sunset
    offset: -01:00:00
  action:
    service: scene.turn_on
    entity_id: scene.normal_livingroom_lighting
- id: inside_off_sunrise
  alias: Inside off at Sunrise
  initial_state: true
  trigger:
  - platform: sun
    event: sunrise
    offset: 00:30:00
  condition:
  - condition: state
    entity_id: sensor.nws_current_condition
    state: "cloudy"
  action:
  - service: script.inside_all_off
  - service: scene.turn_on
    entity_id: scene.jeff_light_off
- id: ha_start
  alias: HA Startup
  initial_state: true
  trigger:
  - platform: homeassistant
    event: start
  action:
    service: frontend.set_theme
    data:
      name: midnight-AH
- id: jeff_eta_home
  alias: Jeff eta home
  initial_state: true
  trigger:
  - platform: state
    entity_id: sensor.jeff_destination
    to: Home
  condition:
  - condition: state
    entity_id: sensor.notification_mode
    state: Normal
  action:
  - service: input_boolean.turn_on
    entity_id: input_boolean.jeff_travel_monitor
- id: enable_bad_traffic_home_jeff
  alias: Notify Jeff - Bad Traffic
  initial_state: true
  trigger:
  - platform: numeric_state
    entity_id: sensor.jeff_ett_home
    above: 59
  condition:
  - condition: state
    entity_id: sensor.jeff_location
    state: Summit
  - condition: state
    entity_id: input_boolean.jeff_traffic_alerts
    state: 'on'
  action:
  - service: input_boolean.turn_on
    entity_id: input_boolean.jeff_traffic_alert_home
  - service: script.twitter_notify_image
    data_template:
      tweet: >-
        {{ [ 
          "Looks like traffic is bad out there so I let @thejeffreystone know.  ", 
          "I dont think todays traffic is the worst I''ve seen, but its bad. Letting my residents know they need to plan their trips. ", 
          "Oh great...traffic cannot get any worse. Maybe everyone should stay where they are. "
           ] | random }}
      image: >-
        {{ [ 
            "/config/www/tweet_images/road.jpg",
            "/config/www/tweet_images/traffic.jpg",
            "/config/www/tweet_images/traffic-jam.jpg"
            ] | random }}

- id: disable_bad_traffic_home_jeff
  alias: Disabling Jeff Bad Traffic Home
  initial_state: true
  trigger:
  - platform: numeric_state
    entity_id: sensor.jeff_ett_home
    below: 40
  - platform: state
    entity_id: sensor.jeff_destination
    to: Home
  condition:
  - condition: state
    entity_id: input_boolean.jeff_traffic_alert_home
    state: 'on'
  action:
  - service: input_boolean.turn_off
    entity_id: input_boolean.jeff_traffic_alert_home
- id: '1550107919204'
  alias: Family Is Home Webhook
  trigger:
  - platform: webhook
    webhook_id: home_webhook
  condition: []
  action:
  - service: script.family_is_home
- id: '1550108034209'
  alias: Family Is Away Webhook
  trigger:
  - platform: webhook
    webhook_id: away_webhook
  condition: []
  action:
  - service: script.family_is_away

- id: set_coffee_time
  alias: set soffee time
  trigger:
    - platform: time
      at: '00:02:15'
  action:
    - service: input_datetime.set_datetime
      entity_id: input_datetime.coffee_time
      data_template:
        time: > 
          {% if states.binary_sensor.workday_sensor.state == 'on' %}
            06:00
          {% else %}
            07:15
          {% endif %}

- id: set_skylar_nightly_report_time
  alias: set skylar nightly report time
  trigger:
    - platform: time
      at: '18:30:00'
  action:
    - service: input_datetime.set_datetime
      entity_id: input_datetime.skylar_nightly_report
      data_template:
        time: > 
          {% if states.sensor.school_tomorrow.state == 'on' %}
            19:00
          {% else %}
            20:00
          {% endif %}

- id: set_good_morning_time
  alias: set good morning time
  trigger:
    - platform: time
      at: '05:55:00'
  action:
    - service: input_datetime.set_datetime
      entity_id: input_datetime.good_morning
      data_template:
        time: > 
          {% if states.calendar.skylar_school.attributes.offset_reached == True %}
            07:15
          {% elif states.binary_sensor.workday_sensor.state == 'on' %}
            07:15
          {% else %}
            07:25
          {% endif %}

- id: upstairs_fan_on
  alias: Upstairs Fan On
  initial_state: true
  trigger:
  - entity_id: binary_sensor.upstairs_occupancy
    from: 'Off'
    platform: state
    to: 'On'
  condition:
  - above: '73'
    condition: numeric_state
    entity_id: sensor.upstairs_temperature
  action:
  - data:
      entity_id: switch.upstairs_fan
    service: switch.turn_on
  
- id: '1558630577206'
  alias: Garage Is Open at 9pm
  initial_state: true
  trigger:
  - at: '21:00:00'
    platform: time
  condition:
  - condition: state
    entity_id: binary_sensor.garage_door_contact
    state: 'on'
  action:
  - data:
      entity_id: input_boolean.garage_after_dark
    service: input_boolean.turn_on
- id: '1559612300685'
  alias: Garage Closed
  initial_state: true
  trigger:
  - entity_id: binary_sensor.garage_door_contact
    from: 'on'
    platform: state
    to: 'off'
  condition: []
  action:
  - data:
      entity_id: input_boolean.garage_after_dark
    service: input_boolean.turn_off
- id: '1562066108032'
  alias: Living Room Fan On
  initial_state: true
  trigger:
  - entity_id: binary_sensor.living_room_occupancy
    from: 'off'
    platform: state
    to: 'on'
  condition:
  - condition: state
    entity_id: switch.livingroom_fan
    state: 'off'
  - above: '73'
    condition: numeric_state
    entity_id: sensor.living_room_temperature
  action:
  - data:
      entity_id: switch.livingroom_fan
    service: switch.turn_on
- id: '1562067639239'
  alias: Upstairs Fan Off
  initial_state: true
  trigger:
  - entity_id: binary_sensor.upstairs_occupancy
    from: 'on'
    platform: state
    to: 'off'
  condition:
  - condition: state
    entity_id: switch.croft_fan
    state: 'on'
  - below: '72'
    condition: numeric_state
    entity_id: sensor.upstairs_temperature
  - condition: state
    entity_id: media_player.tsr_6750_a3ed2f
    state: 'off'
  action:
  - data:
      entity_id: switch.croft_fan
    service: switch.turn_off
- id: '1562630916597'
  alias: Kat Pill Reminder
  initial_state: true
  trigger:
  - platform: template
    value_template: "{{ states('sensor.time') == (state_attr('input_datetime.kat_pill_reminder', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}"
  action:
  - data:
      message: Remember to take meds
    service: notify.kat_ios


# - id: turn_off_ha_speaker
#   alias: Turn Off HA Speaker
#   trigger:
#   - platform: state
#     entity_id: media_player.hass_speaker
#     from: 'playing'
#     to: 'idle'
#   action:
#   - service: media_player.turn_off
#     entity_id: media_player.hass_speaker
#   initial_state: true

- id: turn_off_kitchen_speaker
  alias: Turn Off Kitchen Display
  trigger:
  - platform: state
    entity_id: media_player.googlehomehub3492
    from: 'playing'
    to: 'idle'
  action:
  - service: media_player.turn_off
    entity_id: media_player.googlehomehub3492
  initial_state: true

# - id: turn_off_ha_speaker
#   alias: Turn Off HA Speaker
#   trigger:
#   - platform: state
#     entity_id: media_player.ha_speaker
#     from: 'playing'
#     to: 'idle'
#   action:
#   - service: switch.turn_off
#     entity_id: switch.ha_speaker
#   - service: media_player.turn_off
#     entity_id: media_player.ha_speaker
#   - service: script.kill_this_ride
#   initial_state: true

# - id: save_old_covid_stats
#   alias: Old Covid Stats archive
#   trigger:
#   - platform: time
#     at: '15:12:15'
#   action:
#   - service: script.save_old_covid_stats
#   initial_state: true

- id: kitchen_occupency_lighting
  alias: Kitchen Occupency Lighting
  initial_state: true
  trigger:
  - platform: state
    entity_id: binary_sensor.kitchen_motion_motion
    to: 'on'
  action:
  - service: script.kitchen_lights_night
  - service: script.dog_mode_on
  - service: script.kitchen_lights_on

- id: driveway_motion_lighting
  alias: Driveway Motion Lighting 
  initial_state: true
  trigger:
  - platform: state
    entity_id: binary_sensor.aarlo_motion_driveway
    to: 'on'
  condition:
  - condition: state  
    entity_id: sun.sun
    state: 'below_horizon'
  action:
  - service: switch.turn_on
    entity_id: switch.driveway_light_2
  - delay:
      minutes: 3
  - service: switch.turn_off
    entity_id: switch.driveway_light_2
  
- alias: "Delivered Package Notification"
  initial_state: 'on'
  trigger:
    - platform: state
      entity_id: sensor.mail_fedex_delivered_2
    - platform: state
      entity_id: sensor.mail_ups_delivered
  #send only if mail or packages are more than 0
  condition:
    - condition: or
      conditions:
        - condition: template
          value_template: "{{ states('sensor.mail_fedex_delivered_2') | int > 0 }}"
        - condition: template
          value_template: "{{ states('sensor.mail_ups_delivered') | int > 0 }}"
  action:
    - service: script.text_notify
      data_template:
        who: "jeff"
        title: "Package Delivered"
        message: "Fedex/UPS just made a delivery"
    - service: script.ah_report
      data_template:
        usps: >-
            A package was just left on the porch.
        call_interuption: 1

- alias: 'Battery Alert'
  initial_state: 'on'
  trigger:
    - platform: time
      at: '10:00:00'
    - platform: time
      at: '18:00:00'
  condition:
    condition: template
    value_template: "{% if states('sensor.low_battery') %}true{% endif %}"
  action:
    - service: persistent_notification.create
      data_template:
        title: Low Battery
        message: "{{ states('sensor.low_battery') }}"
        notification_id: low-battery-alert
    - service: script.text_notify
      data_template:
        title: "HA Issue"
        message: "Low battery levels: {{ states('sensor.low_battery') }}"
        who: 'jeff'