From e99a85a20dd157af02c9007e7819f87455c22055 Mon Sep 17 00:00:00 2001 From: Diogo Gomes Date: Fri, 2 Mar 2018 00:54:41 +0000 Subject: [PATCH] Filter Sensor (#4725) * Filter component * changes as requested * Changed the component name * updated according to new version * Chaining explained * Added extra sensor and screenshot * Update sensor.filter.markdown --- source/_components/sensor.filter.markdown | 122 ++++++++++++++++++++ source/images/screenshots/filter-sensor.png | Bin 0 -> 47072 bytes 2 files changed, 122 insertions(+) create mode 100644 source/_components/sensor.filter.markdown create mode 100644 source/images/screenshots/filter-sensor.png diff --git a/source/_components/sensor.filter.markdown b/source/_components/sensor.filter.markdown new file mode 100644 index 00000000000..07f5b33e3a5 --- /dev/null +++ b/source/_components/sensor.filter.markdown @@ -0,0 +1,122 @@ +--- +layout: page +title: "Filter Sensor" +description: "Instructions how to integrate Data Filter Sensors into Home Assistant." +date: 2018-02-20 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Sensor +ha_release: 0.65 +ha_iot_class: "Local Push" +logo: home-assistant.png +--- + +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: + + +```yaml +# 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 %} +entity_id: + description: The entity ID of the sensor to be filtered. + required: true + type: string +name: + description: Name to use in the frontend. + required: false + type: string +filters: + description: Filters to be used. + required: true + type: map + keys: + filter: + description: Algorithm to be used to filter data. Available filters are `lowpass`, `outlier` and `throttle`. + required: true + type: string + window_size: + description: Size of the window of previous states. + required: false + type: int + default: 5 + precision: + description: See [_lowpass_](#low-pass) filter. Defines the precision of the filtered state, through the argument of round(). + required: false + type: int + default: None + time_constant: + description: See [_lowpass_](#low-pass) filter. Loosely relates to the amount of time it takes for a state to influence the output. + required: false + type: int + default: 10 + radius: + description: See [_outlier_](#outlier) filter. Band radius from median of previous states. + required: false + type: float + default: 2.0 +{% endconfiguration %} + +## {% linkable_title Filters %} + +### {% linkable_title 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. + +```python +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`). + +### {% linkable_title 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 + +```python +distance = abs(state - median(previous_states)) + +if distance > radius: + median(previous_states) +else: + state +``` + +### {% linkable_title 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. + diff --git a/source/images/screenshots/filter-sensor.png b/source/images/screenshots/filter-sensor.png new file mode 100644 index 0000000000000000000000000000000000000000..679d2fdfe06f729c4e62078f87aebff1e23e0328 GIT binary patch literal 47072 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%0A-M<45c_gK3adQcUp9+Hjb*p!V9Xx8 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