облака у меня учитываются в даркнесс.активате, у меня там уличный свет включается. Сумерки настали, даркнесс активировался, при активации запускаем вкл. уличного света с учетом облачностиLogrus писал(а): ↑Вт апр 09, 2019 9:13 pm[
а облака?
раз в 10-й уже спорим )))
отказался от джобов, т.к. пофиг что чуть сложнее, но ограничено - сложно динамическое смещение ввести, проверяется по сравнению с минутным намного чаще - нет в этом никакой оптимизации, да и что по сути там оптимизировать гг и сравнение условий - мизер
зато при стандартном использовании:
1. раз в сутки рассчитали и записали время восхода заката (в формате линукс тайм)
2. раз в минуту вызываем проверкута хоть с десяток таких сделайте, еще и не факт что будет хуже (это даже не копейки, а атомы от них "экономить") джобов )))Код: Выделить всё
$last_register = $this->getProperty('updated'); if (time() - $last_register >= 19800) { //облачность и поменяться может, ну добавили еще одну проверку, убрав селекты и расчеты ниже $darkness = $this->getProperty('active'); $cloudiness = getGlobal('ow_fact.clouds'); $sunrise = getGlobal('Time.SunRiseTimestamp'); $sunrise = date('H:i', $sunrise + 600 + (30*$cloudiness)); $sunset = getGlobal('Time.SunSetTimestamp'); $sunset = date('H:i', $sunset - 1200 - (30*$cloudiness)); if ($darkness == 1 && timeBetween($sunrise, $sunset)) { callMethodSafe('DarknessMode.deactivate'); } elseif ($darkness == 0 && timeBetween($sunset, $sunrise)) { callMethodSafe('DarknessMode.activate'); } }
зато намного удобней и гибче
при утренних сумерках даркнесс деактивируется, всё, что на улице -- гасится, если горит
ну режьте меня, не буду я заставлять свой умный дом делать дурацкую работу -- чекать рассвет после его наступления! так я устроен, извинити))