Your comments

Блин я вам про Москву, вы мне про Питер) Как составить порядок появления попалов, аналогично к предыдущей проблеме с листом. Но как вы сказали легче получить результат с 25 попалами для 5 каналов, на 5 попалов для каждого канала. Мне пока не важно как будет попал выскакивать с перемещение или без, и его свойства не интересны, мне интересно как реализовать порядок появление попалов(сортировка).
Как показать попалы как на рисунке? И чтобы на каждом было время когда оно появилось
Ошибки.jpg
Ошибки.jpg_thumb
От листа отказались, теперь надо придумать с попалами, допустим есть 5 попалов они должны возникать как окна в виндовс при ошибке. И опять максимум 5, и возможно 5 одинаковых. Пока я не понял концепцию сортировки т.к. порядок не совпадает при различных условиях….  Я так понимаю придется создавать попалы, т.к. показ одного и тоже попала одновременно не возможно. Но как учитывать их порядок уже другой вопрос, и как привязать команду к элементу еще несозданному попалу тоже вопрос…
Так я вам код скидывал для начального заполнения. Тогда я понимаю что и для этой задачи лучше использовать switch case? И еще мне не только нужно сравнить Имя_N, но и значения, не будут же они у меня постоянно заполнять лист каждую секунду…
Привязал условия к сортировке, но все равно после 3 позиции порядок нарушается) Пример в приложении.
listarray.irpz
IR.AddListener(IR.EVENT_START,0,function()

var List = IR.GetItem("Page 1").GetItem("Item 1");
var n12=IR.GetVariable("Global.Kitchen");
var n08=IR.GetVariable("Global.Living room");
var n16=IR.GetVariable("Global.Toilet");
var n02=IR.GetVariable("Global.Bathroom");
var n03=IR.GetVariable("Global.Kabinet");
var m=[0,0,0,0,0];
var i=5;
var x=[];
if (n12 == 1)
    {
    i=i-1;
    x= "Протечка на кухне!";
    m=i;
    List.CreateItem(m
(i),0,{Text: x(i)});
  //  IR.Log(i)
    }
     
if (n08==1)
      { 
      i=i-1;
      m=i;
      x="Протечка в комнате отдыха!";
      List.CreateItem(m
(i),0,{Text: x(i)});
    //  IR.Log(i)
      }     
if (n16==1)
      { 
      i=i-1;
      x="Протечка в гостивом туалете!";
      m=i;
      List.CreateItem(m
(i),0,{Text: x(i)});
    //  IR.Log(i)
      }
if (n02==1)
      { 
      i=i-1;
      m=i;
      x="Протечка в ванной!";
      List.CreateItem(m
(i),0,{Text: x(i)});
    //  IR.Log(i)
      }
if (n03==1)
      { 
      i=i-1;
      m=i;
      x="Протечка в кабинете!";
      List.CreateItem(m(i),0,{Text: x(i)});
    // IR.Log(i)
      }
     
IR.Log(m);
IR.Log(x);


});

Проблема при заполнении если порядок нарушается как в скрипте, меняются позиции, как избавиться от этого?
Где i в скобках там квадратные скобки, почему-то квадратные исчезаю при создания поста…
Как мне в проекте записать массив в переменную проекта? Так и не понял как мне из 500 каналов найти 5 каналов по имени и вбить в массив? Еще можно назначить слушатель TAG_Change на определенный канал?
Я так понимаю массив получается будет состоять из 5 строк и нескольких столбцов. Получается при проверки заполнится лист, дальше при TAG_CHANGE будет меняться сам массив, а алгоритм построения останется тем же что и в начале?
Как мне тогда с массива, проверить имя канала для того чтобы знать какую ошибку мне выдать в list?
Спасибо, это уже что-то. Я думал что в массив будет записываться вся информация, а оказывается можно записать отдельно значения 5 каналов(адресов). Да и еще как я проверю массив в оффлайне если TAG_Change работает столько с устройством, а не с переменными проекта?