Descripción general
El sensor Filtro limpia otro sensor: descarta lecturas absurdas, suaviza el ruido, limita el rango o reduce la frecuencia de actualización. Los filtros se encadenan en orden.
Ilustración: NODARA.
Requisitos
- Un sensor ruidoso:
sensor.temperatura_salon.
Crear el ayudante
Se puede crear desde Ajustes → Dispositivos y servicios → Ayudantes → Crear ayudante → Filtro (Filter), pero en YAML puedes encadenar varios filtros:
sensor:
- platform: filter
name: "Temperatura salón filtrada"
unique_id: temperatura_salon_filtrada
entity_id: sensor.temperatura_salon
filters:
- filter: outlier
window_size: 4
radius: 2.0
- filter: lowpass
time_constant: 10
precision: 1
Ideas de uso
- Temperatura estable sin picos falsos. Es el ejemplo de abajo.
- Potencia de un enchufe suavizada para que las automatizaciones no salten con cada pico.
- Nivel de batería que no baile entre dos valores.
- Distancia de un sensor ultrasónico con lecturas erráticas.
- Reducir escrituras en la base de datos con
time_throttle. - Media móvil de 10 minutos del consumo para el panel.
Ejemplo de uso
Objetivo: Tener una temperatura estable para tus automatizaciones, aunque el sensor dé de vez en cuando un valor absurdo (por ejemplo, 85 °C).
Cómo funciona
- Los filtros se aplican en orden, cada uno sobre el resultado del anterior.
outliercompara cada lectura con la mediana de las últimas 4 (window_size). Si se aleja más de 2 °C (radius), la descarta y usa la mediana.lowpasssuaviza las variaciones pequeñas: cuanto mayor seatime_constant, más lento y estable es el resultado.- Hay más filtros:
range(limitar a un mínimo y un máximo),throttleytime_throttle(reducir la frecuencia), ytime_simple_moving_average(media móvil por tiempo).
Resultado
Acción
Lecturas: 21.2 · 21.3 · 85.0 · 21.4Resultado
sensor.temperatura_salon_filtrada
21.2 · 21.2 · 21.3 · 21.3
(el 85.0 se descarta)