2952 lines
90 KiB
YAML
2952 lines
90 KiB
YAML
- 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_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_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"
|
|
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
|
|
data: {}
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 2
|
|
milliseconds: 0
|
|
- action: camera.snapshot
|
|
target:
|
|
entity_id: camera.blink_backyard_shed
|
|
data:
|
|
filename: /config/www/flush_cache.jpg
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 3
|
|
milliseconds: 0
|
|
- action: homeassistant.update_entity
|
|
target:
|
|
entity_id: camera.blink_backyard_shed
|
|
data: {}
|
|
- 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: /config/www/{{ snapshot_filename }}
|
|
- action: camera.snapshot
|
|
target:
|
|
entity_id: camera.blink_backyard_shed
|
|
data:
|
|
filename: /media/{{ 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.ollama_ai_task_video
|
|
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.'
|
|
}}
|
|
|
|
"
|
|
notification_id: "{{ notification_id }}"
|
|
mode: queued
|
|
max: 10
|
|
- 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
|
|
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
|
|
response_variable: ai_profile
|
|
data:
|
|
task_name: Blink InShed Camera Analysis
|
|
entity_id: ai_task.ollama_ai_task_video
|
|
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
|
|
- 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.'
|
|
}}
|
|
|
|
"
|
|
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.'
|
|
}}
|
|
|
|
"
|
|
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.'
|
|
}} "
|
|
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.'
|
|
}}
|
|
|
|
"
|
|
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.'
|
|
}} "
|
|
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.'
|
|
}}
|
|
|
|
"
|
|
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.'
|
|
}}
|
|
|
|
"
|
|
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.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.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.bedroom_switch_current_switch_position_1
|
|
sensor_2: sensor.bedroom_switch_current_switch_position_2
|
|
sensor_4: sensor.bedroom_switch_current_switch_position_4
|
|
sensor_5: sensor.bedroom_switch_current_switch_position_5
|
|
sensor_7: sensor.bedroom_switch_current_switch_position_7
|
|
sensor_8: sensor.office_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: "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
|
|
dim_turns_lights_on: true
|
|
- 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
|
|
dim_turns_lights_on: true
|
|
- 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:
|
|
- trigger: state
|
|
entity_id: input_boolean.in_a_meeting
|
|
conditions:
|
|
- condition: state
|
|
entity_id: input_boolean.meeting_lamp_override
|
|
state: "off"
|
|
- condition: state
|
|
entity_id: input_boolean.away_mode
|
|
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
|
|
transition: 1
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 2
|
|
milliseconds: 0
|
|
- action: scene.turn_on
|
|
target:
|
|
entity_id: scene.desk_lamp_before_alert
|
|
data:
|
|
transition: 1
|
|
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. At 6 PM, light clears and switches to motion
|
|
detection. 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
|
|
- id: work_day_ended
|
|
trigger: time
|
|
at: "18: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: "--- WORK DAY ENDED: CLEAR LIGHT ---"
|
|
conditions:
|
|
- condition: template
|
|
value_template: "{{ trigger.id == 'work_day_ended' }}"
|
|
sequence:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id: light.night_light
|
|
- 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
|
|
- id: ai_agent_auto_1784596277269
|
|
alias: Blink Shed Motion Notification
|
|
description: Sends a notification when motion is detected by the Blink Backyard
|
|
Shed camera.
|
|
triggers:
|
|
- entity_id: binary_sensor.blink_backyard_shed_motion
|
|
to: "on"
|
|
trigger: state
|
|
- entity_id:
|
|
- binary_sensor.blink_backyard_tree_motion
|
|
to:
|
|
- "on"
|
|
trigger: state
|
|
- entity_id:
|
|
- binary_sensor.blink_front_motion
|
|
to:
|
|
- "on"
|
|
trigger: state
|
|
- entity_id:
|
|
- binary_sensor.blink_backyard_tree_motion
|
|
to:
|
|
- "on"
|
|
trigger: state
|
|
conditions: []
|
|
actions:
|
|
- data:
|
|
title: Motion Detected!
|
|
message: Motion detected in the Blink Backyard Cameras using HomeBridge.
|
|
action: persistent_notification.create
|
|
mode: single
|
|
- id: "1784597653614"
|
|
alias: New automation
|
|
description: ""
|
|
triggers: []
|
|
conditions: []
|
|
actions:
|
|
- action: webrtc.create_link
|
|
metadata: {}
|
|
data:
|
|
open_limit: 1
|
|
time_to_live: 60
|
|
entity: camera.blink_backyard_shed
|
|
mode: single
|
|
- id: "1784599010203"
|
|
alias: Motion Backyard - AI Description - Version 2
|
|
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: switch.turn_on
|
|
target:
|
|
entity_id: switch.backyard_refresh_snapshot
|
|
data: {}
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 20
|
|
milliseconds: 0
|
|
- action: homeassistant.update_entity
|
|
target:
|
|
entity_id: camera.blink_backyard
|
|
enabled: true
|
|
data:
|
|
entity_id:
|
|
- camera.blink_backyard
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 3
|
|
milliseconds: 0
|
|
- action: blink.trigger_camera
|
|
target:
|
|
entity_id: camera.blink_backyard
|
|
data: {}
|
|
enabled: false
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 10
|
|
milliseconds: 0
|
|
enabled: false
|
|
- 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.'
|
|
}}
|
|
|
|
"
|
|
notification_id: "{{ notification_id }}"
|
|
mode: queued
|
|
max: 10
|
|
- id: "1784601034537"
|
|
alias: Motion Front Door - AI Description - Version 2
|
|
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: switch.turn_on
|
|
target:
|
|
entity_id: switch.front_refresh_snapshot
|
|
data: {}
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 20
|
|
milliseconds: 0
|
|
- action: homeassistant.update_entity
|
|
target:
|
|
entity_id: camera.front
|
|
enabled: true
|
|
data:
|
|
entity_id:
|
|
- camera.front
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 3
|
|
milliseconds: 0
|
|
- action: blink.trigger_camera
|
|
target:
|
|
entity_id: camera.front
|
|
data: {}
|
|
enabled: false
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 10
|
|
milliseconds: 0
|
|
enabled: false
|
|
- 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.front
|
|
data:
|
|
filename: /media/{{ snapshot_filename }}
|
|
- action: camera.snapshot
|
|
target:
|
|
entity_id: camera.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.ollama_ai_task_video
|
|
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.'
|
|
}}
|
|
|
|
"
|
|
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.'
|
|
}} "
|
|
title: Motion Detected - Front Door
|
|
notification_id: "{{ notification_id }}"
|
|
mode: queued
|
|
max: 10
|
|
- id: "1784601274723"
|
|
alias: Motion Shed - AI Description - Version 2
|
|
description: Takes a snapshot when the shed's Blink camera detects motion, analyzes
|
|
it with AI, and sends a mobile and persistent notification. Structurally mirrors
|
|
the working Front automation (same switch/camera device pairing). If the AI description
|
|
still doesn't match the physical shed, camera.backyard_shed may be mislabeled
|
|
in the HomeKit Controller integration -- check its live feed against camera.garage_side
|
|
and camera.backyard_tree to confirm which physical camera is which, then rename
|
|
if needed.
|
|
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: switch.turn_on
|
|
target:
|
|
entity_id: switch.backyard_shed_refresh_snapshot
|
|
data: {}
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 30
|
|
milliseconds: 0
|
|
- action: homeassistant.update_entity
|
|
target:
|
|
entity_id: camera.blink_backyard_shed
|
|
enabled: true
|
|
data:
|
|
entity_id:
|
|
- camera.blink_backyard_shed
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 5
|
|
milliseconds: 0
|
|
- 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
|
|
- 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
|
|
response_variable: ai_profile
|
|
data:
|
|
task_name: Blink Shed Camera Analysis
|
|
entity_id: ai_task.ollama_ai_task_video
|
|
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
|
|
- 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.'
|
|
}}
|
|
|
|
"
|
|
notification_id: "{{ notification_id }}"
|
|
mode: queued
|
|
max: 10
|
|
- id: "1784601377055"
|
|
alias: Motion Garage - AI Description - Version 2
|
|
description: Takes a snapshot when garage motion is detected and analyzes it with
|
|
AI. Deliberately uses the 'backyard_tree' Blink camera (switch.backyard_tree_refresh_snapshot
|
|
/ camera.backyard_tree) as the garage-monitoring camera -- entity names don't
|
|
match the physical location, but this pairing is intentional, not a bug.
|
|
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: switch.turn_on
|
|
target:
|
|
entity_id: switch.backyard_tree_refresh_snapshot
|
|
data: {}
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 30
|
|
milliseconds: 0
|
|
- action: homeassistant.update_entity
|
|
target:
|
|
entity_id: camera.blink_backyard_tree
|
|
enabled: true
|
|
data:
|
|
entity_id:
|
|
- camera.blink_backyard_tree
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 5
|
|
milliseconds: 0
|
|
- 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
|
|
- 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 - Garage
|
|
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 - Garage
|
|
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.'
|
|
}}
|
|
|
|
"
|
|
notification_id: "{{ notification_id }}"
|
|
mode: queued
|
|
max: 10
|