11#include <VOCGasIndexAlgorithm.h>
12#include <NOxGasIndexAlgorithm.h>
34static const uint8_t SGP40_FEATURESET = 0x0020;
35static const uint8_t SGP41_FEATURESET = 0x0040;
37static const uint16_t SGP4X_CMD_GET_SERIAL_ID = 0x3682;
38static const uint16_t SGP4X_CMD_GET_FEATURESET = 0x202f;
39static const uint16_t SGP4X_CMD_SELF_TEST = 0x280e;
40static const uint16_t SGP40_CMD_MEASURE_RAW = 0x260F;
41static const uint16_t SGP41_CMD_MEASURE_RAW = 0x2619;
42static const uint16_t SGP41_CMD_NOX_CONDITIONING = 0x2612;
43static const uint8_t SGP41_SUBCMD_NOX_CONDITIONING = 0x12;
48static const uint16_t SPG40_SELFTEST_TIME = 250;
49static const uint16_t SPG41_SELFTEST_TIME = 320;
50static const uint16_t SGP40_MEASURE_TIME = 30;
51static const uint16_t SGP41_MEASURE_TIME = 55;
61 MEASUREMENT_INIT_FAILED,
64 SERIAL_NUMBER_IDENTIFICATION_FAILED,
67 } error_code_{UNKNOWN};
74 void setup()
override;
83 uint16_t learning_time_gain_hours, uint16_t gating_max_duration_minutes,
84 uint16_t std_initial, uint16_t gain_factor) {
93 uint16_t learning_time_gain_hours, uint16_t gating_max_duration_minutes,
94 uint16_t gain_factor) {
This class simplifies creating components that periodically check a state.
Implementation of a i2c functions for Sensirion sensors Sensirion data requires crc checking.
Base-class for all sensors.
This class implements support for the Sensirion sgp4x i2c GAS (VOC) sensors.
void set_temperature_sensor(sensor::Sensor *temperature)
SGP4xBaselines voc_baselines_storage_
void set_nox_sensor(sensor::Sensor *nox_sensor)
void set_humidity_sensor(sensor::Sensor *humidity)
uint32_t seconds_since_last_store_
float get_setup_priority() const override
ESPPreferenceObject pref_
uint8_t samples_to_stabilize_
void dump_config() override
int16_t sensirion_init_sensors_()
sensor::Sensor * humidity_sensor_
Input sensor for humidity and temperature compensation.
void set_voc_sensor(sensor::Sensor *voc_sensor)
sensor::Sensor * voc_sensor_
void set_nox_algorithm_tuning(uint16_t index_offset, uint16_t learning_time_offset_hours, uint16_t learning_time_gain_hours, uint16_t gating_max_duration_minutes, uint16_t gain_factor)
VOCGasIndexAlgorithm voc_algorithm_
void set_store_baseline(bool store_baseline)
sensor::Sensor * temperature_sensor_
optional< GasTuning > voc_tuning_params_
NOxGasIndexAlgorithm nox_algorithm_
void update_gas_indices_()
optional< GasTuning > nox_tuning_params_
sensor::Sensor * nox_sensor_
void set_voc_algorithm_tuning(uint16_t index_offset, uint16_t learning_time_offset_hours, uint16_t learning_time_gain_hours, uint16_t gating_max_duration_minutes, uint16_t std_initial, uint16_t gain_factor)
const float DATA
For components that import data from directly connected sensors like DHT.
const uint32_t SHORTEST_BASELINE_STORE_INTERVAL
struct esphome::sgp4x::SGP4xBaselines PACKED
const float MAXIMUM_STORAGE_DIFF
Providing packet encoding functions for exchanging data with a remote host.
uint16_t gating_max_duration_minutes
uint16_t learning_time_gain_hours
uint16_t learning_time_offset_hours