- id: '1780125759253'
  alias: 'Tablet: Dim Screen at Night'
  description: Drops tablet brightness to zero at night
  triggers:
  - at: 01:00:00
    trigger: time
  actions:
  - action: notify.mobile_app_sm_t387w
    data:
      message: command_screen_brightness_level
      data:
        command: 0
- id: '1780125803824'
  alias: 'Tablet: Restore Screen in Morning'
  description: Restores tablet brightness to normal in the morning
  triggers:
  - at: 07:00:00
    trigger: time
  actions:
  - action: notify.mobile_app_sm_t387w
    data:
      message: command_screen_brightness_level
      data:
        command: 180
- id: '1780441470361'
  alias: Reload Hilo Integrations on Reboot
  description: Reloads problematic integrations 2 minutes after Home Assistant starts
    up.
  triggers:
  - trigger: homeassistant
    event: start
  conditions: []
  actions:
  - delay:
      hours: 0
      minutes: 3
      seconds: 0
      milliseconds: 0
  - action: homeassistant.reload_config_entry
    metadata: {}
    target:
      device_id:
      - 3e67afd88a4b4d17552c8f370aaf40b5
      - baad176ac2f415f3642e2d075bb6a977
    data: {}
  mode: single
- id: '1780509027967'
  alias: Notify When Ring Console Battery Low
  description: ''
  triggers:
  - trigger: numeric_state
    entity_id:
    - sensor.entryway_keypad_battery
    below: 25
  conditions: []
  actions:
  - data:
      message: Keypad Battery Low. Please Charge ASAP
      title: Ring Console Battery
    action: notify.notify
  mode: single
  variables:
    _cafe_metadata:
      version: 1
      strategy: native
      nodes:
        trigger_1780508927611_4:
          x: 15
          y: -105
        action_1780508992783_5:
          x: 285
          y: 45
      graph_id: 816af3b7-3eac-47c3-8da3-8797d1774c0c
      graph_version: 1
- id: '1780516946807'
  alias: Notify When Front Door Sensor Battery Low
  description: ''
  triggers:
  - trigger: numeric_state
    entity_id:
    - sensor.front_door_battery
    below: 25
  conditions: []
  actions:
  - data:
      message: Front Door Sensor Battery Low. Please Change Batteries ASAP.
      title: Ring Console Battery
    action: notify.notify
  mode: single
  variables:
    _cafe_metadata:
      version: 1
      strategy: native
      nodes:
        trigger_1780508927611_4:
          x: 15
          y: -105
        action_1780508992783_5:
          x: 285
          y: 45
      graph_id: 816af3b7-3eac-47c3-8da3-8797d1774c0c
      graph_version: 1
- id: '1780813227139'
  alias: 'Alert: Fridge or Freezer Power Outage'
  description: Triggers an alert if the fridge or freezer smart plug power consumption
    drops to 0W for too long.
  triggers:
  - trigger: numeric_state
    entity_id:
    - sensor.freezer_power
    for:
      hours: 0
      minutes: 45
      seconds: 0
    below: 0.2
    id: freezer_down
  - trigger: numeric_state
    entity_id:
    - sensor.fridge_power
    for:
      hours: 0
      minutes: 20
      seconds: 0
    below: 0.2
    id: fridge_down
  conditions: []
  actions:
  - if:
    - condition: trigger
      id: freezer_down
    then:
    - data:
        title: "\U0001F6A8 URGENT: Freezer Power Failure"
        message: The Freezer smart plug has drawn 0W of power for over 40 minutes!
          Check the physical appliance immediately.
      action: notify.notify
    else:
    - if:
      - condition: trigger
        id: fridge_down
      then:
      - data:
          title: "\U0001F6A8 URGENT: Fridge Power Failure"
          message: The Fridge smart plug has drawn 0W of power for over 20 minutes!
            Check the physical appliance immediately.
        action: notify.notify
      else: []
  mode: single
  variables:
    _cafe_metadata:
      version: 1
      strategy: native
      nodes:
        trigger_1780846348490_0_0:
          x: 12
          y: 182
        trigger_1780846348490_1_1:
          x: 12
          y: 22
        condition_1780846348491_2_2:
          x: 312
          y: 92
        action_1780846348491_3_3:
          x: 632
          y: 12
        condition_1780846348491_4_4:
          x: 632
          y: 172
        action_1780846348491_5_5:
          x: 952
          y: 102
      graph_id: 5948b900-b45d-4c2e-ae73-c880acc3a1bf
      graph_version: 1
- id: '1780989340205'
  alias: 'Kitchen: Coffee Maker Active Notification'
  description: Sends a mobile application push notification when the coffee maker
    power exceeds 1000W for 5 seconds.
  triggers:
  - entity_id: sensor.coffee_maker_power
    above: 1000
    for:
      hours: 0
      minutes: 0
      seconds: 5
    trigger: numeric_state
  conditions: []
  actions:
  - data:
      title: ☕ Coffee Time
      message: Someone is Making Coffee
    action: notify.notify
  - action: notify.persistent_notification
    metadata: {}
    data:
      title: ☕ Coffee Time
      message: Someone is Making Coffee
  - delay:
      hours: 0
      minutes: 4
      seconds: 0
      milliseconds: 0
  mode: single
- id: '1781024962776'
  alias: 'Office: Light Control Motion'
  description: Turns on office lights when the door opens, or via motion if turned
    off by inactivity within the last hour. Turns off lights after 1 hour of no occupancy.
    Prevents motion from re-triggering if turned off manually/Alexa. Respects a master
    override toggle helper.
  triggers:
  - trigger: state
    entity_id: binary_sensor.office_door_contact
    to: 'on'
    id: door_opened
  - trigger: state
    entity_id: binary_sensor.office_occupancy
    to: 'on'
    id: motion_detected
  - trigger: state
    entity_id: binary_sensor.office_occupancy
    to: 'off'
    for:
      hours: 1
      minutes: 0
      seconds: 0
    id: turn_off_logic
  conditions: []
  actions:
  - choose:
    - conditions:
      - condition: time
        after: '10:00:00'
        before: '20:00:00'
      - condition: state
        entity_id: light.playroom_light
        state: 'off'
      - condition: state
        entity_id: input_boolean.office_motion_override
        state: 'off'
      - condition: or
        conditions:
        - condition: trigger
          id: door_opened
        - condition: and
          conditions:
          - condition: trigger
            id: motion_detected
          - condition: template
            value_template: '{{ (now() - states.light.playroom_light.last_changed).total_seconds()
              < 3600 and states.light.playroom_light.context.parent_id == none }}'
      sequence:
      - action: light.turn_on
        target:
          entity_id: light.playroom_light
        data: {}
    - conditions:
      - condition: trigger
        id: turn_off_logic
      - condition: state
        entity_id: light.playroom_light
        state: 'on'
      sequence:
      - action: light.turn_off
        target:
          entity_id: light.playroom_light
        data: {}
      - action: notify.notify
        data:
          message: Office Lights Turned Off due to inactivity
          title: ⚡️ Office Lights
  mode: restart
- id: '1781034724187'
  alias: 'Office: Turn Off Lights on Exit'
  description: Turns off office lights 2 minutes after the door closes, but only if
    living room motion was detected after the door shut.
  triggers:
  - trigger: state
    entity_id: binary_sensor.office_door_contact
    to: 'off'
  conditions:
  - condition: state
    entity_id: light.playroom_light
    state: 'on'
  - condition: template
    value_template: '{{ states.binary_sensor.basement.last_changed > states.binary_sensor.office_door_contact.last_changed
      }}'
  actions:
  - delay:
      minutes: 2
  - action: light.turn_off
    target:
      entity_id: light.playroom_light
    data: {}
  - action: notify.notify
    metadata: {}
    data:
      message: Office Lights Turned Off
      title: ⚡️  Office Lights
  mode: single
- id: '1781102033733'
  alias: Water Leak Detected
  description: ''
  triggers:
  - type: moist
    device_id: 59bc102f385d7a3524c8f21a5c53592b
    entity_id: c268ff8842e905515de2274d09c5ab9e
    domain: binary_sensor
    metadata:
      secondary: false
    trigger: device
  conditions: []
  actions:
  - action: notify.notify
    metadata: {}
    data:
      title: "\U0001F6A8 URGENT: Water Leak Detected"
      message: Water Leak Detected in Basement. Check Water Heater for Leaks.
  - action: persistent_notification.create
    metadata: {}
    data:
      title: "\U0001F6A8 URGENT: Water Leak Detected"
      message: Water Leak Detected in Basement. Check Water Heater for Leaks.
  mode: single
