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

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

Модератор: immortal

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

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

Сообщение nick7zmail » Вс янв 07, 2018 11:53 am

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

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

Сообщение zh_serzh » Вт июл 30, 2019 3:11 pm

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

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

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

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

Сообщение Chainik » Вт июл 30, 2019 3:22 pm

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
Благодарил (а): 4 раза
Поблагодарили: 1 раз

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

Сообщение zh_serzh » Вт июл 30, 2019 4:23 pm

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

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

Сообщение zh_serzh » Вт июл 30, 2019 4:36 pm

В базе знаний - встроенные в MajorDoMo функции:
timeOutExists('title'); -- возвращает идентификатор запланированной задачи (или 0, в случае отсутствия)
По идее код правильный, но не работает... :?:
За это сообщение автора zh_serzh поблагодарил:
Chainik (Вт июл 30, 2019 4:45 pm)
Рейтинг: 1.16%
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

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

Сообщение Chainik » Вт июл 30, 2019 4:47 pm

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

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

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

А "спасибо" говорится путем нажатия на соответствующую кнопку с изображением жеста, выражающего одобрение, расположенную над текстом сообщения справа.
За это сообщение автора Chainik поблагодарил:
zh_serzh (Вт июл 30, 2019 5:40 pm)
Рейтинг: 1.16%
zh_serzh
Сообщения: 7
Зарегистрирован: Пн фев 04, 2019 10:42 pm
Благодарил (а): 4 раза
Поблагодарили: 1 раз

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

Сообщение zh_serzh » Вт июл 30, 2019 6:02 pm

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

Задача:
Исключить повторное нажатие на кнопку (скрыть ее) во время работы скрипта на 15сек.
xxx1.png
xxx1.png (10.11 КБ) 3164 просмотра
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
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

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

Сообщение xor » Вт июл 30, 2019 6:49 pm

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

За это сообщение автора xor поблагодарил:
zh_serzh (Вт июл 30, 2019 9:15 pm)
Рейтинг: 1.16%
zh_serzh
Сообщения: 7
Зарегистрирован: Пн фев 04, 2019 10:42 pm
Благодарил (а): 4 раза
Поблагодарили: 1 раз

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

Сообщение zh_serzh » Вт июл 30, 2019 7:08 pm

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

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

Сообщение Chainik » Вт июл 30, 2019 7:43 pm

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", а картинка (изображение) для состояния будет отсутствовать, либо выглядеть как "черный квадрат".
За это сообщение автора Chainik поблагодарили (всего 2):
zh_serzh (Вт июл 30, 2019 9:15 pm) • xor (Вт июл 30, 2019 10:40 pm)
Рейтинг: 2.33%
Ответить