[Модуль] Сцены (scenes)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

Re: Новый интерфейс

Сообщение nick7zmail »

Создайте терминалы с соответствующими IP. А при старте в мажордроиде пропишите нужную сцену.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
zh_serzh
Сообщения: 7
Зарегистрирован: Пн фев 04, 2019 10:42 pm

Re: [Модуль] Сцены (scenes)

Сообщение zh_serzh »

Добрый день!
При попытке добавить состояние для индикатора режима в поле Advanced condition прописываю:

Код: Выделить всё

if ($timeOutExists('far-KV9-off') = 0) {
        $display=1;
} else {
        $display=0;
}
Но код не сохраняется...
Задача скрывать индикатор/кнопку пока работает таймер far-KV9-off
Подскажите куда копать...?
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am

Re: [Модуль] Сцены (scenes)

Сообщение Chainik »

zh_serzh писал(а): Вт июл 30, 2019 3:11 pm ...
Но код не сохраняется...
Задача скрывать индикатор/кнопку пока работает таймер far-KV9-off
Подскажите куда копать...?
Поставьте радиоточку в пункте "Расширенная настройка" в положение "Да".

Ну и по коду. Правильный синтаксис будет таким (с точки зрения того, что не "=", а "=="):

Код: Выделить всё

if ($timeOutExists('far-KV9-off') == 0)
А что это у вас за $timeOutExists('far-KV9-off')? $timeOutExists -- это же не глобальная переменная?
Предполагаю, что 'far-KV9-off' -- это некое свойство. В таком случае его значение надо запрашивать как

Код: Выделить всё

gg('ИМЯ_ВАШЕГО_ОБЪЕКТА.far-KV9-off')
zh_serzh писал(а): Вт июл 30, 2019 3:11 pm При попытке добавить состояние для индикатора режима в поле Advanced condition...
Для точности формулировок: в поле "Advanced condition" прописывается не состояние, а дополнительное условие отображения.
zh_serzh
Сообщения: 7
Зарегистрирован: Пн фев 04, 2019 10:42 pm

Re: [Модуль] Сцены (scenes)

Сообщение zh_serzh »

Радиоточка стояла, проблема:
Правильный синтаксис будет таким (с точки зрения того, что не "=", а "=="):
:shock:
Спасибо!
Последний раз редактировалось zh_serzh Вт июл 30, 2019 4:37 pm, всего редактировалось 1 раз.
zh_serzh
Сообщения: 7
Зарегистрирован: Пн фев 04, 2019 10:42 pm

Re: [Модуль] Сцены (scenes)

Сообщение zh_serzh »

В базе знаний - встроенные в MajorDoMo функции:
timeOutExists('title'); -- возвращает идентификатор запланированной задачи (или 0, в случае отсутствия)
По идее код правильный, но не работает... :?:
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am

Re: [Модуль] Сцены (scenes)

Сообщение Chainik »

Спасибо за пояснение. Раньше не пользовался timeOutExists.
Теперь понятно, "откуда дровишки".
Тогда timeOutExists у нас функция, а не переменная. А это значит, что перед ней знак "$" надо убрать. Т.е.

Код: Выделить всё

if (timeOutExists('far-KV9-off') == 0)
Можно еще ноль в кавычки взять (== "0").

А "спасибо" говорится путем нажатия на соответствующую кнопку с изображением жеста, выражающего одобрение, расположенную над текстом сообщения справа.
zh_serzh
Сообщения: 7
Зарегистрирован: Пн фев 04, 2019 10:42 pm

Re: [Модуль] Сцены (scenes)

Сообщение zh_serzh »

Сама функция работает! Не работает автообновление индикатора режима/кнопки...
После нажатия кнопка исчезает, но через 15 сек (время таймера far-KV9-off) не появляется, если обновить страницу то кнопка появляется (как и должна)...

Задача:
Исключить повторное нажатие на кнопку (скрыть ее) во время работы скрипта на 15сек.
xxx1.png
xxx1.png (10.11 КБ) 5034 просмотра
1. создал на сцене элемент- индикатор режима
2. установил два состояния on/off
3. on при клике выполнять сценарий на закрытие
off при клике выполнять сценарий на открытие
4. условия отображения расширенное:
при on

Код: Выделить всё

if (gg('me3_xp1_in1.status') ==1 && timeOutExists('far-KV9-off') == 0) {
        $display=1;
} else {
        $display=0;
}
при off

Код: Выделить всё

if (gg('me3_xp1_in1.status') ==0 && timeOutExists('far-KV9-off') == 0) {
        $display=1;
} else {
        $display=0;
}
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

Re: [Модуль] Сцены (scenes)

Сообщение xor »

zh_serzh писал(а):Сама функция работает! Не работает автообновление индикатора режима/кнопки...
После нажатия кнопка исчезает, но через 15 сек (время таймера far-KV9-off) не появляется, если обновить страницу то кнопка появляется (как и должна)...

Задача:
Исключить повторное нажатие на кнопку (скрыть ее) во время работы скрипта на 15сек.
xxx1.png
1. создал на сцене элемент- индикатор режима
2. установил два состояния on/off
3. on при клике выполнять сценарий на закрытие
off при клике выполнять сценарий на открытие
4. условия отображения расширенное:
при on

Код: Выделить всё

if (gg('me3_xp1_in1.status') ==1 && timeOutExists('far-KV9-off') == 0) {
        $display=1;
} else {
        $display=0;
}
при off

Код: Выделить всё

if (gg('me3_xp1_in1.status') ==0 && timeOutExists('far-KV9-off') == 0) {
        $display=1;
} else {
        $display=0;
}
Может, третий режим сделать, когда на кнопку нельзя нажимать?

Отправлено с моего Redmi 4X через Tapatalk

zh_serzh
Сообщения: 7
Зарегистрирован: Пн фев 04, 2019 10:42 pm

Re: [Модуль] Сцены (scenes)

Сообщение zh_serzh »

Может, третий режим сделать, когда на кнопку нельзя нажимать?
Пробовал, не получается.
Предполагаю проблема в том, что концевик крана (me3_xp1_in1) меняет свой статус раньше чем заканчивается время таймера (15сек), а обновления происходят только по изменению свойства в объекте.
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am

Re: [Модуль] Сцены (scenes)

Сообщение Chainik »

zh_serzh писал(а): Вт июл 30, 2019 7:08 pm
Может, третий режим сделать, когда на кнопку нельзя нажимать?
Пробовал, не получается.
...
Ув.xor предлагает абсолютно рабочий вариант. Т.е. вообще не использовать доп.условие отображения, а добавить 3-е состояние, аля "изменяется". Этому состоянию будет соответствовать отдельный статус, например, "2". Т.е. в методах на открытие и закрытие надо будет в течение 15 секунд выставлять этот статус, а по окончании изменения состояния крана выставлять "0" или "1". Например [в методах],

Код: Выделить всё

sg('me3_xp1_in1.status', 2);
setTimeOut('far-KV9-off','sg("me3_xp1_in1.status",0);',15);
Ну и, соответственно, этому 3-му состянию будет соответствовать статус "2", а картинка (изображение) для состояния будет отсутствовать, либо выглядеть как "черный квадрат".
Ответить