- id: '1781112110968'
  alias: 'Freezer Safety: Alert if Plug Turns Off'
  description: Triggers an immediate notification if the freezer smart plug is turned
    off.
  triggers:
  - trigger: state
    entity_id: switch.freezer
    to: 'off'
    for:
      minutes: 1
  actions:
  - action: notify.notify
    data:
      title: "\U0001F6A8 FREEZER PLUG TRIPPED!"
      message: The freezer smart plug turned off. Check it immediately to prevent
        food spoilage.
  - action: notify.persistent_notification
    metadata: {}
    data:
      title: "\U0001F6A8 FREEZER PLUG TRIPPED!"
      message: The freezer smart plug turned off. Check it immediately to prevent
        food spoilage.
  mode: single
- id: '1781275767970'
  alias: 'Dishwasher: Cycle Finished Notification'
  description: Alerts when the dishwasher finishes washing
  triggers:
  - entity_id:
    - sensor.150633095332665_progress
    from:
    - Dry
    to:
    - Complete
    trigger: state
  actions:
  - action: notify.notify
    data:
      title: Dishwasher Done
      message: The dishwasher cycle has completed successfully!
  mode: single
- id: '1781275801564'
  alias: 'Dishwasher: Rinse Aid Low Warning'
  description: Alerts when rinse aid needs a refill
  triggers:
  - entity_id: binary_sensor.150633095332665_rinse_aid
    to: 'on'
    trigger: state
  actions:
  - action: notify.notify
    data:
      title: Dishwasher Maintenance
      message: The dishwasher is low on rinse aid. Please refill it before the next
        cycle!
  mode: single
- id: '1781278655292'
  alias: 'Dishwasher: Dishwasher Started Notification'
  description: Alerts when the dishwasher starts washing
  triggers:
  - entity_id:
    - sensor.150633095332665_status
    to:
    - Running
    trigger: state
  conditions: []
  actions:
  - action: notify.notify
    data:
      title: Dishwasher Started
      message: The dishwasher cycle has started!
  mode: single
- id: '1781279642928'
  alias: 'Dishwasher: Rinse Aid Refilled Notification'
  description: Alerts when rinse aid has been refilled
  triggers:
  - entity_id:
    - binary_sensor.150633095332665_rinse_aid
    to:
    - 'off'
    trigger: state
    from:
    - 'on'
  conditions: []
  actions:
  - action: notify.notify
    data:
      title: Dishwasher Maintenance
      message: The dishwasher rinse aid has been refilled!
  mode: single
- id: '1781282506359'
  alias: Dishwasher Cycle Tracker
  description: ''
  triggers:
  - trigger: state
    entity_id:
    - sensor.150633095332665_progress
    to:
    - Complete
  conditions: []
  actions:
  - action: counter.increment
    target:
      entity_id:
      - counter.dishwasher_wash_cycles
      - counter.dishwasher_total_wash_cycles
    data: {}
  mode: single
- id: '1781283625261'
  alias: 'Dishwasher: Create Persistent Filter Alert'
  description: Pins a notification to the sidebar when the dishwasher hits 40 cycles.
  triggers:
  - entity_id:
    - counter.dishwasher_wash_cycles
    above: 30
    trigger: numeric_state
  conditions: []
  actions:
  - action: persistent_notification.create
    data:
      title: Dishwasher Filter Maintenance
      message: The dishwasher has completed 30 cycles. Please clean the physical mesh
        filter and press Reset on your dashboard.
      notification_id: dishwasher_filter_reminder
  - action: notify.notify
    metadata: {}
    data:
      title: Dishwasher Filter Maintenance
      message: The dishwasher has completed 30 cycles. Please clean the physical mesh
        filter and press Reset on your dashboard.
  mode: single
- id: '1781283661169'
  alias: 'Dishwasher: Clear Persistent Filter Alert'
  description: Automatically removes the sidebar notification when the counter is
    reset.
  triggers:
  - entity_id: counter.dishwasher_wash_cycles
    below: 10
    trigger: numeric_state
  conditions: []
  actions:
  - action: persistent_notification.dismiss
    data:
      notification_id: dishwasher_filter_reminder
  mode: single
- id: '1781285326960'
  alias: 'Tablet: Restore Screen in Morning v2'
  description: Wakes the tablet and restores brightness/timeout
  triggers:
  - at: 07:00:00
    trigger: time
  actions:
  - action: notify.mobile_app_sm_t387w
    data:
      message: command_screen_on
      data:
        command: turn_on
  - action: notify.mobile_app_sm_t387w
    data:
      message: command_screen_off_timeout
      data:
        command: 120000
  - action: notify.mobile_app_sm_t387w
    data:
      message: command_screen_brightness_level
      data:
        command: 180
- id: '1781320273276'
  alias: 'Tablet: Fix Greyed Out Brightness'
  description: Disables auto-brightness and restores manual slider control
  triggers:
  - at: 07:00:00
    trigger: time
  actions:
  - action: notify.mobile_app_sm_t387w
    data:
      message: command_auto_screen_brightness
      data:
        command: turn_off
  - action: notify.mobile_app_sm_t387w
    data:
      message: command_screen_brightness_level
      data:
        command: 180
- id: '1781392657515'
  alias: 'Washing Machine: Cycle Status'
  description: Triggers notifications when the washing machine starts and finishes
    its cycle based on power consumption with debouncing.
  triggers:
  - entity_id: sensor.washer_power
    above: 10
    id: washer_started
    trigger: numeric_state
  - entity_id: sensor.washer_power
    below: 3
    for:
      hours: 0
      minutes: 4
      seconds: 0
    id: washer_finished
    trigger: numeric_state
  conditions: []
  actions:
  - choose:
    - conditions:
      - condition: trigger
        id: washer_started
      - condition: state
        entity_id: input_boolean.washer_running
        state: 'off'
      sequence:
      - action: input_boolean.turn_on
        target:
          entity_id: input_boolean.washer_running
      - action: notify.notify
        data:
          title: Washer Started
          message: The washing machine has started its cycle.
    - conditions:
      - condition: trigger
        id: washer_finished
      - condition: state
        entity_id: input_boolean.washer_running
        state: 'on'
      sequence:
      - action: input_boolean.turn_off
        target:
          entity_id: input_boolean.washer_running
      - action: notify.notify
        data:
          title: Washer Finished
          message: The washing machine has completed its cycle. Time to empty it!
- id: '1781402128095'
  alias: Daily Morning Climate Report
  description: Triggers the weather and comfort report script every morning at 7:00
    AM
  triggers:
  - at: 07:00:00
    trigger: time
  conditions: []
  actions:
  - action: script.weather_and_comfort_report
  mode: single
- id: '1781403940897'
  alias: 'Microwave: Cycle Status'
  description: Triggers notifications when the microwave starts and finishes based
    on power consumption.
  triggers:
  - entity_id:
    - sensor.microwave_power
    above: 100
    id: microwave_started
    trigger: numeric_state
  - entity_id: sensor.microwave_power
    below: 3
    for:
      hours: 0
      minutes: 1
      seconds: 0
    id: microwave_finished
    trigger: numeric_state
  conditions: []
  actions:
  - choose:
    - conditions:
      - condition: trigger
        id: microwave_started
      - condition: state
        entity_id: input_boolean.microwave_running
        state: 'off'
      sequence:
      - action: input_boolean.turn_on
        target:
          entity_id: input_boolean.microwave_running
      - action: notify.notify
        data:
          title: Microwave Started
          message: The microwave is running.
    - conditions:
      - condition: trigger
        id: microwave_finished
      - condition: state
        entity_id: input_boolean.microwave_running
        state: 'on'
      sequence:
      - action: input_boolean.turn_off
        target:
          entity_id: input_boolean.microwave_running
      - action: notify.notify
        data:
          title: Microwave Finished
          message: The microwave has finished!
