mirror of
https://github.com/CeeWeasel/fresh-home.git
synced 2026-08-09 18:40:14 -04:00
105 lines
6.7 KiB
YAML
105 lines
6.7 KiB
YAML
alias: "Battery Alert"
|
|
id: automation_battery_alert
|
|
initial_state: off
|
|
trigger:
|
|
- platform: time
|
|
at: "10:00:00"
|
|
- platform: time
|
|
at: "18:00:00"
|
|
condition:
|
|
condition: or
|
|
conditions:
|
|
- condition: template
|
|
value_template: >-
|
|
{%- set threshold = 40 -%}
|
|
{%- for item in states.light 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")) -%}
|
|
{%- if loop.first -%}
|
|
{{ true }}
|
|
{%- endif -%}
|
|
{%- endfor -%}
|
|
- condition: template
|
|
value_template: >-
|
|
{%- set threshold = 40 -%}
|
|
{%- for item in states.switch 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")) -%}
|
|
{%- if loop.first -%}
|
|
{{ true }}
|
|
{%- endif -%}
|
|
{%- endfor -%}
|
|
- condition: template
|
|
value_template: >-
|
|
{%- set threshold = 40 -%}
|
|
{%- for item in states.sensor 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")) -%}
|
|
{%- if loop.first -%}
|
|
{{ true }}
|
|
{%- endif -%}
|
|
{%- endfor -%}
|
|
- condition: template
|
|
value_template: >-
|
|
{%- set threshold = 40 -%}
|
|
{%- for item in states.zwave 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")) -%}
|
|
{%- if loop.first -%}
|
|
{{ true }}
|
|
{%- endif -%}
|
|
{%- endfor -%}
|
|
- condition: template
|
|
value_template: >-
|
|
{%- set threshold = 40 -%}
|
|
{%- for item in states.lock 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")) -%}
|
|
{%- if loop.first -%}
|
|
{{ true }}
|
|
{%- endif -%}
|
|
{%- endfor -%}
|
|
action:
|
|
- service: notify.mobile_app_pixel_7
|
|
data:
|
|
message: >-
|
|
{% set threshold = 1 %}
|
|
{%- for item in states.light if (item.attributes.battery_level is defined and item.attributes['battery_level'] | int / 5 < 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")) -%}
|
|
{%- if loop.first -%}
|
|
{% for lobat in states.light if (lobat.attributes.battery_level is defined and lobat.attributes['battery_level'] | int / 5 < threshold) or ("battery" in lobat.name | lower and ((item.state | int < threshold and lobat.state|int != 0) or lobat.state | lower == "low" or lobat.state | lower == "unknown")) %}
|
|
{%- if loop.first %}Lights:{% endif %}
|
|
{{ lobat.name }} {{ lobat.state }}%
|
|
{%- endfor -%}
|
|
{% endif %}
|
|
{%- endfor %}
|
|
|
|
{% set threshold = 1 %}
|
|
{%- for item in states.switch if (item.attributes.battery_level is defined and item.attributes['battery_level'] | int / 5 < 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")) -%}
|
|
{%- if loop.first -%}
|
|
{% for lobat in states.switch if (lobat.attributes.battery_level is defined and lobat.attributes['battery_level'] | int / 5 < threshold) or ("battery" in lobat.name | lower and ((item.state | int < threshold and lobat.state|int != 0) or lobat.state | lower == "low" or lobat.state | lower == "unknown")) %}
|
|
{%- if loop.first %}Switches:{% endif %}
|
|
{{ lobat.name }} {{ lobat.state }}%
|
|
{%- endfor -%}
|
|
{% endif %}
|
|
{%- endfor %}
|
|
|
|
{% set threshold = 1 %}
|
|
{%- for item in states.sensor if (item.attributes.battery_level is defined and item.attributes['battery_level'] | int / 5 < 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")) -%}
|
|
{%- if loop.first -%}
|
|
{% for lobat in states.sensor if (lobat.attributes.battery_level is defined and lobat.attributes['battery_level'] | int / 5 < threshold) or ("battery" in lobat.name | lower and ((item.state | int < threshold and lobat.state|int != 0) or lobat.state | lower == "low" or lobat.state | lower == "unknown")) %}
|
|
{%- if loop.first %}Sensors:{% endif %}
|
|
{{ lobat.name }} {{ lobat.state }}%
|
|
{%- endfor -%}
|
|
{% endif %}
|
|
{%- endfor %}
|
|
|
|
{% set threshold = 1 %}
|
|
{%- for item in states.zwave if (item.attributes.battery_level is defined and item.attributes['battery_level'] | int / 5 < 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")) -%}
|
|
{%- if loop.first -%}
|
|
{% for lobat in states.zwave if (lobat.attributes.battery_level is defined and lobat.attributes['battery_level'] | int / 5 < threshold) or ("battery" in lobat.name | lower and ((item.state | int < threshold and lobat.state|int != 0) or lobat.state | lower == "low" or lobat.state | lower == "unknown")) %}
|
|
{%- if loop.first %}Zwaves:{% endif %}
|
|
{{ lobat.name }} {{ lobat.state }}%
|
|
{%- endfor -%}
|
|
{% endif %}
|
|
{%- endfor %}
|
|
|
|
{% set threshold = 1 %}
|
|
{%- for item in states.lock if (item.attributes.battery_level is defined and item.attributes['battery_level'] | int / 5 < 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")) -%}
|
|
{%- if loop.first -%}
|
|
{% for lobat in states.lock if (lobat.attributes.battery_level is defined and lobat.attributes['battery_level'] | int / 5 < threshold) or ("battery" in lobat.name | lower and ((item.state | int < threshold and lobat.state|int != 0) or lobat.state | lower == "low" or lobat.state | lower == "unknown")) %}
|
|
{%- if loop.first %}Locks:{% endif %}
|
|
{{ lobat.name }} {{ lobat.state }}%
|
|
{%- endfor -%}
|
|
{% endif %}
|
|
{%- endfor %}
|