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

Streaming moving average filter for batch windows (window_size == send_every). More...

#include <filter.h>

Inheritance diagram for esphome::sensor::StreamingMovingAverageFilter:
esphome::sensor::StreamingFilter esphome::sensor::Filter

Public Member Functions

 StreamingFilter (size_t window_size, size_t send_first_at)
 
- Public Member Functions inherited from esphome::sensor::StreamingFilter
 StreamingFilter (size_t window_size, 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

void process_value (float value) override
 
float compute_batch_result () override
 
void reset_batch () override
 
- Protected Member Functions inherited from esphome::sensor::StreamingFilter

Protected Attributes

float sum_ {0.0f}
 
size_t valid_count_ {0}
 
- Protected Attributes inherited from esphome::sensor::StreamingFilter
size_t window_size_
 
size_t count_ {0}
 
size_t send_first_at_
 
bool first_send_ {true}
 
- Protected Attributes inherited from esphome::sensor::Filter
friend Sensor
 
Filternext_ {nullptr}
 
Sensorparent_ {nullptr}
 

Detailed Description

Streaming moving average filter for batch windows (window_size == send_every).

Uses O(1) memory instead of O(n) by tracking only sum and count.

Definition at line 629 of file filter.h.

Member Function Documentation

◆ compute_batch_result()

float esphome::sensor::StreamingMovingAverageFilter::compute_batch_result ( )
overrideprotectedvirtual

Implements esphome::sensor::StreamingFilter.

Definition at line 577 of file filter.cpp.

◆ process_value()

void esphome::sensor::StreamingMovingAverageFilter::process_value ( float value)
overrideprotectedvirtual

Implements esphome::sensor::StreamingFilter.

Definition at line 569 of file filter.cpp.

◆ reset_batch()

void esphome::sensor::StreamingMovingAverageFilter::reset_batch ( )
overrideprotectedvirtual

Implements esphome::sensor::StreamingFilter.

Definition at line 581 of file filter.cpp.

◆ StreamingFilter()

esphome::sensor::StreamingFilter::StreamingFilter ( size_t window_size,
size_t send_first_at )

Definition at line 573 of file filter.cpp.

Field Documentation

◆ sum_

float esphome::sensor::StreamingMovingAverageFilter::sum_ {0.0f}
protected

Definition at line 638 of file filter.h.

◆ valid_count_

size_t esphome::sensor::StreamingMovingAverageFilter::valid_count_ {0}
protected

Definition at line 639 of file filter.h.


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