Скрипты ioBroker. Функция для оповещений
Функция находится в ветке 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, '');
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');
}
}
}