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

помогите с кодом

Добавлено: Пн фев 27, 2017 10:26 pm
vitar78
Помогите с кодом

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

if ((getGlobal('Svet_3_spaln.sostojanie')) =="1")
{
getURL('http://192.168.2.10/gpio?st=1&pin=12', 0);
} else if ((getGlobal('Svet_3_spaln.sostojanie')) =="0") 
{ 
getURL('http://192.168.2.10/gpio?st=0&pin=12', 0);
}
в меню при использовании через выключатель код работает а в шаблоне и скрипте нет
в чем проблема

Re: помогите с кодом

Добавлено: Пн фев 27, 2017 10:40 pm
DimSun75
vitar78 писал(а):Помогите с кодом

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

if ((getGlobal('Svet_3_spaln.sostojanie')) =="1")
{
getURL('http://192.168.2.10/gpio?st=1&pin=12', 0);
} else if ((getGlobal('Svet_3_spaln.sostojanie')) =="0") 
{ 
getURL('http://192.168.2.10/gpio?st=0&pin=12', 0);
}
 
в меню при использовании через выключатель код работает а в шаблоне и скрипте нет
в чем проблема
А почему не так:

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

$state=getGlobal('Svet_3_spaln.sostojanie')
getURL('http://192.168.2.10/gpio?st='.$state.'&pin=12', 0);
 
или Svet_3_spaln.sostojanie может какие-то другие значения принимать, кроме 0 и 1

Re: помогите с кодом

Добавлено: Пн фев 27, 2017 11:56 pm
vitar78
Да так лучше но в сценариях и шаблонах всеравно не работает

Re: помогите с кодом

Добавлено: Вт фев 28, 2017 12:29 am
DimSun75
Как-то это не по феншую. Делается это примерно так:

У объекта Svet_3_spaln должны быть методы

turnOn:

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

$this->setProperty("sostojanie",1);
getURL('http://192.168.2.10/gpio?st=1&pin=12', 0);
turnOff:

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

$this->setProperty("sostojanie",0);
getURL('http://192.168.2.10/gpio?st=0&pin=12', 0);
switch:

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

if ($this->getProperty("sostojanie") == '1')
{
      $this -> setProperty("sostojanie", 0);
      getURL('http://192.168.2.10/gpio?st=0&pin=12', 0);
} else {
      $this -> setProperty("sostojanie", 1);
      getURL('http://192.168.2.10/gpio?st=1&pin=12', 0);
}
Метод switch назначаете при изменении свойства "sostojanie"

Теперь в меню в выключателе никакой код писать не нужно, просто связываете с объектом Svet_3_spaln, и свойством "sostojanie".

В шаблонах или сценарии если нужно включить свет: callMethod('Svet_3_spaln.turnOn'), а если выключить callMethod('Svet_3_spaln.turnOff') и соответственно переключить callMethod('Svet_3_spaln.switch')

Как-то так

Re: помогите с кодом

Добавлено: Вт фев 28, 2017 11:06 am
Ged
DimSun75 писал(а):Как-то это не по феншую. Делается это примерно так:

У объекта Svet_3_spaln должны быть методы....
Метод switch лучше так как-то:

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

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

Re: помогите с кодом

Добавлено: Вт фев 28, 2017 11:15 am
vitar78
Метод switch назначаете при изменении свойства "sostojanie"

не понятно как это сделать

Re: помогите с кодом

Добавлено: Вт фев 28, 2017 11:45 am
DimSun75
vitar78 писал(а):Метод switch назначаете при изменении свойства "sostojanie"

не понятно как это сделать
В свойстве sostojanie в "Запускать метод при изменении (не обязательно): " выбираете switch

Re: помогите с кодом

Добавлено: Вт фев 28, 2017 8:41 pm
vitar78
DimSun75 писал(а):
vitar78 писал(а):Метод switch назначаете при изменении свойства "sostojanie"

не понятно как это сделать
В свойстве sostojanie в "Запускать метод при изменении (не обязательно): " выбираете switch
как только выбрал начинает моргать свет, включает и отключает по кругу постоянно

Re: помогите с кодом

Добавлено: Вт фев 28, 2017 8:50 pm
DimSun75
vitar78 писал(а): как только выбрал начинает моргать свет, включает и отключает по кругу постоянно
А точно :) Поробуйте такой метод switch:

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


if ($params['NEW_VALUE'] != $params['OLD_VALUE'])
{
  if ($params['NEW_VALUE'] == '0')
  {
      $this -> callMethod("turnOff");
  } else {
      $this -> callMethod("turnOn");
  }
}

 

Re: помогите с кодом

Добавлено: Вт фев 28, 2017 9:39 pm
vitar78
ооо вот в таком варианте заработало только из меню, но както странно прямым запуском из методов switch не работает ((( чет я уже совсем запутался
и как правильно запускать из голосовых шаблонов