From e8feaf8b3c8a0af4b8ab58886cfc01b1a204f587 Mon Sep 17 00:00:00 2001 From: cpayne Date: Sat, 8 Nov 2025 21:53:56 -0500 Subject: [PATCH] Update PlantMonitor_bp.yaml --- PlantMonitor_bp.yaml | 60 +++++++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 23 deletions(-) diff --git a/PlantMonitor_bp.yaml b/PlantMonitor_bp.yaml index bb95b01..87a2801 100644 --- a/PlantMonitor_bp.yaml +++ b/PlantMonitor_bp.yaml @@ -1,60 +1,74 @@ blueprint: - name: 💧 DWC Plant Tracker + name: 💧 DWC Plant Tracker (with Reset Button) description: > - Track plants in Deep Water Culture (DWC) or soil setups. - Notifies you to change or add water every 7 days. + Tracks plant age and watering schedule. + Notifies if watering is overdue (7+ days) + and supports a manual reset button to log watering. domain: automation input: plant_name: name: Plant Name - description: Friendly name of your plant (e.g. "Lettuce 1"). + description: The friendly name of your plant (e.g. "Hungarian Hot Wax 1"). default: "My Plant" - last_watered_helper: - name: Last Watered Helper - description: > - Select the Date/Time helper for when this plant was last watered. + + planted_date_helper: + name: Planted Date Helper + description: Select the Date helper for when this plant was planted. selector: entity: domain: input_datetime + + last_watered_helper: + name: Last Watered Helper + description: Select the Date/Time helper for the plant’s last watering. + selector: + entity: + domain: input_datetime + notification_target: name: Notification Target - description: > - Choose how to receive reminders (e.g. mobile app, persistent_notification, etc.) + description: Choose how to receive water-change reminders. selector: target: -# Trigger every day at midnight to check age +# Trigger daily at midnight trigger: - platform: time at: "00:00:00" variables: plant_name: !input plant_name + planted_date_entity: !input planted_date_helper last_watered_entity: !input last_watered_helper -# Conditions check if plant hasn't been watered in 7+ days condition: - condition: template value_template: > - {% set last = states(last_watered_entity) %} - {% if last not in ['unknown', 'unavailable', None] %} - {{ ((as_timestamp(now()) - as_timestamp(last)) / 86400) | int >= 7 }} - {% else %} - false - {% endif %} + {% set watered = states(last_watered_entity) %} + {% if watered not in ['unknown', 'unavailable', None] %} + {{ ((as_timestamp(now()) - as_timestamp(watered)) / 86400) | int >= 7 }} + {% else %} false {% endif %} action: - variables: - days_since: > - {% set last = states(last_watered_entity) %} - {% if last not in ['unknown','unavailable',None] %} - {{ ((as_timestamp(now()) - as_timestamp(last)) / 86400) | int }} + days_since_water: > + {% set watered = states(last_watered_entity) %} + {% if watered not in ['unknown','unavailable',None] %} + {{ ((as_timestamp(now()) - as_timestamp(watered)) / 86400) | int }} + {% else %} 0 {% endif %} + age_days: > + {% set planted = states(planted_date_entity) %} + {% if planted not in ['unknown','unavailable',None] %} + {{ ((as_timestamp(now()) - as_timestamp(planted)) / 86400) | int }} {% else %} 0 {% endif %} - service: notify target: !input notification_target data: title: "💧 DWC Water Change Reminder" - message: "{{ plant_name }} needs a water change! It’s been {{ days_since }} days since last watering." + message: > + {{ plant_name }} was planted {{ age_days }} days ago + and it’s been {{ days_since_water }} days since last watering. + Time to refresh its water! mode: single