[Сценарий] Вычисляем восход и заход солнца

Не требует установки программ или изменения файлов

Модераторы: immortal, newz20

Аватара пользователя
xor
Сообщения: 1741
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 213 раз
Поблагодарили: 522 раза

Re: [Сценарий] Вычисляем восход и заход солнца

Сообщение xor » Вт апр 09, 2019 10:03 pm

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'); 
 }
}
та хоть с десяток таких сделайте, еще и не факт что будет хуже (это даже не копейки, а атомы от них "экономить") джобов )))
зато намного удобней и гибче
облака у меня учитываются в даркнесс.активате, у меня там уличный свет включается. Сумерки настали, даркнесс активировался, при активации запускаем вкл. уличного света с учетом облачности
при утренних сумерках даркнесс деактивируется, всё, что на улице -- гасится, если горит


ну режьте меня, не буду я заставлять свой умный дом делать дурацкую работу -- чекать рассвет после его наступления! так я устроен, извинити))
Chainik
Сообщения: 1364
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 225 раз
Поблагодарили: 428 раз

Re: [Сценарий] Вычисляем восход и заход солнца

Сообщение Chainik » Ср июл 31, 2019 9:00 pm

Для любителей "однострочных" решений:

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

 if (timeIs(date("H:i",date_sun_info(time(), 50.335084, 30.724813)['sunrise']))) {
//Действия
}
Соответственно, для заката:

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

 if (timeIs(date("H:i",date_sun_info(time(), 50.335084, 30.724813)['sunset']))) {
//Действия
}
Аватара пользователя
xor
Сообщения: 1741
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 213 раз
Поблагодарили: 522 раза

Re: [Сценарий] Вычисляем восход и заход солнца

Сообщение xor » Чт авг 01, 2019 1:24 am

Chainik писал(а):
Ср июл 31, 2019 9:00 pm
Для любителей "однострочных" решений:

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

 if (timeIs(date("H:i",date_sun_info(time(), 50.335084, 30.724813)['sunrise']))) {
//Действия
}
Соответственно, для заката:

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

 if (timeIs(date("H:i",date_sun_info(time(), 50.335084, 30.724813)['sunset']))) {
//Действия
}
если это время пропущено по каким-то причинам (перезагрузка, включился на минуту позже, цикл упал и рестартует), то не сработает(
lihodeev
Сообщения: 146
Зарегистрирован: Ср июл 25, 2018 10:37 pm
Благодарил (а): 41 раз
Поблагодарили: 8 раз

Re: [Сценарий] Вычисляем восход и заход солнца

Сообщение lihodeev » Сб ноя 16, 2019 2:57 pm

Денечка добрейшего! Два дня пытаюсь найти кто меняет свойства ThisComputer.SunSetTime (17.09) и ThisComputer.SunRiseTime (8.37) .. есть скрипт который запускается в 2 часа ночи определяет время восход и время заката, тут все ок, НО проходит какое то время в пределах суток, и время становится не правильным. поиск по SunSetTime и SunRiseTime в системе не дал криминальных результатов. Какие народ имеет мысли? Да, время на сегодня правильное - 07:02 и 16:17
За это сообщение автора lihodeev поблагодарил:
TrDA (Сб ноя 16, 2019 3:14 pm)
Рейтинг: 1.18%
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
TrDA
Сообщения: 141
Зарегистрирован: Ср сен 27, 2017 9:13 pm
Откуда: MSK
Благодарил (а): 233 раза
Поблагодарили: 38 раз

Re: [Сценарий] Вычисляем восход и заход солнца

Сообщение TrDA » Сб ноя 16, 2019 3:16 pm

lihodeev писал(а):
Сб ноя 16, 2019 2:57 pm
Денечка добрейшего! Два дня пытаюсь найти кто меняет свойства ThisComputer.SunSetTime (17.09) и ThisComputer.SunRiseTime (8.37) .. есть скрипт который запускается в 2 часа ночи определяет время восход и время заката, тут все ок, НО проходит какое то время в пределах суток, и время становится не правильным. поиск по SunSetTime и SunRiseTime в системе не дал криминальных результатов. Какие народ имеет мысли? Да, время на сегодня правильное - 07:02 и 16:17
Я тоже с этим вопросом сейчас бьюсь - возможно тот кто вносит значения по погоде ?!?
Всем удачи.
Спрашивайте - не стесняйтесь.
lihodeev
Сообщения: 146
Зарегистрирован: Ср июл 25, 2018 10:37 pm
Благодарил (а): 41 раз
Поблагодарили: 8 раз

Re: [Сценарий] Вычисляем восход и заход солнца

Сообщение lihodeev » Сб ноя 16, 2019 4:02 pm

[/quote]

Я тоже с этим вопросом сейчас бьюсь - возможно тот кто вносит значения по погоде ?!?
[/quote]
уже перерыл, вроде нет, у Вас откуда погода берется? С OpenWeatherMap?
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
TrDA
Сообщения: 141
Зарегистрирован: Ср сен 27, 2017 9:13 pm
Откуда: MSK
Благодарил (а): 233 раза
Поблагодарили: 38 раз

Re: [Сценарий] Вычисляем восход и заход солнца

Сообщение TrDA » Сб ноя 16, 2019 6:07 pm

lihodeev писал(а):
Сб ноя 16, 2019 4:02 pm
Я тоже с этим вопросом сейчас бьюсь - возможно тот кто вносит значения по погоде ?!?
[/quote]
уже перерыл, вроде нет, у Вас откуда погода берется? С OpenWeatherMap?
[/quote]

Да, у меня с OpenWeather.
Всем удачи.
Спрашивайте - не стесняйтесь.
MaxVM
Сообщения: 63
Зарегистрирован: Вт янв 10, 2017 2:26 pm
Благодарил (а): 7 раз
Поблагодарили: 0

Re: [Сценарий] Вычисляем восход и заход солнца

Сообщение MaxVM » Сб ноя 16, 2019 6:22 pm

А нельзя ли просто поставит погоду от Яндекса, там все есть

Отправлено с моего MI 9 через Tapatalk

lihodeev
Сообщения: 146
Зарегистрирован: Ср июл 25, 2018 10:37 pm
Благодарил (а): 41 раз
Поблагодарили: 8 раз

Re: [Сценарий] Вычисляем восход и заход солнца

Сообщение lihodeev » Сб ноя 16, 2019 6:29 pm

MaxVM писал(а):
Сб ноя 16, 2019 6:22 pm
А нельзя ли просто поставит погоду от Яндекса, там все есть
а чего нет в OpenWeatherMap?
проблема думаю не в погоде
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
Logrus
Сообщения: 1764
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 296 раз
Поблагодарили: 364 раза

Re: [Сценарий] Вычисляем восход и заход солнца

Сообщение Logrus » Сб ноя 16, 2019 7:11 pm

веб переменные проверьте и удалите
За это сообщение автора Logrus поблагодарили (всего 2):
lihodeev (Сб ноя 16, 2019 7:52 pm) • TrDA (Вс ноя 17, 2019 8:19 pm)
Рейтинг: 2.35%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Ответить