lowpass_dt is a Home Assistant custom integration that filters any numeric sensor with a time-aware low-pass filter (Δt-aware) and publishes only when the signal has moved enough to matter, cutting recorder writes by ~10× with no loss of dynamics.
Unlike existings filters, the filter time constant tau is always expressed in real seconds, so it behaves correctly like a real 1st order low-pass filter even on sensors that update irregularly or slowly. When the source stops updating, automatic silence detection triggers synthetic injections at the natural source rate to keep the filter converged, without flooding the recorder.
The adaptive sigma-based deadband learns the signal variability over time and sets its own threshold. Manual tuning remain possible but is not required, default value works reasonably well.
Key features
- Correct Δt-aware filtering on any update rate
- Self-tuning deadband — adapts to signal noise automatically
- Silence detection with synthetic injection
- Circular mode for angular sensors (wind direction, 0–360°)
- Pattern matching — one config line covers dozens of sensors
- Full state restore across reboots — no warmup after restart
- Zero dependencies
Minimal config
lowpass_dt:
patterns:
- match: "sensor.temperature_*"
Green is a noisy source (wind speed), red is a very stable one (outdoor temperature) — note the multiple updates for nearly identical temperature values.
Stepped representation is used here to make updates visible. A curve representation would of course be smoother and more visually appealing.
Before:
After:

