Hoy vamos a ver una segunda forma de contar el tiempo en nuestro Home Assistant. Recordemos que en el primer capítulo lo hicimos con un input_boolean.
Lo primero que tendremos que hacer es crear un imput_select que será el que utilizaremos para saber cuanto tiempo pasa en un determinado estado. En mi caso, lo creo con dos estados Parado y Funcionando.
Índice de contenido
Las automatizaciones de Contar el tiempo
- id: '1626856817645'
alias: Ventilador 2 on input select
description: ''
trigger:
- platform: numeric_state
entity_id: sensor.shellyswitch25_40f520003677_channel_2_power
above: '20'
condition: []
action:
- service: input_select.select_option
target:
entity_id: input_select.ventilador_2
data:
option: Funcionamiento
mode: single
- id: '1626856889645'
alias: Ventilador 2 off input select
description: ''
trigger:
- platform: numeric_state
entity_id: sensor.shellyswitch25_40f520003677_channel_2_power
below: '20'
condition: []
action:
- service: input_select.select_option
target:
entity_id: input_select.ventilador_2
data:
option: Parado
mode: single
y una vez tenemos las automatizaciones creadas, vamos a crear los sensores…
Los sensores
- platform: history_stats
name: Ventilador 2 hoy
entity_id: input_select.ventilador_2
state: "Funcionamiento"
type: time
start: "{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}"
end: "{{ now() }}"
- platform: template
sensors:
ventilador2_hoy_minutos:
friendly_name: "Ventilador funcionamiento hoy"
value_template: "{{ state_attr('sensor.ventilador_2_hoy', 'value') }}"
- platform: history_stats
name: Ventilador 2 esta semana
entity_id: input_select.ventilador_2
state: "Funcionamiento"
type: time
start: "{{ as_timestamp( now().replace(hour=0).replace(minute=0).replace(second=0) ) - now().weekday() * 86400 }}"
end: "{{ now() }}"
- platform: template
sensors:
ventilador2_semana_minutos:
friendly_name: "Ventilador funcionamiento esta semana"
value_template: "{{ state_attr('sensor.ventilador_2_esta_semana', 'value') }}"
- platform: history_stats
name: Ventilador 2 este mes
entity_id: input_select.ventilador_2
state: "Funcionamiento"
type: time
end: "{{ now().replace(hour=0, minute=0, second=0) }}"
duration:
days: 30
- platform: template
sensors:
ventilador2_mes_minutos:
friendly_name: "Ventilador funcionamiento este mes"
value_template: "{{ state_attr('sensor.ventilador_2_este_mes', 'value') }}"
Con esto ya tenemos todo para saber cuanto tiempo pasa nuestro dispositivo en un determinado estado.