ESPHome 2026.5.0b1
Loading...
Searching...
No Matches
sdm_meter.h
Go to the documentation of this file.
1#pragma once
2
6
7#include <vector>
8
9namespace esphome::sdm_meter {
10
12 public:
13 void set_voltage_sensor(uint8_t phase, sensor::Sensor *voltage_sensor) {
14 this->phases_[phase].setup = true;
15 this->phases_[phase].voltage_sensor_ = voltage_sensor;
16 }
17 void set_current_sensor(uint8_t phase, sensor::Sensor *current_sensor) {
18 this->phases_[phase].setup = true;
19 this->phases_[phase].current_sensor_ = current_sensor;
20 }
21 void set_active_power_sensor(uint8_t phase, sensor::Sensor *active_power_sensor) {
22 this->phases_[phase].setup = true;
23 this->phases_[phase].active_power_sensor_ = active_power_sensor;
24 }
25 void set_apparent_power_sensor(uint8_t phase, sensor::Sensor *apparent_power_sensor) {
26 this->phases_[phase].setup = true;
27 this->phases_[phase].apparent_power_sensor_ = apparent_power_sensor;
28 }
29 void set_reactive_power_sensor(uint8_t phase, sensor::Sensor *reactive_power_sensor) {
30 this->phases_[phase].setup = true;
31 this->phases_[phase].reactive_power_sensor_ = reactive_power_sensor;
32 }
33 void set_power_factor_sensor(uint8_t phase, sensor::Sensor *power_factor_sensor) {
34 this->phases_[phase].setup = true;
35 this->phases_[phase].power_factor_sensor_ = power_factor_sensor;
36 }
37 void set_phase_angle_sensor(uint8_t phase, sensor::Sensor *phase_angle_sensor) {
38 this->phases_[phase].setup = true;
39 this->phases_[phase].phase_angle_sensor_ = phase_angle_sensor;
40 }
41 void set_total_power_sensor(sensor::Sensor *total_power_sensor) { this->total_power_sensor_ = total_power_sensor; }
42 void set_frequency_sensor(sensor::Sensor *frequency_sensor) { this->frequency_sensor_ = frequency_sensor; }
43 void set_import_active_energy_sensor(sensor::Sensor *import_active_energy_sensor) {
44 this->import_active_energy_sensor_ = import_active_energy_sensor;
45 }
46 void set_export_active_energy_sensor(sensor::Sensor *export_active_energy_sensor) {
47 this->export_active_energy_sensor_ = export_active_energy_sensor;
48 }
49 void set_import_reactive_energy_sensor(sensor::Sensor *import_reactive_energy_sensor) {
50 this->import_reactive_energy_sensor_ = import_reactive_energy_sensor;
51 }
52 void set_export_reactive_energy_sensor(sensor::Sensor *export_reactive_energy_sensor) {
53 this->export_reactive_energy_sensor_ = export_reactive_energy_sensor;
54 }
55
56 void update() override;
57
58 void on_modbus_data(const std::vector<uint8_t> &data) override;
59
60 void dump_config() override;
61
62 protected:
79};
80
81} // namespace esphome::sdm_meter
This class simplifies creating components that periodically check a state.
Definition component.h:602
sensor::Sensor * export_active_energy_sensor_
Definition sdm_meter.h:76
void set_reactive_power_sensor(uint8_t phase, sensor::Sensor *reactive_power_sensor)
Definition sdm_meter.h:29
void set_import_active_energy_sensor(sensor::Sensor *import_active_energy_sensor)
Definition sdm_meter.h:43
void on_modbus_data(const std::vector< uint8_t > &data) override
Definition sdm_meter.cpp:13
void set_total_power_sensor(sensor::Sensor *total_power_sensor)
Definition sdm_meter.h:41
sensor::Sensor * total_power_sensor_
Definition sdm_meter.h:74
void set_import_reactive_energy_sensor(sensor::Sensor *import_reactive_energy_sensor)
Definition sdm_meter.h:49
void set_phase_angle_sensor(uint8_t phase, sensor::Sensor *phase_angle_sensor)
Definition sdm_meter.h:37
void dump_config() override
Definition sdm_meter.cpp:86
sensor::Sensor * export_reactive_energy_sensor_
Definition sdm_meter.h:78
void set_export_active_energy_sensor(sensor::Sensor *export_active_energy_sensor)
Definition sdm_meter.h:46
void set_apparent_power_sensor(uint8_t phase, sensor::Sensor *apparent_power_sensor)
Definition sdm_meter.h:25
void set_export_reactive_energy_sensor(sensor::Sensor *export_reactive_energy_sensor)
Definition sdm_meter.h:52
void set_power_factor_sensor(uint8_t phase, sensor::Sensor *power_factor_sensor)
Definition sdm_meter.h:33
struct esphome::sdm_meter::SDMMeter::SDMPhase phases_[3]
sensor::Sensor * import_active_energy_sensor_
Definition sdm_meter.h:75
sensor::Sensor * import_reactive_energy_sensor_
Definition sdm_meter.h:77
void set_frequency_sensor(sensor::Sensor *frequency_sensor)
Definition sdm_meter.h:42
void set_active_power_sensor(uint8_t phase, sensor::Sensor *active_power_sensor)
Definition sdm_meter.h:21
sensor::Sensor * frequency_sensor_
Definition sdm_meter.h:73
void set_voltage_sensor(uint8_t phase, sensor::Sensor *voltage_sensor)
Definition sdm_meter.h:13
void set_current_sensor(uint8_t phase, sensor::Sensor *current_sensor)
Definition sdm_meter.h:17
Base-class for all sensors.
Definition sensor.h:47