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