- id: '1781404011664'
  alias: 'Ninja Toaster Oven: Cycle Status'
  description: Triggers notifications when the Ninja toaster oven starts and finishes
    cooking, with a buffer for element heat cycling.
  triggers:
  - entity_id: sensor.ninja_power
    above: 10
    id: ninja_started
    trigger: numeric_state
  - entity_id: sensor.ninja_power
    below: 3
    for:
      hours: 0
      minutes: 3
      seconds: 0
    id: ninja_finished
    trigger: numeric_state
  conditions: []
  actions:
  - choose:
    - conditions:
      - condition: trigger
        id: ninja_started
      - condition: state
        entity_id: input_boolean.ninja_running
        state: 'off'
      sequence:
      - action: input_boolean.turn_on
        target:
          entity_id: input_boolean.ninja_running
      - action: notify.notify
        data:
          title: Ninja Ovens Started
          message: The Ninja toaster oven is heating up.
    - conditions:
      - condition: trigger
        id: ninja_finished
      - condition: state
        entity_id: input_boolean.ninja_running
        state: 'on'
      sequence:
      - action: input_boolean.turn_off
        target:
          entity_id: input_boolean.ninja_running
      - action: notify.notify
        data:
          title: Ninja Oven Finished
          message: The Ninja toaster oven has finished cooking!
- id: '1781445544080'
  alias: 'Kitchen: Coffee Maker Cycle Status'
  description: 'Triggers on the high-wattage grinder spike. Dynamically waits for
    the cycle to finish: it requires a minimum of 1 minute to pass AND the power to
    drop back to the TV baseline.'
  triggers:
  - trigger: numeric_state
    entity_id: sensor.coffee_maker_power
    above: 800
    id: coffee_started
  - trigger: numeric_state
    entity_id: sensor.coffee_maker_power
    below: 15
    for:
      hours: 0
      minutes: 1
      seconds: 0
    id: coffee_finished
  conditions: []
  actions:
  - choose:
    - conditions:
      - condition: trigger
        id: coffee_started
      - condition: state
        entity_id: input_boolean.coffee_maker_running
        state: 'off'
      sequence:
      - action: input_boolean.turn_on
        target:
          entity_id: input_boolean.coffee_maker_running
      - action: notify.notify
        data:
          title: ☕ Coffee Time
          message: Someone is making coffee.
    - conditions:
      - condition: trigger
        id: coffee_finished
      - condition: state
        entity_id: input_boolean.coffee_maker_running
        state: 'on'
      sequence:
      - action: input_boolean.turn_off
        target:
          entity_id: input_boolean.coffee_maker_running
      - action: notify.notify
        data:
          title: ☕ Coffee Ready
          message: Your coffee is ready to enjoy!
  mode: single
- id: '1781793117883'
  alias: Basement Temperature Change
  description: ''
  triggers:
  - type: temperature
    device_id: 3e67afd88a4b4d17552c8f370aaf40b5
    entity_id: 64689573a8b11a83829efcae0022d7c1
    domain: sensor
    trigger: device
    above: 15
    below: 10
  conditions: []
  actions:
  - action: notify.notify
    metadata: {}
    data:
      title: Basement Temperature Change
      message: Basement Temperature Changed!
  mode: single
- id: '1782161891986'
  alias: 'Notification: Pool Sensor Low Battery'
  description: Alert when the pool temperature sensor battery drops below 15%
  triggers:
  - entity_id:
    - sensor.pool_battery
    below: 15
    trigger: numeric_state
  conditions: []
  actions:
  - data:
      title: Pool Sensor Battery Low
      message: The pool temperature sensor battery is currently at {{ states('sensor.pool_temperature_battery')
        }}%. Please change it soon.
    action: notify.persistent_notification
  - action: notify.notify
    metadata: {}
    data:
      title: Pool Sensor Battery Low
      message: The pool temperature sensor battery is currently at {{ states('sensor.pool_temperature_battery')
        }}%. Please change it soon.
  mode: single
- &id001
  id: commute_morning_traffic_alert_map
  alias: 'Commute: Morning Traffic Alert with Map'
  description: Checks commute times at 7:15 AM and attaches a map if traffic is bad.
  triggers:
  - at: 07:15:00
    trigger: time
  conditions:
  - condition: or
    conditions:
    - condition: template
      value_template: '{{ states(''sensor.google_travel_time_work'') | float(0) >
        35 }}'
  actions:
  - action: camera.snapshot
    target:
      entity_id: camera.camera_commute_map
    data:
      filename: /config/www/commute_snapshot.jpg
  - action: notify.notify
    data:
      title: "\U0001F6A8 Commute Delay Alert!"
      message: "Traffic to Work is heavier than usual this morning. \n- Google Maps:
        {{ states('sensor.google_travel_time_work') }} mins."
      data:
        image: /local/commute_snapshot.jpg
    enabled: false
  - action: notify.persistent_notification
    data:
      title: "\U0001F6A8 Commute Delay Alert!"
      message: "Traffic to Work is heavier than usual this morning. \n- Google Maps:
        {{ states('sensor.google_travel_time_work') }} mins. \n![Commute Map](/local/commute_snapshot.jpg)"
  mode: single
- *id001
- *id001
- id: '1782999027626'
  alias: 'Commute: Morning Traffic Alert'
  description: Pushes an interactive, live traffic map to my phone before the commute.
  triggers:
  - at: 07:15:00
    trigger: time
  actions:
  - action: notify.notify
    data:
      title: Morning Commute Traffic
      message: Swipe down to view live traffic along your route.
      data:
        push:
          category: map
        action_data:
          latitude: '45.474668'
          longitude: '-73.737158'
          shows_traffic: true
          shows_scale: true
- id: '1783000087983'
  alias: Morning Commute Alert
  description: Notify when commute is longer than 35 minutes.
  triggers:
  - trigger: time
    at: 07:15:00
  conditions:
  - condition: time
    weekday:
    - mon
    - tue
    - wed
    - thu
    - fri
  - condition: or
    conditions:
    - condition: numeric_state
      entity_id: sensor.google_travel_time_work
      above: 35
  actions:
  - action: notify.notify
    data:
      title: "\U0001F697 Morning Commute"
      message: "Google: {{ states('sensor.google_travel_time_work') }} min\n\n{% set
        g = states('sensor.google_travel_time_work') | float(0) %} {% if g > 50 %}
        \U0001F6A8 Major traffic delays. {% elif g > 40 %} ⚠️ Heavy traffic. {% else
        %} \U0001F7E1 Moderate traffic. {% endif %}"
  mode: single
- id: '1783162325964'
  alias: Motion Shed - AI Description
  description: Takes a snapshot when the Nest camera detects motion, a person, an
    animal, or a doorbell press, analyzes it with AI, and sends a mobile and persistent
    notification.
  triggers:
  - trigger: state
    entity_id: input_boolean.blink_shed_camera_motion
    to: 'on'
    enabled: true
  - trigger: event
    event_type: state_changed
    event_data:
      entity_id: event.front_door_front_door_motion
    enabled: false
  - trigger: state
    entity_id: event.living_room_living_room_camera_motion
    enabled: false
  - trigger: state
    entity_id: event.front_door_front_door_motion
    enabled: false
  - trigger: event.received
    target:
      entity_id: event.entryway_entryway_camera_motion
    options:
      event_type:
      - camera_motion
      - camera_person
      - camera_sound
    enabled: false
  - trigger: event.received
    target:
      device_id: 290f56e5a655e3af82cbf3cf9fd22406
    options:
      event_type:
      - camera_motion
      - camera_person
      - camera_sound
      - ring
    enabled: false
  - trigger: event.received
    target:
      device_id: 679d52e0d16cf48648d11dd024b961f8
    options:
      event_type:
      - camera_motion
      - camera_sound
      - camera_person
    enabled: false
  conditions:
  - condition: template
    value_template: '{{ trigger.event.data.new_state.attributes.event_type in [''motion'',
      ''person'', ''animal'', ''chime''] }}'
    enabled: false
  actions:
  - action: camera.record
    target:
      entity_id:
      - camera.blink_backyard_shed
    data:
      duration: 10
      lookback: 0
      filename: /media/blinkshed.mp4
    enabled: false
  - delay:
      hours: 0
      minutes: 0
      seconds: 10
      milliseconds: 0
    enabled: false
  - action: homeassistant.update_entity
    target:
      entity_id: camera.blink_backyard_shed
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - variables:
      snapshot_filename: blink_shed_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg
  - variables:
      notification_id: blink_shed_{{ now().strftime('%Y%m%d_%H%M%S_%f') }}
  - action: camera.snapshot
    target:
      entity_id: camera.blink_backyard_shed
    data:
      filename: /media/{{ snapshot_filename }}
  - action: camera.snapshot
    target:
      entity_id: camera.blink_backyard_shed
    data:
      filename: /config/www/{{ snapshot_filename }}
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - action: ai_task.generate_data
    continue_on_error: true
    data:
      task_name: Blink Shed Camera Analysis
      entity_id: ai_task.google_ai_task
      instructions: Describe what you see in this image in brief, but make it a little
        humorous. Focus on any people, objects, animals or activities. Text needs
        to be max 240 characters.
      attachments:
      - media_content_id: media-source://media_source/local/{{ snapshot_filename }}
        media_content_type: image/jpeg
    response_variable: ai_profile
  - action: notify.notify
    continue_on_error: true
    data:
      title: Motion Detected - Backyard Shed
      message: '{{ ai_profile.data if ai_profile is defined and ''data'' in ai_profile
        else ''Motion detected, but the AI Task integration failed to return a response.''
        }}'
  - action: persistent_notification.create
    data:
      title: Motion Detected - Backyard Shed
      message: '{{ ai_profile.data if ai_profile is defined and ''data'' in ai_profile
        else ''Motion detected, but the AI Task integration failed to return a response.''
        }}

        ![Snapshot](/local/{{ snapshot_filename }})'
      notification_id: '{{ notification_id }}'
  mode: queued
  max: 10
