Как создать таймер на 2 секунды

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

Модератор: immortal

Aven
Сообщения: 529
Зарегистрирован: Сб мар 12, 2016 6:33 pm
Откуда: Ухта, Россия
Благодарил (а): 3 раза
Поблагодарили: 154 раза

Re: Как создать таймер на 2 секунды

Сообщение Aven » Пн авг 28, 2017 1:34 pm

sleep(2); // задержка 2 секунды
За это сообщение автора Aven поблагодарил:
Палыч (Вт фев 05, 2019 10:32 pm)
Рейтинг: 1.16%
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Как создать таймер на 2 секунды

Сообщение nick7zmail » Пн авг 28, 2017 1:59 pm

Я имел ввиду сама функция

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

function сhaynicoff(){
   callMethod('Chaynic.turnOff');
   say("Чайник подогрелся", 3);
 }
Где прописана?
И как вы её "отдельно" вызываете? (Без таймера)
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
VladPTZ
Сообщения: 395
Зарегистрирован: Вт май 31, 2016 6:56 pm
Откуда: Россия Карелия Петрозаводск
Благодарил (а): 95 раз
Поблагодарили: 57 раз

Re: Как создать таймер на 2 секунды

Сообщение VladPTZ » Вт авг 29, 2017 7:54 am

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

function сhaynicoff(){
   callMethod('Chaynic.turnOff');
   say("Чайник подогрелся", 3);
 }

сhaynicoff();
Это разве не объявление функции?
Вот так вызываю и работает а если вызывать из таймера то не работает.
Сервер МД на x86 micro pc ssd + HDD, OC Debian, терминал Xiaomi Redmi note 7
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Как создать таймер на 2 секунды

Сообщение nick7zmail » Вт авг 29, 2017 8:29 am

VladPTZ писал(а): Это разве не объявление функции?
Вот так вызываю и работает а если вызывать из таймера то не работает.
Мы не понимаем друг друга...
Это объявление функции...но я пытаюсь узнать где это объявление происходит...это как минимум в 3х местах можно сделать. В методе какого-либо объекта системы, в скрипте (раздел - сценарии), либо в отдельном php файле. И для всех 3х случаев объявление у вас неправильное.

Короче я проще скажу как правильно, а вы там решайте делать так или нет...
Я так понял у вас есть класс, в нем метод turnoff и объект chaynik. Добавляем в классе метод, к примеру turnofftimer. У объекта заходим в методы, находим turnofftimer , тыкаем настроить.
Там уже вбиваете действия:

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

cm('Chaynic.turnOff');
say("Чайник подогрелся", 3);
А по таймеру вызываете

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

setTimeOut('testTimer',"cm('Chaynic.turnofftimer');", 5);
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
gans
Сообщения: 37
Зарегистрирован: Вс янв 06, 2013 2:57 pm
Благодарил (а): 15 раз
Поблагодарили: 3 раза

Re: Как создать таймер на 2 секунды

Сообщение gans » Пт янв 12, 2018 10:23 pm

Приветствую. Подскажите а реально ли сделать в одном скрипте таймер что бы включал выключатель(через свойства или метод) на час, а затем выключал на пол часа, затем опять включал на час ну тд. с повторением? И как это лучше реализовать?
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Как создать таймер на 2 секунды

Сообщение nick7zmail » Пт янв 12, 2018 10:36 pm

А что вам в onnewminute то это не делается? Зачем городить так?

Отправлено с моего G8441 через Tapatalk
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Как создать таймер на 2 секунды

Сообщение Chainik » Сб янв 13, 2018 12:21 am

gans писал(а):Приветствую. Подскажите а реально ли сделать в одном скрипте таймер что бы включал выключатель(через свойства или метод) на час, а затем выключал на пол часа, затем опять включал на час ну тд. с повторением? И как это лучше реализовать?
Думаю, реально. Например, у выключателя может быть свойство СТАТУС (0 - выключен, 1 - включен).

