ESPHome 2025.5.0
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 {
12namespace time {
13
14class CronTrigger : public Trigger<>, public Component {
15 public:
16 explicit CronTrigger(RealTimeClock *rtc);
17 void add_second(uint8_t second);
18 void add_seconds(const std::vector<uint8_t> &seconds);
19 void add_minute(uint8_t minute);
20 void add_minutes(const std::vector<uint8_t> &minutes);
21 void add_hour(uint8_t hour);
22 void add_hours(const std::vector<uint8_t> &hours);
23 void add_day_of_month(uint8_t day_of_month);
24 void add_days_of_month(const std::vector<uint8_t> &days_of_month);
25 void add_month(uint8_t month);
26 void add_months(const std::vector<uint8_t> &months);
27 void add_day_of_week(uint8_t day_of_week);
28 void add_days_of_week(const std::vector<uint8_t> &days_of_week);
29 bool matches(const ESPTime &time);
30 void loop() override;
31 float get_setup_priority() const override;
32
33 protected:
34 std::bitset<61> seconds_;
35 std::bitset<60> minutes_;
36 std::bitset<24> hours_;
37 std::bitset<32> days_of_month_;
38 std::bitset<13> months_;
39 std::bitset<8> days_of_week_;
42};
43
44class SyncTrigger : public Trigger<>, public Component {
45 public:
46 explicit SyncTrigger(RealTimeClock *rtc);
47
48 protected:
50};
51} // namespace time
52} // namespace esphome
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:39
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:37
std::bitset< 61 > seconds_
Definition automation.h:34
CronTrigger(RealTimeClock *rtc)
void add_minute(uint8_t minute)
std::bitset< 24 > hours_
Definition automation.h:36
optional< ESPTime > last_check_
Definition automation.h:41
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:35
std::bitset< 13 > months_
Definition automation.h:38
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
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
A more user-friendly version of struct tm from time.h.
Definition time.h:15