Страница 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 не работает ((( чет я уже совсем запутался
и как правильно запускать из голосовых шаблонов