Страница 1 из 2

Настройка элемента Radiobox

Добавлено: Пн сен 02, 2019 5:49 pm
Jilber
Подскажите с настройкой элемента Radiobox.
Сейчас в меню есть обычный выключатель освещения, всё работает. Хочу переделать его на 3 положения: выкл|вкл|авто для совместной работы датчиком движения. Выключатель привязан к свойству"status". Не могу понять, какой код нужен в связанном методе. Пробовал что-то вроде этого, но не работает:
switch(gg("Lamp_Kitchen.status")) {
case 0:
callMethod("turnOff");
break;
case 1:
callMethod("turnOn");
break;
case 2:

}
Спасибо.

Re: Настройка элемента Radiobox

Добавлено: Пн сен 02, 2019 6:48 pm
xor
Jilber писал(а): Пн сен 02, 2019 5:49 pm Подскажите с настройкой элемента Radiobox.
Сейчас в меню есть обычный выключатель освещения, всё работает...
Читали viewtopic.php?t=4339?
Там два способа описаны - с кодом и без

Re: Настройка элемента Radiobox

Добавлено: Пн сен 02, 2019 7:17 pm
Jilber
Читал.
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));
}
Это у меня не заработало. Может конечно я что-то с синтаксисом напутал.
В итоге решил сделать проще:

Код: Выделить всё

$status=$this->getProperty("status");
if ($status ==0) {
 $this->callMethod("turnOff");
 } else if ($status ==1) {
 $this->callMethod("turnOn");
 }

Re: Настройка элемента Radiobox

Добавлено: Пн сен 02, 2019 11:25 pm
Divan
Если проблема актуальная, то покажите Ваши настройки в виде скриншотов. Вы типа этого хотите сделать?

Re: Настройка элемента Radiobox

Добавлено: Сб сен 07, 2019 6:29 pm
Jilber
Хочу обычный выключатель переделать на 3 положения:
SPOILERSPOILER_SHOW
Выключатель.jpg
Выключатель.jpg (10.53 КБ) 3449 просмотров
Настройки.jpg
Настройки.jpg (42.72 КБ) 3449 просмотров
Нужно, чтобы при срабатывании датчика движения в тёмное время суток и при включенном в положение "Авто" выключателе свет включался на определенное время.
Вот что в методе "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);
 }
Вроде работает, но после отключения освещения через 60 секунд почему-то не срабатывает строка "sg('Lamp_Kitchen.status', 2);". Может что-то не так с синтаксисом ? И вообще было бы интересно узнать у кого как сделана работа освещения от датчика движения.

Re: Настройка элемента Radiobox

Добавлено: Сб сен 07, 2019 6:36 pm
Divan
Нужно чтобы статус имел 1 или 0, в вашем случае статус 2, это не верно. В свойствах исправьте статус с 2 на 0, а тут укажите Lamp_Kitchen.status', 0

Статус 0, это выключено
Статус 1, это включено

Re: Настройка элемента Radiobox

Добавлено: Сб сен 07, 2019 6:38 pm
Jilber
'Lamp_Kitchen.status', 2 - это как раз положение выключателя "Авто". Просто при выполнении через 60 сек метода 'Lamp_Kitchen.turnOff' свет отключается, а свойство "Status" выставляется в "0" и нужно вернуть его снова в "Авто", т.е. в "2".

Re: Настройка элемента Radiobox

Добавлено: Сб сен 07, 2019 7:05 pm
Divan
Тогда вам нужно создать логику, примерно так, если свойство статуса стало 0, то вернуть статус 2.

Код: Выделить всё

if (getGlobal('Lamp_Kitchen'.'.'.'status') == '0') {
  setGlobal('Lamp_Kitchen'.'.'.'status', '2');
}

Re: Настройка элемента Radiobox

Добавлено: Сб сен 07, 2019 7:28 pm
Jilber
Так в методе "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

Добавлено: Сб сен 07, 2019 7:35 pm
Divan
Я заметил, что у вас в коде отсутствует пробел и кавычки.
gg('DarknessMode.active') ==1, gg('DarknessMode.active') == '1'
и
Lamp_Kitchen.status') ==2,
Lamp_Kitchen.status') == '2'

И потом в коде я не вижу логику, что если статус сменился с 2 на 0, то его нужно вернуть на 2