Запуск сценария по кнопке
-
Участник @intrapro написал в Запуск сценария по кнопке:
@gewer, предыдущий пост получился довольно длинным в попытке прояснить событийный механизм сценариев.
Возможно, мы вашу задачу не совсем правильно поняли. Пробуйте и задавайте вопросы дальшеСпасибо, ближе к выходным буду пытаться разобраться. До момента написания сценариев всё прошло довольно гладко, на самом интересном становится сложнее, но думаю что осилю)
-
На сайте есть статья управление теплыми полами
Возможно, она поможет решить вашу задачу
Там есть мультисценарий, который можно использовать.
-
Участник @intrahouse написал в Запуск сценария по кнопке:
На сайте есть статья управление теплыми полами
Возможно, она поможет решить вашу задачу
Там есть мультисценарий, который можно использовать.Это то что нужно!
В статье есть следующее:
"Если перейти на пользовательский интерфейс и долго удерживать на иконке теплого пола, в окне свойств вы увидите параметры, которые мы определили в сценарии. Таким образом мы получили возможность настраивать уставки температуры для разных режимов."
В данном случае уставку можно будет поменять для каждого датчика отдельно, верно? Или она будет меняться для всех сразу? В разных помещениях нужна разная температура тёплых полов (в ванной теплее, в неиспользуемых спальнях вообще отключить и т.д.).
-
Участник @gewer написал в Запуск сценария по кнопке:
В данном случае уставку можно будет поменять для каждого датчика отдельно, верно?
Да, это так.
-
Участник @intrahouse написал в Запуск сценария по кнопке:
Да, это так.
Супер. Тогда это идеально мне подходит.
Несколько дней курения мануалов и ваша помощь сэкономили нехилую сумму на автоматике для водяных полов) Спасибо!
-
Можно все же поднять еще раз вопрос?
Итак имеем один сценарий (мультисценарий) - работа батарей в зависимости от датчиков температуры и уставки на датчике.
Возможен другой сценарий - работа батарей в зависимости от значения датчика температуры и определенной температуре "антизамерзания"
Хочется что бы при включении отопления работал первый сценарий а при выключении - второй. Вопрос: как из одного сценария заблокировать/разблокировать выполнение другого?
-
Участник @alesle написал в Запуск сценария по кнопке:
Можно все же поднять еще раз вопрос?
Итак имеем один сценарий (мультисценарий) - работа батарей в зависимости от датчиков температуры и уставки на датчике.
Возможен другой сценарий - работа батарей в зависимости от значения датчика температуры и определенной температуре "антизамерзания"
Хочется что бы при включении отопления работал первый сценарий а при выключении - второй. Вопрос: как из одного сценария заблокировать/разблокировать выполнение другого?Сделайте актуатор на 2 состояния. 1 состояние для включенного отопления, второе - для выключенного.
В обоих мультисценариях, которые у вас запускаются при изменении показаний датчика температуры, добавьте для запуска проверку условия соответствия этого актуатора нужному положению. Первый мультисценарий запускайте, если он в положении "отопление включено", второй - в положении "отопление выключено.Вот, для примера, аналогичная пара. только разное поведение по датчикам движения при включении или отключении режима охрана. Когда выключен - включает свет, когда включен - посылает пуш-сообщение.
Первый/** * @name Свет в комнате по движению * @desc * @version 4 */ const Lamp = Device("ActorD", "Светильник"); const Sw = Device("SensorD", "Выключатель"); const Motion = Device("SensorD", "Датчик движения"); const SAF = Device("ActorD","Охрана"); const Last = Device("ActorA","Последнее движение"); // Запустим сценарий при сработке датчика движения, если светильник не горит, режим охраны отключен, выключатель выключен. startOnChange([Motion], Motion.isOn() && Lamp.isOff() && Sw.isOff() && SAF.isOff()); script({ start() { Lamp.on(); Last.setValue(`Последнее движение ${new Date().toLocaleString()}. ${Motion.zoneName}`); // взводим таймер, чтобы отключить this.startTimer("T1", 180, "turnOff"); // Добавляем слушателей - следим за датчиком движения и светильником this.addListener(Motion, "onMotion"); this.addListener(Lamp, "onLamp"); this.addListener(Sw, "onSw"); }, onMotion() { // Если движение возобновилось - сбрасываем таймер if (Motion.isOn() ) { this.stopTimer("T1"); } // Если движение прекратилось - взводим таймер (после повторных движений) if (Motion.isOff() && this.timer.T1 == "off") { this.startTimer("T1", 180, "turnOff"); } }, onLamp() { // Светильник выключили другим способом - выходим if (Lamp.isOff()) this.exit(); }, onSw() { // Светильник выключили другим способом - выходим if (Sw.isOn() ) { this.stopTimer("T1"); this.exit(); } }, // Функция, которая сработает, когда таймер досчитает - отключаем и выходим turnOff() { Lamp.off(); this.exit(); // Здесь exit нужен, так как есть активные слушатели и сценарий сам не завершится } });
Второй
/** * @name Движение в комнате * @desc * @version 4 */ const motion = Device("SensorD", "Датчик движения"); const SAF = Device("ActorD","Охрана"); const Last = Device("ActorA","Последнее движение"); startOnChange([motion], motion.isOn()); script({ start() { if ((motion.isOn())) { Last.setValue(`Последнее движение ${new Date().toLocaleString()}. ${motion.zoneName}`); } if ((SAF.isOn()) && (motion.isOn())) { this.info("pushnotification","OWNER",`Движение в комнате!!!!`); } } });
-
Спасибо, так я и сделал, в конце концов.
-
Помогите советом. Хочу на одном из экранов сделать кнопку, при нажатии чтобы меня перекидывало на настройку проекта ( http://192.168.0.7:8088/pm/ )
-
@DM19, на текущий момент такой возможности нет (надо добавить в "Системные команды"). Только если использовать не кнопку, а html-виджет и в нем прописать прямой адрес с типом открытия в новом окне.