Страница 2 из 4
Re: Подскажите как правильно создать таймер!
Добавлено: Вт апр 02, 2019 7:19 pm
xor
Yashalta писал(а):так работает!
Код: Выделить всё
addScheduledJob("lightOnTimer50","fopen('http://192.168.18.110/state?c=set&n=60&o=1', 'r');say('Свет включен!',2);",time()+5);
Имейте ввиду, что использование аддшедуледджоб отличается от таймера не только заданием абсолютного времени вместо смещения, но и реализацией. Новое задание джоба с существующим именем создаст новый джоб с тем же именем (без очистки старого)
Отправлено с моего Redmi 4X через Tapatalk
Re: Подскажите как правильно создать таймер!
Добавлено: Вт апр 02, 2019 7:21 pm
xor
Yashalta писал(а):так работает!
Код: Выделить всё
addScheduledJob("lightOnTimer50","fopen('http://192.168.18.110/state?c=set&n=60&o=1', 'r');say('Свет включен!',2);",time()+5);
Ха, если в коде заменить аддшедуледджоб на сеттимеоут и убрать тиме()- ничего не изменится, только букв меньше и в таймере меньше ошибок))
Код: Выделить всё
setTimeOut("lightOnTutimer50","fopen('http://192.168.18.110/state?c=set&n=60&o=1', 'r');say('Свет включен!',2);",5);
Отправлено с моего Redmi 4X через Tapatalk
Re: Подскажите как правильно создать таймер!
Добавлено: Ср апр 03, 2019 8:56 pm
Chainik
xor писал(а): Вт апр 02, 2019 7:19 pm
Имейте ввиду, что использование аддшедуледджоб отличается от таймера не только заданием абсолютного времени вместо смещения, но и реализацией. Новое задание джоба с существующим именем создаст новый джоб с тем же именем (без очистки старого)
Интересно, если, допустим, запущен первый AddScheduledJob, а потом второй AddScheduledJob с тем же именем, а затем выполнен сброс
Какой ScheduledJob при этом будет ликвидирован: первый, второй или оба?
Может кто знает?
Re: Подскажите как правильно создать таймер!
Добавлено: Ср апр 03, 2019 9:01 pm
tarasfrompir
Chainik писал(а): Ср апр 03, 2019 8:56 pm
xor писал(а): Вт апр 02, 2019 7:19 pm
Имейте ввиду, что использование аддшедуледджоб отличается от таймера не только заданием абсолютного времени вместо смещения, но и реализацией. Новое задание джоба с существующим именем создаст новый джоб с тем же именем (без очистки старого)
Интересно, если, допустим, запущен первый AddScheduledJob, а потом второй AddScheduledJob с тем же именем, а затем выполнен сброс
Какой ScheduledJob при этом будет ликвидирован: первый, второй или оба?
Может кто знает?
Вот содержимое функции
Код: Выделить всё
function clearScheduledJob($title)
{
SQLExec("DELETE FROM jobs WHERE TITLE = '" . DBSafe($title) . "'");
}
Удалит все джобы с одинаковым названием
Re: Подскажите как правильно создать таймер!
Добавлено: Ср апр 03, 2019 9:16 pm
xor
tarasfrompir писал(а):Chainik писал(а): Ср апр 03, 2019 8:56 pm
xor писал(а): Вт апр 02, 2019 7:19 pm
Имейте ввиду, что использование аддшедуледджоб отличается от таймера не только заданием абсолютного времени вместо смещения, но и реализацией. Новое задание джоба с существующим именем создаст новый джоб с тем же именем (без очистки старого)
Интересно, если, допустим, запущен первый AddScheduledJob, а потом второй AddScheduledJob с тем же именем, а затем выполнен сброс
Какой ScheduledJob при этом будет ликвидирован: первый, второй или оба?
Может кто знает?
Вот содержимое функции
Код: Выделить всё
function clearScheduledJob($title)
{
SQLExec("DELETE FROM jobs WHERE TITLE = '" . DBSafe($title) . "'"); // а так будет
}
Удалит все джобы с одинаковым названием
Причем заявлено, что будет работать шаблон "title%" для удаления джобов по маске, а он не будет))
зы. SQLExec("DELETE FROM jobs WHERE TITLE
like '" . DBSafe($title) . "'");
Отправлено с моего Redmi 4X через Tapatalk
Re: Подскажите как правильно создать таймер!
Добавлено: Пт апр 05, 2019 4:57 pm
Yashalta
Я что-то делаю не так!
Я хочу, что бы мой 2-й "AddScheduledJob" выполнялся следом за первым. Но, он не выполняется, первый выполняется а второго как будто нет вообще!
Код: Выделить всё
if
...
($key == 'civil_twilight_begin') {
//echo 'Начало утренних сумерек: '.date("H:i", $val).'<br>';
AddScheduledJob("job_civil_twilight_begin","cm('DarknessMode.deactivate');say('Начало утренних сумерек, через 20 минут выключаю свет во дворе!(script)',2);", $val);
AddScheduledJob("job_civil_twilight_begin2","fopen('http://192.168.18.110/state?c=set&n=65&o=0', 'r');say('Свет во дворе выключен!(script)',2);",time()+1200);
...
}
Что я не так делаю?
Re: Подскажите как правильно создать таймер!
Добавлено: Пт апр 05, 2019 6:30 pm
xor
Yashalta писал(а):Я что-то делаю не так!
Я хочу, что бы мой 2-й "AddScheduledJob" выполнялся следом за первым. Но, он не выполняется, первый выполняется а второго как будто нет вообще!
Код: Выделить всё
if
...
($key == 'civil_twilight_begin') {
//echo 'Начало утренних сумерек: '.date("H:i", $val).'<br>';
AddScheduledJob("job_civil_twilight_begin","cm('DarknessMode.deactivate');say('Начало утренних сумерек, через 20 минут выключаю свет во дворе!(script)',2);", $val);
AddScheduledJob("job_civil_twilight_begin2","fopen('http://192.168.18.110/state?c=set&n=65&o=0', 'r');say('Свет во дворе выключен!(script)',2);",time()+1200);
...
}
Что я не так делаю?
Зачем вы сами себя путаете, засовывая кучу кода в аддшедуледджобы?
Создайте скрипт, отладьте, и запускайте аддшедуледджобом этот скрипт в нужное время
Отправлено с моего Redmi 4X через Tapatalk
Re: Подскажите как правильно создать таймер!
Добавлено: Пт апр 05, 2019 8:47 pm
Logrus
Yashalta писал(а): Пт апр 05, 2019 4:57 pm
Что я не так делаю?
готовое не читаете, не стал бы писать, но есть же готовое еще и помимо статического смещения еще и динамическое относительно облачности
Re: Подскажите как правильно создать таймер!
Добавлено: Пт апр 05, 2019 8:57 pm
Yashalta
Logrus писал(а): Пт апр 05, 2019 8:47 pm
готовое не читаете, не стал бы писать, но есть же готовое еще и помимо статического смещения еще и динамическое относительно облачности
Вот сейчас не понимаю о чем вы! Тем более про статическое и динамическое...
Re: Подскажите как правильно создать таймер!
Добавлено: Пт апр 05, 2019 11:31 pm
Chainik
Yashalta писал(а): Пт апр 05, 2019 8:57 pm
Logrus писал(а): Пт апр 05, 2019 8:47 pm
готовое не читаете, не стал бы писать, но есть же готовое еще и помимо статического смещения еще и динамическое относительно облачности
Вот сейчас не понимаю о чем вы! Тем более про статическое и динамическое...
Это он про "динамическое относительно облачности". А чтобы учесть фактический уровень освещенности (и на основе этого смещать ежедневное время включения и выключения), естественно, нужны показания уличного датчика освещенности.