|
ESPHome 2025.12.0-dev
|
Simple quantile filter. More...
#include <filter.h>
Public Member Functions | |
| QuantileFilter (size_t window_size, size_t send_every, size_t send_first_at, float quantile) | |
| Construct a QuantileFilter. | |
| void | set_quantile (float quantile) |
Public Member Functions inherited from esphome::sensor::SortedWindowFilter | |
| SlidingWindowFilter (size_t window_size, size_t send_every, size_t send_first_at) | |
Public Member Functions inherited from esphome::sensor::SlidingWindowFilter | |
| SlidingWindowFilter (size_t window_size, size_t send_every, size_t send_first_at) | |
| optional< float > | new_value (float value) final |
Public Member Functions inherited from esphome::sensor::Filter | |
| virtual void | initialize (Sensor *parent, Filter *next) |
| Initialize this filter, please note this can be called more than once. | |
| void | input (float value) |
| void | output (float value) |
Protected Member Functions | |
| float | compute_result () override |
Protected Member Functions inherited from esphome::sensor::SortedWindowFilter | |
| FixedVector< float > | get_window_values_ () |
| Helper to get non-NaN values from the window (not sorted - caller will use nth_element) Returns empty FixedVector if all values are NaN. | |
Protected Member Functions inherited from esphome::sensor::SlidingWindowFilter | |
Protected Attributes | |
| float | quantile_ |
Protected Attributes inherited from esphome::sensor::SlidingWindowFilter | |
| FixedVector< float > | window_ |
| Access the sliding window values (ring buffer implementation) Use: for (size_t i = 0; i < window_count_; i++) { float val = window_[i]; }. | |
| size_t | window_head_ {0} |
| Index where next value will be written. | |
| size_t | window_count_ {0} |
| Number of valid values in window (0 to window_size_) | |
| size_t | window_size_ |
| Maximum window size. | |
| size_t | send_every_ |
| Send result every N values. | |
| size_t | send_at_ |
| Counter for send_every. | |
Protected Attributes inherited from esphome::sensor::Filter | |
| friend | Sensor |
| Filter * | next_ {nullptr} |
| Sensor * | parent_ {nullptr} |
Simple quantile filter.
Takes the quantile of the last <window_size> values and pushes it out every <send_every>.
|
explicit |
Construct a QuantileFilter.
| window_size | The number of values that should be used in quantile calculation. |
| send_every | After how many sensor values should a new one be pushed out. |
| send_first_at | After how many values to forward the very first value. Defaults to the first value on startup being published on the first raw value, so with no filter applied. Must be less than or equal to send_every. |
| quantile | float 0..1 to pick the requested quantile. Defaults to 0.9. |
Definition at line 119 of file filter.cpp.
|
overrideprotectedvirtual |
Implements esphome::sensor::SlidingWindowFilter.
Definition at line 122 of file filter.cpp.
|
inline |