re-uploading work
This commit is contained in:
119
docs/QUICKREF-timer-types.md
Normal file
119
docs/QUICKREF-timer-types.md
Normal file
@@ -0,0 +1,119 @@
|
||||
# Quick Reference: Timer Types
|
||||
|
||||
## Overview
|
||||
The Attune timer sensor supports three timer types for flexible scheduling.
|
||||
|
||||
## Interval Timers (core.intervaltimer)
|
||||
**Purpose**: Fire at regular intervals
|
||||
|
||||
```yaml
|
||||
# Every 30 seconds
|
||||
trigger_ref: core.intervaltimer
|
||||
parameters:
|
||||
unit: seconds
|
||||
interval: 30
|
||||
|
||||
# Every 5 minutes
|
||||
trigger_ref: core.intervaltimer
|
||||
parameters:
|
||||
unit: minutes
|
||||
interval: 5
|
||||
|
||||
# Every 2 hours
|
||||
trigger_ref: core.intervaltimer
|
||||
parameters:
|
||||
unit: hours
|
||||
interval: 2
|
||||
|
||||
# Daily
|
||||
trigger_ref: core.intervaltimer
|
||||
parameters:
|
||||
unit: days
|
||||
interval: 1
|
||||
```
|
||||
|
||||
## Cron Timers (core.crontimer)
|
||||
**Purpose**: Fire based on cron expressions
|
||||
|
||||
```yaml
|
||||
# Every hour at :00
|
||||
trigger_ref: core.crontimer
|
||||
parameters:
|
||||
expression: "0 0 * * * *"
|
||||
|
||||
# Every 15 minutes
|
||||
trigger_ref: core.crontimer
|
||||
parameters:
|
||||
expression: "0 */15 * * * *"
|
||||
|
||||
# Daily at midnight
|
||||
trigger_ref: core.crontimer
|
||||
parameters:
|
||||
expression: "0 0 0 * * *"
|
||||
|
||||
# Weekdays at 9 AM
|
||||
trigger_ref: core.crontimer
|
||||
parameters:
|
||||
expression: "0 0 9 * * 1-5"
|
||||
|
||||
# Every Monday at 8:30 AM
|
||||
trigger_ref: core.crontimer
|
||||
parameters:
|
||||
expression: "0 30 8 * * 1"
|
||||
```
|
||||
|
||||
### Cron Format
|
||||
```
|
||||
second minute hour day_of_month month day_of_week
|
||||
| | | | | |
|
||||
0-59 0-59 0-23 1-31 1-12 0-6 (0=Sunday)
|
||||
```
|
||||
|
||||
## DateTime Timers (core.datetimetimer)
|
||||
**Purpose**: Fire once at a specific time (one-shot)
|
||||
|
||||
```yaml
|
||||
# New Year's Eve countdown
|
||||
trigger_ref: core.datetimetimer
|
||||
parameters:
|
||||
fire_at: "2024-12-31T23:59:59Z"
|
||||
timezone: "UTC"
|
||||
|
||||
# Specific deployment time
|
||||
trigger_ref: core.datetimetimer
|
||||
parameters:
|
||||
fire_at: "2024-06-15T14:00:00-05:00"
|
||||
timezone: "America/New_York"
|
||||
description: "Production deployment"
|
||||
```
|
||||
|
||||
**Note**: DateTime timers automatically remove themselves after firing.
|
||||
|
||||
## Choosing a Timer Type
|
||||
|
||||
| Use Case | Recommended Type |
|
||||
|----------|------------------|
|
||||
| Regular health checks | Interval |
|
||||
| Periodic sync/backup | Interval |
|
||||
| Business hours only | Cron |
|
||||
| Complex schedules | Cron |
|
||||
| One-time events | DateTime |
|
||||
| Reminders/deadlines | DateTime |
|
||||
|
||||
## Implementation Details
|
||||
|
||||
- All timers managed by `tokio-cron-scheduler`
|
||||
- Efficient async scheduling
|
||||
- Low memory overhead
|
||||
- Automatic cleanup on rule deletion
|
||||
- Support for concurrent timers
|
||||
|
||||
## Event Payloads
|
||||
|
||||
Each timer type creates events with specific metadata:
|
||||
|
||||
**Interval**: Includes `interval_seconds`, `execution_count`
|
||||
**Cron**: Includes `expression`, `next_fire_at`, `execution_count`
|
||||
**DateTime**: Includes `fire_at`, `fired_at`, `delay_ms`
|
||||
|
||||
All events include `sensor_ref: "core.interval_timer_sensor"`
|
||||
Reference in New Issue
Block a user