ESPHome 2026.2.1
Loading...
Searching...
No Matches
hm3301.h
Go to the documentation of this file.
1#pragma once
2
7
8namespace esphome {
9namespace hm3301 {
10
11static const uint8_t SELECT_COMM_CMD = 0x88;
12
14 public:
15 HM3301Component() = default;
16
17 void set_pm_1_0_sensor(sensor::Sensor *pm_1_0_sensor) { pm_1_0_sensor_ = pm_1_0_sensor; }
18 void set_pm_2_5_sensor(sensor::Sensor *pm_2_5_sensor) { pm_2_5_sensor_ = pm_2_5_sensor; }
19 void set_pm_10_0_sensor(sensor::Sensor *pm_10_0_sensor) { pm_10_0_sensor_ = pm_10_0_sensor; }
20 void set_aqi_sensor(sensor::Sensor *aqi_sensor) { aqi_sensor_ = aqi_sensor; }
21
22 void set_aqi_calculation_type(aqi::AQICalculatorType aqi_calc_type) { aqi_calc_type_ = aqi_calc_type; }
23
24 void setup() override;
25 void dump_config() override;
26 void update() override;
27
28 protected:
29 enum {
34 } error_code_{NO_ERROR};
35
36 uint8_t data_buffer_[30];
37
42
45
46 bool validate_checksum_(const uint8_t *data);
47 uint16_t get_sensor_value_(const uint8_t *data, uint8_t i);
48};
49
50} // namespace hm3301
51} // namespace esphome
This class simplifies creating components that periodically check a state.
Definition component.h:512
uint16_t get_sensor_value_(const uint8_t *data, uint8_t i)
Definition hm3301.cpp:93
void set_pm_2_5_sensor(sensor::Sensor *pm_2_5_sensor)
Definition hm3301.h:18
void set_aqi_sensor(sensor::Sensor *aqi_sensor)
Definition hm3301.h:20
void set_aqi_calculation_type(aqi::AQICalculatorType aqi_calc_type)
Definition hm3301.h:22
sensor::Sensor * aqi_sensor_
Definition hm3301.h:41
sensor::Sensor * pm_1_0_sensor_
Definition hm3301.h:38
enum esphome::hm3301::HM3301Component::@88 NO_ERROR
aqi::AQICalculatorFactory aqi_calculator_factory_
Definition hm3301.h:44
void set_pm_10_0_sensor(sensor::Sensor *pm_10_0_sensor)
Definition hm3301.h:19
sensor::Sensor * pm_2_5_sensor_
Definition hm3301.h:39
void set_pm_1_0_sensor(sensor::Sensor *pm_1_0_sensor)
Definition hm3301.h:17
aqi::AQICalculatorType aqi_calc_type_
Definition hm3301.h:43
sensor::Sensor * pm_10_0_sensor_
Definition hm3301.h:40
bool validate_checksum_(const uint8_t *data)
Definition hm3301.cpp:84
This Class provides the methods to read/write bytes from/to an i2c device.
Definition i2c.h:133
Base-class for all sensors.
Definition sensor.h:43
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7