
Este artículo puede contener enlaces de afiliado. Si compras desde estos enlaces, el precio para ti es el mismo y la tienda me paga una pequeña comisión que ayuda a mantener Tecnoyfoto.
History Stats crea un sensor que calcula estadísticas a partir del historial de otra entidad. Permite saber cuánto tiempo estuvo encendida una luz, qué porcentaje del día funcionó una calefacción o cuántas veces una puerta estuvo abierta durante un período.
History Stats y Counter: diferencias
Counter guarda un número y lo modifica mediante acciones o eventos. History Stats consulta el historial de estados de una entidad y calcula un resultado en un intervalo. Para contar pulsaciones o ciclos desde ahora, usa Counter; para medir lo ocurrido hoy, ayer, esta semana o este mes, usa History Stats.
Crear History Stats desde la interfaz
- Ve a Ajustes > Dispositivos y servicios > Ayudantes.
- Pulsa Crear ayudante y selecciona History Stats.
- Elige nombre, entidad, estado a medir, tipo y período.
- Guarda: Home Assistant creará un sensor para el dashboard y las automatizaciones.
Tipos de cálculo
- time: horas que la entidad permaneció en el estado indicado.
- ratio: porcentaje del período en ese estado.
- count: veces que la entidad coincidió con el estado durante el período. Si ya estaba en dicho estado al empezar, cuenta como coincidencia; no equivale siempre a contar transiciones.
Períodos: hoy, ayer, semana y mes
Debes proporcionar exactamente dos de estos valores: start, end y duration. En YAML, today_at() es una forma segura de definir límites locales, incluso en los cambios de hora.
sensor:
- platform: history_stats
name: Luz del salón encendida hoy
entity_id: light.salon
state: "on"
type: time
start: "{{ today_at('00:00') }}"
end: "{{ now() }}"
state_class: total_increasingPara ayer, usa end: "{{ today_at('00:00') }}" y duration: { hours: 24 }. Para la semana actual, inicia el lunes a medianoche; para el mes, el día 1 a medianoche.
Ejemplos prácticos
Contar aperturas de puerta
- platform: history_stats
name: Aperturas de puerta hoy
entity_id: binary_sensor.puerta_entrada
state: "on"
type: count
start: "{{ today_at('00:00') }}"
end: "{{ now() }}"Tiempo de funcionamiento de una calefacción
- platform: history_stats
name: Horas de calefacción hoy
entity_id: climate.calefaccion
state: heat
type: time
start: "{{ today_at('00:00') }}"
end: "{{ now() }}"Los mismos patrones sirven para lavadora, secadora, lavavajillas, TV o una luz. Con ratio puedes mostrar qué porcentaje del día estuvo activo un dispositivo.
Recorder, historial y limitaciones
History Stats depende del historial guardado por Recorder. Si el período supera purge_keep_days, faltarán datos. El sensor se actualiza cuando cambia la entidad origen o aproximadamente cada minuto. Usa min_state_duration para ignorar cambios breves, por ejemplo desconexiones de pocos segundos.
Unidades y consejos
El tipo time devuelve horas, ratio un porcentaje y count un número. Elige una entidad con estados estables y confirma el estado exacto en Herramientas para desarrolladores > Estados antes de crear el sensor.
Consulta la documentación oficial de History Stats.
Períodos seguros y ejemplos útiles
Para hoy, usa start: "{{ today_at('00:00') }}" y end: "{{ now() }}". Para ayer, termina en today_at('00:00') y usa una duración de 24 horas. La semana actual empieza en today_at('00:00') - timedelta(days=now().weekday()); el mes actual, en today_at('00:00').replace(day=1). Estas bases son más seguras que construir fechas manualmente y evitan errores en los cambios de horario.
Con ratio puedes mostrar el porcentaje del día que una luz permaneció encendida. Con count puedes seguir coincidencias como puerta abierta; recuerda que cuenta estados coincidentes, no necesariamente cada transición.
Medir calefacción: estado de modo frente a funcionamiento real
No interpretes automáticamente climate.calefaccion con state: heat como horas reales de caldera o compresor funcionando: heat suele indicar el modo HVAC seleccionado y puede mantenerse durante muchas horas sin demanda física. Cuando exista, mide hvac_action: heating o, mejor aún, una entidad que represente la demanda real, el relé de caldera, la bomba o un sensor binario de funcionamiento. Si no existe, crea un template binario que refleje esa señal real y úsalo como entidad origen.
- platform: history_stats
name: Horas de calefacción real hoy
entity_id: binary_sensor.caldera_activa
state: "on"
type: time
start: "{{ today_at('00:00') }}"
end: "{{ now() }}"Comprobar antes de confiar en la cifra
Revisa el estado exacto de la entidad en Herramientas para desarrolladores > Estados y prueba las plantillas en Herramientas para desarrolladores > Plantillas. Si necesitas excluir microcortes, usa min_state_duration, por ejemplo "00:02:00". Si el período es mayor que la retención de Recorder (purge_keep_days), la cifra no podrá incluir el historial ya purgado.
Continúa leyendo
Siguiente guía relacionada · 7 min de lectura
Contador Home Assistant: Guía Completa y Fácil [2026]
Actualizado el 18 de abril de 2026 En la gestión de nuestra automatización del hogar, a menudo necesitamos ir más allá de los simples…
Continuar con este artículo