- id: '1783293479398'
  alias: Blink Camera Fast Update Cycle
  description: Polls the Blink cloud every 30 seconds to bypass the default 5-minute
    delay and force instant motion detection state updates.
  triggers:
  - trigger: time_pattern
    seconds: /30
  actions:
  - action: homeassistant.update_entity
    target:
      entity_id:
      - binary_sensor.backyard_shed_motion
      - binary_sensor.front_door_motion
  mode: single
- id: '1783452320698'
  alias: Nest Test Motion
  description: Takes a snapshot when the Blink camera detects motion, analyzes it
    with AI, and sends a mobile and persistent notification.
  triggers:
  - trigger: state
    entity_id: binary_sensor.backyard_tree_motion
    to: 'on'
  conditions: []
  actions:
  - delay: 00:00:02
  - action: camera.snapshot
    target:
      entity_id:
      - camera.front
      - camera.backyard_shed
    data:
      filename: /media/nest_Living2.jpg
  - action: camera.snapshot
    target:
      entity_id: camera.backyard_tree
    data:
      filename: /config/www/blinkTree.jpg
  - delay: 00:00:02
  - action: ai_task.generate_data
    continue_on_error: true
    data:
      task_name: Backyard Shed Camera Analysis
      entity_id: ai_task.google_ai_task
      instructions: Describe what you see in this image in brief. Focus on any people,
        objects, or activities. Text needs to be max 225 characters.
      attachments:
      - media_content_id: media-source://media_source/local/blinkTree.jpg
        media_content_type: image/jpeg
    response_variable: ai_profile
  - action: notify.notify
    data:
      title: Motion Detected - Backyard Tree
      message: '{{ ai_profile.data if ai_profile is defined and ''data'' in ai_profile
        else ''Motion detected, but the AI Task integration failed to return a response.''
        }}'
  - action: persistent_notification.create
    data:
      title: Motion Detected - Backyard Tree
      notification_id: backyard_tree_motion
      message: '{{ ai_profile.data if ai_profile is defined and ''data'' in ai_profile
        else ''Motion detected, but the AI Task integration failed to return a response.''
        }}

        ![Snapshot](/local/blinkTree.jpg)'
  mode: queued
  max: 10
- id: '1783540959739'
  alias: Motion Front Door  - AI Description
  description: Takes a snapshot when the Nest camera detects motion, a person, an
    animal, or a doorbell press, analyzes it with AI, and sends a mobile and persistent
    notification.
  triggers:
  - trigger: event
    event_type: state_changed
    event_data:
      entity_id: event.front_door_front_door_motion
    enabled: false
  - trigger: state
    entity_id: event.living_room_living_room_camera_motion
    enabled: false
  - trigger: state
    entity_id: event.front_door_front_door_motion
    enabled: false
  - trigger: event.received
    target:
      entity_id: event.entryway_entryway_camera_motion
    options:
      event_type:
      - camera_motion
      - camera_person
      - camera_sound
    enabled: false
  - trigger: event.received
    target:
      device_id: 290f56e5a655e3af82cbf3cf9fd22406
    options:
      event_type:
      - camera_motion
      - camera_person
      - camera_sound
      - ring
  - trigger: event.received
    target:
      device_id: 679d52e0d16cf48648d11dd024b961f8
    options:
      event_type:
      - camera_motion
      - camera_sound
      - camera_person
    enabled: false
  - trigger: state
    entity_id:
    - input_boolean.blink_front_camera_motion
    to:
    - 'on'
    enabled: true
  conditions:
  - condition: template
    value_template: '{{ trigger.event.data.new_state.attributes.event_type in [''motion'',
      ''person'', ''animal'', ''chime''] }}'
    enabled: false
  actions:
  - action: blink.trigger_camera
    target:
      entity_id: camera.blink_front
    data: {}
    enabled: false
  - delay:
      hours: 0
      minutes: 0
      seconds: 10
      milliseconds: 0
    enabled: false
  - action: homeassistant.update_entity
    target:
      entity_id: camera.blink_front
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - variables:
      snapshot_filename: blink_Front_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg
  - variables:
      notification_id: blink_front_{{ now().strftime('%Y%m%d_%H%M%S_%f') }}
  - action: camera.snapshot
    target:
      entity_id: camera.blink_front
    data:
      filename: /media/{{ snapshot_filename }}
  - action: camera.snapshot
    target:
      entity_id: camera.blink_front
    data:
      filename: /config/www/{{ snapshot_filename }}
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - action: ai_task.generate_data
    continue_on_error: true
    data:
      task_name: Nest Front Camera Analysis
      entity_id: ai_task.google_ai_task
      instructions: Describe what you see in this image in brief, but make it a little
        humorous. Focus on any people, objects, animals or activities. Text needs
        to be max 240 characters.
      attachments:
      - media_content_id: media-source://media_source/local/{{ snapshot_filename }}
        media_content_type: image/jpeg
    response_variable: ai_profile
  - action: notify.notify
    continue_on_error: true
    data:
      title: Motion Detected - Front Door
      message: '{{ ai_profile.data if ai_profile is defined and ''data'' in ai_profile
        else ''Motion detected, but the AI Task integration failed to return a response.''
        }}'
  - action: notify.persistent_notification
    data:
      title: Motion Detected - Front Door
      message: '{{ ai_profile.data if ai_profile is defined and ''data'' in ai_profile
        else ''Motion detected, but the AI Task integration failed to return a response.''
        }}

        ![Snapshot](/local/{{ snapshot_filename }})'
      data:
        notification_id: nest_front_motion
    enabled: false
  - action: persistent_notification.create
    metadata: {}
    data:
      message: '{{ ai_profile.data if ai_profile is defined and ''data'' in ai_profile
        else ''Motion detected, but the AI Task integration failed to return a response.''
        }} ![Snapshot](/local/{{ snapshot_filename }})'
      title: Motion Detected - Front Door
      notification_id: '{{ notification_id }}'
  mode: queued
  max: 10
