Make Start Date and Control Flag inputs optional in Periodic Notification
- Start Date: when empty, day interval is ignored and notifications fire daily - Control Flag: when empty, notifications always fire (no toggle control) - Update documentation to reflect optional inputs - Fix markdown linting issues Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Periodic Notification
|
||||
|
||||
Sends notifications at specified times on a repeating day schedule, controlled by a toggle entity.
|
||||
Sends notifications at specified times on an optional repeating day schedule with optional toggle control.
|
||||
|
||||
## Features
|
||||
|
||||
@@ -8,13 +8,13 @@ Sends notifications at specified times on a repeating day schedule, controlled b
|
||||
- Customizable multiline message
|
||||
- Flexible time schedule (multiple times per day)
|
||||
- Configurable day interval (every N days)
|
||||
- On/off control via input_boolean or switch entity
|
||||
- Optional on/off control via input_boolean or switch entity
|
||||
|
||||
## How It Works
|
||||
|
||||
1. The automation triggers at each configured notification time (checked every minute)
|
||||
2. It verifies the control flag entity is ON
|
||||
3. It calculates whether today falls on the correct day in the interval cycle, counting from the configured start date
|
||||
2. It verifies the control flag entity is ON (if configured)
|
||||
3. It calculates whether today falls on the correct day in the interval cycle (if start date is configured)
|
||||
4. If all conditions pass, the message is sent to all notification targets
|
||||
|
||||
### Day Interval Calculation
|
||||
@@ -28,13 +28,13 @@ Setting the day interval to **1** sends notifications every day.
|
||||
## Configuration
|
||||
|
||||
| Input | Description |
|
||||
|---|---|
|
||||
| --- | --- |
|
||||
| **Notification Targets** | One or more `notify` entities (e.g., `notify.mobile_app_phone`) |
|
||||
| **Message** | The notification text to send (supports multiline) |
|
||||
| **Notification Times** | Comma-separated times in 24-hour `HH:MM` format (e.g., `08:00, 14:30, 20:00`) |
|
||||
| **Day Interval** | Number of days between notification cycles (1 = daily) |
|
||||
| **Start Date** | Reference date for the interval calculation (optional — leave empty to send every day) |
|
||||
| **Control Flag** | `input_boolean` or `switch` entity to enable/disable notifications |
|
||||
| **Control Flag** | `input_boolean` or `switch` entity to enable/disable notifications (optional — leave empty to always send) |
|
||||
|
||||
### Time Format
|
||||
|
||||
@@ -50,4 +50,4 @@ Set the `is_debug` variable to `true` in the automation YAML to enable persisten
|
||||
|
||||
## Author
|
||||
|
||||
Alexei Dolgolyov (dolgolyov.alexei@gmail.com)
|
||||
Alexei Dolgolyov (<dolgolyov.alexei@gmail.com>)
|
||||
|
||||
@@ -83,10 +83,12 @@ blueprint:
|
||||
collapsed: false
|
||||
input:
|
||||
control_flag:
|
||||
name: Control Flag
|
||||
name: Control Flag (optional)
|
||||
description: >
|
||||
Toggle entity to enable or disable notifications.
|
||||
Notifications are only sent when this entity is ON.
|
||||
Leave empty to always send notifications.
|
||||
default: ""
|
||||
selector:
|
||||
entity:
|
||||
domain:
|
||||
@@ -120,6 +122,7 @@ variables:
|
||||
message_text: !input message
|
||||
interval: !input day_interval
|
||||
start_date: !input start_date
|
||||
control_flag: !input control_flag
|
||||
|
||||
# Debug flag - set to true to enable persistent notifications for troubleshooting
|
||||
is_debug: false
|
||||
@@ -128,10 +131,14 @@ variables:
|
||||
# Conditions
|
||||
# =============================================================================
|
||||
condition:
|
||||
# Control flag must be ON
|
||||
- condition: state
|
||||
entity_id: !input control_flag
|
||||
state: "on"
|
||||
# Control flag must be ON (skipped if no control flag)
|
||||
- condition: template
|
||||
value_template: >
|
||||
{%- if control_flag | length == 0 -%}
|
||||
true
|
||||
{%- else -%}
|
||||
{{ is_state(control_flag, 'on') }}
|
||||
{%- endif -%}
|
||||
|
||||
# Today must fall on the correct day in the interval cycle (skipped if no start date)
|
||||
- condition: template
|
||||
|
||||
Reference in New Issue
Block a user