2.5 KiB
2.5 KiB
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
# 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
# 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)
# 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"