ESPHome 2025.12.0-dev
Loading...
Searching...
No Matches
esphome::sensor::StreamingFilter Class Referenceabstract

Base class for streaming filters (batch windows where window_size == send_every). More...

#include <filter.h>

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

Public Member Functions

 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

virtual void process_value (float value)=0
 Called by new_value() to process each value in the batch.
 
virtual float compute_batch_result ()=0
 Called by new_value() to compute the result after collecting window_size values.
 
virtual void reset_batch ()=0
 Called by new_value() to reset internal state after sending a result.
 

Protected Attributes

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

Base class for streaming filters (batch windows where window_size == send_every).

When window_size equals send_every, we don't need a sliding window. This base class handles the common batching logic.

Definition at line 536 of file filter.h.

Constructor & Destructor Documentation

◆ StreamingFilter()

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

Definition at line 482 of file filter.cpp.

Member Function Documentation

◆ compute_batch_result()

virtual float esphome::sensor::StreamingFilter::compute_batch_result ( )
protectedpure virtual

Called by new_value() to compute the result after collecting window_size values.

Implemented in esphome::sensor::StreamingMaxFilter, esphome::sensor::StreamingMinFilter, and esphome::sensor::StreamingMovingAverageFilter.

◆ new_value()

optional< float > esphome::sensor::StreamingFilter::new_value ( float value)
finalvirtual

Implements esphome::sensor::Filter.

Definition at line 485 of file filter.cpp.

◆ process_value()

virtual void esphome::sensor::StreamingFilter::process_value ( float value)
protectedpure virtual

◆ reset_batch()

virtual void esphome::sensor::StreamingFilter::reset_batch ( )
protectedpure virtual

Called by new_value() to reset internal state after sending a result.

Implemented in esphome::sensor::StreamingMaxFilter, esphome::sensor::StreamingMinFilter, and esphome::sensor::StreamingMovingAverageFilter.

Field Documentation

◆ count_

size_t esphome::sensor::StreamingFilter::count_ {0}
protected

Definition at line 553 of file filter.h.

◆ first_send_

bool esphome::sensor::StreamingFilter::first_send_ {true}
protected

Definition at line 555 of file filter.h.

◆ send_first_at_

size_t esphome::sensor::StreamingFilter::send_first_at_
protected

Definition at line 554 of file filter.h.

◆ window_size_

size_t esphome::sensor::StreamingFilter::window_size_
protected

Definition at line 552 of file filter.h.


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