ESPHome  2024.3.1
htu21d.h
Go to the documentation of this file.
1 #pragma once
2 
7 
8 namespace esphome {
9 namespace htu21d {
10 
12  public:
14  void set_humidity(sensor::Sensor *humidity) { humidity_ = humidity; }
15  void set_heater(sensor::Sensor *heater) { heater_ = heater; }
16 
18  void setup() override;
19  void dump_config() override;
21  void update() override;
22 
23  bool is_heater_enabled();
24  void set_heater(bool status);
25  void set_heater_level(uint8_t level);
26  int8_t get_heater_level();
27 
28  float get_setup_priority() const override;
29 
30  protected:
34 };
35 
36 template<typename... Ts> class SetHeaterLevelAction : public Action<Ts...>, public Parented<HTU21DComponent> {
37  public:
38  TEMPLATABLE_VALUE(uint8_t, level)
39 
40  void play(Ts... x) override {
41  auto level = this->level_.value(x...);
42 
43  this->parent_->set_heater_level(level);
44  }
45 };
46 
47 template<typename... Ts> class SetHeaterAction : public Action<Ts...>, public Parented<HTU21DComponent> {
48  public:
50 
51  void play(Ts... x) override {
52  auto status = this->status_.value(x...);
53 
54  this->parent_->set_heater(status);
55  }
56 };
57 
58 } // namespace htu21d
59 } // namespace esphome
TEMPLATABLE_VALUE(bool, status) void play(Ts... x) override
Definition: htu21d.h:49
sensor::Sensor * humidity_
Definition: htu21d.h:32
uint16_t x
Definition: tt21100.cpp:17
float temperature
Definition: qmp6988.h:71
sensor::Sensor * heater_
Definition: htu21d.h:33
This class simplifies creating components that periodically check a state.
Definition: component.h:283
void setup() override
Setup (reset) the sensor and check connection.
Definition: htu21d.cpp:20
void update() override
Update the sensor values (temperature+humidity).
Definition: htu21d.cpp:41
float get_setup_priority() const override
Definition: htu21d.cpp:138
sensor::Sensor * temperature_
Definition: htu21d.h:31
void dump_config() override
Definition: htu21d.cpp:31
void set_heater(sensor::Sensor *heater)
Definition: htu21d.h:15
uint8_t status
Definition: bl0942.h:23
void set_heater_level(uint8_t level)
Definition: htu21d.cpp:121
This is a workaround until we can figure out a way to get the tflite-micro idf component code availab...
Definition: a01nyub.cpp:7
void set_temperature(sensor::Sensor *temperature)
Definition: htu21d.h:13
Base-class for all sensors.
Definition: sensor.h:57
void set_humidity(sensor::Sensor *humidity)
Definition: htu21d.h:14
This Class provides the methods to read/write bytes from/to an i2c device.
Definition: i2c.h:133
TEMPLATABLE_VALUE(uint8_t, level) void play(Ts... x) override
Definition: htu21d.h:38
Helper class to easily give an object a parent of type T.
Definition: helpers.h:515