Filter Sensor


The filter platform enables sensors that process the states of other entities.

filter applies a signal processing algorithm to a sensor, previous and current states, and generates a new state given the chosen algorithm.

To enable Filter Sensors in your installation, add the following to your configuration.yaml file:

# Example configuration.yaml entry
sensor:
  - platform: filter
    name: "filtered realistic humidity"
    entity_id: sensor.realistic_humidity
    filters:
      - filter: outlier
        window_size: 4
        radius: 4.0
      - filter: lowpass
        time_constant: 10
        precision: 2

Filters can be chained and are applied according to the order present in the configuration file.

Configuration Variables

entity_id

(string)(Required)The entity ID of the sensor to be filtered.

name

(string)(Optional)Name to use in the frontend.

filters

(map)(Required)Filters to be used.

filter

(string)(Required)Algorithm to be used to filter data. Available filters are lowpass, outlier and throttle.

window_size

(int)(Optional)Size of the window of previous states.

Default value: 5

precision

(int)(Optional)See lowpass filter. Defines the precision of the filtered state, through the argument of round().

Default value: None

time_constant

(int)(Optional)See lowpass filter. Loosely relates to the amount of time it takes for a state to influence the output.

Default value: 10

radius

(float)(Optional)See outlier filter. Band radius from median of previous states.

Default value: 2.0

Filters

Low-pass

The Low-pass filter (lowpass) is one of signal processing most common filters, as it smooths data by shortcuting peaks and valleys.

The included Low-pass filter is very basic and is based on a moving average, in which the previous data point is weighted with the new data point.

B = 1.0 / time_constant
A = 1.0 - B
LowPass(state) = A * previous_state + B * state

The returned value is rounded to the number of decimals defined in (precision).

Outlier

The Outlier filter (outlier) is a basic Band-stop filter, as it cuts out any value outside a specific range.

The included Outlier filter will discard any value beyond a band centered on the median of the previous values, replacing it with the median value of the previous values. If inside the band, the

distance = abs(state - median(previous_states))

if distance > radius:
    median(previous_states)
else:
    state

Throttle

The Throttle filter (throttle) will only update the state of the sensor for the first state in the window. This means the filter will skip all other values.

To adjust the rate you need to set the window_size. To throttle a sensor down to 10%, the window_size should be set to 10, for 50% should be set to 2.

This filter is relevant when you have a sensor which produces states at a very high-rate, which you might want to throttle down for storing or visualization purposes.