Запуск и остановка по времени

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
Сергей Петрянкин
Сообщения: 17
Зарегистрирован: Сб мар 17, 2018 8:13 am
Благодарил (а): 13 раз
Поблагодарили: 0

Запуск и остановка по времени

Сообщение Сергей Петрянкин » Пн апр 23, 2018 2:23 pm

Есть умная розетка от Xiaomi. Я его добавил в Простые устройства.
Требуется включать/ выключать свет в аквариуме по времени. Например, включить в 19:00 и выключить в 23:00
Написал два сценария:
- включения:
$date_start = new DateTime("19:00"); // Время включения света
$date_now = new DateTime($date); // текущее значение времени

if ($date_now >= $date_start) {
setGlobal("miioRelay04.status", 1);
callMethod("miioRelay04.refresh");
}

и выключения:
$date_finish = new DateTime("23:00"); // Время выключения света
$date_now = new DateTime($date); // текущее значение времени

if ($date_now >= $date_finish) {
setGlobal("miioRelay04.status", 0);
callMethod("miioRelay04.refresh");
}

Что надо сделать (куда прикрутить эти сценарии), чтобы розетка сама включалась и выключалась по времени. Спасибо.
Не пинайте сильно, я только учусь :)
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Запуск и остановка по времени

Сообщение skysilver » Пн апр 23, 2018 2:48 pm

1. Метод onNewHour.
2. Метод onNewMinute.
3. Настройки периодического выполнения в сценарии.
4. Модуль Cron.
5. Модуль Scheduler.
Последний раз редактировалось skysilver Пн апр 23, 2018 3:01 pm, всего редактировалось 1 раз.
За это сообщение автора skysilver поблагодарил:
Сергей Петрянкин (Пн апр 23, 2018 4:04 pm)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Запуск и остановка по времени

Сообщение fandaymon » Пн апр 23, 2018 2:49 pm

Ну например можно добавить в сценарий Hourly

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

$h=(int)date('G',time());
if ($h==19) {
say('Свет включен');
cm("miioRelay04.TurnOn");
}
if ($h==23) {
say('Свет выключен');
cm("miioRelay04.TurnOff");
}
За это сообщение автора fandaymon поблагодарили (всего 2):
Сергей Петрянкин (Пн апр 23, 2018 3:25 pm) • banderos (Сб май 05, 2018 11:04 pm)
Рейтинг: 2.33%
Сергей Петрянкин
Сообщения: 17
Зарегистрирован: Сб мар 17, 2018 8:13 am
Благодарил (а): 13 раз
Поблагодарили: 0

Re: Запуск и остановка по времени

Сообщение Сергей Петрянкин » Пн апр 23, 2018 3:25 pm

fandaymon писал(а):
Пн апр 23, 2018 2:49 pm
Ну например можно добавить в сценарий Hourly

Спасибо. А этот сценарий уже работает или его еще как - то надо запускать?
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Запуск и остановка по времени

Сообщение fandaymon » Пн апр 23, 2018 3:35 pm

Сергей Петрянкин писал(а):
Пн апр 23, 2018 3:25 pm
fandaymon писал(а):
Пн апр 23, 2018 2:49 pm
Ну например можно добавить в сценарий Hourly
Спасибо. А этот сценарий уже работает или его еще как - то надо запускать?
Если ничего не сломано, то он запускается раз в час из таймера системы (Метод onNewHour)
За это сообщение автора fandaymon поблагодарил:
Сергей Петрянкин (Пн апр 23, 2018 4:04 pm)
Рейтинг: 1.16%
Сергей Петрянкин
Сообщения: 17
Зарегистрирован: Сб мар 17, 2018 8:13 am
Благодарил (а): 13 раз
Поблагодарили: 0

Re: Запуск и остановка по времени

Сообщение Сергей Петрянкин » Пн апр 23, 2018 4:04 pm

fandaymon писал(а):
Пн апр 23, 2018 3:35 pm
Сергей Петрянкин писал(а):
Пн апр 23, 2018 3:25 pm
fandaymon писал(а):
Пн апр 23, 2018 2:49 pm
Ну например можно добавить в сценарий Hourly
Спасибо. А этот сценарий уже работает или его еще как - то надо запускать?
Если ничего не сломано, то он запускается раз в час из таймера системы (Метод onNewHour)
:) Ничего не сломано, работает. Спасибо.
Ответить