Achei um sensor template para monitorar quando a bateria dos dispositivos estiverem baixa.
1 - Criar um Input Number com o nome Nível de bateria baixa
para definir a partir de qual nível a bateria será considerada baixa:
2 - No arquivo template.yaml adicionar o sensor abaixo:
sensor:
- name: "Dispositivos bateria baixa"
icon: mdi:battery-low
state: >
{% set threshold = states('input_number.nivel_de_bateria_baixa') | int %}
{%- set ns = namespace(sensors=[]) -%}
{%- for state in states.sensor
| selectattr('attributes.device_class', 'defined')
| selectattr('attributes.state_class', 'defined')
| selectattr('attributes.device_class', '==', 'battery')
| selectattr('attributes.state_class', '==', 'measurement')
| selectattr('entity_id', 'in', integration_entities('mqtt'))
| selectattr('state', 'is_number') -%}
{%- if state.state | int <= threshold -%}
{%set ns.sensors = ns.sensors + [dict(name = state.name | replace(' battery', '') | replace(' Baterry', ''), state = state.state | int)] %}
{%- endif -%}
{%- endfor -%}
{%- set batt = ns.sensors | sort(attribute='state') %}
{%- set ns = namespace(batt='') -%}
{%- for state in batt -%}
{% set ns.batt= ns.batt + (state.name ~ ' (' ~ state.state ~'%)' ~ "\n") %}
{% endfor -%}
{% if ns.batt | count > 0 %}
{{ ns.batt | truncate(255, true, '...') }}
{%else %}
{{ 'unavailable' }}
{% endif %}
No meu caso quero monitorar apenas os dispositivos Zigbee2mqtt, então o sensor esta filtrando apenas as baterias de dispositivos da integração MQTT.
Remova ou altere a linha abaixo caso necessário:
| selectattr('entity_id', 'in', integration_entities('mqtt'))
3 - Reinicie o HA
4 - Exemplo de automação:
alias: Monitoramento > Dispositivos Bateria Baixa
description: ""
trigger:
- platform: state
entity_id:
- sensor.dispositivos_bateria_baixa
condition:
- condition: template
value_template: "{{ trigger.to_state.state not in ['unknown', 'unavailable','none'] }}"
action:
- service: notify.mobile_app_sm_g985f
data:
title: Dispositivo Zigbee com bateria baixa
message: "{{ states(\"sensor.dispositivos_bateria_baixa\") }}"
data:
ttl: 0
priority: high
importance: high
vibrationPattern: 100, 1000, 100, 1000, 100
color: "#ff0000"
channel: Alerta
tag: dispositivo_bateria_baixa
mode: single
O sensor só pode ter 255 caracteres, se tiver muitos sensores com bateria baixa, será colocado reticências no final.