Страница 1 из 1

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

Добавлено: Вт авг 20, 2019 8:55 pm
Murat
Здравствуйте у меня в 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);
}

Как сделать что-бы свет включался на час позже ?

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

Добавлено: Вт авг 20, 2019 9:07 pm
xor
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 использовать

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

Добавлено: Вт авг 20, 2019 9:17 pm
Logrus

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

Добавлено: Вт авг 20, 2019 9:30 pm
Chainik
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 уже этот скрипт или метод.