-
-
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 |
Labels are....kind of working? Tuya devices are showing up that are mains powered as well.
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!
Same here. Alexa devices/entities doesn't seem to work as it should. Label exclusion doesn't work either.