Refine water delivery reminders

This commit is contained in:
Carlo Costanzo
2026-07-02 17:06:35 -04:00
parent b80c2d4dad
commit 48429cfd73
2 changed files with 86 additions and 91 deletions
+1 -1
View File
@@ -62,7 +62,7 @@ Live collection of plug-and-play Home Assistant packages. Each YAML file in this
| [bearclaw.yaml](bearclaw.yaml) | Joanna/BearClaw bridge automations that forward Telegram commands to codex_appliance, include LLM-first routing context for freeform text, relay replies back, ingest `/api/bearclaw/status` telemetry, and expose dispatch, QMD/memory-index, plus Codex reset-credit expiry sensors and Repairs for Infrastructure dashboards; see the [Codex reset tracking video](https://youtu.be/7wKhtrvtyiI) and [companion post](https://www.vcloudinfo.com/2026/06/track-codex-resets-home-assistant.html). | `rest_command.bearclaw_*`, `sensor.bearclaw_status_telemetry`, `sensor.joanna_*`, `sensor.codex_reset_*`, `binary_sensor.joanna_*`, `binary_sensor.codex_reset_credit_expiring_soon`, `automation.bearclaw_*`, `automation.codex_reset_credit_expiry_repair`, `repairs.create`, `repairs.remove`, `script.send_to_logbook` |
| [telegram_bot.yaml](telegram_bot.yaml) | Legacy Telegram transport marker for BearClaw; the shared `joanna_send_telegram` helper now forwards through the codex_appliance direct Telegram API. | `rest_command.bearclaw_telegram_send`, `script.joanna_send_telegram` |
| [phynplus.yaml](phynplus.yaml) | Phyn shutoff automations with leak-test guard, Activity Feed context, Repairs tracking, and critical push recovery when the valve closes; see the [leak detection automation video](https://youtu.be/xbhgWnomFYI). | `valve.phyn_shutoff_valve`, `binary_sensor.phyn_leak_test_running`, `script.phyn_send_actionable_leak_notification`, `repairs.create` |
| [water_delivery.yaml](water_delivery.yaml) | ReadyRefresh delivery date helper with night-before + garage door Alexa reminders, plus helper-change audit logging and Telegram confirmations. | `input_datetime.water_delivery_date`, `script.send_to_logbook`, `script.joanna_send_telegram`, `notify.alexa_media_garage` |
| [water_delivery.yaml](water_delivery.yaml) | ReadyRefresh delivery date helper with night-before plus day-before garage door Alexa reminders, helper-change audit logging, and Telegram confirmations. | `input_datetime.water_delivery_date`, `script.send_to_logbook`, `script.joanna_send_telegram`, `notify.alexa_media_garage` |
| [vacation_mode.yaml](vacation_mode.yaml) | Auto-enable vacation mode after 24 hours away or no bed use, track sitter analytics/secure-house checks, stale-visit timeout protection, deliver sitter-facing briefings, and send 10 AM/10 PM house digests with Powerwall/security/backup status plus Joanna review. | `input_boolean.vacation_mode`, `input_boolean.house_sitter_present`, `input_datetime.vacation_house_sitter_*`, `input_datetime.vacation_house_status_digest_last_sent`, `sensor.vacation_house_sitter_*`, `binary_sensor.powerwall_grid_status`, `sensor.powerwall_charge`, `group.garage_doors`, `lock.front_door`, `script.vacation_house_sitter_clear_presence`, `script.vacation_house_status_digest`, `script.notify_engine`, `rest_command.bearclaw_command`, `script.joanna_send_telegram` |
| [maintenance_log.yaml](maintenance_log.yaml) | Joanna maintenance webhook ingest for water softener salt with idempotent event handling, Activity feed logging, and recorder-backed helper history for long-term graphing. | `automation.maintenance_log_joanna_webhook_ingest`, `input_number.water_softener_salt_total_added_lb`, `counter.water_softener_salt_event_count`, `sensor.water_softener_salt_days_since_last_add` |
| [kiosk_tablet.yaml](kiosk_tablet.yaml) | Keeps the bedroom Fully Kiosk Fire tablet pinned to the dedicated camera kiosk dashboard when the page or foreground app drifts; normal wake events only restore brightness/focus. See the [video walkthrough](https://youtu.be/ChgEu0IDWzc). | `sensor.alarm_panel_1_current_page`, `sensor.alarm_panel_1_foreground_app`, `button.alarm_panel_1_bring_to_foreground`, `button.alarm_panel_1_load_start_url` |
+85 -90
View File
@@ -4,11 +4,11 @@
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Water Delivery Reminders - ReadyRefresh date helper + garage reminders
# Schedule delivery date and announce night-before + garage door alerts.
# Schedule delivery date and announce night-before + day-before garage door alerts.
# -------------------------------------------------------------------
# Related Issue: 541
# Notes: Set input_datetime.water_delivery_date on /lovelace/water (date only).
# Notes: Night-before reminder fires at 5:30 PM; garage reminders on door open.
# Notes: Night-before reminder fires at 5:30 PM; garage reminders fire on door open the day before delivery.
# Notes: Clear button sets delivery date to yesterday to disable reminders.
# Notes: Date helper changes are logged to Activity feed with source context.
# Notes: Active (today/future) date changes also send a Telegram confirmation.
@@ -27,13 +27,21 @@ input_button:
icon: mdi:calendar-remove
automation:
- alias: "Water Delivery - Night Before Reminder"
- alias: "Water Delivery - Day-Before Reminders"
id: 0ac05c7c-9d03-4c1d-8342-0bf8d17b7f8a
mode: single
mode: restart
trigger:
- platform: time
at: "17:30:00"
id: night_before_time
- platform: state
entity_id: group.garage_doors
from: 'closed'
to: 'open'
for: "00:00:20"
id: garage_open_day_before
condition:
- condition: template
@@ -46,93 +54,80 @@ automation:
{% endif %}
action:
- service: script.speech_engine
data:
value1: >-
{% set date = states('input_datetime.water_delivery_date') %}
{% set delivery = as_datetime(date) %}
Reminder: water delivery is tomorrow ({{ delivery.strftime('%a %b %d') | replace(' 0', ' ') }}).
Please put the bottles out tonight.
- service: notify.alexa_media_garage
data:
message: >-
{% set date = states('input_datetime.water_delivery_date') %}
{% set delivery = as_datetime(date) %}
Reminder: water delivery is tomorrow ({{ delivery.strftime('%a %b %d') | replace(' 0', ' ') }}).
Please put the bottles out tonight.
data:
type: announce
- alias: "Water Delivery - Garage Door Reminders"
id: 59fd6b6b-79a5-4f71-8c9f-2b6e25c39f84
mode: restart
trigger:
- platform: state
entity_id: group.garage_doors
from: 'closed'
to: 'open'
for: "00:00:20"
condition:
- condition: template
value_template: >-
{% set date = states('input_datetime.water_delivery_date') %}
{% if date in ['unknown', 'unavailable', 'none', ''] %}
false
{% else %}
{{ as_datetime(date).date() == now().date() }}
{% endif %}
action:
- service: script.speech_engine
data:
value1: >-
{% set date = states('input_datetime.water_delivery_date') %}
{% set delivery = as_datetime(date) %}
Reminder: today is water delivery day ({{ delivery.strftime('%a %b %d') | replace(' 0', ' ') }}).
Please put the bottles out before you leave.
- service: notify.alexa_media_garage
data:
message: >-
{% set date = states('input_datetime.water_delivery_date') %}
{% set delivery = as_datetime(date) %}
Reminder: today is water delivery day ({{ delivery.strftime('%a %b %d') | replace(' 0', ' ') }}).
Please put the bottles out before you leave.
data:
type: announce
- variables:
reminder_delays: [30, 60, 90]
- repeat:
for_each: "{{ reminder_delays }}"
sequence:
- delay:
seconds: "{{ repeat.item }}"
- condition: state
entity_id: group.garage_doors
state: 'open'
- condition: template
value_template: >-
{% set date = states('input_datetime.water_delivery_date') %}
{% if date in ['unknown', 'unavailable', 'none', ''] %}
false
{% else %}
{{ as_datetime(date).date() == now().date() }}
{% endif %}
- service: notify.alexa_media_garage
data:
message: >-
{% set date = states('input_datetime.water_delivery_date') %}
{% set delivery = as_datetime(date) %}
Reminder: today is water delivery day ({{ delivery.strftime('%a %b %d') | replace(' 0', ' ') }}).
Please put the bottles out before you leave.
- choose:
- conditions:
- condition: trigger
id: night_before_time
sequence:
- service: script.speech_engine
data:
type: announce
value1: >-
{% set date = states('input_datetime.water_delivery_date') %}
{% set delivery = as_datetime(date) %}
Reminder: water delivery is tomorrow ({{ delivery.strftime('%a %b %d') | replace(' 0', ' ') }}).
Please put the bottles out tonight.
- service: notify.alexa_media_garage
data:
message: >-
{% set date = states('input_datetime.water_delivery_date') %}
{% set delivery = as_datetime(date) %}
Reminder: water delivery is tomorrow ({{ delivery.strftime('%a %b %d') | replace(' 0', ' ') }}).
Please put the bottles out tonight.
data:
type: announce
- conditions:
- condition: trigger
id: garage_open_day_before
sequence:
- service: script.speech_engine
data:
value1: >-
{% set date = states('input_datetime.water_delivery_date') %}
{% set delivery = as_datetime(date) %}
Reminder: water delivery is tomorrow ({{ delivery.strftime('%a %b %d') | replace(' 0', ' ') }}).
Please put the bottles out before you leave.
- service: notify.alexa_media_garage
data:
message: >-
{% set date = states('input_datetime.water_delivery_date') %}
{% set delivery = as_datetime(date) %}
Reminder: water delivery is tomorrow ({{ delivery.strftime('%a %b %d') | replace(' 0', ' ') }}).
Please put the bottles out before you leave.
data:
type: announce
- variables:
reminder_delays: [30, 60, 90]
- repeat:
for_each: "{{ reminder_delays }}"
sequence:
- delay:
seconds: "{{ repeat.item }}"
- condition: state
entity_id: group.garage_doors
state: 'open'
- condition: template
value_template: >-
{% set date = states('input_datetime.water_delivery_date') %}
{% if date in ['unknown', 'unavailable', 'none', ''] %}
false
{% else %}
{{ as_datetime(date).date() == (now() + timedelta(days=1)).date() }}
{% endif %}
- service: notify.alexa_media_garage
data:
message: >-
{% set date = states('input_datetime.water_delivery_date') %}
{% set delivery = as_datetime(date) %}
Reminder: water delivery is tomorrow ({{ delivery.strftime('%a %b %d') | replace(' 0', ' ') }}).
Please put the bottles out before you leave.
data:
type: announce
- alias: "Water Delivery - Clear Delivery Date"
id: 2f4a1a64-2ad0-4605-a4c8-2a8f4b4e6f40