ESPHome 2026.10.0-dev
Loading...
Searching...
No Matches
automation.h
Go to the documentation of this file.
1#pragma once
2
4#ifdef USE_TIME_TRIGGERS
5
8#include "esphome/core/time.h"
9
10#include "real_time_clock.h"
11
12#include <vector>
13
14namespace esphome::time {
15
16class CronTrigger final : public Trigger<>, public Component {
17 public:
18 explicit CronTrigger(RealTimeClock *rtc);
19 void add_second(uint8_t second);
20 void add_seconds(const std::vector<uint8_t> &seconds);
21 void add_minute(uint8_t minute);
22 void add_minutes(const std::vector<uint8_t> &minutes);
23 void add_hour(uint8_t hour);
24 void add_hours(const std::vector<uint8_t> &hours);
25 void add_day_of_month(uint8_t day_of_month);
26 void add_days_of_month(const std::vector<uint8_t> &days_of_month);
27 void add_month(uint8_t month);
28 void add_months(const std::vector<uint8_t> &months);
29 void add_day_of_week(uint8_t day_of_week);
30 void add_days_of_week(const std::vector<uint8_t> &days_of_week);
31 bool matches(const ESPTime &time);
32 void setup() override;
33 float get_setup_priority() const override;
34
35 protected:
36 void check_time_();
37 std::bitset<61> seconds_;
38 std::bitset<60> minutes_;
39 std::bitset<24> hours_;
40 std::bitset<32> days_of_month_;
41 std::bitset<13> months_;
42 std::bitset<8> days_of_week_;
44 optional<ESPTime> last_check_;
45};
46
47class SyncTrigger final : public Trigger<>, public Component {
48 public:
49 explicit SyncTrigger(RealTimeClock *rtc);
50
51 protected:
53};
54} // namespace esphome::time
55
56#endif // USE_TIME_TRIGGERS
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:42
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:40
std::bitset< 61 > seconds_
Definition automation.h:37
CronTrigger(RealTimeClock *rtc)
void add_minute(uint8_t minute)
std::bitset< 24 > hours_
Definition automation.h:39
optional< ESPTime > last_check_
Definition automation.h:44
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:38
std::bitset< 13 > months_
Definition automation.h:41
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:23