ESPHome  2022.1.1
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
esphome::sps30::SPS30Component Class Reference

This class implements support for the Sensirion SPS30 i2c/UART Particulate Matter PM1.0, PM2.5, PM4, PM10 Air Quality sensors. More...

#include <sps30.h>

Inheritance diagram for esphome::sps30::SPS30Component:
esphome::PollingComponent esphome::i2c::I2CDevice esphome::Component

Public Member Functions

void set_pm_1_0_sensor (sensor::Sensor *pm_1_0)
void set_pm_2_5_sensor (sensor::Sensor *pm_2_5)
void set_pm_4_0_sensor (sensor::Sensor *pm_4_0)
void set_pm_10_0_sensor (sensor::Sensor *pm_10_0)
void set_pmc_0_5_sensor (sensor::Sensor *pmc_0_5)
void set_pmc_1_0_sensor (sensor::Sensor *pmc_1_0)
void set_pmc_2_5_sensor (sensor::Sensor *pmc_2_5)
void set_pmc_4_0_sensor (sensor::Sensor *pmc_4_0)
void set_pmc_10_0_sensor (sensor::Sensor *pmc_10_0)
void set_pm_size_sensor (sensor::Sensor *pm_size)
void setup () override
void update () override
void dump_config () override
float get_setup_priority () const override
- Public Member Functions inherited from esphome::PollingComponent
 PollingComponent ()
 PollingComponent (uint32_t update_interval)
 Initialize this polling component with the given update interval in ms. More...
virtual void set_update_interval (uint32_t update_interval)
 Manually set the update interval in ms for this polling object. More...
void call_setup () override
virtual uint32_t get_update_interval () const
 Get the update interval in ms of this sensor. More...
- Public Member Functions inherited from esphome::Component
virtual void loop ()
 This method will be called repeatedly. More...
float get_actual_setup_priority () const
void set_setup_priority (float priority)
virtual float get_loop_priority () const
 priority of loop(). More...
void call ()
virtual void on_shutdown ()
virtual void on_safe_shutdown ()
uint32_t get_component_state () const
virtual void mark_failed ()
 Mark this component as failed. More...
bool is_failed ()
virtual bool can_proceed ()
bool status_has_warning ()
bool status_has_error ()
void status_set_warning ()
void status_set_error ()
void status_clear_warning ()
void status_clear_error ()
void status_momentary_warning (const std::string &name, uint32_t length=5000)
void status_momentary_error (const std::string &name, uint32_t length=5000)
bool has_overridden_loop () const
void set_component_source (const char *source)
 Set where this component was loaded from for some debug messages. More...
const char * get_component_source () const
 Get the integration where this component was declared as a string. More...
- Public Member Functions inherited from esphome::i2c::I2CDevice
 I2CDevice ()=default
void set_i2c_address (uint8_t address)
void set_i2c_bus (I2CBus *bus)
I2CRegister reg (uint8_t a_register)
ErrorCode read (uint8_t *data, size_t len)
ErrorCode read_register (uint8_t a_register, uint8_t *data, size_t len)
ErrorCode write (const uint8_t *data, uint8_t len)
ErrorCode write_register (uint8_t a_register, const uint8_t *data, size_t len)
bool read_bytes (uint8_t a_register, uint8_t *data, uint8_t len)
bool read_bytes_raw (uint8_t *data, uint8_t len)
template<size_t N>
optional< std::array< uint8_t, N > > read_bytes (uint8_t a_register)
template<size_t N>
optional< std::array< uint8_t, N > > read_bytes_raw ()
bool read_bytes_16 (uint8_t a_register, uint16_t *data, uint8_t len)
bool read_byte (uint8_t a_register, uint8_t *data)
optional< uint8_t > read_byte (uint8_t a_register)
bool read_byte_16 (uint8_t a_register, uint16_t *data)
bool write_bytes (uint8_t a_register, const uint8_t *data, uint8_t len)
bool write_bytes (uint8_t a_register, const std::vector< uint8_t > &data)
template<size_t N>
bool write_bytes (uint8_t a_register, const std::array< uint8_t, N > &data)
bool write_bytes_16 (uint8_t a_register, const uint16_t *data, uint8_t len)
bool write_byte (uint8_t a_register, uint8_t data)
bool write_byte_16 (uint8_t a_register, uint16_t data)

Protected Types

