ESPHome 2025.5.0
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 = 8;
12
14 public:
15 struct LineContents {
17 char base_st[TEXT_SENSOR_MAX_LEN], volt_st[TEXT_SENSOR_MAX_LEN], curr_st[TEXT_SENSOR_MAX_LEN],
18 temp_st[TEXT_SENSOR_MAX_LEN];
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 float get_setup_priority() const override;
38
39 void register_listener(PylontechListener *listener) { this->listeners_.push_back(listener); }
40
41 protected:
42 void process_line_(std::string &buffer);
43
44 // ring buffer
45 std::string buffer_[NUM_BUFFERS];
48
49 std::vector<PylontechListener *> listeners_{};
50};
51
52} // namespace pylontech
53} // namespace esphome
This class simplifies creating components that periodically check a state.
Definition component.h:301
void loop() override
Read data once available.
Definition pylontech.cpp:37
std::vector< PylontechListener * > listeners_
Definition pylontech.h:49
void process_line_(std::string &buffer)
Definition pylontech.cpp:65
void update() override
Schedule data readings.
Definition pylontech.cpp:35
void setup() override
Setup the sensor and test for a connection.
Definition pylontech.cpp:28
void register_listener(PylontechListener *listener)
Definition pylontech.h:39
std::string buffer_[NUM_BUFFERS]
Definition pylontech.h:45
float get_setup_priority() const override
virtual void on_line_read(LineContents *line)
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7