ESPHome 2026.5.0
Loading...
Searching...
No Matches
esphome::sensor::SlidingWindowMovingAverageFilter Class Reference

Simple sliding window moving average filter. More...

#include <filter.h>

Inheritance diagram for esphome::sensor::SlidingWindowMovingAverageFilter:
esphome::sensor::SlidingWindowFilter esphome::sensor::Filter

Public Member Functions

 SlidingWindowFilter (uint16_t window_size, uint16_t send_every, uint16_t send_first_at)
 Construct a SlidingWindowMovingAverageFilter.
 
- Public Member Functions inherited from esphome::sensor::SlidingWindowFilter
 SlidingWindowFilter (uint16_t window_size, uint16_t send_every, uint16_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::SlidingWindowFilter

Additional Inherited Members

- Protected Attributes inherited from esphome::sensor::SlidingWindowFilter
FixedRingBuffer< float > window_
 Sliding window ring buffer - automatically overwrites oldest values when full.
 
uint16_t send_every_
 Send result every N values.
 
uint16_t send_at_
 Counter for send_every.
 
- Protected Attributes inherited from esphome::sensor::Filter
friend Sensor
 
Filternext_ {nullptr}
 
Sensorparent_ {nullptr}
 

Detailed Description

Simple sliding window moving average filter.

Essentially just takes takes the average of the last window_size values and pushes them out every send_every.

Definition at line 215 of file filter.h.

Member Function Documentation

◆ compute_result()

float esphome::sensor::SlidingWindowMovingAverageFilter::compute_result ( )
overrideprotectedvirtual

Implements esphome::sensor::SlidingWindowFilter.

Definition at line 132 of file filter.cpp.

◆ SlidingWindowFilter()

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

Construct a SlidingWindowMovingAverageFilter.

Parameters
window_sizeThe number of values that should be averaged.
send_everyAfter how many sensor values should a new one be pushed out.
send_first_atAfter 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.

Definition at line 56 of file filter.cpp.


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