Контроль уровня заряда батареек в xiaomi девайсах
Скрипт выборкой с помощью регулярного выражения «/zigbee.*?.battery$/» подписывается на все объекты «battery» ветки «zigbee» и при любом изменении любого из объекта «battery» проверяет текущий уровень заряда и если он меньше 35% отправляет уведомление в телеграм и оповещает голосом. Функция «alert» находится в ветке global и содержит различные условия для уведомлений. Уведомление о заряде отправляются не чаще 43200000 миллисекунд или 12 часов.
var time_alert = false;
on({id: /zigbee.*?.battery$/, change: 'any'}, function (obj) {
if(obj.state.val < 35){
var dev = obj.id.replace('.battery', '');
var devobj = getObject(dev);
if(!time_alert){
alert('Уровень заряда батарейки в устройстве "' + devobj.common.name + '" = ' + obj.state.val + '%, нужно заменить батарейку.', 1);
}
time_alert = true;
setTimeout(function() {
time_alert = false;
}, 43200000);
}
});