Функция для оповещений
Функция находится в ветке global скриптов ioBroker и вызывается из любого скрипта. С помощью этой функции отправляются уведомления в телеграм, на проигрыватель Kodi, телевизор LG и в адаптер sayit для озвучивания сообщений голосом.
Функция в качестве аргументов принимает:
- text — текст оповещения (сообщения)
- level — уровень важности от 0 до 2
- telegram — флаг для отправки сообщения в телеграм, если false то сообщение в телеграм отправлять не будет. Если не задано или true то в телеграм отправляются сообщения только с уровнем 1 или 2.
- cb — callback, возвращает true после выполнения функции.
function alert(text, level, telegram, cb){ log('Уведомление {' + text + '} с уровнем важности {' + level + '}, отправка в телеграм: ' + telegram); var saytext = text; var hour = (new Date()).getHours(); var Sleep = getState('javascript.0.Scenes.Sleep').val; var Allgone = getState('javascript.0.Scenes.Allgone').val; var sayOff = getState('javascript.0.Scenes.sayOff').val; if(~text.indexOf('<speak>')){ text = text.replace(/(\<(\/?[^>]+)>)/g, ''); } switch (level) { case 0: if(!Sleep && hour > 6 && hour < 23 && !Allgone && !sayOff){ setState('sayit.0.tts.text', saytext); } break; case 1: if(!Sleep && !Allgone && !sayOff){ setState('sayit.0.tts.text', saytext); } break; case 2: if(!Allgone){ setState('sayit.0.tts.text', saytext); } break; default: log('Function Alert, не известный уровень важности сообщения.'); } sendToKodi(text, level); sendToTV(text); if(telegram == undefined || telegram){ if(level === 1){ text = '?? ' + text; } if(level === 2){ text = '?? ' + text; } sendTo('telegram', {text: text}); } cb && cb(true); function sendToTV(txt){ if (txt[2] !== ':' && txt[1] !== ':'){ //Если не "ВРЕМЯ" setState('lgtv.0.states.popup', txt); } } function sendToKodi(txt, lvl){ if (txt[2] !== ':' && txt[1] !== ':'){ //Если не "ВРЕМЯ" setState('kodi.0.ShowNotif', lvl + ';' + txt + ';5000'); } } }