Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.
Модератор: immortal
-
Alexiy2
- Сообщения: 104
- Зарегистрирован: Вт май 12, 2015 9:59 pm
-
Благодарил (а):
16 раз
-
Поблагодарили:
13 раз
Сообщение
Alexiy2 » Пт май 21, 2021 8:59 pm
Уважаемый Chainik!!!
Закат и рассвет давно присутствует (берется из модуля погоды), как прибавить 30 минут к рассвету я знал, а вот как сделать на 30 минут раньше - Добрые люди подсказали!!! У меня не та команда стояла, поэтому высчитывалось некорректно. С PHP я на ВЫ! Читаю мануалы и пробую что то сделать! А вот со временем, ЧТО НАСТУПИТ РАНЬШЕ, я как то пока не нашел, поэтому и спрашиваю у сообщества. И, надеюсь, что какой-нибудь знающий человек подскажет... А может и сам найду раньше ответа сообщества... Всех благодарю за посильную помощь...
-
fandaymon
- Сообщения: 1555
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
-
Благодарил (а):
39 раз
-
Поблагодарили:
574 раза
Сообщение
fandaymon » Пт май 21, 2021 9:15 pm
Alexiy2 писал(а): ↑Пт май 21, 2021 8:04 pm
И mktime работает не так, как вы себе это представляете...
Там скорее подошёл бы strtotime($RunTime1)
Спасибо! Вот так нормально вычисляет!!! Как я и хотел!
А не могли бы подсказать, как написать нормально логику, что
РАНЬШЕ сработает, и наоборот, что
ПОЗЖЕ???
Какими командами????
Самое простое - во время вычислений -30 минут вычислить strtotime('22:00') и посмотреть что меньше
Делать это в какое-нибудь время типа 2 часа ночи, например, в сценарии Hourly
Код: Выделить всё
$h=(int)date('G',time());
if ($h==2) {
$RunTime1=(gg('ow_fact.sunset'));
$RunTime2=strtotime($RunTime1);
$RunTime2=$RunTime2-1800;
$RunTime3=strtotime('22:00');
if ($RunTime3 > $RunTime2) {
AddScheduledJob("CloseCurtain","rs('Close_Curtains');", $RunTime2 );
} else {
AddScheduledJob("CloseCurtain","rs('Close_Curtains');", $RunTime3 );
}
}
Как-то так... Не проверял
В нужное время выполнится скрипт Close_Curtains
-
Alexiy2
- Сообщения: 104
- Зарегистрирован: Вт май 12, 2015 9:59 pm
-
Благодарил (а):
16 раз
-
Поблагодарили:
13 раз
Сообщение
Alexiy2 » Пт май 21, 2021 9:18 pm
fandaymon писал(а): ↑Пт май 21, 2021 9:15 pm
Alexiy2 писал(а): ↑Пт май 21, 2021 8:04 pm
И mktime работает не так, как вы себе это представляете...
Там скорее подошёл бы strtotime($RunTime1)
Спасибо! Вот так нормально вычисляет!!! Как я и хотел!
А не могли бы подсказать, как написать нормально логику, что
РАНЬШЕ сработает, и наоборот, что
ПОЗЖЕ???
Какими командами????
Самое простое - во время вычислений -30 минут вычислить strtotime('22:00') и посмотреть что меньше
Делать это в какое-нибудь время типа 2 часа ночи, например, в сценарии Onhourly
Код: Выделить всё
$h=(int)date('G',time());
if ($h==2) {
$RunTime1=(gg('ow_fact.sunset'));
$RunTime2=strtotime($RunTime1);
$RunTime2=$RunTime2-1800;
$RunTime3=strtotime('22:00');
if ($RunTime3 > $RunTime2) {
AddScheduledJob("CloseCurtain","rs('Close_Curtains');", $RunTime2 );
} else {
AddScheduledJob("CloseCurtain","rs('Close_Curtains');", $RunTime3 );
}
}
Как-то так... Не проверял
В нужное время выполнится скрипт Close_Curtains
Спасибо за подсказку!!!! Только что читал статью о Сравнении дат и времени!!! Там так же написано!!!! Огромнейшая БЛАГОДАРНОСТЬ Вам!!!
-
Alexiy2
- Сообщения: 104
- Зарегистрирован: Вт май 12, 2015 9:59 pm
-
Благодарил (а):
16 раз
-
Поблагодарили:
13 раз
Сообщение
Alexiy2 » Пт май 21, 2021 9:53 pm
Отдельное спасибо Уважаемому мною
fandaymon за подсказки!!!
Сценарий получился вот таким для определения времени закрытия роллет:
Код: Выделить всё
//$RunTime1=(gg('ow_fact.sunset')); // берем время заката
$RunTime2=strtotime($RunTime1); // Переводим его в UNIXTime
$RunTime3=$RunTime2-1800; // Вычитаем 30 минут
$RunTime4=strtotime('22:00');
if ($RunTime4 >= $RunTime3) {
$RunTime3=date('H:i', $RunTime3);
sg ('sunset.Start', $RunTime3);
} else {
$RunTime4=date('H:i', $RunTime4);
sg ('sunset.Start', $RunTime4);
}
Но опять загвоздка... Решил я установить время заката после полуночи (бывает у нас такое "счастье" в разгар белых ночей) и скрипт отработал не верно. Почему он так сделал я понимаю, а вот как это исправить, буду думать и читать далее.
-
fandaymon
- Сообщения: 1555
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
-
Благодарил (а):
39 раз
-
Поблагодарили:
574 раза
Сообщение
fandaymon » Пт май 21, 2021 10:39 pm
Alexiy2 писал(а): ↑Пт май 21, 2021 9:53 pm
Отдельное спасибо Уважаемому мною
fandaymon за подсказки!!!
Сценарий получился вот таким для определения времени закрытия роллет:
Код: Выделить всё
//$RunTime1=(gg('ow_fact.sunset')); // берем время заката
$RunTime2=strtotime($RunTime1); // Переводим его в UNIXTime
$RunTime3=$RunTime2-1800; // Вычитаем 30 минут
$RunTime4=strtotime('22:00');
if ($RunTime4 >= $RunTime3) {
$RunTime3=date('H:i', $RunTime3);
sg ('sunset.Start', $RunTime3);
} else {
$RunTime4=date('H:i', $RunTime4);
sg ('sunset.Start', $RunTime4);
}
Но опять загвоздка... Решил я установить время заката после полуночи (бывает у нас такое "счастье" в разгар белых ночей) и скрипт отработал не верно. Почему он так сделал я понимаю, а вот как это исправить, буду думать и читать далее.
Добавить ещё сравнение $RunTime2 с strtotime('06:00'), если меньше то в $RunTime3 помещать $RunTime4
-
TrDA
- Сообщения: 147
- Зарегистрирован: Ср сен 27, 2017 9:13 pm
- Откуда: MSK
-
Благодарил (а):
235 раз
-
Поблагодарили:
38 раз
Сообщение
TrDA » Сб май 22, 2021 11:25 pm
Alexiy2 писал(а): ↑Пт май 21, 2021 8:32 pm
TrDA писал(а): ↑Пт май 21, 2021 8:16 pm
Alexiy2 писал(а): ↑Пт май 21, 2021 12:53 pm
Решил автоматизировать свои роллеты на окнах.
Собрал контроллеры на базе NodeMCU v3 и прошивке Tasmota. Все работает как часы.
Если это возможно можно(!) - хотелось-бы побольше грязных подробностей про "автоматизировать свои роллеты на окнах". Если, вас это не затруднит, плиз !!!
Меня ни капли не затруднит!!!!
Или Вы не это имели ввиду????
Меня интересовали "грязные" технические подробности.
Всем удачи.
Спрашивайте - не стесняйтесь.
-
Alexiy2
- Сообщения: 104
- Зарегистрирован: Вт май 12, 2015 9:59 pm
-
Благодарил (а):
16 раз
-
Поблагодарили:
13 раз
Сообщение
Alexiy2 » Вс май 23, 2021 9:47 pm
[/quote]
Меня интересовали "грязные" технические подробности.
[/quote]
Что то я не пойму сленга Вашего! Можно на более русском народном. А то я только учу данный язык. Мы так не общались...
Вы про железо имеете ввиду? Или прошивку?
-
Jilber
- Сообщения: 686
- Зарегистрирован: Ср май 03, 2017 7:41 pm
-
Благодарил (а):
113 раз
-
Поблагодарили:
107 раз
Сообщение
Jilber » Вс май 23, 2021 9:53 pm
Я думаю будет интересно и железо, и прошивки, и схемы, и фото...
-
Alexiy2
- Сообщения: 104
- Зарегистрирован: Вт май 12, 2015 9:59 pm
-
Благодарил (а):
16 раз
-
Поблагодарили:
13 раз
Сообщение
Alexiy2 » Вт май 25, 2021 10:54 am
Jilber писал(а): ↑Вс май 23, 2021 9:53 pm
Я думаю будет интересно и железо, и прошивки, и схемы, и фото...
к сожалению контроллеры уже установлены в свои родные места, и сделать фото не предоставляется возможным. Заказал с Китая на оставшиеся окна NodeMcu и релюшки. Как придет посылка, буду делать еще три контроллера, вот тогда и напишу с фото отчет по проделанной работе.
-
TrDA
- Сообщения: 147
- Зарегистрирован: Ср сен 27, 2017 9:13 pm
- Откуда: MSK
-
Благодарил (а):
235 раз
-
Поблагодарили:
38 раз
Сообщение
TrDA » Ср май 26, 2021 11:33 am
Alexiy2 писал(а): ↑Вс май 23, 2021 9:47 pm
Меня интересовали "грязные" технические подробности.
[/quote]
Что то я не пойму сленга Вашего! Можно на более русском народном. А то я только учу данный язык. Мы так не общались...
Вы про железо имеете ввиду? Или прошивку?
[/quote]
Особенно(!) интересно про железо.
Всем удачи.
Спрашивайте - не стесняйтесь.