#pragma once #include "esphome/core/component.h" #include "esphome/components/sensor/sensor.h" #include "esphome/components/i2c/i2c.h" namespace esphome { namespace hdc2010 { class HDC2010Component : public PollingComponent, public i2c::I2CDevice { public: void set_temperature_sensor(sensor::Sensor *temperature) { this->temperature_sensor_ = temperature; } void set_humidity_sensor(sensor::Sensor *humidity) { this->humidity_sensor_ = humidity; } /// Setup the sensor and check for connection. void setup() override; void dump_config() override; /// Retrieve the latest sensor values. This operation takes approximately 16ms. void update() override; float read_temp(); float read_humidity(); protected: sensor::Sensor *temperature_sensor_{nullptr}; sensor::Sensor *humidity_sensor_{nullptr}; }; } // namespace hdc2010 } // namespace esphome