Forked from Tahutipai/report_zigbee_zwave_devices_gone_offline.yaml
Last active
April 22, 2024 01:15
-
-
Save modularTaco/e029ff3b2fda775ebaa73a363aba3efb to your computer and use it in GitHub Desktop.
Home Assistant Blueprint: Low battery level detection & notification for all battery sensors
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
blueprint: | |
name: Report offline zigbee/zwave/battery/smart plug devices | |
description: Works with Smart Plugs, ZWave, Zigbee etc (Works with ZHA & Z2M) | |
#By Tahutipai 2024-02-21 | |
#Originally Based on the work of Sybx @ https://community.home-assistant.io/t/low-battery-level-detection-notification-for-all-battery-sensors/258664 | |
#Note: This has been upgraded to report only the Device that is offline, not multiple individual sensors within one Device | |
domain: automation | |
input: | |
time: | |
name: Time to test on | |
description: Test is run at configured time | |
default: '10:00:00' | |
selector: | |
time: {} | |
day: | |
name: Weekday to test on | |
description: 'Test is run at configured time either everyday (0) or on a given | |
weekday (1: Monday ... 7: Sunday)' | |
default: 0 | |
selector: | |
number: | |
min: 0.0 | |
max: 7.0 | |
mode: slider | |
step: 1.0 | |
exclude: | |
name: Excluded Sensors | |
description: Battery sensors (e.g. smartphone) to exclude from detection. Only entities are supported, devices must be expanded! | |
default: {entity_id: []} | |
selector: | |
target: | |
entity: | |
device_class: | |
- battery | |
- switch | |
actions: | |
name: Actions | |
description: Call your notification here. {{offline_devices}} will replaced with the name of any offline devices | |
selector: | |
action: {} | |
source_url: https://gist.github.com/Tahutipai/971bf0e07e50ce6190e0dacd73262e2e | |
variables: | |
day: !input 'day' | |
exclude: !input 'exclude' | |
offline_devices: >- | |
{% set result = namespace(offline_devices=[]) %} | |
{% for sensor in states.sensor | selectattr('attributes.device_class', 'defined') | selectattr('attributes.device_class', '==', 'battery') %} | |
{% if "unavailable" in sensor | string and not sensor.entity_id in exclude.entity_id %} | |
{% set result.offline_devices = result.offline_devices + [state_attr(sensor.entity_id, "friendly_name")] %} | |
{% endif %} | |
{% endfor %} | |
{% for binary_sensor in states.binary_sensor | selectattr('attributes.device_class', 'defined') | selectattr('attributes.device_class', '==', 'battery') %} | |
{% if "unavailable" in binary_sensor | string and not binary_sensor.entity_id in exclude.entity_id %} | |
{% set result.offline_devices = result.offline_devices + [state_attr(binary_sensor.entity_id, "friendly_name")] %} | |
{% endif %} | |
{% endfor %} | |
{% for switch in states.switch | selectattr('state','eq','unavailable') %} | |
{% if switch.entity_id not in exclude.entity_id %} | |
{% set result.offline_devices = result.offline_devices + [device_attr(device_id(switch.entity_id), "name")] %} | |
{% endif %} | |
{% endfor %} | |
{{result.offline_devices|sort|unique|join('\n')}} | |
trigger: | |
- platform: time | |
at: !input 'time' | |
condition: | |
- '{{ offline_devices != '''' and (day | int == 0 or day | int == now().isoweekday()) }}' | |
action: | |
- choose: [] | |
default: !input 'actions' | |
mode: single |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I get the same error that I did with the original with it failing to run. Not sure if you have any ideas?
Logger: homeassistant.components.automation.notification_offline_devices
Source: components/automation/init.py:675
integration: Automation (documentation, issues)
First occurred: 8:11:22 PM (3 occurrences)
Last logged: 8:13:12 PM
Error rendering variables: TemplateError: Must provide a device or entity ID