blueprint: name: 💧 DWC Plant Tracker (with Reset Button) description: > 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: The friendly name of your plant (e.g. "Hungarian Hot Wax 1"). default: "My Plant" 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 water-change reminders. selector: target: # 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 condition: - condition: template value_template: > {% 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_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 }} was planted {{ age_days }} days ago and it’s been {{ days_since_water }} days since last watering. Time to refresh its water! mode: single