enum  ErrorCode {

Protected Member Functions

bool write_command_ (uint16_t command)
bool read_data_ (uint16_t *data, uint8_t len)
uint8_t sht_crc_ (uint8_t data1, uint8_t data2)
bool start_continuous_measurement_ ()
- Protected Member Functions inherited from esphome::Component
virtual void call_loop ()
virtual void call_dump_config ()
void set_interval (const std::string &name, uint32_t interval, std::function< void()> &&f)
 Set an interval function with a unique name. More...
void set_interval (uint32_t interval, std::function< void()> &&f)
bool cancel_interval (const std::string &name)
 Cancel an interval function. More...
void set_retry (const std::string &name, uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult()> &&f, float backoff_increase_factor=1.0f)
 Set an retry function with a unique name. More...
void set_retry (uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult()> &&f, float backoff_increase_factor=1.0f)
bool cancel_retry (const std::string &name)
 Cancel a retry function. More...
void set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f)
 Set a timeout function with a unique name. More...
void set_timeout (uint32_t timeout, std::function< void()> &&f)
bool cancel_timeout (const std::string &name)
 Cancel a timeout function. More...
void defer (const std::string &name, std::function< void()> &&f)
 Defer a callback to the next loop() call. More...
void defer (std::function< void()> &&f)
 Defer a callback to the next loop() call. More...
bool cancel_defer (const std::string &name)
 Cancel a defer callback using the specified name, name must not be empty. More...

Protected Attributes

char serial_number_ [17] = {0}
uint16_t raw_firmware_version_
 Terminating NULL character. More...
uint8_t skipped_data_read_cycles_ = 0
enum esphome::sps30::SPS30Component::ErrorCode UNKNOWN
sensor::Sensorpm_1_0_sensor_ {nullptr}
sensor::Sensorpm_2_5_sensor_ {nullptr}
sensor::Sensorpm_4_0_sensor_ {nullptr}
sensor::Sensorpm_10_0_sensor_ {nullptr}
sensor::Sensorpmc_0_5_sensor_ {nullptr}
sensor::Sensorpmc_1_0_sensor_ {nullptr}
sensor::Sensorpmc_2_5_sensor_ {nullptr}
sensor::Sensorpmc_4_0_sensor_ {nullptr}
sensor::Sensorpmc_10_0_sensor_ {nullptr}
sensor::Sensorpm_size_sensor_ {nullptr}
- Protected Attributes inherited from esphome::PollingComponent
uint32_t update_interval_
- Protected Attributes inherited from esphome::Component
uint32_t component_state_ {0x0000}
 State of this component. More...
float setup_priority_override_ {NAN}
const char * component_source_ = nullptr
- Protected Attributes inherited from esphome::i2c::I2CDevice
uint8_t address_ {0x00}
I2CBusbus_ {nullptr}

Detailed Description

This class implements support for the Sensirion SPS30 i2c/UART Particulate Matter PM1.0, PM2.5, PM4, PM10 Air Quality sensors.

Definition at line 12 of file sps30.h.

Member Enumeration Documentation

◆ ErrorCode


Definition at line 40 of file sps30.h.

Member Function Documentation

◆ dump_config()

void esphome::sps30::SPS30Component::dump_config ( )

Reimplemented from esphome::Component.

Definition at line 65 of file sps30.cpp.

◆ get_setup_priority()

float esphome::sps30::SPS30Component::get_setup_priority ( ) const

Reimplemented from esphome::Component.

Definition at line 29 of file sps30.h.

◆ read_data_()

bool esphome::sps30::SPS30Component::read_data_ ( uint16_t *  data,
uint8_t  len 

Definition at line 249 of file sps30.cpp.

◆ set_pm_10_0_sensor()

void esphome::sps30::SPS30Component::set_pm_10_0_sensor ( sensor::Sensor pm_10_0)

Definition at line 17 of file sps30.h.

◆ set_pm_1_0_sensor()

void esphome::sps30::SPS30Component::set_pm_1_0_sensor ( sensor::Sensor pm_1_0)

Definition at line 14 of file sps30.h.

◆ set_pm_2_5_sensor()

void esphome::sps30::SPS30Component::set_pm_2_5_sensor ( sensor::Sensor pm_2_5)

Definition at line 15 of file sps30.h.

◆ set_pm_4_0_sensor()

void esphome::sps30::SPS30Component::set_pm_4_0_sensor ( sensor::Sensor pm_4_0)

Definition at line 16 of file sps30.h.

◆ set_pm_size_sensor()

void esphome::sps30::SPS30Component::set_pm_size_sensor ( sensor::Sensor pm_size)

Definition at line 24 of file sps30.h.

◆ set_pmc_0_5_sensor()

void esphome::sps30::SPS30Component::set_pmc_0_5_sensor ( sensor::Sensor pmc_0_5)

Definition at line 18 of file sps30.h.

◆ set_pmc_10_0_sensor()

void esphome::sps30::SPS30Component::set_pmc_10_0_sensor ( sensor::Sensor pmc_10_0)

Definition at line 22 of file sps30.h.

◆ set_pmc_1_0_sensor()

void esphome::sps30::SPS30Component::set_pmc_1_0_sensor ( sensor::Sensor pmc_1_0)

Definition at line 19 of file sps30.h.

◆ set_pmc_2_5_sensor()

void esphome::sps30::SPS30Component::set_pmc_2_5_sensor ( sensor::Sensor pmc_2_5)

Definition at line 20 of file sps30.h.

◆ set_pmc_4_0_sensor()

void esphome::sps30::SPS30Component::set_pmc_4_0_sensor ( sensor::Sensor pmc_4_0)

Definition at line 21 of file sps30.h.

◆ setup()

void esphome::sps30::SPS30Component::setup ( )

Deferred Sensor initialization

Firmware version identification

Serial number identification

Reimplemented from esphome::Component.

Definition at line 23 of file sps30.cpp.

◆ sht_crc_()

uint8_t esphome::sps30::SPS30Component::sht_crc_ ( uint8_t  data1,
uint8_t  data2 

Definition at line 213 of file sps30.cpp.

◆ start_continuous_measurement_()

bool esphome::sps30::SPS30Component::start_continuous_measurement_ ( )

Definition at line 236 of file sps30.cpp.

◆ update()

void esphome::sps30::SPS30Component::update ( )

Check if warning flag active (sensor reconnected?)

Sensor restarted and reading attempt made next cycle

Check if measurement is ready before reading the value

The following logic is required to address the cases when a sensor is quickly replaced before it's marked as failed so that new sensor is eventually forced to be reinitialized for continuous measurement.

Reading and converting Mass concentration

Reading and converting Number concentration

Reading and converting Typical size

Implements esphome::PollingComponent.

Definition at line 108 of file sps30.cpp.

◆ write_command_()

bool esphome::sps30::SPS30Component::write_command_ ( uint16_t  command)

Definition at line 208 of file sps30.cpp.

Field Documentation

◆ pm_10_0_sensor_

sensor::Sensor* esphome::sps30::SPS30Component::pm_10_0_sensor_ {nullptr}

Definition at line 53 of file sps30.h.

◆ pm_1_0_sensor_

sensor::Sensor* esphome::sps30::SPS30Component::pm_1_0_sensor_ {nullptr}

Definition at line 50 of file sps30.h.

◆ pm_2_5_sensor_

sensor::Sensor* esphome::sps30::SPS30Component::pm_2_5_sensor_ {nullptr}

Definition at line 51 of file sps30.h.

◆ pm_4_0_sensor_

sensor::Sensor* esphome::sps30::SPS30Component::pm_4_0_sensor_ {nullptr}

Definition at line 52 of file sps30.h.

◆ pm_size_sensor_

sensor::Sensor* esphome::sps30::SPS30Component::pm_size_sensor_ {nullptr}

Definition at line 59 of file sps30.h.

◆ pmc_0_5_sensor_

sensor::Sensor* esphome::sps30::SPS30Component::pmc_0_5_sensor_ {nullptr}

Definition at line 54 of file sps30.h.

◆ pmc_10_0_sensor_

sensor::Sensor* esphome::sps30::SPS30Component::pmc_10_0_sensor_ {nullptr}

Definition at line 58 of file sps30.h.

◆ pmc_1_0_sensor_

sensor::Sensor* esphome::sps30::SPS30Component::pmc_1_0_sensor_ {nullptr}

Definition at line 55 of file sps30.h.

◆ pmc_2_5_sensor_

sensor::Sensor* esphome::sps30::SPS30Component::pmc_2_5_sensor_ {nullptr}

Definition at line 56 of file sps30.h.

◆ pmc_4_0_sensor_

sensor::Sensor* esphome::sps30::SPS30Component::pmc_4_0_sensor_ {nullptr}

Definition at line 57 of file sps30.h.

◆ raw_firmware_version_

uint16_t esphome::sps30::SPS30Component::raw_firmware_version_

Terminating NULL character.

Definition at line 36 of file sps30.h.

◆ serial_number_

char esphome::sps30::SPS30Component::serial_number_[17] = {0}

Definition at line 35 of file sps30.h.

◆ skipped_data_read_cycles_

uint8_t esphome::sps30::SPS30Component::skipped_data_read_cycles_ = 0

Definition at line 38 of file sps30.h.


enum esphome::sps30::SPS30Component::ErrorCode esphome::sps30::SPS30Component::UNKNOWN

The documentation for this class was generated from the following files: