Страница 1 из 1
Включить если == после заката
Добавлено: Вс ноя 12, 2023 8:51 pm
inf
Дорогой друг, прошу помощи в логике сценария включения реле только после заката.
if (timeIs('ThisComputer.SunSetTime')) {
sg('Relay00.status', 1);
SetTimeOut("myTimer_002","sg('Relay00.status', 0);",1*360);
2 и3 пункт отдельно отрабатывают
видимо где-то ошибка в условии но где?
Re: Включить если == после заката
Добавлено: Вс ноя 12, 2023 11:47 pm
xor
inf писал(а): ↑Вс ноя 12, 2023 8:51 pm
Дорогой друг, прошу помощи в логике сценария включения реле только после заката.
if (timeIs('ThisComputer.SunSetTime')) {
sg('Relay00.status', 1);
SetTimeOut("myTimer_002","sg('Relay00.status', 0);",1*360);
2 и3 пункт отдельно отрабатывают
видимо где-то ошибка в условии но где?
if (timeIs(
gg('ThisComputer.SunSetTime')) ?
Re: Включить если == после заката
Добавлено: Пн ноя 13, 2023 10:01 pm
inf
if (timeIs(gg('ThisComputer.SunSetTime'))) {
sg('Relay00.status', 1);
SetTimeOut("myTimer_002","sg('Relay00.status', 0);",1*10);
в таком виде тоже не работает
Re: Включить если == после заката
Добавлено: Пн ноя 13, 2023 11:39 pm
xor
inf писал(а): ↑Пн ноя 13, 2023 10:01 pm
if (timeIs(gg('ThisComputer.SunSetTime'))) {
sg('Relay00.status', 1);
SetTimeOut("myTimer_002","sg('Relay00.status', 0);",1*10);
в таком виде тоже не работает
тогда покажите, чему у вас равно gg('ThisComputer.SunSetTime') и, вообще, где этот код расположен
Re: Включить если == после заката
Добавлено: Ср ноя 15, 2023 11:30 pm
fandaymon
inf писал(а): ↑Пн ноя 13, 2023 10:01 pm
if (timeIs(gg('ThisComputer.SunSetTime'))) {
sg('Relay00.status', 1);
SetTimeOut("myTimer_002","sg('Relay00.status', 0);",1*10);
в таком виде тоже не работает
Это условие сработает только если системное время будет равно SunSetTime, минутой раньше или минутой позже - не сработает
Я так понимаю, задача в том чтобы какой-то триггер включал что-то только когда темно?
Тогда проще всего проверять gg('DarknessMode.active') == 1
Re: Включить если == после заката
Добавлено: Пт ноя 17, 2023 9:34 pm
inf
В переменной ThisComputer.SunSetTime была строка(возможно) т.к say (gg('ThisComputer.SunSetTime')); какое то значение выдавал
сделал сценарий с функцией date_sun_info, теперь конструкция if (timeIs>(gg('ThisComputer.SunSetTime'))) { заработала
проверять по gg('DarknessMode.active') == 1 ,эта идея пришла ко мне и вникнув в метод onNewMinute увидел что это уже написано в коде осталось только брать значение.
Ваши советы направили в нужную сторону, Спасибо.
Re: Включить если == после заката
Добавлено: Пн ноя 20, 2023 4:31 am
fandaymon
inf писал(а): ↑Пт ноя 17, 2023 9:34 pm
конструкция if (timeIs>(gg('ThisComputer.SunSetTime'))) { заработала
Не могла она заработать. timeIs($time) это функция МДМ, которая сравнивает текущее время в формате 'H:i' ('03:31') со строчкой, переданной в виде аргумента $time. timeIs без скобок это вообще не пойми что и, по идее, должно выдавать ошибку
Re: Включить если == после заката
Добавлено: Вс ноя 26, 2023 8:21 pm
inf
действительно не работало как надо, теперь так:
$dark=(gg('ThisComputer.isDark'));
if ($dark == 1) {
say('включаем свет');
sg('Relay00.status', 1);
SetTimeOut("myTimer_999","sg('Relay00.status', 0);",360);
SetTimeOut("myTimer_998","say('вЫключаем свет');",360);
} else{
say('солнце еще высоко');
}
Re: Включить если == после заката
Добавлено: Ср фев 28, 2024 6:14 pm
Ruzalak
inf писал(а): ↑Вс ноя 26, 2023 8:21 pm
действительно не работало как надо, теперь так:
$dark=(gg('ThisComputer.isDark'));
if ($dark == 1) {
say('включаем свет');
sg('Relay00.status', 1);
SetTimeOut("myTimer_999","sg('Relay00.status', 0);",360);
SetTimeOut("myTimer_998","say('вЫключаем свет');",360);
} else{
say('солнце еще высоко');
}
Благодарю, пригодилось
Re: Включить если == после заката
Добавлено: Чт фев 29, 2024 12:58 am
Pirvlav
Ваши советы направили в нужную сторону, Спасибо.