Включить если == после заката
Модератор: immortal
Включить если == после заката
Дорогой друг, прошу помощи в логике сценария включения реле только после заката.
if (timeIs('ThisComputer.SunSetTime')) {
sg('Relay00.status', 1);
SetTimeOut("myTimer_002","sg('Relay00.status', 0);",1*360);
2 и3 пункт отдельно отрабатывают
видимо где-то ошибка в условии но где?
if (timeIs('ThisComputer.SunSetTime')) {
sg('Relay00.status', 1);
SetTimeOut("myTimer_002","sg('Relay00.status', 0);",1*360);
2 и3 пункт отдельно отрабатывают
видимо где-то ошибка в условии но где?
- xor
- Сообщения: 2045
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 289 раз
- Поблагодарили: 632 раза
Re: Включить если == после заката
if (timeIs(gg('ThisComputer.SunSetTime')) ?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 пункт отдельно отрабатывают
видимо где-то ошибка в условии но где?
win10 connect https://connect.smartliving.ru/profile/303
Re: Включить если == после заката
if (timeIs(gg('ThisComputer.SunSetTime'))) {
sg('Relay00.status', 1);
SetTimeOut("myTimer_002","sg('Relay00.status', 0);",1*10);
в таком виде тоже не работает
sg('Relay00.status', 1);
SetTimeOut("myTimer_002","sg('Relay00.status', 0);",1*10);
в таком виде тоже не работает
- xor
- Сообщения: 2045
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 289 раз
- Поблагодарили: 632 раза
Re: Включить если == после заката
тогда покажите, чему у вас равно gg('ThisComputer.SunSetTime') и, вообще, где этот код расположен
- Рейтинг: 1.16%
win10 connect https://connect.smartliving.ru/profile/303
-
- Сообщения: 1562
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 577 раз
Re: Включить если == после заката
Это условие сработает только если системное время будет равно SunSetTime, минутой раньше или минутой позже - не сработает
Я так понимаю, задача в том чтобы какой-то триггер включал что-то только когда темно?
Тогда проще всего проверять gg('DarknessMode.active') == 1
- Рейтинг: 1.16%
Re: Включить если == после заката
В переменной ThisComputer.SunSetTime была строка(возможно) т.к say (gg('ThisComputer.SunSetTime')); какое то значение выдавал
сделал сценарий с функцией date_sun_info, теперь конструкция if (timeIs>(gg('ThisComputer.SunSetTime'))) { заработала
проверять по gg('DarknessMode.active') == 1 ,эта идея пришла ко мне и вникнув в метод onNewMinute увидел что это уже написано в коде осталось только брать значение.
Ваши советы направили в нужную сторону, Спасибо.
сделал сценарий с функцией date_sun_info, теперь конструкция if (timeIs>(gg('ThisComputer.SunSetTime'))) { заработала
проверять по gg('DarknessMode.active') == 1 ,эта идея пришла ко мне и вникнув в метод onNewMinute увидел что это уже написано в коде осталось только брать значение.
Ваши советы направили в нужную сторону, Спасибо.
-
- Сообщения: 1562
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 577 раз
Re: Включить если == после заката
Не могла она заработать. timeIs($time) это функция МДМ, которая сравнивает текущее время в формате 'H:i' ('03:31') со строчкой, переданной в виде аргумента $time. timeIs без скобок это вообще не пойми что и, по идее, должно выдавать ошибку
Re: Включить если == после заката
действительно не работало как надо, теперь так:
$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('солнце еще высоко');
}
$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: Включить если == после заката
Благодарю, пригодилось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('солнце еще высоко');
}