Задержка срабатывания метода от времени восхода и заката.

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

Модератор: immortal

Xseon
Сообщения: 51
Зарегистрирован: Ср сен 18, 2013 12:21 am
Благодарил (а): 9 раз
Поблагодарили: 7 раз

Re: Задержка срабатывания метода от времени восхода и заката

Сообщение Xseon » Ср ноя 02, 2016 10:03 am

Не претендую на правильность решения но вот код:

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

list($tmph, $tmpm) = explode(":", gg("ThisComputer.SunSetTime"));
if (($tmpm == 00) || ($tmpm < gg("swHall.before_Dark"))) {  // before_Dark - это слайдер, который задаем время срабатывания до...
 $tmph = $tmph-1;
 $tmpm = $tmpm+60-gg("swHall.before_Dark");
} else { $tmpm = $tmpm-gg("swHall.before_Dark");}
if (($tmpm - gg("swHall.before_Dark")) < 10) {sg("ThisComputer.DarkneesTime",$tmph.":0".$tmpm);} 
else {sg("ThisComputer.DarkneesTime",$tmph.":".$tmpm);}
Далее в onMinute стандартный метод проверки изменен на:

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

if (timeBetween(getGlobal('SunRiseTime'),getGlobal('DarkneesTime')) && getGlobal('isDark')=="1") {
  setGlobal("isDark",0);
  callMethod('DarknessMode.deactivate'); 
 } elseif (!timeBetween(getGlobal('SunRiseTime'),getGlobal('DarkneesTime')) && getGlobal('isDark')!="1") {
  setGlobal("isDark",1);
  callMethod('DarknessMode.activate');  
 }
*** Сообщение запрещено. Сообщение похоже на спам. ***
Аватара пользователя
Nail
Сообщения: 376
Зарегистрирован: Пн мар 05, 2018 7:09 am
Откуда: Самара
Благодарил (а): 174 раза
Поблагодарили: 28 раз

Re: Задержка срабатывания метода от времени восхода и заката

Сообщение Nail » Пн мар 02, 2020 5:04 pm

zelevova писал(а):
Вт янв 26, 2016 5:24 pm
Писать его туда же где твой код написан.

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

if (timeIs(getGlobal('yw_day0.sunset'))) { // проверка что сейчас закат
SetTimeOut("lightOnTimer","callMethod('Megad3-8.turnOn');",1500); // устанавливаем таймер  
Собственно таймер ставиться на 25 минут = 1500/60
По таймеру вызывается "callMethod('Megad3-8.turnOn');", можно вызвать runScript() или еще чего. Это просто вариант отложить выполнение на некоторое время.
А как написать код callMethod до заката за 30 минут? (т.е. заранее)
Mini AMD A6 1450 Quad-core.Ubuntu Server 18.04 (64-bit). MegaD. Zigbee2mqtt+SLS DIN Mini. Broadlink.
Chainik
Сообщения: 1463
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 261 раз
Поблагодарили: 454 раза

Re: Задержка срабатывания метода от времени восхода и заката

Сообщение Chainik » Пн мар 02, 2020 5:31 pm

Nail писал(а):
Пн мар 02, 2020 5:04 pm
...
А как написать код callMethod до заката за 30 минут? (т.е. заранее)
Можно попробовать так:

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

 if (timeIs(date("H:i",date_sun_info(time(), 50.335084, 30.724813)['sunset']-60*30))) {
//Действия
}
За это сообщение автора Chainik поблагодарил:
Nail (Вт мар 03, 2020 4:51 pm)
Рейтинг: 1.16%
Ответить