Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.
Модератор: immortal
-
xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
-
Благодарил (а):
286 раз
-
Поблагодарили:
629 раз
Сообщение
xor » Вт апр 02, 2019 7:19 pm
Yashalta писал(а):так работает!
Код: Выделить всё
addScheduledJob("lightOnTimer50","fopen('http://192.168.18.110/state?c=set&n=60&o=1', 'r');say('Свет включен!',2);",time()+5);
Имейте ввиду, что использование аддшедуледджоб отличается от таймера не только заданием абсолютного времени вместо смещения, но и реализацией. Новое задание джоба с существующим именем создаст новый джоб с тем же именем (без очистки старого)
Отправлено с моего Redmi 4X через Tapatalk
-
xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
-
Благодарил (а):
286 раз
-
Поблагодарили:
629 раз
Сообщение
xor » Вт апр 02, 2019 7:21 pm
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
-
Chainik
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
-
Благодарил (а):
260 раз
-
Поблагодарили:
454 раза
Сообщение
Chainik » Ср апр 03, 2019 8:56 pm
xor писал(а): ↑Вт апр 02, 2019 7:19 pm
Имейте ввиду, что использование аддшедуледджоб отличается от таймера не только заданием абсолютного времени вместо смещения, но и реализацией. Новое задание джоба с существующим именем создаст новый джоб с тем же именем (без очистки старого)
Интересно, если, допустим, запущен первый AddScheduledJob, а потом второй AddScheduledJob с тем же именем, а затем выполнен сброс
Какой ScheduledJob при этом будет ликвидирован: первый, второй или оба?
Может кто знает?
-
tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
-
Благодарил (а):
223 раза
-
Поблагодарили:
815 раз
Сообщение
tarasfrompir » Ср апр 03, 2019 9:01 pm
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) . "'");
}
Удалит все джобы с одинаковым названием
Спасибо нам ПОМОЖЕТ..!
-
xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
-
Благодарил (а):
286 раз
-
Поблагодарили:
629 раз
Сообщение
xor » Ср апр 03, 2019 9:16 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) . "'"); // а так будет
}
Удалит все джобы с одинаковым названием
Причем заявлено, что будет работать шаблон "title%" для удаления джобов по маске, а он не будет))
зы. SQLExec("DELETE FROM jobs WHERE TITLE
like '" . DBSafe($title) . "'");
Отправлено с моего Redmi 4X через Tapatalk
-
Yashalta
- Сообщения: 315
- Зарегистрирован: Вс май 20, 2018 9:27 am
-
Благодарил (а):
160 раз
-
Поблагодарили:
29 раз
Сообщение
Yashalta » Пт апр 05, 2019 4:57 pm
Я что-то делаю не так!
Я хочу, что бы мой 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);
...
}
Что я не так делаю?
-
xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
-
Благодарил (а):
286 раз
-
Поблагодарили:
629 раз
Сообщение
xor » Пт апр 05, 2019 6:30 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);
...
}
Что я не так делаю?
Зачем вы сами себя путаете, засовывая кучу кода в аддшедуледджобы?
Создайте скрипт, отладьте, и запускайте аддшедуледджобом этот скрипт в нужное время
Отправлено с моего Redmi 4X через Tapatalk
-
Logrus
- Сообщения: 2084
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
-
Благодарил (а):
313 раз
-
Поблагодарили:
457 раз
Сообщение
Logrus » Пт апр 05, 2019 8:47 pm
Yashalta писал(а): ↑Пт апр 05, 2019 4:57 pm
Что я не так делаю?
готовое не читаете, не стал бы писать, но есть же готовое еще и помимо статического смещения еще и динамическое относительно облачности
Telegram |
Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с
10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) )))
Спасибо
-
Yashalta
- Сообщения: 315
- Зарегистрирован: Вс май 20, 2018 9:27 am
-
Благодарил (а):
160 раз
-
Поблагодарили:
29 раз
Сообщение
Yashalta » Пт апр 05, 2019 8:57 pm
Logrus писал(а): ↑Пт апр 05, 2019 8:47 pm
готовое не читаете, не стал бы писать, но есть же готовое еще и помимо статического смещения еще и динамическое относительно облачности
Вот сейчас не понимаю о чем вы! Тем более про статическое и динамическое...
-
Chainik
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
-
Благодарил (а):
260 раз
-
Поблагодарили:
454 раза
Сообщение
Chainik » Пт апр 05, 2019 11:31 pm
Yashalta писал(а): ↑Пт апр 05, 2019 8:57 pm
Logrus писал(а): ↑Пт апр 05, 2019 8:47 pm
готовое не читаете, не стал бы писать, но есть же готовое еще и помимо статического смещения еще и динамическое относительно облачности
Вот сейчас не понимаю о чем вы! Тем более про статическое и динамическое...
Это он про "динамическое относительно облачности". А чтобы учесть фактический уровень освещенности (и на основе этого смещать ежедневное время включения и выключения), естественно, нужны показания уличного датчика освещенности.
- За это сообщение автора Chainik поблагодарил:
- Yashalta (Сб апр 06, 2019 12:02 am)