Страница 1 из 1

подскажите по таймеру

Добавлено: Пн сен 05, 2016 11:51 pm
gagarin74
Жена попросила сделать ей таймер в умном доме. На 3,5,10,20,30,60 минут.
кроме как OnNewMinute ни чего в голову не лезет. Может существует что то более простое ?
Интерфейс может быть любой. Я вообще то задумал сделать через TELEGRAMM. Планшет всегда на кухне :)
Может кто поможет ? С телегой разобрался -проблем там нет. Вопрос как заставить что то говорить после 3 минут :) после нажатия кнопки(в телеги или в веб интерфейсе Алисы).
OnNewMinute- то же не все так просто как кажется.Счетчик запустить там не проблема.Проблема в том что для 3 минут (для варки яиц),очень нужно точные три минуты.Если нажать на кнопку на 30 секунде то используя этот метод мы получим 3 минуты и 30 секунд чистого времени.

За ранее спасибо.

Re: подскажите по таймеру

Добавлено: Вт сен 06, 2016 12:23 am
zoz
Не знаю кто автор, но у многих в конекте есть шаблон поведения:


напомни через (\d+) минут (.+)

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

say("Запомнила, что через ".$matches[1]." минут надо напомнить ".$matches[2],15);
setTimeOut('timer','say("Прошло '.$matches[1].' минут. Напоминаю: '.$matches[2].'",15);',$matches[1]*60); 
думаю вам подойдет.
ну а если хотите интерфейс, то вяжите его уже на кнопки.

Re: подскажите по таймеру

Добавлено: Вт сен 06, 2016 12:29 am
gagarin74
по ходу тут тоже округляется грубо. для 3 минут не подайдет.

Re: подскажите по таймеру

Добавлено: Вт сен 06, 2016 12:31 am
gagarin74
скорее всего нужен не таймер а секундомер!!!

Re: подскажите по таймеру

Добавлено: Чт дек 01, 2016 9:14 pm
C_3AXAPOB
Подскажите как сделать обратный отсчет таймера на сцене?
У меня свет отключается по таймеру через 10 минут при отсутствии движения в комнате и я хочу чтобы на сцене отображался обратный отсчет до выключения света.

Re: подскажите по таймеру

Добавлено: Чт дек 01, 2016 9:52 pm
Jager
gagarin74 писал(а):Жена попросила сделать ей таймер в умном доме. На 3,5,10,20,30,60 минут.
кроме как OnNewMinute ни чего в голову не лезет. Может существует что то более простое ?
У меня сделано так
Изображение

Изображение

Изображение

Изображение

При обновлении свойства выполняется метод

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

function pForm($n, $form1, $form2, $form5) {
    $n = abs($n) % 100;
    $n1 = $n % 10;
    if ($n > 10 && $n < 20) return $form5;
    if ($n1 > 1 && $n1 < 5) return $form2;
    if ($n1 == 1) return $form1;
    return $form5;
}
$timer=gg("KitchenTimer.Timer"); //берем длительность таймера (задается через меню)
$timetext= $timer.' ' .pForm($timer, 'минуту', 'минуты', 'минут'); //склоняем
say("Установлен таймер на $timetext",2); //уведомляем в чат
setTimeOut("kitchenTimer","say('Внимание! Закончился таймер на $timetext',2);",$timer*60); // запускаем таймер, после окончания пишем в чат  

Re: подскажите по таймеру

Добавлено: Пн янв 30, 2017 2:07 pm
server
Jager писал(а):
gagarin74 писал(а):Жена попросила сделать ей таймер в умном доме. На 3,5,10,20,30,60 минут.
кроме как OnNewMinute ни чего в голову не лезет. Может существует что то более простое ?
У меня сделано так

При обновлении свойства выполняется метод

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

