Home-AssistantConfig/config/packages/battery_levels.yaml

58 lines
2.0 KiB
YAML
Executable File

#-------------------------------------------
# Fire Tablet Alarm Panel -
# http://www.vmwareinfo.com/2017/07/visualizing-smart-home-using-home.html
#-------------------------------------------
#
# homeassistant:
# customize_glob:
# "sensor.*_alarm_panel*":
#
# hidden: False
# "binary_sensor.*_alarm_panel*":
#
# hidden: False
sensor:
- platform: template
sensors:
low_battery:
friendly_name: 'Low Battery'
value_template: >
{%- set threshold = 15 -%}
{%- set domains = ['light', 'switch', 'sensor', 'zwave', 'lock', 'binary_sensor'] -%}
{%- for domain in domains -%}
{%- for item in states[domain] if ((item.attributes.battery_level is defined and item.attributes['battery_level'] | int < threshold) or ("battery" in item.name | lower and ((item.state | int < threshold and item.state|int != 0) or item.state | lower == "low" or item.state | lower == "unknown"))) -%}
{{ item.attributes.friendly_name }} (
{%- if item.attributes.battery_level is defined -%}
{{ item.attributes.battery_level}}
{%- else -%}
{{item.state}}
{%- endif -%}%)
{%- if not loop.last -%}
{{', '}}
{%- endif -%}
{%- endfor -%}
{%- endfor -%}
automation:
- alias: 'Battery Alert'
initial_state: 'on'
trigger:
- platform: time
at: '10:00:00'
- platform: time
at: '18:00:00'
condition:
condition: template
value_template: "{% if states('sensor.low_battery') %}true{% endif %}"
action:
- service: persistent_notification.create
data_template:
title: Low Battery
message: "{{ states('sensor.low_battery') }}"
notification_id: low-battery-alert
- service: script.notify_engine
data_template:
value1: "Low battery levels: {{ states('sensor.low_battery') }}"
who: 'carlo'