ESPHome 2026.3.2
Loading...
Searching...
No Matches
esphome::sensor::SortedWindowFilter Class Reference

Base class for filters that need a sorted window (Median, Quantile). More...

#include <filter.h>

Inheritance diagram for esphome::sensor::SortedWindowFilter:
esphome::sensor::SlidingWindowFilter esphome::sensor::Filter esphome::sensor::MedianFilter esphome::sensor::QuantileFilter

Public Member Functions

 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

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
virtual float compute_result ()=0
 Called by new_value() to compute the filtered result from the current window.
 

Additional Inherited Members

- 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
 
Filternext_ {nullptr}
 
Sensorparent_ {nullptr}
 

Detailed Description

Base class for filters that need a sorted window (Median, Quantile).

Extends SlidingWindowFilter to provide a helper that filters out NaN values. Derived classes use std::nth_element for efficient partial sorting.

Definition at line 102 of file filter.h.

Member Function Documentation

◆ get_window_values_()

FixedVector< float > esphome::sensor::SortedWindowFilter::get_window_values_ ( )
protected

Helper to get non-NaN values from the window (not sorted - caller will use nth_element) Returns empty FixedVector if all values are NaN.

Definition at line 76 of file filter.cpp.

◆ SlidingWindowFilter()

esphome::sensor::SlidingWindowFilter::SlidingWindowFilter ( size_t window_size,
size_t send_every,
size_t send_first_at )

Definition at line 55 of file filter.cpp.


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