Страница 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
Ваши советы направили в нужную сторону, Спасибо.