ESPHome 2026.2.4
Loading...
Searching...
No Matches
pylontech.h
Go to the documentation of this file.
1#pragma once
2
6
7namespace esphome {
8namespace pylontech {
9
10static const uint8_t NUM_BUFFERS = 20;
11static const uint8_t TEXT_SENSOR_MAX_LEN = 14;
12
14 public:
15 struct LineContents {
17 char base_st[TEXT_SENSOR_MAX_LEN] = {0}, volt_st[TEXT_SENSOR_MAX_LEN] = {0}, curr_st[TEXT_SENSOR_MAX_LEN] = {0},
18 temp_st[TEXT_SENSOR_MAX_LEN] = {0};
19 };
20
21 virtual void on_line_read(LineContents *line);
22 virtual void dump_config();
23};
24
26 public:
28
30 void update() override;
32 void loop() override;
34 void setup() override;
35 void dump_config() override;
36
37 void register_listener(PylontechListener *listener) { this->listeners_.push_back(listener); }
38
39 protected:
40 void process_line_(std::string &buffer);
41
42 // ring buffer
43 std::string buffer_[NUM_BUFFERS];
46 bool has_tlow_id_ = false;
47
48 std::vector<PylontechListener *> listeners_{};
49};
50
51} // namespace pylontech
52} // namespace esphome
This class simplifies creating components that periodically check a state.
Definition component.h:512
void loop() override
Read data once available.
Definition pylontech.cpp:58
std::vector< PylontechListener * > listeners_
Definition pylontech.h:48
void process_line_(std::string &buffer)
Definition pylontech.cpp:92
void update() override
Schedule data readings.
Definition pylontech.cpp:56
void setup() override
Setup the sensor and test for a connection.
Definition pylontech.cpp:50
void register_listener(PylontechListener *listener)
Definition pylontech.h:37
std::string buffer_[NUM_BUFFERS]
Definition pylontech.h:43
virtual void on_line_read(LineContents *line)
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7