Данные по таймеру?
Добавлено: Чт янв 16, 2020 10:19 pm
Привет всем! Когда завожу таймер через SetTimeOut есть вариант как либо посмотреть время до сработки?
Сам автор системы дал ответ.SmoKE_xDDD писал(а): ↑Чт янв 16, 2020 10:19 pmПривет всем! Когда завожу таймер через SetTimeOut есть вариант как либо посмотреть время до сработки?
Низкий вам поклон... =)Chainik писал(а): ↑Чт янв 16, 2020 10:57 pmСам автор системы дал ответ.SmoKE_xDDD писал(а): ↑Чт янв 16, 2020 10:19 pmПривет всем! Когда завожу таймер через SetTimeOut есть вариант как либо посмотреть время до сработки?
viewtopic.php?f=4&t=1760
Код: Выделить всё
// Возвращает оставшееся время в секундах работы таймера по его имени
// Если таймера нет, вернет 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;
}
}
Код: Выделить всё
if ($timeout = timeOutResidue('KitchenTimer')) {
$timeout += 300;
} else {
$timeout = 300;
}
setTimeOut('KitchenTimer', 'setGlobal(\'XiaomiGateway.ringtone\', \'23,60\');', $timeout);
say('Установлен таймер на ' . $timeout . ' секунд', 2);
лучше возвращать -1 при отсутствии таймера, как и в registeredEventTime. Да и попасть можно в сработку, а скажет, что нет таймера, а он стрельнет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; } }
их из коммон вообще вынести в джобсxor писал(а): ↑Пт июл 10, 2020 9:20 pmлучше возвращать -1 при отсутствии таймера, как и в registeredEventTime. Да и попасть можно в сработку, а скажет, что нет таймера, а он стрельнет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; } }