Данные по таймеру?

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

Ответить
Аватара пользователя
SmoKE_xDDD
Сообщения: 816
Зарегистрирован: Ср апр 17, 2019 5:00 pm
Откуда: Нижний Новгород

Данные по таймеру?

Сообщение SmoKE_xDDD »

Привет всем! Когда завожу таймер через SetTimeOut есть вариант как либо посмотреть время до сработки?
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am

Re: Данные по таймеру?

Сообщение Chainik »

SmoKE_xDDD писал(а): Чт янв 16, 2020 10:19 pm Привет всем! Когда завожу таймер через SetTimeOut есть вариант как либо посмотреть время до сработки?
Сам автор системы дал ответ.
viewtopic.php?f=4&t=1760
Аватара пользователя
SmoKE_xDDD
Сообщения: 816
Зарегистрирован: Ср апр 17, 2019 5:00 pm
Откуда: Нижний Новгород

Re: Данные по таймеру?

Сообщение SmoKE_xDDD »

Chainik писал(а): Чт янв 16, 2020 10:57 pm
SmoKE_xDDD писал(а): Чт янв 16, 2020 10:19 pm Привет всем! Когда завожу таймер через SetTimeOut есть вариант как либо посмотреть время до сработки?
Сам автор системы дал ответ.
viewtopic.php?f=4&t=1760
Низкий вам поклон... =)
Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm

Re: Данные по таймеру?

Сообщение Logrus »

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

// Возвращает оставшееся время в секундах работы таймера по его имени
// Если таймера нет, вернет 0
function timeOutResidue($title) {
 $timerId = timeOutExists($title);
 if ($timerId) {
  $timer_job=SQLSelectOne("SELECT UNIX_TIMESTAMP(RUNTIME) as TM FROM jobs WHERE ID='".$timerId."'");
  $diff=(int)$timer_job['TM']-time(); // получаем время в секундах, оставшееся до запланированного срабатывания таймера
  return $diff;
 } else {
  return 0;
 }
}
Снимок.PNG
Снимок.PNG (34.19 КБ) 3682 просмотра

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

if ($timeout = timeOutResidue('KitchenTimer')) {
 $timeout += 300;
} else {
 $timeout = 300;
}

setTimeOut('KitchenTimer', 'setGlobal(\'XiaomiGateway.ringtone\', \'23,60\');', $timeout);
say('Установлен таймер на ' . $timeout . ' секунд', 2);
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
SmoKE_xDDD
Сообщения: 816
Зарегистрирован: Ср апр 17, 2019 5:00 pm
Откуда: Нижний Новгород

Re: Данные по таймеру?

Сообщение SmoKE_xDDD »

Да спасибо, я тоже уже функцию написал... =)
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

Re: Данные по таймеру?

Сообщение xor »

Logrus писал(а): Пт янв 17, 2020 1:35 am

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

// Возвращает оставшееся время в секундах работы таймера по его имени
// Если таймера нет, вернет 0
function timeOutResidue($title) {
 $timerId = timeOutExists($title);
 if ($timerId) {
  $timer_job=SQLSelectOne("SELECT UNIX_TIMESTAMP(RUNTIME) as TM FROM jobs WHERE ID='".$timerId."'");
  $diff=(int)$timer_job['TM']-time(); // получаем время в секундах, оставшееся до запланированного срабатывания таймера
  return $diff;
 } else {
  return 0;
 }
}
лучше возвращать -1 при отсутствии таймера, как и в registeredEventTime. Да и попасть можно в сработку, а скажет, что нет таймера, а он стрельнет
Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm

Re: Данные по таймеру?

Сообщение Logrus »

xor писал(а): Пт июл 10, 2020 9:20 pm
Logrus писал(а): Пт янв 17, 2020 1:35 am

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

// Возвращает оставшееся время в секундах работы таймера по его имени
// Если таймера нет, вернет 0
function timeOutResidue($title) {
 $timerId = timeOutExists($title);
 if ($timerId) {
  $timer_job=SQLSelectOne("SELECT UNIX_TIMESTAMP(RUNTIME) as TM FROM jobs WHERE ID='".$timerId."'");
  $diff=(int)$timer_job['TM']-time(); // получаем время в секундах, оставшееся до запланированного срабатывания таймера
  return $diff;
 } else {
  return 0;
 }
}
лучше возвращать -1 при отсутствии таймера, как и в registeredEventTime. Да и попасть можно в сработку, а скажет, что нет таймера, а он стрельнет
их из коммон вообще вынести в джобс
дополнить чего нет
и дорабатывать
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Ответить