Проблема с GetDevice для панельной части после создания серверного проекта
Добрый день.
Для панельного проекта написан скрипт:
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. Команды по нажатию на кнопки (включение/выключение реле на актуаторе) выполняются: реле переключается. Проблема в скрипте или что-то не так настроено в серверной части? Просьба помочь с проблемой (файлы проекта - в приложении).
Customer support service by UserEcho
Добрый день.
Вы обращаетесь к несуществующему объекту, т. к. в панельном проекте у вас нет драйвера "KNX".
В проекте у вас 'iRidium Server", его и используйте. В качестве имени канала/фидбэка укажите то, что написано в поле Full name.