ESPHome 2026.1.0-dev
Loading...
Searching...
No Matches
automation.h
Go to the documentation of this file.
1#pragma once
2
5#include "esphome/core/time.h"
6
7#include "real_time_clock.h"
8
9#include <vector>
10
11namespace esphome::time {
12
13class CronTrigger : public Trigger<>, public Component {
14 public:
15 explicit CronTrigger(RealTimeClock *rtc);
16 void add_second(uint8_t second);
17 void add_seconds(const std::vector<uint8_t> &seconds);
18 void add_minute(uint8_t minute);
19 void add_minutes(const std::vector<uint8_t> &minutes);
20 void add_hour(uint8_t hour);
21 void add_hours(const std::vector<uint8_t> &hours);
22 void add_day_of_month(uint8_t day_of_month);
23 void add_days_of_month(const std::vector<uint8_t> &days_of_month);
24 void add_month(uint8_t month);
25 void add_months(const std::vector<uint8_t> &months);
26 void add_day_of_week(uint8_t day_of_week);
27 void add_days_of_week(const std::vector<uint8_t> &days_of_week);
28 bool matches(const ESPTime &time);
29 void loop() override;
30 float get_setup_priority() const override;
31
32 protected:
33 std::bitset<61> seconds_;
34 std::bitset<60> minutes_;
35 std::bitset<24> hours_;
36 std::bitset<32> days_of_month_;
37 std::bitset<13> months_;
38 std::bitset<8> days_of_week_;
41};
42
43class SyncTrigger : public Trigger<>, public Component {
44 public:
45 explicit SyncTrigger(RealTimeClock *rtc);
46
47 protected:
49};
50} // namespace esphome::time
void add_second(uint8_t second)
void add_minutes(const std::vector< uint8_t > &minutes)
void add_month(uint8_t month)
std::bitset< 8 > days_of_week_
Definition automation.h:38
void add_hour(uint8_t hour)
void add_day_of_month(uint8_t day_of_month)
void add_seconds(const std::vector< uint8_t > &seconds)
bool matches(const ESPTime &time)
void add_months(const std::vector< uint8_t > &months)
float get_setup_priority() const override
void add_days_of_month(const std::vector< uint8_t > &days_of_month)
std::bitset< 32 > days_of_month_
Definition automation.h:36
std::bitset< 61 > seconds_
Definition automation.h:33
CronTrigger(RealTimeClock *rtc)
void add_minute(uint8_t minute)
std::bitset< 24 > hours_
Definition automation.h:35
optional< ESPTime > last_check_
Definition automation.h:40
void add_days_of_week(const std::vector< uint8_t > &days_of_week)
void add_day_of_week(uint8_t day_of_week)
std::bitset< 60 > minutes_
Definition automation.h:34
std::bitset< 13 > months_
Definition automation.h:37
void add_hours(const std::vector< uint8_t > &hours)
The RealTimeClock class exposes common timekeeping functions via the device's local real-time clock.
SyncTrigger(RealTimeClock *rtc)
uint8_t month
Definition date_entity.h:1
uint8_t second
uint8_t minute
uint8_t hour
A more user-friendly version of struct tm from time.h.
Definition time.h:15