Skip to content

History Stats Home Assistant

La plataforma de sensores history stats Home Assistant, proporciona estadísticas rápidas sobre otra integración, entidades o plataformas, utilizando datos de la integración history.

Puede rastrear cuánto tiempo ha estado la integración o entidad en un estado específico, en un período de tiempo personalizado.

Ejemplos de lo que puede rastrear:

  • ¿Cuánto tiempo estuviste en casa esta semana?
  • ¿Y las luces? ¿Cuánto tiempo estuvieron encendidas ayer?
  • ¿Cuánto tiempo viste la televisión hoy?
Índice de contenido

    Configuración

    Para habilitar el sensor de estadísticas de historial, agregue las siguientes líneas a su archivo de sensores o directamente en configuration.yaml:

    VARIABLES DE CONFIGURACIÓN History Stats Home Assistant

    entity_id OBLIGATORIO

    La entidad que desea rastrear.

    state OBLIGATORIO

    Los estados que desea rastrear.

    name ( opcional , predeterminado: estadísticas sin nombre )

    Nombre que se muestra en la interfaz. Tenga en cuenta que Home Assistant lo utiliza para generar sensores, object_idpor lo que es recomendable elegir uno único y cambiar el nombre de la interfaz mediante la personalización o a través de Dashboards .

    type ( opcional , predeterminado: hora )

    El tipo de sensor: time, ratioo count.

    start ( opcional)

    Cuándo iniciar la medida (marca de tiempo o fecha y hora).

    end ( opcional)

    Cuándo detener la medida (marca de tiempo o fecha y hora).

    duration ( opcional)

    Duración de la medida.

    NOTA:

    Tienes que proporcionar exactamente 2 de start, endy duration.
    Puede usar extensiones de plantilla como now()o as_timestamp()para manejar fechas dinámicas, como se muestra en los ejemplos a continuación.

    Tipo de sensor

    Dependiendo del tipo de sensor que elija, la history_statsintegración puede mostrar diferentes valores:

    • tiempo : el valor predeterminado, que es el tiempo rastreado, en horas
    • ratio : El tiempo rastreado dividido por la duración de su período, como un porcentaje
    • count : cuántas veces la integración que rastrea se cambió al estado que rastrea

    Períodos de tiempo History Stats Home Assistant

    La integración history_stats ejecutará una medida dentro de un período de tiempo preciso. Siempre debe proporcionar 2 de los siguientes:

    • Al comenzar el período ( startvariable)
    • Cuando termina el período ( endvariable)
    • ¿Cuánto dura el período ( durationvariable)

    Como start end las variables pueden ser fechas y horas o marcas de tiempo, puede configurar casi cualquier período que desee.

    DURACIÓN

    La variable de duración se utiliza cuando el período de tiempo es fijo. Se admiten diferentes sintaxis para la duración, como se muestra a continuación.

    Si la duración excede la cantidad de días de historial almacenados por el recordercomponente ( purge_keep_days), el sensor de estadísticas de historial no tendrá toda la información que necesita para ver la duración completa. Por ejemplo, si purge_keep_daysse establece en 7, un sensor de estadísticas de historial con una duración de 30 días solo informará un valor basado en los últimos 7 días de historial.

    EJEMPLOS History Stats Home Assistant

    Estos son algunos ejemplos de períodos con los que podría trabajar y qué escribir:

    Hoy : comienza a las 00:00 del día actual y finaliza ahora mismo.

    start: "{{ now().replace(hour=0, minute=0, second=0) }}"
    end: "{{ now() }}"

    Ayer : termina hoy a las 00:00, dura 24 horas.

    end: "{{ now().replace(hour=0, minute=0, second=0) }}"
    duration:
      hours: 24

    Esta mañana (6AM – 11AM) : comienza hoy a las 6, dura 5 horas.

    start: "{{ now().replace(hour=6, minute=0, second=0) }}"
    duration:
      hours: 5

    Semana actual : comienza el lunes pasado a las 00:00, termina ahora mismo.

    Aquí, el lunes pasado es hoy como marca de tiempo, menos 86400 veces el día de la semana actual (86400 es el número de segundos en un día, el día de la semana es 0 el lunes, 6 el domingo).

    start: "{{ as_timestamp( now().replace(hour=0, minute=0, second=0) ) - now().weekday() * 86400 }}"
    end: "{{ now() }}"

    Próximas 16:00 : 24 horas, desde las últimas 16:00 horas hasta las 16:00 horas siguientes. Si no han sido las 4 de la tarde de hoy, serían las 4 de la tarde de ayer hasta las 4 de la tarde de hoy. Si ya son más de las 4 de la tarde de hoy, serán las 4 de la tarde de hoy hasta las 4 de la tarde de mañana. Al cambiar la hora de inicio, sume o reste al búfer de 8 horas para que coincida con la próxima medianoche.

    end: "{{ (now().replace(minute=0,second=0) + timedelta(hours=8)).replace(hour=16) }}"
    duration:
        hours: 24

    Últimos 30 días : finaliza hoy a las 00:00, dura 30 días. Fácil.

    end: "{{ now().replace(hour=0, minute=0, second=0) }}"
    duration:
      days: 30
    start: "{{ 0 }}"
    end: "{{ now() }}"
    

    Todo su historial comienza en la marca de tiempo = 0 y termina ahora mismo.

    Contar el tiempo de estado de un dispositivo en Home Assistant

    - platform: history_stats
      name: Lavadora hoy
      entity_id: input_select.rentadora_status
      state: "Lavando"
      type: time
      start: "{{ now().replace(hour=0, minute=0, second=0) }}"
      end: "{{ now() }}"
    
    - platform: history_stats
      name: Lavadora ayer
      entity_id: input_select.rentadora_status
      state: "Lavando"
      type: time
      end: "{{ now().replace(hour=0, minute=0, second=0) }}"
      duration:
        hours: 24
    
    
    - platform: history_stats
      name: Lavadora esta semana
      entity_id: input_select.rentadora_status
      state: "Lavando"
      type: time
      start: "{{ as_timestamp( now().replace(hour=0, minute=0, second=0) ) - now().weekday() * 86400 }}"
      end: "{{ now() }}"
    
    
    - platform: history_stats
      name: Lavadora este mes
      entity_id: input_select.rentadora_status
      state: "Lavando"
      type: time
      end: "{{ now().replace(hour=0, minute=0, second=0) }}"
      duration:
        days: 30
    
    
    - platform: history_stats
      name: Lavadora todo los tiempos
      entity_id: input_select.rentadora_status
      state: "Lavando"
      type: time
      start: "{{ 0 }}"
      end: "{{ now() }}

    ATENCIÓN!! En entity_id tienes que poner el id de la entidad que quieres contar el tiempo y en state, el estado que tiene que quieres controlar. Para conocer el estado de tu entidad, lo puedes hacer desde herramientas para desarrolladores.

    La página de plantillas /developer-tools/template de herramientas para desarrollador de Home Assistant, puede ayudarte a comprobar si los valores de start o end son durationcorrectos. Si desea verificar si su período es correcto, simplemente haga clic en su componente. Los atributos from y to mostrarán el inicio y el final del período, con un formato agradable.

    Sígueme a Youtube

    Sígueme en Youtube - History Stats Home Assistant

    Ajustes