Контроль уровня заряда батареек в 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); } });