Автоматизация для оповещения в Telegram о низком заряде батареи всех батарейных устройств zigbee.
Справедливо для батарейных устройств имеющих свойство "Battery".
В разделе "Actions - shell" находится переменная alert_level с помощью которой можно настроить минимальный уровень заряда батареи в процентах.
Если у устройств текущее значение будет ниже установленного в этой автоматизации, произойдёт оповещение.
Выполняется по настроенному интервалу времени или при отправке telegram-боту ключевого слова "батарейки".
⚠️ Для работы автоматизации необходимо установить утилиту jq
Как установить jq
в OpenWrt:
opkg update
opkg install jq
в Armbian:
apt update
apt install jq
Код автоматизации:
{
"actions": [
{
"command": "#Тут можно настроить уровень срабатывания\n\n\n#Минимальный уровень заряда батареи в процентах при котором будет происходить оповещение\n#Выставить желаемый уровень срабатывания необходимо в переменной alert_level\nalert_level=130\n\n\n#Выполнение запроса\njq -r --slurpfile db /opt/homed-zigbee/database.json '\n ($db[0].devices | map({key: .ieeeAddress, value: .name}) | from_entries) as $names\n | to_entries[] \n | .key as $addr \n | .value \n | .. \n | objects \n | .battery? \n | select(. != null) \n | [$addr, .] \n | .[0] = ($names[.[0]] // .[0])\n | @tsv\n' /opt/homed-zigbee/properties.json | sed 's/[[_*`[]/\\\\&/g' | awk -F'\\t' -v level=$alert_level '$2 < level {print \"🪫 \"$0\"%\"}'",
"type": "shell"
},
{
"conditions": [
{
"equals": "_NULL_",
"pattern": "{{shellOutput}}",
"type": "pattern"
}
],
"else": [
{
"message": "{{shellOutput}}",
"type": "telegram"
}
],
"then": [
{
"message": "Выводить нечего",
"triggerName": "telegram",
"type": "telegram"
}
],
"type": "condition"
}
],
"note": "Автоматизация для оповещения в Telegram о низком заряде батареи всех батарейных устройств zigbee.\n<p>\nВ разделе \"Actions - shell\" находится переменная alert_level с помощью которой можно настроить минимальный уровень заряда батареи в процентах. \nЕсли у устройств текущее значение будет ниже установленного в этой автоматизации, произойдёт оповещение.\n<p>\nВыполняется по настроенному интервалу времени или при отправке telegram-боту ключевого слова \"батарейки\".",
"restart": false,
"triggers": [
{
"message": "батарейки",
"name": "telegram",
"type": "telegram"
},
{
"interval": 720,
"type": "interval"
}
],
"conditions": [],
"debounce": 0
}
Файл для импорта автоматизации: