ESPHome 2026.5.0b1
Loading...
Searching...
No Matches
teleinfo.h
Go to the documentation of this file.
1#pragma once
2
5
6#include <vector>
7
8namespace esphome::teleinfo {
9/*
10 * 198 bytes should be enough to contain a full session in historical mode with
11 * three phases. But go with 1024 just to be sure.
12 */
13static const uint8_t MAX_TAG_SIZE = 64;
14static const uint16_t MAX_VAL_SIZE = 256;
15static const uint16_t MAX_BUF_SIZE = 2048;
16static const uint16_t MAX_TIMESTAMP_SIZE = 14;
17
19 public:
20 std::string tag;
21 virtual void publish_val(const std::string &val){};
22};
24 public:
25 TeleInfo(bool historical_mode);
27 void loop() override;
28 void setup() override;
29 void update() override;
30 void dump_config() override;
31 std::vector<TeleInfoListener *> teleinfo_listeners_{};
32
33 protected:
37 char buf_[MAX_BUF_SIZE];
39 char tag_[MAX_TAG_SIZE];
40 char val_[MAX_VAL_SIZE];
41 char timestamp_[MAX_TIMESTAMP_SIZE];
48 bool read_chars_until_(bool drop, uint8_t c);
49 bool check_crc_(const char *grp, const char *grp_end);
50 void publish_value_(const std::string &tag, const std::string &val);
51};
52} // namespace esphome::teleinfo
This class simplifies creating components that periodically check a state.
Definition component.h:602
void publish_value_(const std::string &tag, const std::string &val)
Definition teleinfo.cpp:180
char timestamp_[MAX_TIMESTAMP_SIZE]
Definition teleinfo.h:41
char buf_[MAX_BUF_SIZE]
Definition teleinfo.h:37
TeleInfo(bool historical_mode)
Definition teleinfo.cpp:191
char val_[MAX_VAL_SIZE]
Definition teleinfo.h:40
void register_teleinfo_listener(TeleInfoListener *listener)
Definition teleinfo.cpp:205
bool check_crc_(const char *grp, const char *grp_end)
Definition teleinfo.cpp:25
enum esphome::teleinfo::TeleInfo::State OFF
std::vector< TeleInfoListener * > teleinfo_listeners_
Definition teleinfo.h:31
char tag_[MAX_TAG_SIZE]
Definition teleinfo.h:39
void dump_config() override
Definition teleinfo.cpp:187
bool read_chars_until_(bool drop, uint8_t c)
Definition teleinfo.cpp:43
virtual void publish_val(const std::string &val)
Definition teleinfo.h:21
mopeka_std_values val[3]
const char * tag
Definition log.h:74
static void uint32_t