function pForm($n, $form1, $form2, $form5) {
    $n = abs($n) % 100;
    $n1 = $n % 10;
    if ($n > 10 && $n < 20) return $form5;
    if ($n1 > 1 && $n1 < 5) return $form2;
    if ($n1 == 1) return $form1;
    return $form5;
}
$timer=gg("KitchenTimer.Timer"); //берем длительность таймера (задается через меню)
$timetext= $timer.' ' .pForm($timer, 'минуту', 'минуты', 'минут'); //склоняем
say("Установлен таймер на $timetext",2); //уведомляем в чат
setTimeOut("kitchenTimer","say('Внимание! Закончился таймер на $timetext',2);",$timer*60); // запускаем таймер, после окончания пишем в чат      
Добрый день!
Подскажите по таймеру. Слайдер срабатывает четко, а вот кнопки нет не хотят - время на слайдере меняется а сам метод через раз запускается.

PS. Вроде заработало.
Добавил в код

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

sg("KitchenTimer.Timer",5);
callMethod("KitchenTimer.Timer"); 

Re: подскажите по таймеру

Добавлено: Пн янв 30, 2017 5:36 pm
server
Как сделать, куда вписать

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

callMethod("Switch_t2.turnOff"); 
чтобы выключалось реле
Включать - включает , а выключать не знаю как сделать

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

function pForm($n, $form1, $form2, $form5) {
    $n = abs($n) % 100;
    $n1 = $n % 10;
    if ($n > 10 && $n < 20) return $form5;
    if ($n1 > 1 && $n1 < 5) return $form2;
    if ($n1 == 1) return $form1;
    return $form5;
}
$timer=gg("TimerAuto.Timer"); //берем длительность таймера (задается через меню)
$timetext= $timer.' ' .pForm($timer, 'минуту', 'минуты', 'минут'); //склоняем
sayReply("Установлен таймер прогрева на $timetext",2); //уведомляем в чат
callMethod("Switch_t2.turnOn");
setTimeOut("TimerAuto","say('Внимание! Закончился таймер прогрева на $timetext',2);",$timer*60); // запускаем таймер, после окончания пишем в чат 

Re: подскажите по таймеру

Добавлено: Пн янв 30, 2017 5:55 pm
Jager
server писал(а):Как сделать, куда вписать

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

callMethod("Switch_t2.turnOff");
чтобы выключалось реле
Включать - включает , а выключать не знаю как сделать

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

function pForm($n, $form1, $form2, $form5) {
    $n = abs($n) % 100;
    $n1 = $n % 10;
    if ($n > 10 && $n < 20) return $form5;
    if ($n1 > 1 && $n1 < 5) return $form2;
    if ($n1 == 1) return $form1;
    return $form5;
}
$timer=gg("TimerAuto.Timer"); //берем длительность таймера (задается через меню)
$timetext= $timer.' ' .pForm($timer, 'минуту', 'минуты', 'минут'); //склоняем
sayReply("Установлен таймер прогрева на $timetext",2); //уведомляем в чат
callMethod("Switch_t2.turnOn");
setTimeOut("TimerAuto","say('Внимание! Закончился таймер прогрева на $timetext',2);",$timer*60); // запускаем таймер, после окончания пишем в чат      
Можете добавить еще один таймер

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

setTimeOut("TimerAuto","say('Внимание! Закончился таймер прогрева на $timetext',2);",$timer*60);
setTimeOut("TimerAuto2","callMethod("Switch_t2.turnOff");",$timer*60); 
но если вам нужно выполнить несколько действий то лучше прописать их в скрипт и вызывать его

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

setTimeOut("TimerAuto","runScript("TimerAuto");",$timer*60); 

Re: подскажите по таймеру

Добавлено: Пн янв 30, 2017 6:44 pm
server
Так и сделал
Сделал сценарий auto_timer_off в нем повторил почти тоже самое

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

function pForm($n, $form1, $form2, $form5) {
    $n = abs($n) % 100;
    $n1 = $n % 10;
    if ($n > 10 && $n < 20) return $form5;
    if ($n1 > 1 && $n1 < 5) return $form2;
    if ($n1 == 1) return $form1;
    return $form5;
}
$timer=getGlobal("TimerAuto.Timer"); //берем длительность таймера (задается через меню)
$timetext= $timer.' ' .pForm($timer, 'минуту', 'минуты', 'минут'); //склоняем
callMethod("Switch_t2.turnOff");
sayReply("Внимание! Закончился таймер прогрева на $timetext.",2); 
а в строке setTimeOut в методе

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

setTimeOut("TimerAuto","runScript('auto_timer_off');",$timer*60);