Sensor
A contagem de tempo no Home Assistant é feita usando-se um sensor do tipo History Stats e de um Utility Meter, ambos definidos no arquivo configuration.yaml. O primeiro tem a função de fazer a contagem enquanto o segundo é responsável pelo acúmulo dos dados das medições.
History Stats
Vá até o arquivo configuration.yaml e crie um novo sensor, de plataforma history_stats, seguindo o exemplo:
1
2
3
4
5
6
7
8
sensor:
- platform: history_stats
name: Tempo Roomba
entity_id: vacuum.roomba
type: time
state: 'cleaning'
start: '{{as_timestamp(now().replace(hour=0).replace(minute=0).replace(second=0))}}'
end: '{{ now() }}'
name: Nome que será exibido na interface do Home Assistant;entity_id: Entidade a ser contada;type: Tipo do sensor;- Opções:
time,ratioecount;
- Opções:
state: Estado a ser contado;- Exemplo:
on, que seria o estado de ligado;
- Exemplo:
start: Quando começar a contagem;end: Quando encerrar a contagem.
Normalmente é necessário personalizar apenas os valores dos campos name e entity_id.
Para consultar a lista de entidades de seu Home Assistant, navegue até Configurações. Em seguida, clique em Dispositivos & Serviços e em Registro de Entidades.
Utility Meter
Ainda no configuration.yaml, crie os utility meter que julgar pertinente. Exemplos:
1
2
3
4
5
6
7
8
9
10
utility_meter:
tempo_roomba_diario:
source: sensor.tempo_roomba
cycle: daily
tempo_roomba_semanal:
source: sensor.tempo_roomba
cron: 0 0 * * 0
tempo_roomba_mensal:
source: sensor.tempo_roomba
cycle: monthly
A estrutura normalmente é um nome seguido de duas opções:
source: Origem do dado,sensor.seguido do nome do sensor criado emhistory_stats- Sempre em letras minúsculas e com os espaços substituídos por
_;
- Sempre em letras minúsculas e com os espaços substituídos por
cycle: Período de validade da contagem;- Opções:
quarter-hourly,hourly,daily,weekly,monthly,bimonthly,quarterlyeyearly.
- Opções:
Por padrão, as medições no Home Assistant são iniciadas em 0 minutos, 0 horas, segunda-feira, dia 1 e em Janeiro. Ou seja, no caso do contador semanal, a semana começa na segunda-feira. Para que a contagem semanal inicie-se no domingo é usada uma regra de cron, descrita abaixo:
cron: 0 0 * * 0: 0 minutos, 0 horas, todos os dias, todos os meses, aos domingos.
Template
Finalmente, para se ter ícones alterados conforme o tempo de uso ou outra condição, usa-se o Template. Tal personalização permite a consulta rápida de acontecimentos diretamente na interface. Abaixo, um exemplo para saber se o aspirador de pó já passou hoje ou não.
Tela de resumo do robô aspirador de pó.
No configuration.yaml é definido:
1
2
3
4
5
6
7
8
9
10
template:
- sensor:
- name: "Roomba limpou hoje"
state: >
{{ states('sensor.tempo_roomba_diario') }}
icon: >
{% if states('binary_sensor.roomba_bin_full') == "on" %} mdi:robot-dead-outline
{% elif states('sensor.tempo_roomba_diario')|float > 0 %} mdi:robot-happy-outline
{% else %} mdi:robot-angry-outline
{% endif %}
name: Nome da nova entidade cujo ícone irá variar de acordo com as regras;state: Define um modelo para obter o estado do sensor;icon: Define o ícone;
No exemplo, as regras de ícone são:
- Se o estado de
binary_sensor.roomba_bin_fulléligado, ou seja, lixeira cheia, então o ícone é definido comomdi:robot-dead-outline; - Se o estado de
sensor.tempo_roomba_diariofor maior que zero, isto é, limpeza de hoje já iniciada, entãomdi:robot-happy-outline; - Caso contrário,
mdi:robot-angry-outline
