0
Under review

Проблема с GetDevice для панельной части после создания серверного проекта

project 4 years ago in Bugs and problems updated by Vladimir Ovchinnikov (expert) 4 years ago 1

Добрый день.

Для панельного проекта написан скрипт:

var d1int = 0;

var d1perm = 0;


//Реле 1 (главный вход)

IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("MainPage").GetItem("Door1perm"), function ()

{

d1perm = IR.GetItem("MainPage").GetItem("Door1perm").Value;

IR.ClearInterval(d1int);

});

IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("MainPage").GetItem("Door1"), function ()

{

if(IR.GetItem("MainPage").GetItem("Door1").Value == 0){IR.ClearInterval(d1int);}

if(IR.GetItem("MainPage").GetItem("Door1perm").Value == 0 && d1perm == 1){d1perm = 0;}

d1int = IR.SetTimeout(2000, function()

{

if(d1perm == 0){IR.GetDevice("KNX").Set("Rele1",0);}

});

});

Без серверное части скрипт работал. После создания серверной части и развёртки проекта в виде "панель+сервер" (сервер софтварный, установлен на ПК) строка if(d1perm == 0){IR.GetDevice("KNX").Set("Rele1",0);} стала выдавать ошибку Script exception: TypeError: .... RelayDelay.js:20: Tried to use null as an object.

IR.Log(IR.GetDevice("KNX")) выдаёт null. Команды по нажатию на кнопки (включение/выключение реле на актуаторе) выполняются: реле переключается. Проблема в скрипте или что-то не так настроено в серверной части? Просьба помочь с проблемой (файлы проекта - в приложении).

Project 2 (Panel).irpz
Project 2 (Server).sirpz

Under review

Добрый день.

Вы обращаетесь к несуществующему объекту, т. к. в панельном проекте у вас нет драйвера "KNX".

В проекте у вас 'iRidium Server", его и используйте. В качестве имени канала/фидбэка укажите то, что написано в поле Full name.