ESPHome 2025.8.0b2
|
#include <adc_sensor.h>
Data Structures | |
struct | SetupFlags |
Public Member Functions | |
void | update () override |
Update the sensor's state by reading the current ADC value. | |
void | setup () override |
Set up the ADC sensor by initializing hardware and calibration parameters. | |
void | dump_config () override |
Output the configuration details of the ADC sensor for debugging purposes. | |
float | get_setup_priority () const override |
Return the setup priority for this component. | |
void | set_adc_channel (const adc_dt_spec *channel) |
Set the ADC channel to be used by the ADC sensor. | |
void | set_pin (InternalGPIOPin *pin) |
Set the GPIO pin to be used by the ADC sensor. | |
void | set_output_raw (bool output_raw) |
Enable or disable the output of raw ADC values (unprocessed data). | |
void | set_sample_count (uint8_t sample_count) |
Set the number of samples to be taken for ADC readings to improve accuracy. | |
void | set_sampling_mode (SamplingMode sampling_mode) |
Set the sampling mode for how multiple ADC samples are combined into a single measurement. | |
float | sample () override |
Perform a single ADC sampling operation and return the measured value. | |
void | set_attenuation (adc_atten_t attenuation) |
Set the ADC attenuation level to adjust the input voltage range. | |
void | set_channel (adc_unit_t unit, adc_channel_t channel) |
Configure the ADC to use a specific channel on a specific ADC unit. | |
void | set_autorange (bool autorange) |
Set whether autoranging should be enabled for the ADC. | |
void | set_is_temperature () |
![]() | |
Sensor () | |
int8_t | get_accuracy_decimals () |
Get the accuracy in decimals, using the manual override if set. | |
void | set_accuracy_decimals (int8_t accuracy_decimals) |
Manually set the accuracy in decimals. | |
StateClass | get_state_class () |
Get the state class, using the manual override if set. | |
void | set_state_class (StateClass state_class) |
Manually set the state class. | |
bool | get_force_update () const |
Get whether force update mode is enabled. | |
void | set_force_update (bool force_update) |
Set force update mode. | |
void | add_filter (Filter *filter) |
Add a filter to the filter chain. Will be appended to the back. | |
void | add_filters (const std::vector< Filter * > &filters) |
Add a list of vectors to the back of the filter chain. | |
void | set_filters (const std::vector< Filter * > &filters) |
Clear the filters and replace them by filters. | |
void | clear_filters () |
Clear the entire filter chain. | |
float | get_state () const |
Getter-syntax for .state. | |
float | get_raw_state () const |
Getter-syntax for .raw_state. | |
void | publish_state (float state) |
Publish a new state to the front-end. | |
void | add_on_state_callback (std::function< void(float)> &&callback) |
Add a callback that will be called every time a filtered value arrives. | |
void | add_on_raw_state_callback (std::function< void(float)> &&callback) |
Add a callback that will be called every time the sensor sends a raw value. | |
void | internal_send_state_to_frontend (float state) |
![]() | |
const StringRef & | get_name () const |
void | set_name (const char *name) |
bool | has_own_name () const |
std::string | get_object_id () const |
void | set_object_id (const char *object_id) |
uint32_t | get_object_id_hash () |
bool | is_internal () const |
void | set_internal (bool internal) |
bool | is_disabled_by_default () const |
void | set_disabled_by_default (bool disabled_by_default) |
EntityCategory | get_entity_category () const |
void | set_entity_category (EntityCategory entity_category) |
std::string | get_icon () const |
void | set_icon (const char *icon) |
StringRef | get_icon_ref () const |
uint32_t | get_device_id () const |
void | set_device (Device *device) |
bool | has_state () const |
void | set_has_state (bool state) |
![]() | |
std::string | get_device_class () |
Get the device class, using the manual override if set. | |
void | set_device_class (const char *device_class) |
Manually set the device class. | |
StringRef | get_device_class_ref () const |
Get the device class as StringRef. | |
![]() | |
std::string | get_unit_of_measurement () |
Get the unit of measurement, using the manual override if set. | |
void | set_unit_of_measurement (const char *unit_of_measurement) |
Manually set the unit of measurement. | |
StringRef | get_unit_of_measurement_ref () const |
Get the unit of measurement as StringRef. | |
![]() | |
PollingComponent () | |
PollingComponent (uint32_t update_interval) | |
Initialize this polling component with the given update interval in ms. | |
virtual void | set_update_interval (uint32_t update_interval) |
Manually set the update interval in ms for this polling object. | |
void | call_setup () override |
virtual uint32_t | get_update_interval () const |
Get the update interval in ms of this sensor. | |
void | start_poller () |
void | stop_poller () |
![]() | |
virtual void | loop () |
This method will be called repeatedly. | |
float | get_actual_setup_priority () const |
void | set_setup_priority (float priority) |
virtual float | get_loop_priority () const |
priority of loop(). | |
void | call () |
virtual void | on_shutdown () |
virtual void | on_safe_shutdown () |
virtual bool | teardown () |
Called during teardown to allow component to gracefully finish operations. | |
virtual void | on_powerdown () |
Called after teardown is complete to power down hardware. | |
uint8_t | get_component_state () const |
void | reset_to_construction_state () |
Reset this component back to the construction state to allow setup to run again. | |
bool | is_in_loop_state () const |
Check if this component has completed setup and is in the loop state. | |
virtual void | mark_failed () |
Mark this component as failed. | |
void | mark_failed (const char *message) |
void | disable_loop () |
Disable this component's loop. | |
void | enable_loop () |
Enable this component's loop. | |
void | enable_loop_soon_any_context () |
Thread and ISR-safe version of enable_loop() that can be called from any context. | |
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=nullptr) |
void | status_set_error (const char *message=nullptr) |
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. | |
const char * | get_component_source () const |
Get the integration where this component was declared as a string. | |
bool | should_warn_of_blocking (uint32_t blocking_time) |
![]() |
Protected Member Functions | |
float | sample_autorange_ () |
float | sample_fixed_attenuation_ () |
![]() | |
virtual uint32_t | hash_base () |
The hash_base() function has been deprecated. | |
void | calc_object_id_ () |
![]() | |
virtual void | call_loop () |
virtual void | call_dump_config () |
void | set_component_state_ (uint8_t state) |
Helper to set component state (clears state bits and sets new state) | |
void | set_interval (const std::string &name, uint32_t interval, std::function< void()> &&f) |
Set an interval function with a unique name. | |
void | set_interval (const char *name, uint32_t interval, std::function< void()> &&f) |
Set an interval function with a const char* name. | |
void | set_interval (uint32_t interval, std::function< void()> &&f) |
bool | cancel_interval (const std::string &name) |
Cancel an interval function. | |
bool | cancel_interval (const char *name) |
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. | |
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. | |
void | set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f) |
Set a timeout function with a unique name. | |
void | set_timeout (const char *name, uint32_t timeout, std::function< void()> &&f) |
Set a timeout function with a const char* name. | |
void | set_timeout (uint32_t timeout, std::function< void()> &&f) |
bool | cancel_timeout (const std::string &name) |
Cancel a timeout function. | |
bool | cancel_timeout (const char *name) |
void | defer (const std::string &name, std::function< void()> &&f) |
Defer a callback to the next loop() call. | |
void | defer (const char *name, std::function< void()> &&f) |
Defer a callback to the next loop() call with a const char* name. | |
void | defer (std::function< void()> &&f) |
Defer a callback to the next loop() call. | |
bool | cancel_defer (const std::string &name) |
Cancel a defer callback using the specified name, name must not be empty. | |
Protected Attributes | |
uint8_t | sample_count_ {1} |
bool | output_raw_ {false} |
InternalGPIOPin * | pin_ |
SamplingMode | sampling_mode_ {SamplingMode::AVG} |
bool | autorange_ {false} |
adc_oneshot_unit_handle_t | adc_handle_ {nullptr} |
adc_cali_handle_t | calibration_handle_ {nullptr} |
adc_atten_t | attenuation_ {ADC_ATTEN_DB_0} |
adc_channel_t | channel_ {} |
adc_unit_t | adc_unit_ {} |
struct esphome::adc::ADCSensor::SetupFlags | setup_flags_ |
bool | is_temperature_ {false} |
const struct adc_dt_spec * | channel_ = nullptr |
![]() | |
std::unique_ptr< CallbackManager< void(float)> > | raw_callback_ |
Storage for raw state callbacks (lazy allocated). | |
CallbackManager< void(float)> | callback_ |
Storage for filtered state callbacks. | |
Filter * | filter_list_ {nullptr} |
Store all active filters. | |
int8_t | accuracy_decimals_ {-1} |
Accuracy in decimals (-1 = not set) | |
StateClass | state_class_ {STATE_CLASS_NONE} |
State class (STATE_CLASS_NONE = not set) | |
struct esphome::sensor::Sensor::SensorFlags | sensor_flags_ |
![]() | |
StringRef | name_ |
const char * | object_id_c_str_ {nullptr} |
const char * | icon_c_str_ {nullptr} |
uint32_t | object_id_hash_ {} |
Device * | device_ {} |
struct esphome::EntityBase::EntityFlags | flags_ |
![]() | |
const char * | device_class_ {nullptr} |
Device class override. | |
![]() | |
const char * | unit_of_measurement_ {nullptr} |
Unit of measurement override. | |
![]() | |
uint32_t | update_interval_ |
![]() | |
const char * | component_source_ {nullptr} |
uint16_t | warn_if_blocking_over_ {WARN_IF_BLOCKING_OVER_MS} |
Warn if blocked for this many ms (max 65.5s) | |
uint8_t | component_state_ {0x00} |
State of this component - each bit has a purpose: Bits 0-2: Component state (0x00=CONSTRUCTION, 0x01=SETUP, 0x02=LOOP, 0x03=FAILED, 0x04=LOOP_DONE) Bit 3: STATUS_LED_WARNING Bit 4: STATUS_LED_ERROR Bits 5-7: Unused - reserved for future expansion. | |
volatile bool | pending_enable_loop_ {false} |
ISR-safe flag for enable_loop_soon_any_context. | |
Static Protected Attributes | |
static adc_oneshot_unit_handle_t | shared_adc_handles [2] = {nullptr, nullptr} |
Additional Inherited Members | |
![]() | |
float | state |
This member variable stores the last state that has passed through all filters. | |
float | raw_state |
This member variable stores the current raw state of the sensor, without any filters applied. | |
Definition at line 57 of file adc_sensor.h.
|
overridevirtual |
Output the configuration details of the ADC sensor for debugging purposes.
This method is called during the ESPHome setup process to log the configuration.
Reimplemented from esphome::Component.
Definition at line 120 of file adc_sensor_esp32.cpp.
|
overridevirtual |
Return the setup priority for this component.
Components with higher priority are initialized earlier during setup.
Reimplemented from esphome::Component.
Definition at line 82 of file adc_sensor_common.cpp.
|
overridevirtual |
Perform a single ADC sampling operation and return the measured value.
This function handles raw readings, calibration, and averaging as needed.
Implements esphome::voltage_sampler::VoltageSampler.
Definition at line 146 of file adc_sensor_esp32.cpp.
|
protected |
Definition at line 202 of file adc_sensor_esp32.cpp.
|
protected |
Definition at line 154 of file adc_sensor_esp32.cpp.
|
inline |
Set the ADC channel to be used by the ADC sensor.
channel | Pointer to an adc_dt_spec structure representing the ADC channel. |
Definition at line 79 of file adc_sensor.h.
|
inline |
Set the ADC attenuation level to adjust the input voltage range.
This determines how the ADC interprets input voltages, allowing for greater precision or the ability to measure higher voltages depending on the chosen attenuation level.
attenuation | The desired ADC attenuation level (e.g., ADC_ATTEN_DB_0, ADC_ATTEN_DB_11). |
Definition at line 114 of file adc_sensor.h.
|
inline |
Set whether autoranging should be enabled for the ADC.
Autoranging automatically adjusts the attenuation level to handle a wide range of input voltages.
autorange | Boolean indicating whether to enable autoranging. |
Definition at line 128 of file adc_sensor.h.
|
inline |
Configure the ADC to use a specific channel on a specific ADC unit.
This sets the channel for single-shot or continuous ADC measurements.
unit | The ADC unit to use (ADC_UNIT_1 or ADC_UNIT_2). |
channel | The ADC channel to configure, such as ADC_CHANNEL_0, ADC_CHANNEL_3, etc. |
Definition at line 120 of file adc_sensor.h.
|
inline |
Definition at line 132 of file adc_sensor.h.
|
inline |
Enable or disable the output of raw ADC values (unprocessed data).
output_raw | Boolean indicating whether to output raw ADC values (true) or processed values (false). |
Definition at line 87 of file adc_sensor.h.
|
inline |
Set the GPIO pin to be used by the ADC sensor.
pin | Pointer to an InternalGPIOPin representing the ADC input pin. |
Definition at line 83 of file adc_sensor.h.
void esphome::adc::ADCSensor::set_sample_count | ( | uint8_t | sample_count | ) |
Set the number of samples to be taken for ADC readings to improve accuracy.
A higher sample count reduces noise but increases the reading time.
sample_count | The number of samples (e.g., 1, 4, 8). |
Definition at line 74 of file adc_sensor_common.cpp.
void esphome::adc::ADCSensor::set_sampling_mode | ( | SamplingMode | sampling_mode | ) |
Set the sampling mode for how multiple ADC samples are combined into a single measurement.
When multiple samples are taken (controlled by set_sample_count), they can be combined in one of three ways:
sampling_mode | The desired sampling mode to use for aggregating ADC samples. |
Definition at line 80 of file adc_sensor_common.cpp.
|
overridevirtual |
Set up the ADC sensor by initializing hardware and calibration parameters.
This method is called once during device initialization.
Reimplemented from esphome::Component.
Definition at line 39 of file adc_sensor_esp32.cpp.
|
overridevirtual |
Update the sensor's state by reading the current ADC value.
This method is called periodically based on the update interval.
Implements esphome::PollingComponent.
Definition at line 68 of file adc_sensor_common.cpp.
|
protected |
Definition at line 145 of file adc_sensor.h.
|
protected |
Definition at line 149 of file adc_sensor.h.
|
protected |
Definition at line 147 of file adc_sensor.h.
|
protected |
Definition at line 144 of file adc_sensor.h.
|
protected |
Definition at line 146 of file adc_sensor.h.
|
protected |
Definition at line 148 of file adc_sensor.h.
|
protected |
Definition at line 165 of file adc_sensor.h.
|
protected |
Definition at line 161 of file adc_sensor.h.
|
protected |
Definition at line 137 of file adc_sensor.h.
|
protected |
Definition at line 138 of file adc_sensor.h.
|
protected |
Definition at line 136 of file adc_sensor.h.
|
protected |
Definition at line 139 of file adc_sensor.h.
|
protected |
|
staticprotected |
Definition at line 157 of file adc_sensor.h.