ESPHome
2025.4.0
|
Temperature, pressure, and humidity sensor. More...
#include <ms8607.h>
Data Structures | |
struct | CalibrationValues |
This device's pressure & temperature calibration values, read from PROM. More... | |
Public Types | |
enum | ErrorCode { ErrorCode::NONE = 0, ErrorCode::PTH_RESET_FAILED = 1, ErrorCode::PT_RESET_FAILED = 2, ErrorCode::H_RESET_FAILED = 3, ErrorCode::PROM_READ_FAILED = 4, ErrorCode::PROM_CRC_FAILED = 5 } |
enum | SetupStatus { SetupStatus::NEEDS_RESET, SetupStatus::NEEDS_PROM_READ, SetupStatus::SUCCESSFUL } |
Public Member Functions | |
virtual | ~MS8607Component ()=default |
void | setup () override |
void | update () override |
void | dump_config () override |
float | get_setup_priority () const override |
void | set_temperature_sensor (sensor::Sensor *temperature_sensor) |
void | set_pressure_sensor (sensor::Sensor *pressure_sensor) |
void | set_humidity_sensor (sensor::Sensor *humidity_sensor) |
void | set_humidity_device (MS8607HumidityDevice *humidity_device) |
![]() | |
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... | |
void | start_poller () |
void | stop_poller () |
![]() | |
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... | |
void | mark_failed (const char *message) |
bool | is_failed () const |
bool | is_ready () const |
virtual bool | can_proceed () |
bool | status_has_warning () const |
bool | status_has_error () const |
void | status_set_warning (const char *message="unspecified") |
void | status_set_error (const char *message="unspecified") |
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... | |
![]() | |
I2CDevice ()=default | |
we use the C++ default constructor More... | |
void | set_i2c_address (uint8_t address) |
We store the address of the device on the bus. More... | |
void | set_i2c_bus (I2CBus *bus) |
we store the pointer to the I2CBus to use More... | |
I2CRegister | reg (uint8_t a_register) |
calls the I2CRegister constructor More... | |
I2CRegister16 | reg16 (uint16_t a_register) |
calls the I2CRegister16 constructor More... | |
ErrorCode | read (uint8_t *data, size_t len) |
reads an array of bytes from the device using an I2CBus More... | |
ErrorCode | read_register (uint8_t a_register, uint8_t *data, size_t len, bool stop=true) |
reads an array of bytes from a specific register in the I²C device More... | |
ErrorCode | read_register16 (uint16_t a_register, uint8_t *data, size_t len, bool stop=true) |
reads an array of bytes from a specific register in the I²C device More... | |
ErrorCode | write (const uint8_t *data, size_t len, bool stop=true) |
writes an array of bytes to a device using an I2CBus More... | |
ErrorCode | write_register (uint8_t a_register, const uint8_t *data, size_t len, bool stop=true) |
writes an array of bytes to a specific register in the I²C device More... | |
ErrorCode | write_register16 (uint16_t a_register, const uint8_t *data, size_t len, bool stop=true) |
write an array of bytes to a specific register in the I²C device More... | |
bool | read_bytes (uint8_t a_register, uint8_t *data, uint8_t len) |
Compat APIs All methods below have been added for compatibility reasons. More... | |
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, bool stop=true) |
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 stop=true) |
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 stop=true) |
bool | write_byte_16 (uint8_t a_register, uint16_t data) |
Protected Member Functions | |
bool | read_calibration_values_from_prom_ () |
Read and store the Pressure & Temperature calibration settings from the PROM. More... | |
void | request_read_temperature_ () |
Start async temperature read. More... | |
void | read_temperature_ () |
Process async temperature read. More... | |
void | request_read_pressure_ (uint32_t raw_temperature) |
start async pressure read More... | |
void | read_pressure_ (uint32_t raw_temperature) |
process async pressure read More... | |
void | request_read_humidity_ (float temperature_float) |
start async humidity read More... | |
void | read_humidity_ (float temperature_float) |
process async humidity read More... | |
void | calculate_values_ (uint32_t raw_temperature, uint32_t raw_pressure) |
use raw temperature & pressure to calculate & publish values More... | |
![]() | |
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(uint8_t)> &&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(uint8_t)> &&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 | |
sensor::Sensor * | temperature_sensor_ |
sensor::Sensor * | pressure_sensor_ |
sensor::Sensor * | humidity_sensor_ |
MS8607HumidityDevice * | humidity_device_ |
I2CDevice object to communicate with secondary I2C address for the humidity sensor. More... | |
struct esphome::ms8607::MS8607Component::CalibrationValues | calibration_values_ |
ErrorCode | error_code_ |
Keep track of the reason why this component failed, to augment the dumped config. More... | |
SetupStatus | setup_status_ |
Current step in the multi-step & possibly delayed setup() process. More... | |
![]() | |
uint32_t | update_interval_ |
![]() | |
uint32_t | component_state_ {0x0000} |
State of this component. More... | |
float | setup_priority_override_ {NAN} |
const char * | component_source_ {nullptr} |
std::string | error_message_ {} |
![]() | |
uint8_t | address_ {0x00} |
store the address of the device on the bus More... | |
I2CBus * | bus_ {nullptr} |
pointer to I2CBus instance More... | |
Temperature, pressure, and humidity sensor.
By default, the MS8607 measures sensors at the highest resolution. A potential enhancement would be to expose the resolution as a configurable setting. A lower resolution speeds up ADC conversion time & uses less power.
Other implementations:
|
strong |
Enumerator | |
---|---|
NONE | Component hasn't failed (yet?) |
PTH_RESET_FAILED | Both the Pressure/Temperature address and the Humidity address failed to reset. |
PT_RESET_FAILED | Asking the Pressure/Temperature sensor to reset failed. |
H_RESET_FAILED | Asking the Humidity sensor to reset failed. |
PROM_READ_FAILED | Reading the PROM calibration values failed. |
PROM_CRC_FAILED | The PROM calibration values failed the CRC check. |
Definition at line 42 of file ms8607.cpp.
|
strong |
Definition at line 57 of file ms8607.cpp.
|
virtualdefault |
|
protected |
use raw temperature & pressure to calculate & publish values
Definition at line 370 of file ms8607.cpp.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 137 of file ms8607.cpp.
|
inlineoverridevirtual |
Reimplemented from esphome::Component.
|
protected |
Read and store the Pressure & Temperature calibration settings from the PROM.
Intended to be called during setup(), this will set the failure_reason_
Definition at line 172 of file ms8607.cpp.
|
protected |
process async humidity read
Definition at line 332 of file ms8607.cpp.
|
protected |
process async pressure read
Definition at line 310 of file ms8607.cpp.
|
protected |
Process async temperature read.
Definition at line 288 of file ms8607.cpp.
|
protected |
start async humidity read
Definition at line 320 of file ms8607.cpp.
|
protected |
start async pressure read
Definition at line 299 of file ms8607.cpp.
|
protected |
Start async temperature read.
Definition at line 276 of file ms8607.cpp.
|
inline |
|
inline |
|
inline |
|
inline |
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 69 of file ms8607.cpp.
|
overridevirtual |
Implements esphome::PollingComponent.
Definition at line 125 of file ms8607.cpp.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |