Помогите с заходом солнца в (onNewMinute).

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

Модератор: immortal

Ответить
Murat
Сообщения: 17
Зарегистрирован: Ср мар 07, 2018 4:09 pm
Благодарил (а): 10 раз
Поблагодарили: 0

Помогите с заходом солнца в (onNewMinute).

Сообщение Murat » Вт авг 20, 2019 8:55 pm

Здравствуйте у меня в onNewMinute вот такой код включает свет в птичнике

if (timeIs(getGlobal('SunRiseTime'))) {
say('Всходит солнце');
}
if (timeIs(getGlobal('SunSetTime'))) {
say('Солнце заходит',2);
getURL('http://192.168.1.107/gpio?st=1&pin=5');
say('включаю свет в курятнике', 2);
getURL('http://192.168.1.107/matrixbr?mode=5');
say('включаю информер', 2);
}

Как сделать что-бы свет включался на час позже ?
Аватара пользователя
xor
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

Re: Помогите с заходом солнца в (onNewMinute).

Сообщение xor » Вт авг 20, 2019 9:07 pm

Murat писал(а):
Вт авг 20, 2019 8:55 pm
Здравствуйте у меня в onNewMinute вот такой код включает свет в птичнике

if (timeIs(getGlobal('SunRiseTime'))) {
say('Всходит солнце');
}
if (timeIs(getGlobal('SunSetTime'))) {
say('Солнце заходит',2);
getURL('http://192.168.1.107/gpio?st=1&pin=5');
say('включаю свет в курятнике', 2);
getURL('http://192.168.1.107/matrixbr?mode=5');
say('включаю информер', 2);
}

Как сделать что-бы свет включался на час позже ?
https://kb.mjdm.ru/vstroennie-v-majordomo-funkcii/ это читали?

1 почитайте про таймеры SetTimeOut('title','commands', $timeout); -- $timeout в секундах
или
2 добавляйте час к закату и его проверяйте, типа date("H:i",timeConvert(getGlobal('SunSetTime'))+60*60)) или функцию strtotime использовать
За это сообщение автора xor поблагодарил:
Murat (Вт авг 20, 2019 9:31 pm)
Рейтинг: 1.16%
Logrus
Сообщения: 2084
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Помогите с заходом солнца в (onNewMinute).

Сообщение Logrus » Вт авг 20, 2019 9:17 pm

За это сообщение автора Logrus поблагодарил:
Murat (Вт авг 20, 2019 9:31 pm)
Рейтинг: 1.16%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Помогите с заходом солнца в (onNewMinute).

Сообщение Chainik » Вт авг 20, 2019 9:30 pm

Murat писал(а):
Вт авг 20, 2019 8:55 pm
Здравствуйте у меня в onNewMinute вот такой код включает свет в птичнике

if (timeIs(getGlobal('SunRiseTime'))) {
say('Всходит солнце');
}
if (timeIs(getGlobal('SunSetTime'))) {
say('Солнце заходит',2);
getURL('http://192.168.1.107/gpio?st=1&pin=5');
say('включаю свет в курятнике', 2);
getURL('http://192.168.1.107/matrixbr?mode=5');
say('включаю информер', 2);
}

Как сделать что-бы свет включался на час позже ?
Действительно, можно использовать таймеры. Тогда конструкция будет выглядеть так:

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

setTimeOut('myTimer_1','getURL("http://192.168.1.107/gpio?st=1&pin=5");',60*60);
Но для каждого связанного действия тогда придется запускать разноименные таймеры, что неудобно.

Можно попробовать прибавить час прямо в сравнении времени:

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

 if (timeIs(date("H:i",strtotime(getGlobal('SunSetTime'))+60*60))) {
А вообще лучше вынести весь этот код в отдельный скрипт или метод, чтобы не загромождать onNewMinute. И запускать из onNewMinute уже этот скрипт или метод.
За это сообщение автора Chainik поблагодарил:
Murat (Вт авг 20, 2019 9:31 pm)
Рейтинг: 1.16%
Ответить