Возврат на сцену

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Anton_kulibin
Сообщения: 354
Зарегистрирован: Вт окт 09, 2012 8:05 am
Откуда: Луза Кировская обл. Россия
Благодарил (а): 20 раз
Поблагодарили: 34 раза

Возврат на сцену

Сообщение Anton_kulibin » Вт янв 17, 2017 10:49 pm

Коллеги, вопрос. Нужно реализовать алгоритм, перехода на сцену по таймауту бездействия, т.е. если пользователь не работает со сценой период времени, перейти на другую сцену. Хотябы натолкните куда копать.
Linux версия. Ubuntu Server 16.04+2xArduinoMega+Eth_GW_Mysensors_10node+WeatherStation+Xiaomi
CONNECT
Akorolev
Сообщения: 119
Зарегистрирован: Вт ноя 08, 2016 4:27 pm
Благодарил (а): 11 раз
Поблагодарили: 10 раз

Re: Возврат на сцену

Сообщение Akorolev » Ср янв 18, 2017 6:35 am

Делается по средствам JS. но там не будет считаться нажатие кнопок, вернее можно и сделать что бы считало но не знаю как, а вот тема для размышления:

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

<script language = 'javascript'>
  var delay = 60000;
  setTimeout("document.location.href='http://ссылка'", delay);
</script>
delay = 60000 - это 60 секунд. Т.е. получится так что если пользователь зашел на страницу - через 60 секунд его перебросит.
За это сообщение автора Akorolev поблагодарил:
lanket (Ср янв 18, 2017 9:28 am)
Рейтинг: 1.16%
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Возврат на сцену

Сообщение nick7zmail » Ср янв 18, 2017 8:37 am

clearTimeOut в начале дописать, обернуть в функцию, и на каждый элемент повесить её на onClick="func();" или как там это делается...
Прикол в том - что это делается в HTML... Как подцепить это к стандартным элементам (выключателям и т.п.) - это хз...если есть поле "Дополнительный javascript код" , тогда вообще без проблем....а есть оно или нет - не помню...

UPD: нашел, как повесить на любой клик $(window,document).on("click",function(){тут ваша функция});
За это сообщение автора nick7zmail поблагодарил:
lanket (Ср янв 18, 2017 9:28 am)
Рейтинг: 1.16%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Возврат на сцену

Сообщение lanket » Ср янв 18, 2017 9:33 am

nick7zmail писал(а):clearTimeOut в начале дописать, обернуть в функцию, и на каждый элемент повесить её на onClick="func();" или как там это делается...
Прикол в том - что это делается в HTML... Как подцепить это к стандартным элементам (выключателям и т.п.) - это хз...если есть поле "Дополнительный javascript код" , тогда вообще без проблем....а есть оно или нет - не помню...

UPD: нашел, как повесить на любой клик $(window,document).on("click",function(){тут ваша функция});
Практичная идея.

Подошёл, Побаловался, ушёл а МД вернулся на стартовую сцену.
Единственное что стартовые сцены могут быть разные в зависимости от назначения помещения. Например в холле это видео глазок, погода и общая инфа. А например в котельной состояние инженерии.....
Думаю имеет смысл этот функционал в виде опции поместить в настройках сцен.

Отправлено с моего Redmi Note 3 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Возврат на сцену

Сообщение nick7zmail » Ср янв 18, 2017 9:52 am

Ну можно же в зависимости от терминала (вроде эту опцию можно из настроек вытянуть) выбирать "document.location.href='http://ссылка'"...только код при этом усложняется условиями))

А вообще да, неплохо бы было иметь это в стандартном арсенале) В таблицу терминалов добавить что-то типа home_url, и таймер запускать в заголовке default.html, apps.html, menu.html...и какие там еще варианты есть стартовых страниц)) (а не на конкретных сценах).