- id: '1783615071224'
  alias: 'TEST: AI Camera Motion Detection OLLAMA'
  description: Takes a snapshot when the Nest camera detects motion, a person, an
    animal, or a doorbell press, analyzes it with AI, and sends a mobile and persistent
    notification.
  triggers:
  - trigger: event
    event_type: state_changed
    event_data:
      entity_id: event.front_door_front_door_motion
    enabled: false
  - trigger: state
    entity_id: event.living_room_living_room_camera_motion
    enabled: false
  - trigger: state
    entity_id: event.front_door_front_door_motion
    enabled: false
  - trigger: event.received
    target:
      entity_id: event.entryway_entryway_camera_motion
    options:
      event_type:
      - camera_motion
      - camera_person
      - camera_sound
    enabled: false
  - trigger: event.received
    target:
      device_id: 290f56e5a655e3af82cbf3cf9fd22406
    options:
      event_type:
      - camera_motion
      - camera_person
      - camera_sound
      - ring
  - trigger: event.received
    target:
      device_id: 679d52e0d16cf48648d11dd024b961f8
    options:
      event_type:
      - camera_motion
      - camera_sound
      - camera_person
    enabled: false
  conditions:
  - condition: template
    value_template: '{{ trigger.event.data.new_state.attributes.event_type in [''motion'',
      ''person'', ''animal'', ''chime''] }}'
    enabled: false
  actions:
  - action: blink.trigger_camera
    target:
      entity_id: camera.front
    data: {}
    enabled: false
  - delay:
      hours: 0
      minutes: 0
      seconds: 10
      milliseconds: 0
    enabled: false
  - action: homeassistant.update_entity
    target:
      entity_id: camera.front
  - variables:
      snapshot_filename: blink_Front_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg
  - variables:
      notification_id: blink_front_{{ now().strftime('%Y%m%d_%H%M%S_%f') }}
  - action: camera.snapshot
    target:
      entity_id: camera.blink_front
    data:
      filename: /media/{{ snapshot_filename }}
  - action: camera.snapshot
    target:
      entity_id: camera.blink_front
    data:
      filename: /config/www/{{ snapshot_filename }}
  - delay:
      hours: 0
      minutes: 0
      seconds: 4
      milliseconds: 0
  - action: ai_task.generate_data
    continue_on_error: true
    data:
      task_name: Nest Front Camera Analysis
      entity_id: ai_task.ollama_ai_task_2
      instructions: Describe what you see in this image in brief. Focus on any people,
        objects, animals or activities. Text needs to be max 240 characters.
      attachments:
      - media_content_id: media-source://media_source/local/{{ snapshot_filename }}
        media_content_type: image/jpeg
    response_variable: ai_profile
  - action: notify.notify
    continue_on_error: true
    data:
      title: Motion Detected - Front Door
      message: '{{ ai_profile.data if ai_profile is defined and ''data'' in ai_profile
        else ''Motion detected, but the AI Task integration failed to return a response.''
        }}'
  - action: notify.persistent_notification
    data:
      title: Motion Detected - Front Door
      message: '{{ ai_profile.data if ai_profile is defined and ''data'' in ai_profile
        else ''Motion detected, but the AI Task integration failed to return a response.''
        }}

        ![Snapshot](/local/{{ snapshot_filename }})'
      data:
        notification_id: nest_front_motion
    enabled: false
  - action: persistent_notification.create
    metadata: {}
    data:
      message: '{{ ai_profile.data if ai_profile is defined and ''data'' in ai_profile
        else ''Motion detected, but the AI Task integration failed to return a response.''
        }} ![Snapshot](/local/{{ snapshot_filename }})'
      title: Motion Detected - Front Door
      notification_id: '{{ notification_id }}'
  mode: queued
  max: 10
- id: '1783628026617'
  alias: 'Garage Door: Open Notification'
  description: ''
  triggers:
  - trigger: state
    entity_id:
    - binary_sensor.garage_door_contact
    to:
    - 'on'
  conditions: []
  actions:
  - action: notify.notify
    metadata: {}
    data:
      message: 'Garage Door is Opened '
      title: Garage Door
  mode: single
- id: '1783628088925'
  alias: 'Garage Door: Closed Notification'
  description: ''
  triggers:
  - trigger: state
    entity_id:
    - binary_sensor.garage_door_contact
    to:
    - 'off'
    from:
    - 'on'
  conditions: []
  actions:
  - action: notify.notify
    metadata: {}
    data:
      message: Garage Door Closed
      title: Garage Door
  mode: single
- id: '1783643893067'
  alias: Blink Shed Camera Motion Triggered
  description: Triggers local actions when the front Blink camera senses motion
  triggers:
  - entity_id: input_boolean.blink_shed_camera_motion
    to: 'on'
    trigger: state
  conditions: []
  actions:
  - data:
      title: Shed Door Alert
      message: Motion detected on the Shed Blink camera!
    action: notify.persistent_notification
  mode: single
- id: '1783647055563'
  alias: Motion Backyard - AI Description
  description: Takes a snapshot when the Nest camera detects motion, a person, an
    animal, or a doorbell press, analyzes it with AI, and sends a mobile and persistent
    notification.
  triggers:
  - trigger: state
    entity_id:
    - input_boolean.blink_backyard_camera_motion
    to:
    - 'on'
    enabled: true
  - trigger: event
    event_type: state_changed
    event_data:
      entity_id: event.front_door_front_door_motion
    enabled: false
  - trigger: state
    entity_id: event.living_room_living_room_camera_motion
    enabled: false
  - trigger: state
    entity_id: event.front_door_front_door_motion
    enabled: false
  - trigger: event.received
    target:
      entity_id: event.entryway_entryway_camera_motion
    options:
      event_type:
      - camera_motion
      - camera_person
      - camera_sound
    enabled: false
  - trigger: event.received
    target:
      device_id: 290f56e5a655e3af82cbf3cf9fd22406
    options:
      event_type:
      - camera_motion
      - camera_person
      - camera_sound
      - ring
    enabled: false
  - trigger: event.received
    target:
      device_id: 679d52e0d16cf48648d11dd024b961f8
    options:
      event_type:
      - camera_motion
      - camera_sound
      - camera_person
    enabled: false
  conditions:
  - condition: template
    value_template: '{{ trigger.event.data.new_state.attributes.event_type in [''motion'',
      ''person'', ''animal'', ''chime''] }}'
    enabled: false
  actions:
  - action: blink.trigger_camera
    target:
      entity_id: camera.blink_backyard
    data: {}
    enabled: false
  - delay:
      hours: 0
      minutes: 0
      seconds: 10
      milliseconds: 0
    enabled: false
  - action: homeassistant.update_entity
    target:
      entity_id: camera.blink_backyard
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - variables:
      snapshot_filename: blink_backyard_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg
  - variables:
      notification_id: blink_backyard_{{ now().strftime('%Y%m%d_%H%M%S_%f') }}
  - action: camera.snapshot
    target:
      entity_id: camera.blink_backyard
    data:
      filename: /media/{{ snapshot_filename }}
  - action: camera.snapshot
    target:
      entity_id: camera.blink_backyard
    data:
      filename: /config/www/{{ snapshot_filename }}
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - action: ai_task.generate_data
    continue_on_error: true
    data:
      task_name: Blink Backyard Camera Analysis
      entity_id: ai_task.google_ai_task
      instructions: Describe what you see in this image in brief, but make it a little
        humorous. Focus on any people, objects, animals or activities. Text needs
        to be max 240 characters.
      attachments:
      - media_content_id: media-source://media_source/local/{{ snapshot_filename }}
        media_content_type: image/jpeg
    response_variable: ai_profile
  - action: notify.notify
    continue_on_error: true
    data:
      title: Motion Detected - Backyard
      message: '{{ ai_profile.data if ai_profile is defined and ''data'' in ai_profile
        else ''Motion detected, but the AI Task integration failed to return a response.''
        }}'
  - action: persistent_notification.create
    data:
      title: Motion Detected - Backyard
      message: '{{ ai_profile.data if ai_profile is defined and ''data'' in ai_profile
        else ''Motion detected, but the AI Task integration failed to return a response.''
        }}

        ![Snapshot](/local/{{ snapshot_filename }})'
      notification_id: '{{ notification_id }}'
  mode: queued
  max: 10
- id: '1783649304797'
  alias: Motion Inside Shed - AI Description
  description: Takes a snapshot when the Nest camera detects motion, a person, an
    animal, or a doorbell press, analyzes it with AI, and sends a mobile and persistent
    notification.
  triggers:
  - trigger: state
    entity_id:
    - input_boolean.blink_inside_shed_camera_motion
    to:
    - 'on'
    enabled: true
  - trigger: event
    event_type: state_changed
    event_data:
      entity_id: event.front_door_front_door_motion
    enabled: false
  - trigger: state
    entity_id: event.living_room_living_room_camera_motion
    enabled: false
  - trigger: state
    entity_id: event.front_door_front_door_motion
    enabled: false
  - trigger: event.received
    target:
      entity_id: event.entryway_entryway_camera_motion
    options:
      event_type:
      - camera_motion
      - camera_person
      - camera_sound
    enabled: false
  - trigger: event.received
    target:
      device_id: 290f56e5a655e3af82cbf3cf9fd22406
    options:
      event_type:
      - camera_motion
      - camera_person
      - camera_sound
      - ring
    enabled: false
  - trigger: event.received
    target:
      device_id: 679d52e0d16cf48648d11dd024b961f8
    options:
      event_type:
      - camera_motion
      - camera_sound
      - camera_person
    enabled: false
  conditions:
  - condition: template
    value_template: '{{ trigger.event.data.new_state.attributes.event_type in [''motion'',
      ''person'', ''animal'', ''chime''] }}'
    enabled: false
  actions:
  - action: blink.trigger_camera
    target:
      entity_id: camera.blink_backyard_tree
    data: {}
    enabled: false
  - delay:
      hours: 0
      minutes: 0
      seconds: 10
      milliseconds: 0
    enabled: false
  - action: homeassistant.update_entity
    target:
      entity_id: camera.blink_backyard_tree
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - variables:
      snapshot_filename: blink_Inshed_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg
  - variables:
      notification_id: blink_Inshed_{{ now().strftime('%Y%m%d_%H%M%S_%f') }}
  - action: camera.snapshot
    target:
      entity_id: camera.blink_backyard_tree
    data:
      filename: /media/{{ snapshot_filename }}
  - action: camera.snapshot
    target:
      entity_id: camera.blink_backyard_tree
    data:
      filename: /config/www/{{ snapshot_filename }}
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - action: ai_task.generate_data
    continue_on_error: true
    data:
      task_name: Blink InShed Camera Analysis
      entity_id: ai_task.google_ai_task
      instructions: Describe what you see in this image in brief, but make it a little
        humorous. Focus on any people, objects, animals or activities. Text needs
        to be max 240 characters.
      attachments:
      - media_content_id: media-source://media_source/local/{{ snapshot_filename }}
        media_content_type: image/jpeg
    response_variable: ai_profile
  - action: notify.notify
    continue_on_error: true
    data:
      title: Motion Detected - Backyard Inside Shed
      message: '{{ ai_profile.data if ai_profile is defined and ''data'' in ai_profile
        else ''Motion detected, but the AI Task integration failed to return a response.''
        }}'
  - action: persistent_notification.create
    data:
      title: Motion Detected - Backyard Inside Shed
      message: '{{ ai_profile.data if ai_profile is defined and ''data'' in ai_profile
        else ''Motion detected, but the AI Task integration failed to return a response.''
        }}

        ![Snapshot](/local/{{ snapshot_filename }})'
      notification_id: '{{ notification_id }}'
  mode: queued
  max: 10
- id: '1783736251030'
  alias: 'Office: Teams Webhook Busy Light'
  description: Triggers light based on Windows 11 Teams log file status changes
  triggers:
  - webhook_id: office_teams_meeting_status_webhook_secret_99
    allowed_methods:
    - POST
    local_only: false
    trigger: webhook
  conditions: []
  actions:
  - choose:
    - conditions:
      - condition: template
        value_template: '{{ trigger.json.status in [''busy'', ''do not disturb'']
          }}'
      sequence:
      - target:
          entity_id: light.thirdreality_night_light
        data:
          brightness_pct: 100
          rgb_color:
          - 255
          - 0
          - 0
        action: light.turn_on
    - conditions:
      - condition: template
        value_template: '{{ trigger.json.status in [''available'', ''offline'', ''away'']
          }}'
      sequence:
      - target:
          entity_id: light.thirdreality_night_light
        data:
          brightness_pct: 20
          rgb_color:
          - 255
          - 255
          - 255
        action: light.turn_on
  mode: single
- id: '1783737753660'
  alias: 'Office: Manual Meeting Status Busy Light - Working Hours'
  description: 'Work hours: Toggle controls Red/Green (Motion ignored). After hours
    OR Away Mode: Pure motion night light (Toggle ignored).'
  triggers:
  - id: status_changed
    entity_id: input_boolean.in_a_meeting
    trigger: state
  - id: motion_detected
    entity_id: binary_sensor.night_light_occupancy
    trigger: state
    to: 'on'
  - id: motion_cleared
    entity_id: binary_sensor.night_light_occupancy
    trigger: state
    to: 'off'
  conditions: []
  actions:
  - choose:
    - conditions:
      - condition: trigger
        id: status_changed
      - condition: state
        entity_id: input_boolean.in_a_meeting
        state: 'on'
      - condition: state
        entity_id: input_boolean.away_mode
        state: 'off'
      - condition: time
        after: 08:00:00
        before: '18:00:00'
        weekday:
        - mon
        - tue
        - wed
        - thu
        - fri
      sequence:
      - target:
          entity_id: light.night_light
        data:
          brightness_pct: 100
          rgb_color:
          - 255
          - 0
          - 0
        action: light.turn_on
    - conditions:
      - condition: trigger
        id: status_changed
      - condition: state
        entity_id: input_boolean.in_a_meeting
        state: 'off'
      - condition: state
        entity_id: input_boolean.away_mode
        state: 'off'
      - condition: time
        after: 08:00:00
        before: '18:00:00'
        weekday:
        - mon
        - tue
        - wed
        - thu
        - fri
      sequence:
      - target:
          entity_id: light.night_light
        data:
          brightness_pct: 20
          rgb_color:
          - 5
          - 245
          - 45
        action: light.turn_on
    - conditions:
      - condition: trigger
        id: motion_detected
      - condition: or
        conditions:
        - condition: state
          entity_id: input_boolean.away_mode
          state: 'on'
        - condition: not
          conditions:
          - condition: time
            after: 08:00:00
            before: '18:00:00'
            weekday:
            - mon
            - tue
            - wed
            - thu
            - fri
      sequence:
      - target:
          entity_id: light.night_light
        data:
          brightness_pct: 30
          rgb_color:
          - 255
          - 255
          - 255
        action: light.turn_on
    - conditions:
      - condition: trigger
        id: motion_cleared
      - condition: or
        conditions:
        - condition: state
          entity_id: input_boolean.away_mode
          state: 'on'
        - condition: not
          conditions:
          - condition: time
            after: 08:00:00
            before: '18:00:00'
            weekday:
            - mon
            - tue
            - wed
            - thu
            - fri
      sequence:
      - target:
          entity_id: light.night_light
        action: light.turn_off
  mode: restart
- id: '1783738120074'
  alias: 'Office: Webhook Toggle Meeting Status'
  description: Toggles the meeting status boolean when the secret webhook URL is opened
  triggers:
  - webhook_id: toggle_my_meeting_status_secret_abc123
    allowed_methods:
    - POST
    - GET
    local_only: false
    trigger: webhook
  conditions: []
  actions:
  - target:
      entity_id: input_boolean.in_a_meeting
    action: input_boolean.toggle
  mode: single
- id: '1783806626578'
  alias: 'Office: TEST Meeting Status Lights'
  description: 'DEDICATED TESTING: Forces Red/Green colors anytime the switch is toggled.
    Disable production automation before using.'
  triggers:
  - entity_id: input_boolean.in_a_meeting
    trigger: state
  conditions: []
  actions:
  - choose:
    - conditions:
      - condition: state
        entity_id: input_boolean.in_a_meeting
        state: 'on'
      sequence:
      - target:
          entity_id: light.night_light
        data:
          brightness_pct: 100
          rgb_color:
          - 255
          - 0
          - 0
        action: light.turn_on
    - conditions:
      - condition: state
        entity_id: input_boolean.in_a_meeting
        state: 'off'
      sequence:
      - target:
          entity_id: light.night_light
        data:
          brightness_pct: 20
          rgb_color:
          - 5
          - 245
          - 45
        action: light.turn_on
  mode: single
- id: '1783824363227'
  alias: Downstairs Bathroom Light Control
  description: Turn on bathroom switch when occupied, turn off after 30 minutes of
    no occupancy.
  triggers:
  - entity_id: binary_sensor.downstairs_bathroom_occupancy
    to: 'on'
    id: motion_detected
    trigger: state
  - entity_id: binary_sensor.downstairs_bathroom_occupancy
    to: 'off'
    for:
      hours: 0
      minutes: 30
      seconds: 0
    id: motion_clear
    trigger: state
  conditions: []
  actions:
  - choose:
    - conditions:
      - condition: trigger
        id: motion_detected
      sequence:
      - target:
          entity_id: switch.downstairs_bathroom_switch
        action: switch.turn_on
    - conditions:
      - condition: trigger
        id: motion_clear
      sequence:
      - target:
          entity_id: switch.downstairs_bathroom_switch
        action: switch.turn_off
  mode: restart
- id: '1783896963375'
  alias: 'Office: Smart Button Toggles Meeting Status - IKEA BILRESA'
  description: Toggles the meeting input boolean when the smart button is pressed
  triggers:
  - trigger: event
    event_type: state_changed
    event_data:
      entity_id: event.office_button_button_1
  conditions: []
  actions:
  - target:
      entity_id: input_boolean.in_a_meeting
    action: input_boolean.toggle
  mode: single
