Таймер обратного отсчета
Модератор: immortal
-
- Сообщения: 407
- Зарегистрирован: Вт окт 24, 2017 2:01 pm
- Откуда: Ижевск
- Благодарил (а): 45 раз
- Поблагодарили: 69 раз
Таймер обратного отсчета
Здравствуйте, подскажите, может есть какое приложение для запуска таймера с обратным отсчётом?
Имеются некоторые устройства, которые очень хочется выключать по таймеру, действия уже прописаны в сценарии, хотелось бы, что бы время обратного отсчета устанавливалось из шаблона поведения.
Пробовал переделать шаблон от одноразового будильника и модуля аларм клок, но что то пошло не так тяжеловато с ПХП
Имеются некоторые устройства, которые очень хочется выключать по таймеру, действия уже прописаны в сценарии, хотелось бы, что бы время обратного отсчета устанавливалось из шаблона поведения.
Пробовал переделать шаблон от одноразового будильника и модуля аларм клок, но что то пошло не так тяжеловато с ПХП
PI2 + MQTT + 5 ESP8266 + Atmega16
-
- Сообщения: 104
- Зарегистрирован: Ср янв 09, 2019 8:37 pm
- Благодарил (а): 23 раза
- Поблагодарили: 26 раз
Re: Таймер обратного отсчета
https://kb.mjdm.ru/vstroennie-v-majordomo-funkcii/
SetTimeOut('title','commands', $timeout); -- $timeout в секундах
ClearTimeOut('title'); -- аналог ClearScheduledJob('title');
timeOutExists('title'); -- возвращает идентификатор запланированной задачи (или 0, в случае отсутствия)
SetTimeOut('title','commands', $timeout); -- $timeout в секундах
ClearTimeOut('title'); -- аналог ClearScheduledJob('title');
timeOutExists('title'); -- возвращает идентификатор запланированной задачи (или 0, в случае отсутствия)
-
- Сообщения: 407
- Зарегистрирован: Вт окт 24, 2017 2:01 pm
- Откуда: Ижевск
- Благодарил (а): 45 раз
- Поблагодарили: 69 раз
Re: Таймер обратного отсчета
Так и не разобрался я как поставить таймер, решил вот таким способом:
Но какой то не понятный косяк с прибавлением часов, то есть вообще часы не прибавляет ,например если говорю установить на 1 час, или на 1 час 30 минут, минуты прибавляет, если получается больше 60 минут, то час добавляет. а вот если именно на 1 час ставить, то ни в какую.
шаблон поведения выглядит так ((В|в)ключи|(П|п)оставь|(У|у)станови|(З|з)аведи) таймер на (\d+)(\D+)(\d*)
Код: Выделить всё
global $session;
$h1=gg('ThisComputer.timeH');//взять значерие часов
$m1=gg('ThisComputer.timeM');//взять значерие минут
$h=$matches[4];
$i=$matches[5];
$m=$matches[6];
$hh=$h;
$h2=$h1+$h;
$m2=$m1+$m;
if ($h2<10) {$h2="0".$h2;}
if ($h2>24) {
$h2=$h2-24;
}
if (($m2>59)|(!$m2)) {
$h2=$h2+1;
$m2=$m2-60;
}
setGlobal('AlarmOne.AlarmOn',1);
setGlobal('AlarmOne.AlarmTime',$h2.':'.$m2);
$obj=getObject($AlarmOne);
$h2=gg('AlarmOne.AlarmTime',$h2);
sayTo("Ставлю таймер на ".$h2 ,2, $session->data['TERMINAL']);
шаблон поведения выглядит так ((В|в)ключи|(П|п)оставь|(У|у)станови|(З|з)аведи) таймер на (\d+)(\D+)(\d*)
PI2 + MQTT + 5 ESP8266 + Atmega16
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Таймер обратного отсчета
попробуй шаблон (поставь|установи|заведи) будильник на (\d+)(\s*)(часов|:)*(\s*)(\d*)ZyaK писал(а): ↑Вс мар 31, 2019 11:24 amТак и не разобрался я как поставить таймер, решил вот таким способом:Но какой то не понятный косяк с прибавлением часов, то есть вообще часы не прибавляет ,например если говорю установить на 1 час, или на 1 час 30 минут, минуты прибавляет, если получается больше 60 минут, то час добавляет. а вот если именно на 1 час ставить, то ни в какую.Код: Выделить всё
global $session; $h1=gg('ThisComputer.timeH');//взять значерие часов $m1=gg('ThisComputer.timeM');//взять значерие минут $h=$matches[4]; $i=$matches[5]; $m=$matches[6]; $hh=$h; $h2=$h1+$h; $m2=$m1+$m; if ($h2<10) {$h2="0".$h2;} if ($h2>24) { $h2=$h2-24; } if (($m2>59)|(!$m2)) { $h2=$h2+1; $m2=$m2-60; } setGlobal('AlarmOne.AlarmOn',1); setGlobal('AlarmOne.AlarmTime',$h2.':'.$m2); $obj=getObject($AlarmOne); $h2=gg('AlarmOne.AlarmTime',$h2); sayTo("Ставлю таймер на ".$h2 ,2, $session->data['TERMINAL']);
шаблон поведения выглядит так ((В|в)ключи|(П|п)оставь|(У|у)станови|(З|з)аведи) таймер на (\d+)(\D+)(\d*)
потом в скрипте замени на своё
Код: Выделить всё
$h=$matches[2];
$m=$matches[6];
if ($h>24) {
say("Непонятно на который час завести будильник, определитесь и сообщите снова.",5);
return;
}
if (($m>59)|(!$m)) {
say("Непонятно на сколько минут завести будильник, поэтому пусть будет ровно 00.",5);
$m="00";
}
say("Ставлю будильник на ".$h." часов ".$m." минут. Постарайтесь не проспать.",5);
setGlobal('AlarmOnce.Enable',1);
setGlobal('AlarmOnce.start',$h.':'.$m);
win10 connect https://connect.smartliving.ru/profile/303
-
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Таймер обратного отсчета
Не совсем понял задачу, но может быть тут рецепт по решению (второй пост):
viewtopic.php?f=4&t=1760
viewtopic.php?f=4&t=1760
-
- Сообщения: 407
- Зарегистрирован: Вт окт 24, 2017 2:01 pm
- Откуда: Ижевск
- Благодарил (а): 45 раз
- Поблагодарили: 69 раз
Re: Таймер обратного отсчета
Дак вот дело в том, что толком не понятно как и каким образом реализовывать таймер, то ли он живёт где то в коде пхп в виде переменной, или надо создать объект, задать ему свойства и прописать в методе минутном опрос этого объекта и его свойств, черт его пойми.
Мне вообще проще на мк или на той же еспи написать таймер с получением значения по mqtt и с сохранением в еепром.
Спасибо, попробую шаблон изменить, потом отпишусь как и чего
Мне вообще проще на мк или на той же еспи написать таймер с получением значения по mqtt и с сохранением в еепром.
Спасибо, попробую шаблон изменить, потом отпишусь как и чего
PI2 + MQTT + 5 ESP8266 + Atmega16
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Таймер обратного отсчета
и чо, АлярмОне нету?ZyaK писал(а): ↑Вс мар 31, 2019 1:54 pmДак вот дело в том, что толком не понятно как и каким образом реализовывать таймер, то ли он живёт где то в коде пхп в виде переменной, или надо создать объект, задать ему свойства и прописать в методе минутном опрос этого объекта и его свойств, черт его пойми.
Мне вообще проще на мк или на той же еспи написать таймер с получением значения по mqtt и с сохранением в еепром.
Спасибо, попробую шаблон изменить, потом отпишусь как и чего
win10 connect https://connect.smartliving.ru/profile/303
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Таймер обратного отсчета
в коде шаблона первой строкой вставьтеZyaK писал(а): ↑Вс мар 31, 2019 11:24 am
Но какой то не понятный косяк с прибавлением часов, то есть вообще часы не прибавляет ,например если говорю установить на 1 час, или на 1 час 30 минут, минуты прибавляет, если получается больше 60 минут, то час добавляет. а вот если именно на 1 час ставить, то ни в какую.
шаблон поведения выглядит так ((В|в)ключи|(П|п)оставь|(У|у)станови|(З|з)аведи) таймер на (\d+)(\D+)(\d*)
debmes('входная фраза ->'.$original);
в иксрее посмотрите, как входная фраза формируется - цифра пишется или слово
win10 connect https://connect.smartliving.ru/profile/303