ESPHome 2025.5.0
Loading...
Searching...
No Matches
real_time_clock.h
Go to the documentation of this file.
1#pragma once
2
3#include <bitset>
4#include <cstdlib>
8#include "esphome/core/time.h"
9
10namespace esphome {
11namespace time {
12
20 public:
21 explicit RealTimeClock();
22
24 void set_timezone(const std::string &tz) {
25 this->timezone_ = tz;
26 this->apply_timezone_();
27 }
28
30 std::string get_timezone() { return this->timezone_; }
31
34
37
39 time_t timestamp_now() { return ::time(nullptr); }
40
41 void add_on_time_sync_callback(std::function<void()> callback) {
42 this->time_sync_callback_.add(std::move(callback));
43 };
44
45 protected:
47 void synchronize_epoch_(uint32_t epoch);
48
49 std::string timezone_{};
50 void apply_timezone_();
51
53};
54
55template<typename... Ts> class TimeHasTimeCondition : public Condition<Ts...> {
56 public:
58 bool check(Ts... x) override { return this->parent_->now().is_valid(); }
59
60 protected:
62};
63
64} // namespace time
65} // namespace esphome
Base class for all automation conditions.
Definition automation.h:75
This class simplifies creating components that periodically check a state.
Definition component.h:301
The RealTimeClock class exposes common timekeeping functions via the device's local real-time clock.
CallbackManager< void()> time_sync_callback_
time_t timestamp_now()
Get the current time as the UTC epoch since January 1st 1970.
void add_on_time_sync_callback(std::function< void()> callback)
ESPTime now()
Get the time in the currently defined timezone.
ESPTime utcnow()
Get the time without any time zone or DST corrections.
void set_timezone(const std::string &tz)
Set the time zone.
std::string get_timezone()
Get the time zone currently in use.
void synchronize_epoch_(uint32_t epoch)
Report a unix epoch as current time.
TimeHasTimeCondition(RealTimeClock *parent)
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
static ESPTime from_epoch_local(time_t epoch)
Convert an UTC epoch timestamp to a local time ESPTime instance.
Definition time.h:83
bool is_valid() const
Check if this ESPTime is valid (all fields in range and year is greater than 2018)
Definition time.h:59
static ESPTime from_epoch_utc(time_t epoch)
Convert an UTC epoch timestamp to a UTC time ESPTime instance.
Definition time.h:92
uint16_t x
Definition tt21100.cpp:5