From decf2ad24483b3109f786895b55c555ee59b8974 Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Tue, 20 May 2025 12:40:44 -0400 Subject: [PATCH] Add 5 minute moving average to Sensirion sensors Avoids constant wild shifts over time by performing a sliding window moving average over the last 20 results (at 15s intervals). --- supersensor.yaml | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/supersensor.yaml b/supersensor.yaml index bbbc71b..20d7dc6 100644 --- a/supersensor.yaml +++ b/supersensor.yaml @@ -510,10 +510,18 @@ sensor: name: "SGP30 eCO2" id: sgp30_eco2 accuracy_decimals: 1 + filters: + - sliding_window_moving_average: + window_size: 20 + send_every: 1 tvoc: name: "SGP30 TVOC" id: sgp30_tvoc accuracy_decimals: 1 + filters: + - sliding_window_moving_average: + window_size: 20 + send_every: 1 eco2_baseline: name: "SGP30 Baseline eCO2" id: sgp30_baseline_ec02 @@ -533,12 +541,18 @@ sensor: accuracy_decimals: 1 filters: - offset: !lambda return id(temperature_offset); + - sliding_window_moving_average: + window_size: 20 + send_every: 1 humidity: name: "SHT45 Relative Humidity" id: sht45_humidity accuracy_decimals: 1 filters: - offset: !lambda return id(humidity_offset); + - sliding_window_moving_average: + window_size: 20 + send_every: 1 heater_max_duty: 0.0 update_interval: 15s @@ -817,12 +831,14 @@ switch: number: # Temperature offset: - # A calibration from -7 to +3 for the temperature sensor + # A calibration from -10 to +5 for the temperature sensor + # Defaults to -4 due to heating from the ESP - platform: template name: "Temperature Offset" id: temperature_offset_setter - min_value: -7 - max_value: 3 + min_value: -10 + max_value: 5 + default: -4 step: 0.1 lambda: |- return id(temperature_offset);