-
-
Save Tahutipai/971bf0e07e50ce6190e0dacd73262e2e to your computer and use it in GitHub Desktop.
| 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 + [device_attr(device_id(sensor.entity_id), "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 + [device_attr(device_id(binary_sensor.entity_id), "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 |
I made a fork here... https://gist.github.com/Ltek/0c9cecf632b9c32915130680d834bcf7
Updates are...
- Excludes are working
- According to my testing, its also a lot faster execution.
I noticed that on line 57, if I don't add | selectattr('attributes.device_class', 'defined'), it will alert me for some wired devices I own. Funnily, I cannot exclude them (they don't show in the list)... Not sure if it's a bug or something with my installation.
I noticed that on line 57, if I don't add
| selectattr('attributes.device_class', 'defined'), it will alert me for some wired devices I own. Funnily, I cannot exclude them (they don't show in the list)... Not sure if it's a bug or something with my installation.
my version above has more capabilities and filtering available.
I noticed that on line 57, if I don't add
| selectattr('attributes.device_class', 'defined'), it will alert me for some wired devices I own. Funnily, I cannot exclude them (they don't show in the list)... Not sure if it's a bug or something with my installation.my version above has more capabilities and filtering available.
Oh yes, I just found it and I'm already using it, thanks! I now discovered I have a device that, for some reason, will always report "unknown" in the battery... But that's another story.
Thanks for your version!
Labels are....kind of working? Tuya devices are showing up that are mains powered as well.