UPD: Кстати, так же эта опция (home_url в таблице терминалов) может быть полезна при открытии страницы....например я ввожу в браузерную строку IP-шник МД, если запрос идет с IP терминала, забитого в таблицу - открывается не default.html а сразу идет редирект на home_url конкретного терминала... нифига меня понесло))
За это сообщение автора nick7zmail поблагодарил:
Samir77 (Сб июн 26, 2021 5:56 pm)
Рейтинг: 1.16%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Anton_kulibin
Сообщения: 354
Зарегистрирован: Вт окт 09, 2012 8:05 am
Откуда: Луза Кировская обл. Россия
Благодарил (а): 20 раз
Поблагодарили: 34 раза

Re: Возврат на сцену

Сообщение Anton_kulibin » Ср янв 18, 2017 12:02 pm

Спасибо за наводку. Буду копать.
Linux версия. Ubuntu Server 16.04+2xArduinoMega+Eth_GW_Mysensors_10node+WeatherStation+Xiaomi
CONNECT
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Возврат на сцену

Сообщение nick7zmail » Ср янв 18, 2017 1:19 pm

Anton_kulibin писал(а):Спасибо за наводку. Буду копать.
А че копать то?))уже почти готовый код привел....

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

$(window,document).on("click",function(){
   clearTimeout(mytimeout); 
   var delay = 60000;
   mytimeout=setTimeout("document.location.href='http://ссылка'", delay);
}); 
Создать элемент html на сцене, в javascript вписать, и тестить...не факт конечно, что заведется...мог со скобками напортачить или ещё что нить...проверить негде, писал вслепую))
На OnLoad страницы тоже её же можно повесить, на случай если не будет клика, а вернуться все равно надо.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Anton_kulibin
Сообщения: 354
Зарегистрирован: Вт окт 09, 2012 8:05 am
Откуда: Луза Кировская обл. Россия
Благодарил (а): 20 раз
Поблагодарили: 34 раза

Re: Возврат на сцену

Сообщение Anton_kulibin » Ср янв 18, 2017 4:36 pm

Сделал не так, но работает. Добавил html элемент в нем

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

<script language = 'javascript'>
function reload (){
 clearTimeOut();
 }
 var delay = 600000;
  setTimeout("document.location.href='/popup/scenes/5.html'", delay);
 
  $(window,document).on("click",function(){reload()});
</script>
Протестил работает
Linux версия. Ubuntu Server 16.04+2xArduinoMega+Eth_GW_Mysensors_10node+WeatherStation+Xiaomi
CONNECT
AlexandrPrimes
Сообщения: 11
Зарегистрирован: Вт май 23, 2017 10:26 pm
Благодарил (а): 1 раз
Поблагодарили: 0

Re: Возврат на сцену

Сообщение AlexandrPrimes » Ср май 24, 2017 6:41 pm

Anton_kulibin писал(а):Сделал не так, но работает. Добавил html элемент в нем

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

<script language = 'javascript'>
function reload (){
 clearTimeOut();
 }
 var delay = 600000;
  setTimeout("document.location.href='/popup/scenes/5.html'", delay);
 
  $(window,document).on("click",function(){reload()});
</script>
Протестил работает
Здравствуйте! вы разобрались с возвратом на сцену если бездействие на протяжении какого - то времени?
FredP
Сообщения: 59
Зарегистрирован: Ср авг 23, 2017 5:35 pm
Благодарил (а): 2 раза
Поблагодарили: 2 раза

Re: Возврат на сцену

Сообщение FredP » Вт июн 19, 2018 1:03 pm

AlexandrPrimes писал(а):
Ср май 24, 2017 6:41 pm
Anton_kulibin писал(а):Сделал не так, но работает. Добавил html элемент в нем

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

<script language = 'javascript'>
function reload (){
 clearTimeOut();
 }
 var delay = 600000;
  setTimeout("document.location.href='/popup/scenes/5.html'", delay);
 
  $(window,document).on("click",function(){reload()});
</script>
Протестил работает
Здравствуйте! вы разобрались с возвратом на сцену если бездействие на протяжении какого - то времени?
Присоединяюсь к вопросу. Может, при любом нажатии на кнопки - обнулять (на базовое значение) таймер? В коде скрипта этот таймер указать. Или скрипт нужно будет перезапускать?
Ответить