Допустим, скрипт называется НАШ_СКРИПТ. В скрипте надо написать примерно следующее.
Если СТАТУС <> 0 {
СТАТУС = 0;
установить таймер (таймер_1, запустить скрипт НАШ_СКРИПТ, 1800);
}иначе{
СТАТУС = 1;
установить таймер (таймер_2, запустить скрипт НАШ_СКРИПТ, 3600);
}

Если же ваш выключатель надо переключать методом, тогда место установления статуса надо просто в скрипте запускать соответствующий метод (а сам статус менять, например, из этого метода).
Надеюсь, синтаксис вы осилите (иначе пишите, поможем).
За это сообщение автора Chainik поблагодарил:
gans (Сб янв 13, 2018 3:28 pm)
Рейтинг: 1.16%
gans
Сообщения: 37
Зарегистрирован: Вс янв 06, 2013 2:57 pm
Благодарил (а): 15 раз
Поблагодарили: 3 раза

Re: Как создать таймер на 2 секунды

Сообщение gans » Сб янв 13, 2018 2:32 pm

nick7zmail писал(а):А что вам в onnewminute то это не делается? Зачем городить так?

Отправлено с моего G8441 через Tapatalk
Хочу что бы этот процесс был управляем, захотел запустил скрипт, захотел остановил. Или там тоже так можно?
Chainik писал(а): Думаю, реально. Например, у выключателя может быть свойство СТАТУС (0 - выключен, 1 - включен).

Допустим, скрипт называется НАШ_СКРИПТ. В скрипте надо написать примерно следующее.
Если СТАТУС <> 0 {
СТАТУС = 0;
установить таймер (таймер_1, запустить скрипт НАШ_СКРИПТ, 1800);
}иначе{
СТАТУС = 1;
установить таймер (таймер_2, запустить скрипт НАШ_СКРИПТ, 3600);
}

Если же ваш выключатель надо переключать методом, тогда место установления статуса надо просто в скрипте запускать соответствующий метод (а сам статус менять, например, из этого метода).
Надеюсь, синтаксис вы осилите (иначе пишите, поможем).
Пытаюсь сделать вот так:

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

if (gg("svetKoridor2.status") <> "0"); {
sg("svetKoridor2.status","0");
setTimeOut("timerOn", 'runScript("bvn");', 6);
}else{
sg("svetKoridor2.status","1");
setTimeOut("timerOff", 'runScript("bvn");', 9);
}
Ну что то не работает, поправьте пожалуйста где ни так. И я правильно понимаю что бы потом это всё остановить надо ещё один скрипт?:

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

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

Re: Как создать таймер на 2 секунды

Сообщение nick7zmail » Сб янв 13, 2018 2:45 pm

gans писал(а): Хочу что бы этот процесс был управляем, захотел запустил скрипт, захотел остановил. Или там тоже так можно?
Конечно...привязываете в меню выключатель к какому нить свойству, и в onnewminute

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

if(gg('свойство.выключателя')) {
//код на выполнение
}
 
gans писал(а): Ну что то не работает, поправьте пожалуйста где ни так. И я правильно понимаю что бы потом это всё остановить надо ещё один скрипт?:

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

clearTimeout("timerOn");
clearTimeout("timerOff"); 
Да, эта команда вырубает таймеры...но я бы в onnewminute делал.
За это сообщение автора nick7zmail поблагодарил:
gans (Сб янв 13, 2018 3:28 pm)
Рейтинг: 1.16%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
gans
Сообщения: 37
Зарегистрирован: Вс янв 06, 2013 2:57 pm
Благодарил (а): 15 раз
Поблагодарили: 3 раза

Re: Как создать таймер на 2 секунды

Сообщение gans » Сб янв 13, 2018 3:39 pm

Ребята, спасибо! Вот так всё заработало:

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

if (gg("svetKoridor2.status")) {
sg("svetKoridor2.status","0");
setTimeOut("timerOn", 'runScript("bvn");', 6);
}else{
sg("svetKoridor2.status","1");
setTimeOut("timerOff", 'runScript("bvn");', 9);
}
Про onnewminute не очень логику пойму, как это туда засунуть? Мне же надо или включать или выключать это действие, а там метод раз в минуту отрабатывается...
Ответить