- id: '1783901121760'
  alias: Ikea BILRESA scroll wheel - Bedroom Switch
  description: ''
  use_blueprint:
    path: BoGu5/kea BILRESA scroll wheel (sensors for scroll, events for press).yaml
    input:
      remote: c7289314a586fc3739316abfeee0cdf5
      click_action_ch1:
      - action: light.toggle
        metadata: {}
        target:
          entity_id: light.bedroom_lights
        data: {}
      scroll_wheel_target_ch1:
      - light.bedroom_lights
      scroll_wheel_mode_ch1: 'lights: color temp only'
- id: '1783904189553'
  alias: IKEA Bilresa Scrollwheel - Bedroom Light Control V1 - Atomic
  description: ''
  use_blueprint:
    path: stone13/ikea_bilresa_atomic_v1.yaml
    input:
      light_entity: light.bedroom_lights
      sensor_1: sensor.bilresa_scroll_wheel_current_switch_position_1
      sensor_2: sensor.bilresa_scroll_wheel_current_switch_position_2
      sensor_4: sensor.bilresa_scroll_wheel_current_switch_position_4
      sensor_5: sensor.bilresa_scroll_wheel_current_switch_position_5
      sensor_7: sensor.bilresa_scroll_wheel_current_switch_position_7
      sensor_8: sensor.bilresa_scroll_wheel_current_switch_position_8
      event_taste_1: event.bedroom_switch_button_3
      event_taste_2: event.bedroom_switch_button_6
      event_taste_3: event.bedroom_switch_button_9
      scroll_logic_4_5: brightness
      scroll_logic_7_8: brightness
- id: '1783905541495'
  alias: Ikea Bilresa Switch Bedroom Light Control
  description: ''
  use_blueprint:
    path: jhol-byte/Ikea_bilresa_scroll_wheel.yaml
    input:
      remote: c7289314a586fc3739316abfeee0cdf5
      click_action_ch1:
      - action: light.toggle
        metadata: {}
        target:
          entity_id: light.bedroom_lights
        data: {}
      scroll_wheel_target_ch1:
      - light.bedroom_lights
- id: '1783906561328'
  alias: IKEA BILRESA - Light Controller for PLAYROOM TEST2
  description: ''
  use_blueprint:
    path: SvKRO/ha-blueprint-ikea-bilresa-scrollwheel_en.yaml
    input:
      remote_device: 353fb9eb9f1b2a138e468b02fb9fbf06
      input_click_1:
      - action: light.toggle
        metadata: {}
        target:
          device_id: 2f8c5ab2ca0d4be31919fba6df365813
        data: {}
      input_light_1:
        device_id: 2f8c5ab2ca0d4be31919fba6df365813
      input_mode_1: brightness
      input_long_1: []
      input_double_1: []
      input_sens_1: 15
      input_transition_1: 34
      input_light_2:
        device_id: 2f8c5ab2ca0d4be31919fba6df365813
      input_sens_2: 15
      input_light_3:
        entity_id: light.bedroom_lights
      input_sens_3: 10
      input_transition_2: 0
- id: '1783909375854'
  alias: 'Office: Playroom Light Toggle - IKEA BILRESA'
  description: Toggles the meeting input boolean when the smart button is pressed
  triggers:
  - trigger: event
    event_type: state_changed
    event_data:
      entity_id: event.office_button_button_2
  conditions: []
  actions:
  - action: light.toggle
    metadata: {}
    target:
      device_id: 2f8c5ab2ca0d4be31919fba6df365813
    data: {}
  mode: single
- id: '1783915438772'
  alias: IKEA Bilresa Scrollwheel TEST FRANCO - Light Control
  description: ''
  use_blueprint:
    path: thetestspecimen/ikea-bilresa-scroll-wheel.yaml
    input:
      event_button_1: event.bilresa_switch_button_3
      event_button_2: event.bilresa_switch_button_6
      event_button_3: event.bilresa_switch_button_9
      sensor_1: sensor.bilresa_scroll_wheel_current_switch_position_1_2
      sensor_2: sensor.bilresa_scroll_wheel_current_switch_position_2_2
      sensor_4: sensor.bilresa_scroll_wheel_current_switch_position_4_2
      sensor_5: sensor.bilresa_scroll_wheel_current_switch_position_5_2
      sensor_7: sensor.bilresa_scroll_wheel_current_switch_position_7_2
      sensor_8: sensor.bilresa_scroll_wheel_current_switch_position_8_2
      global_light:
      - light.living_room_living_room_home_living_room
- id: '1783960311392'
  alias: Ikea_bilresa_scroll_wheel TEST
  description: ''
  use_blueprint:
    path: thetestspecimen/ikea-bilresa-scroll-wheel.yaml
    input:
      event_button_1: event.bilresa_scroll_wheel_button_3
      event_button_2: event.bedroom_switch_button_6
      event_button_3: event.bilresa_scroll_wheel_button_9
      sensor_1: sensor.bilresa_scroll_wheel_current_switch_position_1
      sensor_2: sensor.bilresa_scroll_wheel_current_switch_position_2
      sensor_4: sensor.bilresa_scroll_wheel_current_switch_position_4
      sensor_5: sensor.bilresa_scroll_wheel_current_switch_position_5
      sensor_7: sensor.bilresa_scroll_wheel_current_switch_position_7
      sensor_8: sensor.bilresa_scroll_wheel_current_switch_position_8
      global_light:
      - light.playroom_light
      light_z1: []
- id: '1783960650360'
  alias: 'Bedroom: Ikea Bilresa Scrollwheel - Light Control'
  description: ''
  use_blueprint:
    path: jhol-byte/Ikea_bilresa_scroll_wheel.yaml
    input:
      remote: c7289314a586fc3739316abfeee0cdf5
      click_action_ch1:
      - action: light.toggle
        metadata: {}
        target:
          entity_id: light.bedroom_lights
        data: {}
      scroll_wheel_target_ch1:
      - light.bedroom_lights
      scroll_wheel_mode_ext_ch1: instant
      long_click_action_ch1:
      - action: light.turn_on
        metadata: {}
        target:
          entity_id: light.bedroom_lights
        data:
          brightness_pct: 80
      double_click_action_ch1:
      - action: light.toggle
        metadata: {}
        target:
          entity_id: light.bedroom_lights
        data:
          brightness_pct: 25
- id: '1783962246983'
  alias: 'OFFICE: IKEA BILRESA E2489 Dual Button (Matter) - In Meeting and Away Mode'
  description: Ikea BILRESA E2489 Dual Button controls in Meeting toggle, and enable
    Away Mode
  use_blueprint:
    path: censay/ikea-bilresa-e2489-matter-smart-button.yaml
    input:
      target_device: 0c00a80e3106a9d7089f44c4781e0187
      button1_event: event.office_button_button_1
      button2_event: event.office_button_button_2
      button1_single:
      - action: input_boolean.toggle
        metadata: {}
        target:
          entity_id: input_boolean.in_a_meeting
        data: {}
      button2_single:
      - action: input_boolean.toggle
        metadata: {}
        target:
          entity_id: input_boolean.away_mode
        data: {}
      button2_double: []
      button1_long_press: []
      button2_long_press: []
- id: '1783972932942'
  alias: 'Notification: Office Meeting Status'
  description: Sends a notification when entering or leaving a meeting
  triggers:
  - entity_id: input_boolean.in_a_meeting
    to: 'on'
    id: meeting_started
    trigger: state
  - entity_id: input_boolean.in_a_meeting
    to: 'off'
    id: meeting_ended
    trigger: state
  conditions: []
  actions:
  - choose:
    - alias: Meeting Started Notification
      conditions:
      - condition: trigger
        id: meeting_started
      sequence:
      - action: notify.notify
        data:
          title: Meeting Active
          message: "Your status is now set to: \U0001F534 DO NOT ENTER"
    - alias: Meeting Ended Notification
      conditions:
      - condition: trigger
        id: meeting_ended
      sequence:
      - action: notify.notify
        data:
          title: Meeting Ended
          message: "Your status is now set to: \U0001F7E2 AVAILABLE"
