ESPHome 2025.5.0
Loading...
Searching...
No Matches
sgp30.h
Go to the documentation of this file.
1#pragma once
2
7
8#include <cinttypes>
9#include <cmath>
10
11namespace esphome {
12namespace sgp30 {
13
15 uint16_t eco2;
16 uint16_t tvoc;
18
21 public:
24 void set_eco2_baseline_sensor(sensor::Sensor *eco2_baseline) { eco2_sensor_baseline_ = eco2_baseline; }
25 void set_tvoc_baseline_sensor(sensor::Sensor *tvoc_baseline) { tvoc_sensor_baseline_ = tvoc_baseline; }
26 void set_store_baseline(bool store_baseline) { store_baseline_ = store_baseline; }
27 void set_eco2_baseline(uint16_t eco2_baseline) { eco2_baseline_ = eco2_baseline; }
28 void set_tvoc_baseline(uint16_t tvoc_baseline) { tvoc_baseline_ = tvoc_baseline; }
29 void set_humidity_sensor(sensor::Sensor *humidity) { humidity_sensor_ = humidity; }
31
32 void setup() override;
33 void update() override;
34 void dump_config() override;
35 float get_setup_priority() const override { return setup_priority::DATA; }
36
37 protected:
38 void send_env_data_();
39 void read_iaq_baseline_();
41 void write_iaq_baseline_(uint16_t eco2_baseline, uint16_t tvoc_baseline);
43 uint16_t featureset_;
48
56
61 uint16_t eco2_baseline_{0x0000};
62 uint16_t tvoc_baseline_{0x0000};
64
68};
69
70} // namespace sgp30
71} // namespace esphome
This class simplifies creating components that periodically check a state.
Definition component.h:301
Implementation of a i2c functions for Sensirion sensors Sensirion data requires crc checking.
Base-class for all sensors.
Definition sensor.h:57
This class implements support for the Sensirion SGP30 i2c GAS (VOC and CO2eq) sensors.
Definition sgp30.h:20
void set_tvoc_sensor(sensor::Sensor *tvoc)
Definition sgp30.h:23
sensor::Sensor * eco2_sensor_baseline_
Definition sgp30.h:59
sensor::Sensor * temperature_sensor_
Definition sgp30.h:67
SGP30Baselines baselines_storage_
Definition sgp30.h:46
sensor::Sensor * tvoc_sensor_
Definition sgp30.h:58
sensor::Sensor * tvoc_sensor_baseline_
Definition sgp30.h:60
void set_tvoc_baseline_sensor(sensor::Sensor *tvoc_baseline)
Definition sgp30.h:25
void set_humidity_sensor(sensor::Sensor *humidity)
Definition sgp30.h:29
void set_eco2_baseline(uint16_t eco2_baseline)
Definition sgp30.h:27
sensor::Sensor * humidity_sensor_
Input sensor for humidity and temperature compensation.
Definition sgp30.h:66
void set_tvoc_baseline(uint16_t tvoc_baseline)
Definition sgp30.h:28
uint32_t seconds_since_last_store_
Definition sgp30.h:45
void set_eco2_sensor(sensor::Sensor *eco2)
Definition sgp30.h:22
float get_setup_priority() const override
Definition sgp30.h:35
ESPPreferenceObject pref_
Definition sgp30.h:47
void write_iaq_baseline_(uint16_t eco2_baseline, uint16_t tvoc_baseline)
Definition sgp30.cpp:212
void set_temperature_sensor(sensor::Sensor *temperature)
Definition sgp30.h:30
void dump_config() override
Definition sgp30.cpp:229
enum esphome::sgp30::SGP30Component::ErrorCode UNKNOWN
sensor::Sensor * eco2_sensor_
Definition sgp30.h:57
void set_store_baseline(bool store_baseline)
Definition sgp30.h:26
void set_eco2_baseline_sensor(sensor::Sensor *eco2_baseline)
Definition sgp30.h:24
const float DATA
For components that import data from directly connected sensors like DHT.
Definition component.cpp:19
struct esphome::sgp30::SGP30Baselines PACKED
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
uint16_t temperature
Definition sun_gtil2.cpp:12