Сценарии - новая версия API
-
@int144, все верно, start работает синхронно, он просто запускает запрос в this.send_http и идет дальше. Не ждет, когда придет ответ на запрос.
03.01 13:15:08.994 Stopped - здесь start уже работу свою закончил
Можно взвести таймер (на 1 сек или меньше, 0.1 даже достаточно). И в этой функции значения уже должны быть
-
@intrapro, а таймер взводить в start?
-
@int144, да
-
@intrapro, спасибо, буду пробовать
-
Добрый день!
Не работает команда операционной системы
Вот сценарийconst mon = Device("POWER_MIRROR"); // Запускаем сценарий при изменении состояния выключателя зеркала startOnChange(mon); script({ start() { if (mon.isOff()) // Если он выключен this.execOS(`/home/pi/mirror_off.sh`); // Даем команду на выключение монитора else this.execOS(`/home/pi/mirror_on.sh`); // Иначе - на включение } });
В отладчике пишет
04.01 15:56:49.463 Trigger POWER_MIRROR
04.01 15:56:49.464 Started
04.01 15:56:49.465 execOS: /home/pi/mirror_off.sh
04.01 15:56:49.492 Stopped
04.01 15:56:49.522 execOS error: Error: Command failed: /home/pi/mirror_off.sh
No protocol specified
xset: unable to open display ":0.0"04.01 15:56:49.523 stdout:
04.01 15:56:49.524 stderr: No protocol specified
xset: unable to open display ":0.0"Хотя из терминала все прекрасно срабатывает. Может кто-то подсказать куда копать?
-
Подскажите как можно вывести среднюю температуру с 3 датчиков температури в сценарии? Хочу чтобы рекуператор менял уставку в зависимости от температуры в помещении.
-
@amgstone, ну а в чем проблема? Подтягиваете в сценарий своих 3 датчика температуры, в переменную заносите среднюю температуру от них и присваиваете 4-му датчику усредненное значение, по которому будет работать рекуператор.
-
@Alex_Jet от непонимаю как ето сделать в ih.
-
let avr = (t1.value + t2.value + t3.value)/3; //Закон усреднения показаний от трех датчиков this.assign(t_avr, "value", avr); //Присвоение аналоговому датчику значения
-
@Alex_Jet спасибо, все получилось))))
-
Может хто показать сценарий для счетчика многотарифного, чтобы визуализировал расход електроенергии по тарифам. Прошивка tasmota, wemos, pzem-004, mqtt.
-
Добрый день!
В коде моего сценария есть такая строка:
const pump = Device(“pumpRecirculation_4”, [
{"name":"timePumpOn", "note":" Время работы насоса после отключения света, сек ", "type":"number", "val":1800}]);Так вот, после первого срабатывания сценария в свойство timePumpOn прописалось значение 1800. Меняю в сценарии значение "val" на другое, сохраняю изменения, а в timePumpOn остается по прежнему 1800. Изменить его можно только из сценария командой setParam. Разве так и должно быть?
-
@Lost, эта уставка оперативно! меняется из веб-интерфейса через "Параметры" устройства (всплывающее меню устройства при долгом клике мышью).
-
@Alex_Jet, это я уже понял. Получается в самом сценарии значение val задается только первый раз, а дальше менять его либо командами либо из веб?
-
@Lost, просто из веб. Ну или в случае различных уставок в течении суток, то из сценария.
-
Понятно. Спасибо!
-
Добрый вечер!
Столкнулся с интересной ситуацией. В сценарии был запущен таймер:
this.startTimer("T1", 0.5, "onTimerT1").
И так получилось, что до момента его срабатывания произошло выполнение следующей команды:
this.startTimer("T1", 55, "turnOff").
И после отработки выдержки 0.5 сек (задавалась в первой команде) выполнилась функция turnOff. Хотелось бы узнать, тут все верно или есть "косячок"?
-
@Lost, наверное логично поскольку в обоих случаях таймеры называются одинаково!
-
@Alex_Jet, получается не очень логично. Исполняемая функция изменилась, а время работы таймера - нет. Как то половинчато получается.
-
@Lost, пробовали таймеры называть своими именами? Или хотя бы явно объявлять их в начале сценария?