Страница 108 из 124

Re: Простые устройства / Simple Devices

Добавлено: Пт фев 21, 2020 8:37 am
timurufa86
nick7zmail писал(а): Пт фев 21, 2020 7:11 am 1) А как вы распознаете принудительно выключился свет, или автоматически? В МД по сути выполнятся одни и те же методы...
2) Чем не подходит указанный выше метод? При выключении ставим блокировку датчика, ставим таймер на снятие блокировки...Выключили - 3 сек датчик не работает, потом начинает работать. Если надо, чтоб он сработал, если было движение в течении этих 3 сек - тогда после снятия блокировки принудительно активируем, записав в свойство status...или value...куда там ДД пишет - 1.
1) придется менять логику в методе через сравнение пре валуе и неу валуе
2) не подходит из-за того что мне не надо блокировать датчик на 3 секунды по нажатию клавиши ...
мне надо сто бы как бы происходил двукратный контроль движения в темное время суток ДЛЯ ТОГО ЧТО БЫ ЭТОТ ДОЛБАННЫЙ СВЕТ НЕ ВКЛЮЧАЛСЯ КОГДА Я СПЛЮ И ВОРОЧУЮСЬ ИЛИ ПРОТЯНУ РУКУ ЧТО БЫ ПОПИТЬ ВОДЫ ))))))

Re: Простые устройства / Simple Devices

Добавлено: Пт фев 21, 2020 9:34 am
Chainik
Не знаю, как это будет соотносится с логикой работы ПУ (т.к. ими не пользуюсь), но в принципе можно сделать следующее.
Сработала кнопка >>> запустился метод, привязанный к кнопке. И в этот метод можно дописать строку:

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

SetTimeOut('MyTimer_Blokirovka','say("включена блокировка");',3);
Не знаю, что можно записать вместо say, чтобы не нарушить синтаксис, и чтобы фактически никакие действия не выполнялись...

А в метод, который запускается при срабатывании ДД (перед действием на включение света), надо записать:

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

if(TimeOutExists('MyTimer_Blokirovka')){
return "";
}
Другими словами, если идет 3-секундная блокировка, выполнение метода завершаем.

Re: Простые устройства / Simple Devices

Добавлено: Пт фев 21, 2020 11:37 am
nick7zmail
timurufa86 писал(а): Пт фев 21, 2020 8:37 am 1) придется менять логику в методе через сравнение пре валуе и неу валуе
VALUE и NEW_VALUE меняются и отрабатывают и при ручном включении и при автоматическом. Так что вопрос остаётся - как таки именно ручное собрались отлавливать? Лично мне в последний раз при таком запросе пришлоть мутить оч уродливую логику через 3 ПУ вместо 1 реле.
timurufa86 писал(а): Пт фев 21, 2020 8:37 am 2) не подходит из-за того что мне не надо блокировать датчик на 3 секунды по нажатию клавиши ...
мне надо сто бы как бы происходил двукратный контроль движения в темное время суток ДЛЯ ТОГО ЧТО БЫ ЭТОТ ДОЛБАННЫЙ СВЕТ НЕ ВКЛЮЧАЛСЯ КОГДА Я СПЛЮ И ВОРОЧУЮСЬ ИЛИ ПРОТЯНУ РУКУ ЧТО БЫ ПОПИТЬ ВОДЫ ))))))
Тогда выше правильно сказали. По движению создаёте таймер (на 10 сек к примеру), и прописываете return; чтобы не выполнять дальнейшие действия ДД (хотя и без ретурна можно, если к ДД ничего не привязано через интерфейс). Таймер можно вообще без команды, т.к. нам важно само наличие этого таймера. При повторном срабатывании, если датчик, к примеру раз в 5 сек шлет - через 5 сек проверяете - если таймер существует - включаем свет. Если не существует, то вышеописанная логика - создаём новый таймер и return;
Так если датчик с промежутком 5 сек 2 раза сработает - включится. Если 2-3 да хоть сколько раз с промежутками более 10 сек - не сработает.

Re: Простые устройства / Simple Devices

Добавлено: Пт фев 21, 2020 5:02 pm
timurufa86
как проверить что таймер существует?

Re: Простые устройства / Simple Devices

Добавлено: Пт фев 21, 2020 7:00 pm
Chainik
timurufa86 писал(а): Пт фев 21, 2020 5:02 pm как проверить что таймер существует?

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

if(TimeOutExists('MyTimer_Blokirovka')){
say("Таймер с именем MyTimer_Blokirovka существует");
}

Re: Простые устройства / Simple Devices

Добавлено: Сб фев 22, 2020 8:02 pm
Jilber
А можно ли таймер как-то вывести на сцену или домашнюю страницу ?

Re: Простые устройства / Simple Devices

Добавлено: Сб фев 22, 2020 10:49 pm
Chainik
Jilber писал(а): Сб фев 22, 2020 8:02 pm А можно ли таймер как-то вывести на сцену или домашнюю страницу ?
Думаю, что можно. Если я правильно понял вашу мысль, в хотите в реальном времени видеть, как "тикает" таймер или сколько осталось до его завершения.
Вот sergejey приводил пример кода, который показывает, через какое время истечет таймер. (viewtopic.php?f=4&t=1760).
Если "дергать" этот код ежесекундно, допустим, яваскриптом, то, думаю, должно получиться. Также можно ежесекундно "дергать" код из сценария (если с написанием яваскриптов "напряженка").

Re: Простые устройства / Simple Devices

Добавлено: Сб фев 22, 2020 11:00 pm
SmoKE_xDDD
Chainik писал(а): Сб фев 22, 2020 10:49 pm
Jilber писал(а): Сб фев 22, 2020 8:02 pm А можно ли таймер как-то вывести на сцену или домашнюю страницу ?
Думаю, что можно. Если я правильно понял вашу мысль, в хотите в реальном времени видеть, как "тикает" таймер или сколько осталось до его завершения.
Вот sergejey приводил пример кода, который показывает, через какое время истечет таймер. (viewtopic.php?f=4&t=1760).
Если "дергать" этот код ежесекундно, допустим, яваскриптом, то, думаю, должно получиться. Также можно ежесекундно "дергать" код из сценария (если с написанием яваскриптов "напряженка").
Не надо так делать... =) Можно получить 1 раз время таймера и отсчитывать его уже JS. Будет быстрее и лучше, чем долбить каждую секунду запросом.

Re: Простые устройства / Simple Devices

Добавлено: Сб фев 22, 2020 11:08 pm
Chainik
SmoKE_xDDD писал(а): Сб фев 22, 2020 11:00 pm ...
Не надо так делать... =) Можно получить 1 раз время таймера и отсчитывать его уже JS. Будет быстрее и лучше, чем долбить каждую секунду запросом.
Наверное, вы правы. Тут на форме, к сожалению, мало программистов... Если бы видеть "живой" пример яваскрипта, которым это делается... Было бы здорово.

Re: Простые устройства / Simple Devices

Добавлено: Сб фев 22, 2020 11:15 pm
SmoKE_xDDD
Chainik писал(а): Сб фев 22, 2020 11:08 pm
SmoKE_xDDD писал(а): Сб фев 22, 2020 11:00 pm ...
Не надо так делать... =) Можно получить 1 раз время таймера и отсчитывать его уже JS. Будет быстрее и лучше, чем долбить каждую секунду запросом.
Наверное, вы правы. Тут на форме, к сожалению, мало программистов... Если бы видеть "живой" пример яваскрипта, которым это делается... Было бы здорово.
Если есть нужда завтра могу запилить простой модуль, который будет показывать время таймеров...