ESPHome 2026.3.0-dev
Loading...
Searching...
No Matches
cse7761.h
Go to the documentation of this file.
1#pragma once
2
6
7namespace esphome {
8namespace cse7761 {
9
11 uint32_t frequency = 0;
12 uint32_t voltage_rms = 0;
13 uint32_t current_rms[2] = {0};
14 uint32_t energy[2] = {0};
15 uint32_t active_power[2] = {0};
16 uint16_t coefficient[8] = {0};
17 uint8_t energy_update = 0;
18 bool ready = false;
19};
20
23 public:
24 void set_voltage_sensor(sensor::Sensor *voltage_sensor) { voltage_sensor_ = voltage_sensor; }
25 void set_active_power_1_sensor(sensor::Sensor *power_sensor_1) { power_sensor_1_ = power_sensor_1; }
26 void set_current_1_sensor(sensor::Sensor *current_sensor_1) { current_sensor_1_ = current_sensor_1; }
27 void set_active_power_2_sensor(sensor::Sensor *power_sensor_2) { power_sensor_2_ = power_sensor_2; }
28 void set_current_2_sensor(sensor::Sensor *current_sensor_2) { current_sensor_2_ = current_sensor_2; }
29 void setup() override;
30 void dump_config() override;
31 void update() override;
32
33 protected:
34 // Sensors
41
42 void write_(uint8_t reg, uint16_t data);
43 bool read_once_(uint8_t reg, uint8_t size, uint32_t *value);
44 uint32_t read_(uint8_t reg, uint8_t size);
45 uint32_t coefficient_by_unit_(uint32_t unit);
46 bool chip_init_();
47 void get_data_();
48};
49
50} // namespace cse7761
51} // namespace esphome
This class simplifies creating components that periodically check a state.
Definition component.h:527
This class implements support for the CSE7761 UART power sensor.
Definition cse7761.h:22
void set_current_2_sensor(sensor::Sensor *current_sensor_2)
Definition cse7761.h:28
sensor::Sensor * current_sensor_1_
Definition cse7761.h:37
sensor::Sensor * power_sensor_2_
Definition cse7761.h:38
sensor::Sensor * voltage_sensor_
Definition cse7761.h:35
uint32_t coefficient_by_unit_(uint32_t unit)
Definition cse7761.cpp:149
uint32_t read_(uint8_t reg, uint8_t size)
Definition cse7761.cpp:136
sensor::Sensor * current_sensor_2_
Definition cse7761.h:39
sensor::Sensor * power_sensor_1_
Definition cse7761.h:36
bool read_once_(uint8_t reg, uint8_t size, uint32_t *value)
Definition cse7761.cpp:97
void write_(uint8_t reg, uint16_t data)
Definition cse7761.cpp:71
void set_voltage_sensor(sensor::Sensor *voltage_sensor)
Definition cse7761.h:24
void set_active_power_2_sensor(sensor::Sensor *power_sensor_2)
Definition cse7761.h:27
void set_active_power_1_sensor(sensor::Sensor *power_sensor_1)
Definition cse7761.h:25
void set_current_1_sensor(sensor::Sensor *current_sensor_1)
Definition cse7761.h:26
Base-class for all sensors.
Definition sensor.h:47
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
size_t size
Definition helpers.h:854