ESPHome 2025.12.0
Loading...
Searching...
No Matches
ld2420_sensor.h
Go to the documentation of this file.
1#pragma once
2
3#include "../ld2420.h"
5
6namespace esphome::ld2420 {
7
9 public:
10 void dump_config() override;
11 void set_distance_sensor(sensor::Sensor *sensor) { this->distance_sensor_ = sensor; }
12 void on_distance(uint16_t distance) override {
13 if (this->distance_sensor_ != nullptr) {
14 if (this->distance_sensor_->get_state() != distance) {
15 this->distance_sensor_->publish_state(distance);
16 }
17 }
18 }
19 void on_energy(uint16_t *gate_energy, size_t size) override {
20 for (size_t active = 0; active < size; active++) {
21 if (this->energy_sensors_[active] != nullptr) {
22 this->energy_sensors_[active]->publish_state(gate_energy[active]);
23 }
24 }
25 }
26
27 protected:
29 std::vector<sensor::Sensor *> energy_sensors_ = std::vector<sensor::Sensor *>(TOTAL_GATES);
30};
31
32} // namespace esphome::ld2420
void set_distance_sensor(sensor::Sensor *sensor)
void on_distance(uint16_t distance) override
void on_energy(uint16_t *gate_energy, size_t size) override
sensor::Sensor * distance_sensor_
std::vector< sensor::Sensor * > energy_sensors_
Base-class for all sensors.
Definition sensor.h:43
void publish_state(float state)
Publish a new state to the front-end.
Definition sensor.cpp:77
float get_state() const
Getter-syntax for .state.
Definition sensor.cpp:129