Ваши комментарии

Нет. Можно закрыть тему

Да. С тэгами драйвера работает

Ерунда получается. В этом случае я не могу узнать, что новые данные получены, если они не изменились. И получается, что в цикле постоянно отправляются данные.

Подскажите решение. Нужно определить событие, что данные в канал обратной связи получены, пусть даже значение не изменилось.

Я так понял, что единственный выход для меня это:

//===============================

var Scenes_1 = new Scenes("Сцены пом_1");

function Scenes(sceneName)   //определение функции
{
   var sceneNumber;
  
   function Control()
   {
      sceneNumber = IR.GetVariable("Server.Tags.BAOS." + sceneName);
      switch(sceneNumber)
      {
         case 0:
            IR.SetVariable("Server.Channels.BAOS.sw 1_1 - люстры",0);
            IR.SetVariable("Server.Channels.BAOS.sw 1_2 - бра",0);
           break;
         case 1:
            IR.SetVariable("Server.Channels.BAOS.sw 1_1 - люстры",0);
            IR.SetVariable("Server.Channels.BAOS.sw 1_2 - бра",0);
            break;
      }
   }
  
   IR.SetInterval(1000, Control);
}

//===============================

Мне в такой конструкции не нравится, что она забирает ресурсы процессора постоянно, а не событийно. Или нет?

"реагирует на любое новое значение, даже если новое равно предыдущему" - это не так. Даже, если реагирует, то действий не выполняет

GetFeedback должен выполняться событийно или по таймеру, а это усложняет скрипт. Хочется универсальное решение, работающее в фоне

1.1 var Scenes_1 = new Scenes();

1.2 Да. Драйвер KNX

2.1 Фидбэки, как раз, нужны, поэтому меня не устраиват то, что я вынужден обновлять значение фидбэка "левым" значением

2.2 Хочу, чтобы скрипт отрабатывал не только изменение, но и получение одного и того же значения переменной

Все верно. Именно так я его и использую.

Проверю еще раз

Тогда нужно исправить в онлайн справочнике



Сервис поддержки клиентов работает на платформе UserEcho