- id: '1784037118280'
  alias: 'Blink Safeguard: Auto Reset Stuck Toggles'
  description: Forces stuck Blink helper toggles to turn off after 2 minutes and logs
    the event
  triggers:
  - trigger: state
    entity_id:
    - input_boolean.blink_backyard_camera_motion
    - input_boolean.blink_front_camera_motion
    - input_boolean.blink_inside_shed_camera_motion
    - input_boolean.blink_shed_camera_motion
    to: 'on'
    for:
      minutes: 2
  conditions: []
  actions:
  - action: logbook.log
    data:
      name: Blink Safeguard
      message: Alexa failed to clear motion. Forcing auto-reset.
      entity_id: '{{ trigger.entity_id }}'
  - action: input_boolean.turn_off
    target:
      entity_id: '{{ trigger.entity_id }}'
  mode: parallel
- id: '1784070582456'
  alias: 'Office: Lamp and lights control with IKEA Scroll Wheel'
  description: ''
  use_blueprint:
    path: jhol-byte/Ikea_bilresa_scroll_wheel.yaml
    input:
      remote: c9c7e25e54eb6ac497a6791fe9cf70fe
      click_action_ch1:
      - action: light.toggle
        metadata: {}
        target:
          device_id: 2f8c5ab2ca0d4be31919fba6df365813
        data: {}
      scroll_wheel_target_ch1:
      - light.playroom_light
      scroll_wheel_mode_ext_ch1: instant
      long_click_action_ch1:
      - action: light.turn_on
        metadata: {}
        target:
          entity_id: light.playroom_light
        data:
          brightness_step_pct: 30
      double_click_action_ch1: []
      click_action_ch2:
      - action: light.toggle
        metadata: {}
        target:
          entity_id: light.office_lamp
        data:
          color_temp_kelvin: 5564
      scroll_wheel_target_ch2:
      - light.office_lamp
      scroll_wheel_mode_ext_ch2: instant
      double_click_action_ch2: []
      scroll_wheel_mode_ch2: 'lights: dim'
      on_hold_action_ch2:
      - action: light.turn_on
        metadata: {}
        target:
          entity_id: light.office_lamp
        data:
          color_temp_kelvin: 5765
      triple_click_action_ch2:
      - action: light.turn_on
        metadata: {}
        target:
          entity_id: light.office_lamp
        data:
          color_temp_kelvin: 2348
      click_action_ch3:
      - action: light.toggle
        metadata: {}
        target:
          entity_id: light.office_lamp
        data: {}
      - action: light.toggle
        metadata: {}
        target:
          device_id: 2f8c5ab2ca0d4be31919fba6df365813
        data: {}
      scroll_wheel_target_ch3:
      - light.office_lamp
      - light.playroom_light
      scroll_wheel_mode_ext_ch3: instant
      on_hold_action_ch1:
      - action: light.turn_on
        metadata: {}
        target:
          entity_id: light.playroom_light
        data:
          brightness_pct: 30
- id: '1784073759556'
  alias: 'Office: Desk Lamp Meeting Alert'
  description: Flashes the desk lamp color temperature for a few seconds when a meeting
    status changes (on or off) to confirm the button press registered.
  triggers:
  - id: meeting_changed
    entity_id: input_boolean.in_a_meeting
    trigger: state
  conditions:
  - condition: state
    entity_id: input_boolean.meeting_lamp_override
    state: 'off'
  actions:
  - action: scene.create
    data:
      scene_id: desk_lamp_before_alert
      snapshot_entities:
      - light.office_lamp
  - action: light.turn_on
    target:
      entity_id: light.office_lamp
    data:
      brightness_pct: 100
      color_temp_kelvin: 2261
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - action: scene.turn_on
    target:
      entity_id: scene.desk_lamp_before_alert
    data: {}
  mode: queued
  max: 2
- id: '1784153893584'
  alias: 'Office: Manual Meeting Status Busy Light (Night Light) - Working Hours +
    Motion Detection - v2'
  description: 'Work hours: Automatically turns Green or Red at 8 AM depending on
    status. Toggle controls Red/Green.  After hours OR Away Mode: Pure motion night
    light. Instant transition when Away changes. Only triggers motion if dark.'
  triggers:
  - id: status_changed
    entity_id: input_boolean.in_a_meeting
    trigger: state
  - id: away_changed
    entity_id: input_boolean.away_mode
    trigger: state
  - id: motion_detected
    entity_id: binary_sensor.night_light_occupancy
    trigger: state
    to: 'on'
  - id: motion_cleared
    entity_id: binary_sensor.night_light_occupancy
    trigger: state
    to: 'off'
  - id: work_day_started
    trigger: time
    at: 08:00:00
  conditions: []
  actions:
  - variables:
      is_work_hours: '{{ 8 <= now().hour < 18 and now().isoweekday() in [1,2,3,4,5]
        }}'
      is_away: '{{ is_state(''input_boolean.away_mode'', ''on'') }}'
      is_dark: '{{ states(''sensor.night_light_illuminance'') | float(0) < 15 }}'
  - choose:
    - alias: '--- WORKING HOURS MODE ---'
      conditions:
      - condition: template
        value_template: '{{ is_work_hours and not is_away and (trigger.id in [''status_changed'',
          ''work_day_started''] or (trigger.id == ''away_changed'' and not is_away))
          }}'
      sequence:
      - choose:
        - alias: 'Meeting is active: Set light to solid Red (100%)'
          conditions:
          - condition: state
            entity_id: input_boolean.in_a_meeting
            state: 'on'
          sequence:
          - action: light.turn_on
            target:
              entity_id: light.night_light
            data:
              brightness_pct: 100
              rgb_color:
              - 255
              - 0
              - 0
        - alias: 'Meeting is inactive: Set light to solid Green (20%)'
          conditions:
          - condition: state
            entity_id: input_boolean.in_a_meeting
            state: 'off'
          sequence:
          - action: light.turn_on
            target:
              entity_id: light.night_light
            data:
              brightness_pct: 30
              rgb_color:
              - 5
              - 245
              - 45
    - alias: '--- AFTER HOURS / AWAY: MOTION DETECTED ---'
      conditions:
      - condition: template
        value_template: '{{ is_dark and (not is_work_hours or is_away) and trigger.id
          == ''motion_detected'' }}'
      sequence:
      - action: light.turn_on
        target:
          entity_id: light.night_light
        data:
          brightness_pct: 40
          color_temp_kelvin: 2700
    - alias: '--- AFTER HOURS / AWAY: MOTION CLEARED ---'
      conditions:
      - condition: template
        value_template: '{{ (not is_work_hours or is_away) and trigger.id == ''motion_cleared''
          }}'
      sequence:
      - delay: 00:00:05
      - action: light.turn_off
        target:
          entity_id: light.night_light
    - alias: '--- INSTANT AWAY TRANSITION ---'
      conditions:
      - condition: template
        value_template: '{{ trigger.id == ''away_changed'' and is_away }}'
      sequence:
      - action: light.turn_off
        target:
          entity_id: light.night_light
    - alias: '--- FALLBACK: MEETING ENDS AFTER HOURS ---'
      conditions:
      - condition: template
        value_template: '{{ not is_work_hours and trigger.id == ''status_changed''
          and is_state(''input_boolean.in_a_meeting'', ''off'') }}'
      sequence:
      - action: light.turn_off
        target:
          entity_id: light.night_light
  mode: restart
- id: '1784246257858'
  alias: Sync Alexa Volume Slider
  description: Syncs the Alexa Master Volume slider with the currently selected speaker.
  triggers:
  - entity_id: input_number.alexa_master_volume
    id: slider_changed
    trigger: state
  - entity_id: input_select.alexa_target_device
    id: speaker_changed
    trigger: state
  conditions: []
  actions:
  - choose:
    - conditions:
      - condition: trigger
        id: slider_changed
      sequence:
      - action: media_player.volume_set
        target:
          entity_id: '{{ states(''input_select.alexa_target_device'') }}'
        data:
          volume_level: '{{ states(''input_number.alexa_master_volume'') | float /
            100 }}'
    - conditions:
      - condition: trigger
        id: speaker_changed
      sequence:
      - action: input_number.set_value
        target:
          entity_id: input_number.alexa_master_volume
        data:
          value: "{% set target = states('input_select.alexa_target_device') %} {%
            if state_attr(target, 'volume_level') != none %}\n  {{ (state_attr(target,
            'volume_level') | float * 100) | round(0) }}\n{% else %}\n  20\n{% endif
            %}"
  mode: restart
