ESPHome
2024.12.2
|
Base-class for all sensors. More...
#include <sensor.h>
Public Member Functions | |
Sensor () | |
int8_t | get_accuracy_decimals () |
Get the accuracy in decimals, using the manual override if set. More... | |
void | set_accuracy_decimals (int8_t accuracy_decimals) |
Manually set the accuracy in decimals. More... | |
StateClass | get_state_class () |
Get the state class, using the manual override if set. More... | |
void | set_state_class (StateClass state_class) |
Manually set the state class. More... | |
bool | get_force_update () const |
Get whether force update mode is enabled. More... | |
void | set_force_update (bool force_update) |
Set force update mode. More... | |
void | add_filter (Filter *filter) |
Add a filter to the filter chain. Will be appended to the back. More... | |
void | add_filters (const std::vector< Filter *> &filters) |
Add a list of vectors to the back of the filter chain. More... | |
void | set_filters (const std::vector< Filter *> &filters) |
Clear the filters and replace them by filters. More... | |
void | clear_filters () |
Clear the entire filter chain. More... | |
float | get_state () const |
Getter-syntax for .state. More... | |
float | get_raw_state () const |
Getter-syntax for .raw_state. More... | |
void | publish_state (float state) |
Publish a new state to the front-end. More... | |
void | add_on_state_callback (std::function< void(float)> &&callback) |
Add a callback that will be called every time a filtered value arrives. More... | |
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. More... | |
bool | has_state () const |
Return whether this sensor has gotten a full state (that passed through all filters) yet. More... | |
virtual std::string | unique_id () |
Override this method to set the unique ID of this sensor. More... | |
void | internal_send_state_to_frontend (float state) |
Public Member Functions inherited from esphome::EntityBase | |
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) |
Public Member Functions inherited from esphome::EntityBase_DeviceClass | |
std::string | get_device_class () |
Get the device class, using the manual override if set. More... | |
void | set_device_class (const char *device_class) |
Manually set the device class. More... | |
Public Member Functions inherited from esphome::EntityBase_UnitOfMeasurement | |
std::string | get_unit_of_measurement () |
Get the unit of measurement, using the manual override if set. More... | |
void | set_unit_of_measurement (const char *unit_of_measurement) |
Manually set the unit of measurement. More... | |
Data Fields | |
float | state |
This member variable stores the last state that has passed through all filters. More... | |
float | raw_state |
This member variable stores the current raw state of the sensor, without any filters applied. More... | |
Protected Attributes | |
CallbackManager< void(float)> | raw_callback_ |
Storage for raw state callbacks. More... | |
CallbackManager< void(float)> | callback_ |
Storage for filtered state callbacks. More... | |
Filter * | filter_list_ {nullptr} |
Store all active filters. More... | |
optional< int8_t > | accuracy_decimals_ |
Accuracy in decimals override. More... | |
optional< StateClass > | state_class_ {STATE_CLASS_NONE} |
State class override. More... | |
bool | force_update_ {false} |
Force update mode. More... | |
bool | has_state_ {false} |
Protected Attributes inherited from esphome::EntityBase | |
StringRef | name_ |
const char * | object_id_c_str_ {nullptr} |
const char * | icon_c_str_ {nullptr} |
uint32_t | object_id_hash_ |
bool | has_own_name_ {false} |
bool | internal_ {false} |
bool | disabled_by_default_ {false} |
EntityCategory | entity_category_ {ENTITY_CATEGORY_NONE} |
Protected Attributes inherited from esphome::EntityBase_DeviceClass | |
const char * | device_class_ {nullptr} |
Device class override. More... | |
Protected Attributes inherited from esphome::EntityBase_UnitOfMeasurement | |
const char * | unit_of_measurement_ {nullptr} |
Unit of measurement override. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from esphome::EntityBase | |
virtual uint32_t | hash_base () |
The hash_base() function has been deprecated. More... | |
void | calc_object_id_ () |
Base-class for all sensors.
A sensor has unit of measurement and can use publish_state to send out a new value with the specified accuracy.
|
explicit |
Definition at line 23 of file sensor.cpp.
void esphome::sensor::Sensor::add_filter | ( | Filter * | filter | ) |
Add a filter to the filter chain. Will be appended to the back.
Definition at line 57 of file sensor.cpp.
void esphome::sensor::Sensor::add_filters | ( | const std::vector< Filter *> & | filters | ) |
Add a list of vectors to the back of the filter chain.
This may look like:
sensor->add_filters({ LambdaFilter([&](float value) -> optional<float> { return 42/value; }), OffsetFilter(1), SlidingWindowMovingAverageFilter(15, 15), // average over last 15 values });
Definition at line 71 of file sensor.cpp.
void esphome::sensor::Sensor::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.
Definition at line 53 of file sensor.cpp.
void esphome::sensor::Sensor::add_on_state_callback | ( | std::function< void(float)> && | callback | ) |
Add a callback that will be called every time a filtered value arrives.
Definition at line 52 of file sensor.cpp.
void esphome::sensor::Sensor::clear_filters | ( | ) |
Clear the entire filter chain.
Definition at line 80 of file sensor.cpp.
int8_t esphome::sensor::Sensor::get_accuracy_decimals | ( | ) |
Get the accuracy in decimals, using the manual override if set.
Definition at line 25 of file sensor.cpp.
|
inline |
float esphome::sensor::Sensor::get_raw_state | ( | ) | const |
Getter-syntax for .raw_state.
Definition at line 87 of file sensor.cpp.
float esphome::sensor::Sensor::get_state | ( | ) | const |
Getter-syntax for .state.
Definition at line 86 of file sensor.cpp.
StateClass esphome::sensor::Sensor::get_state_class | ( | ) |
Get the state class, using the manual override if set.
Definition at line 33 of file sensor.cpp.
bool esphome::sensor::Sensor::has_state | ( | ) | const |
Return whether this sensor has gotten a full state (that passed through all filters) yet.
Definition at line 97 of file sensor.cpp.
void esphome::sensor::Sensor::internal_send_state_to_frontend | ( | float | state | ) |
Definition at line 90 of file sensor.cpp.
void esphome::sensor::Sensor::publish_state | ( | float | state | ) |
Publish a new state to the front-end.
First, the new state will be assigned to the raw_value. Then it's passed through all filters until it finally lands in the .value member variable and a callback is issued.
state | The state as a floating point number. |
Definition at line 39 of file sensor.cpp.
void esphome::sensor::Sensor::set_accuracy_decimals | ( | int8_t | accuracy_decimals | ) |
Manually set the accuracy in decimals.
Definition at line 30 of file sensor.cpp.
void esphome::sensor::Sensor::set_filters | ( | const std::vector< Filter *> & | filters | ) |
Clear the filters and replace them by filters.
Definition at line 76 of file sensor.cpp.
|
inline |
void esphome::sensor::Sensor::set_state_class | ( | StateClass | state_class | ) |
Manually set the state class.
Definition at line 32 of file sensor.cpp.
|
virtual |
Override this method to set the unique ID of this sensor.
Reimplemented in esphome::adc::ADCSensor, esphome::esp32_hall::ESP32HallSensor, esphome::uptime::UptimeSecondsSensor, and esphome::wifi_signal::WiFiSignalSensor.
Definition at line 88 of file sensor.cpp.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
float esphome::sensor::Sensor::raw_state |
float esphome::sensor::Sensor::state |
This member variable stores the last state that has passed through all filters.
On startup, when no state is available yet, this is NAN (not-a-number) and the validity can be checked using has_state().
This is exposed through a member variable for ease of use in esphome lambdas.
|
protected |