You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
2.4 KiB
68 lines
2.4 KiB
######################################################################
|
|
# @CCOSTAN - Follow Me on X
|
|
# For more info visit https://www.vcloudinfo.com/click-here
|
|
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
|
|
# -------------------------------------------------------------------
|
|
# Garage Garbage Day Reminders - staggered reminders after door opens
|
|
# On garbage days, announce at 30s/90s/180s if the garage stays open.
|
|
# -------------------------------------------------------------------
|
|
# Notes: Uses Alexa announce in the garage for local playback; also sends
|
|
# one inside reminder via `script.speech_engine` (Chromecasts).
|
|
# Notes: Debounced garage door open trigger to avoid restarts if the
|
|
# garage door state flaps (noisy sensors/reflection).
|
|
######################################################################
|
|
- alias: 'Garage Garbage Day Reminders'
|
|
id: 3f97f3be-3d0a-4d2d-9100-5b9c0dbfd5c3
|
|
mode: restart
|
|
|
|
trigger:
|
|
- platform: state
|
|
entity_id: group.garage_doors
|
|
from: 'closed'
|
|
to: 'open'
|
|
for: "00:00:20"
|
|
|
|
condition:
|
|
# Only run on garbage days (Wed/Sun)
|
|
- condition: template
|
|
value_template: >-
|
|
{% set day = now().strftime('%a') %}
|
|
{{ day in ['Wed', 'Sun'] }}
|
|
|
|
action:
|
|
|
|
# One inside reminder via Chromecasts (speech_engine targets living room)
|
|
- service: script.speech_engine
|
|
data:
|
|
call_garbage_day: 1
|
|
value1: >-
|
|
Reminder: it's garbage day. Please take the cans to the curb before you leave.
|
|
- variables:
|
|
reminder_delays: [30, 60, 90] # cumulative delays to hit 30s, 90s, 180s
|
|
|
|
- repeat:
|
|
for_each: "{{ reminder_delays }}"
|
|
sequence:
|
|
- delay:
|
|
seconds: "{{ repeat.item }}"
|
|
|
|
# Skip if the doors closed during the wait or it's no longer garbage day
|
|
- condition: state
|
|
entity_id: group.garage_doors
|
|
state: 'open'
|
|
|
|
- condition: template
|
|
value_template: >-
|
|
{% set day = now().strftime('%a') %}
|
|
{{ day in ['Wed', 'Sun'] }}
|
|
|
|
- service: notify.alexa_media_garage
|
|
data:
|
|
message: >-
|
|
{% set day = now().strftime('%a') %}
|
|
Reminder: it's garbage day. {% if day == 'Wed' %}Both recycling and regular garbage go out today. {% endif %}Please take the cans to the curb before you leave.
|
|
data:
|
|
type: announce
|
|
|
|
|