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

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

vitar78
Сообщения: 128
Зарегистрирован: Пт июл 15, 2016 3:12 am
Благодарил (а): 6 раз
Поблагодарили: 2 раза

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

Сообщение vitar78 » Пн фев 27, 2017 10:26 pm

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

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

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);
}
в меню при использовании через выключатель код работает а в шаблоне и скрипте нет
в чем проблема
DimSun75
Сообщения: 318
Зарегистрирован: Вс янв 01, 2017 8:32 pm
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 44 раза

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

Сообщение DimSun75 » Пн фев 27, 2017 10:40 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);
}
 
в меню при использовании через выключатель код работает а в шаблоне и скрипте нет
в чем проблема
А почему не так:

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

$state=getGlobal('Svet_3_spaln.sostojanie')
getURL('http://192.168.2.10/gpio?st='.$state.'&pin=12', 0);
 
или Svet_3_spaln.sostojanie может какие-то другие значения принимать, кроме 0 и 1
vitar78
Сообщения: 128
Зарегистрирован: Пт июл 15, 2016 3:12 am
Благодарил (а): 6 раз
Поблагодарили: 2 раза

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

Сообщение vitar78 » Пн фев 27, 2017 11:56 pm

Да так лучше но в сценариях и шаблонах всеравно не работает
DimSun75
Сообщения: 318
Зарегистрирован: Вс янв 01, 2017 8:32 pm
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 44 раза

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

Сообщение DimSun75 » Вт фев 28, 2017 12:29 am

Как-то это не по феншую. Делается это примерно так:

У объекта 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')

Как-то так
Ged
Сообщения: 105
Зарегистрирован: Чт окт 20, 2016 10:59 pm
Благодарил (а): 1 раз
Поблагодарили: 7 раз

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

Сообщение Ged » Вт фев 28, 2017 11:06 am

DimSun75 писал(а):Как-то это не по феншую. Делается это примерно так:

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

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

if ($this->getProperty("sostojanie") == '1')
{
      $this -> callMethod("turnOff");
} else {
      $this -> callMethod("turnOn");
}
vitar78
Сообщения: 128
Зарегистрирован: Пт июл 15, 2016 3:12 am
Благодарил (а): 6 раз
Поблагодарили: 2 раза

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

Сообщение vitar78 » Вт фев 28, 2017 11:15 am

Метод switch назначаете при изменении свойства "sostojanie"

не понятно как это сделать
DimSun75
Сообщения: 318
Зарегистрирован: Вс янв 01, 2017 8:32 pm
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 44 раза

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

Сообщение DimSun75 » Вт фев 28, 2017 11:45 am

vitar78 писал(а):Метод switch назначаете при изменении свойства "sostojanie"

не понятно как это сделать
В свойстве sostojanie в "Запускать метод при изменении (не обязательно): " выбираете switch
vitar78
Сообщения: 128
Зарегистрирован: Пт июл 15, 2016 3:12 am
Благодарил (а): 6 раз
Поблагодарили: 2 раза

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

Сообщение vitar78 » Вт фев 28, 2017 8:41 pm

DimSun75 писал(а):
vitar78 писал(а):Метод switch назначаете при изменении свойства "sostojanie"

не понятно как это сделать
В свойстве sostojanie в "Запускать метод при изменении (не обязательно): " выбираете switch
как только выбрал начинает моргать свет, включает и отключает по кругу постоянно
DimSun75
Сообщения: 318
Зарегистрирован: Вс янв 01, 2017 8:32 pm
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 44 раза

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

Сообщение DimSun75 » Вт фев 28, 2017 8:50 pm

vitar78 писал(а): как только выбрал начинает моргать свет, включает и отключает по кругу постоянно
А точно :) Поробуйте такой метод switch:

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


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

 
vitar78
Сообщения: 128
Зарегистрирован: Пт июл 15, 2016 3:12 am
Благодарил (а): 6 раз
Поблагодарили: 2 раза

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

Сообщение vitar78 » Вт фев 28, 2017 9:39 pm

ооо вот в таком варианте заработало только из меню, но както странно прямым запуском из методов switch не работает ((( чет я уже совсем запутался
и как правильно запускать из голосовых шаблонов
Ответить