ESPHome 2026.10.2
Loading...
Searching...
No Matches
emontx.h
Go to the documentation of this file.
1#pragma once
2
9
10#include <array>
11
12#ifdef USE_SENSOR
14#endif
15
16namespace esphome::emontx {
17
19static constexpr size_t MAX_LINE_LENGTH = 1024;
20
28class EmonTx final : public Component, public uart::UARTDevice {
29 public:
30 EmonTx() = default;
31
32 void loop() override;
33 void setup() override;
34 void dump_config() override;
35
36 template<typename F> void add_on_json_callback(F &&callback) { this->json_callbacks_.add(std::forward<F>(callback)); }
37
38 template<typename F> void add_on_data_callback(F &&callback) { this->data_callbacks_.add(std::forward<F>(callback)); }
39
40 // Send command to emonTx via UART
41 void send_command(const char *command);
42 void send_command(const std::string &command) { this->send_command(command.c_str()); }
43
44#ifdef USE_SENSOR
45 void init_sensors(size_t count) { this->sensors_.init(count); }
46 void register_sensor(const char *tag_name, sensor::Sensor *sensor);
47#endif
48
49 protected:
50 void parse_json_(const char *data, size_t len);
51
52#ifdef USE_SENSOR
54#endif
57 uint16_t buffer_pos_{0};
58 std::array<char, MAX_LINE_LENGTH + 1> buffer_{};
59};
60
61} // namespace esphome::emontx
Fixed-capacity vector - sized once through init() or try_init(); push_back never reallocates This avo...
Definition helpers.h:621
StringRef is a reference to a string owned by something else.
Definition string_ref.h:30
Main class for the EmonTx component.
Definition emontx.h:28
void setup() override
Definition emontx.cpp:9
FixedVector< std::pair< const char *, sensor::Sensor * > > sensors_
Definition emontx.h:53
void add_on_json_callback(F &&callback)
Definition emontx.h:36
void init_sensors(size_t count)
Definition emontx.h:45
void send_command(const char *command)
Sends a command string to the emonTx device via UART.
Definition emontx.cpp:97
void add_on_data_callback(F &&callback)
Definition emontx.h:38
void loop() override
Implements the main loop for parsing data from the serial port.
Definition emontx.cpp:18
void dump_config() override
Logs the EmonTx component configuration details.
Definition emontx.cpp:79
std::array< char, MAX_LINE_LENGTH+1 > buffer_
Definition emontx.h:58
void send_command(const std::string &command)
Definition emontx.h:42
void register_sensor(const char *tag_name, sensor::Sensor *sensor)
Registers a sensor to receive updates for a specific JSON tag.
Definition emontx.cpp:110
LazyCallbackManager< void(JsonObject, StringRef)> json_callbacks_
Definition emontx.h:55
LazyCallbackManager< void(StringRef)> data_callbacks_
Definition emontx.h:56
void parse_json_(const char *data, size_t len)
Definition emontx.cpp:54
Base-class for all sensors.
Definition sensor.h:47
unsigned count
Definition gif.cpp:51
const void size_t len
Definition hal.h:64