Страница 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
Как сделать, куда вписать
чтобы выключалось реле
Включать - включает , а выключать не знаю как сделать
Код: Выделить всё
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 писал(а):Как сделать, куда вписать
чтобы выключалось реле
Включать - включает , а выключать не знаю как сделать
Код: Выделить всё
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);