Настройка элемента Radiobox
Модератор: immortal
Настройка элемента Radiobox
Подскажите с настройкой элемента Radiobox.
Сейчас в меню есть обычный выключатель освещения, всё работает. Хочу переделать его на 3 положения: выкл|вкл|авто для совместной работы датчиком движения. Выключатель привязан к свойству"status". Не могу понять, какой код нужен в связанном методе. Пробовал что-то вроде этого, но не работает:
switch(gg("Lamp_Kitchen.status")) {
case 0:
callMethod("turnOff");
break;
case 1:
callMethod("turnOn");
break;
case 2:
}
Спасибо.
Сейчас в меню есть обычный выключатель освещения, всё работает. Хочу переделать его на 3 положения: выкл|вкл|авто для совместной работы датчиком движения. Выключатель привязан к свойству"status". Не могу понять, какой код нужен в связанном методе. Пробовал что-то вроде этого, но не работает:
switch(gg("Lamp_Kitchen.status")) {
case 0:
callMethod("turnOff");
break;
case 1:
callMethod("turnOn");
break;
case 2:
}
Спасибо.
Re: Настройка элемента Radiobox
Читали viewtopic.php?t=4339?Jilber писал(а): Пн сен 02, 2019 5:49 pm Подскажите с настройкой элемента Radiobox.
Сейчас в меню есть обычный выключатель освещения, всё работает...
Там два способа описаны - с кодом и без
win10 connect https://connect.smartliving.ru/profile/303
Re: Настройка элемента Radiobox
Читал.
Это у меня не заработало. Может конечно я что-то с синтаксисом напутал.
В итоге решил сделать проще:
SPOILERSPOILER_SHOW
switch($params["VALUE"]) {
case 1:
cm("LivingroomAC.heatOn", array("ccontrol"=>1));
break;
case 2:
cm("LivingroomAC.coolOn", array("ccontrol"=>1));
break;
default:
cm("LivingroomAC.off", array("ccontrol"=>1));
}
case 1:
cm("LivingroomAC.heatOn", array("ccontrol"=>1));
break;
case 2:
cm("LivingroomAC.coolOn", array("ccontrol"=>1));
break;
default:
cm("LivingroomAC.off", array("ccontrol"=>1));
}
В итоге решил сделать проще:
Код: Выделить всё
$status=$this->getProperty("status");
if ($status ==0) {
$this->callMethod("turnOff");
} else if ($status ==1) {
$this->callMethod("turnOn");
}
Re: Настройка элемента Radiobox
Если проблема актуальная, то покажите Ваши настройки в виде скриншотов. Вы типа этого хотите сделать?
- Вложения
-
- Screenshot_20190902-232414_Samsung Internet.jpg (330.75 КБ) 3508 просмотров
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
Re: Настройка элемента Radiobox
Хочу обычный выключатель переделать на 3 положения:
Нужно, чтобы при срабатывании датчика движения в тёмное время суток и при включенном в положение "Авто" выключателе свет включался на определенное время.
Вот что в методе "motionDetected":
Вроде работает, но после отключения освещения через 60 секунд почему-то не срабатывает строка "sg('Lamp_Kitchen.status', 2);". Может что-то не так с синтаксисом ? И вообще было бы интересно узнать у кого как сделана работа освещения от датчика движения.
SPOILERSPOILER_SHOW
Вот что в методе "motionDetected":
Код: Выделить всё
if(gg('DarknessMode.active') ==1 && gg('Lamp_Kitchen.status') ==2) {
callMethod('Lamp_Kitchen.turnOn'); clearTimeOut("KitchenLightOffTimer"); SetTimeOut("KitchenLightOffTimer","callMethod('Lamp_Kitchen.turnOff');",60); sg('Lamp_Kitchen.status', 2);
}Re: Настройка элемента Radiobox
Нужно чтобы статус имел 1 или 0, в вашем случае статус 2, это не верно. В свойствах исправьте статус с 2 на 0, а тут укажите Lamp_Kitchen.status', 0
Статус 0, это выключено
Статус 1, это включено
Статус 0, это выключено
Статус 1, это включено
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
Re: Настройка элемента Radiobox
'Lamp_Kitchen.status', 2 - это как раз положение выключателя "Авто". Просто при выполнении через 60 сек метода 'Lamp_Kitchen.turnOff' свет отключается, а свойство "Status" выставляется в "0" и нужно вернуть его снова в "Авто", т.е. в "2".
Re: Настройка элемента Radiobox
Тогда вам нужно создать логику, примерно так, если свойство статуса стало 0, то вернуть статус 2.
Код: Выделить всё
if (getGlobal('Lamp_Kitchen'.'.'.'status') == '0') {
setGlobal('Lamp_Kitchen'.'.'.'status', '2');
}
- Вложения
-
- 20190907_190355.jpg (247.09 КБ) 3438 просмотров
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
Re: Настройка элемента Radiobox
Так в методе "motionDetected" есть строчка sg('Lamp_Kitchen.status', 2), но она не срабатывает:
Код: Выделить всё
if(gg('DarknessMode.active') ==1 && gg('Lamp_Kitchen.status') ==2) {
callMethod('Lamp_Kitchen.turnOn'); clearTimeOut("KitchenLightOffTimer"); SetTimeOut("KitchenLightOffTimer","callMethod('Lamp_Kitchen.turnOff');",60); sg('Lamp_Kitchen.status', 2);
}Re: Настройка элемента Radiobox
Я заметил, что у вас в коде отсутствует пробел и кавычки.
gg('DarknessMode.active') ==1, gg('DarknessMode.active') == '1'
и
Lamp_Kitchen.status') ==2,
Lamp_Kitchen.status') == '2'
И потом в коде я не вижу логику, что если статус сменился с 2 на 0, то его нужно вернуть на 2
gg('DarknessMode.active') ==1, gg('DarknessMode.active') == '1'
и
Lamp_Kitchen.status') ==2,
Lamp_Kitchen.status') == '2'
И потом в коде я не вижу логику, что если статус сменился с 2 на 0, то его нужно вернуть на 2
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB