Скрипт не отрабатывает
-
Задача такая. Опрашивать оборудование ( кондиционеры и ИБП) и хранить данные..
Я вот накарябал скрипт но что то сообщения приходят без остановки, посмотрите что не так.
/**- @name Air3_4data3
- @desc Тестовый сценарий
- @version 4
*/
const temp = Device("STEMP2");
startOnChange(temp);
script({
start(){
if (temp.value < 80);
if(temp.value > 40);
this.info('telegram', 'OWNER', 'Высокая температура кондиционеров 3-4!');
}
});
-
@dangers-77 Добрый день.
Ваш скрипт будет срабатывать при каждом изменении значения, и при каждом запуске отправляется сообщение
Идея же в том, чтобы послать один раз при выходе за диапазон, затем при нормализации?
Есть разные варианты, можно например, так:/** @name test_temp @desc Тестовый сценарий @version 4 */ const temp = Device("STEMP2"); startOnChange(temp); script({ start(){ const max = 40; const min = 10 if ((temp.value > max) || (temp.value < min)) { // Выход за диапазон if (temp.value > max) this.info('telegram', 'OWNER', 'Температура выше максимальной!'); if (temp.value < min) this.info('telegram', 'OWNER', 'Температура ниже минимальной!'); this.addListener(temp, 'onTempChange'); // Сценарий не завершаем, подключаем слушателя событий датчика } // Если температура в норме - сценарий завершается. Запустится опять при изменении }, onTempChange() { if ((temp.value < max) && (temp.value > min)) { this.info('telegram', 'OWNER', 'Температура в норме!'); this.exit(); // Температура в норме - завершаем сценарий } } });
-
Спасибо большое. Очень помогли. А то я переделал свой вроде тоже работал но с повторами пока в норму температура не в станет. Истеричный скрипт у меня получился
/**- @name Новый мультисценарий
- @desc
- @version 4
*/
const temp = Device("Air3_4data3");
startOnChange(temp);
script({
start() {
if (temp.value < 80){temp.on();} else if (temp.value > 30){temp.off();
this.info('telegram', 'OWNER', 'Повышенная температура Нур-Султан ЦОД 3 кондиционер 3-4!');
}
}
});