We have moved our support service to a new technical support system. Since 17.01.2022, we have disabled the ability to create appeals through the userecho personal account. Now all requests are processed via mail to support@iridi.com .

Thank you for your understanding and have a nice day.

0
Answered

Mute для KNX

Сергей Штирбу 9 years ago in Tips and Tricks updated by Aleksandr Romanov (CTO) 6 years ago 1
Mute для KNX как можно реализовать на 1 байте кнопку триггер:
1) нажатие выключили (свет, звук.),
2) нажатие включили в тоже значение из которого выключили
Answer
Здравствуйте, Сергей

Для создания триггера, который переключается из нуля в последнее принятое состояние, используйте скрипт, приведенный в проекте-примере:

KNX_SmartTrigger.irpz

Проект подходит для любого драйвера, не только KNX. Чтобы он начал работать, настройте KNX, его команды и каналы, создайте кнопки, которые будут служить в качестве "умных" триггеров.

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

Далее, откройте редактор скриптов -  [JS], и создайте в нижней части файла скрипта описание всех "умных" триггеров так же, как это сделано в примере.

Для каждого триггера описывается:
  • имя драйвера, с которым связан триггер
  • имя команды, куда триггер отправляет данные (оно должно быть таким же, как имя канала обратной связи, откуда триггер получает инофрмацию о текущем состоянии управляемого адреса)
  • путь к элементу-триггеру (страница, имя элемента)
  • значение триггера по умолчанию. После запуска проекта, если начальное значение адреса было равно нулю, при нажатии на триггер он установит это значение. 
Экземпляр триггера в файле скрипта выглядит так:
trigger(IR.GetDevice("KNX Router (KNXnet/IP)"),    // драйвер
         "Address 1",                              // адрес KNX (Command = Feedback)
         IR.GetItem("Page 1").GetItem("Item 2"),   // кнопка-триггер
         50)                                      // значение триггера по-умолчанию
чтобы создать другой триггер, вам нужно скопировать только этот блок данных и заменить необходимые параметры - адрес элемента, адрес KNX, имя драйвера.
0
Answered

Анимация. Повороты

evg 9 years ago in Tips and Tricks updated by Aleksandr Romanov (CTO) 6 years ago 7
Доброй ночи!

Есть задача поворачивать элемент то влево, то вправо в зависимости от нажатия кнопки слева или справа соответствнно. Планировал реализовать данную функцию при помощи анимации.

Сделал все по инструкции описанной здесь.

Код получился вот такой:
function Turn()
{
var Button1 = IR.GetItem("Page 1").GetItem("Item 2");
var Button2 = IR.GetItem("Page 1").GetItem("Item 3");
var Arrow = IR.GetItem("Page 1").GetItem("Item 1");
IR.AddListener(IR.EVENT_ITEM_PRESS,Button1,function()
{
Animation([Rotate(90)], Arrow, 500, NOT_DELAY, NOT_LOOP, LINEAR);
});

IR.AddListener(IR.EVENT_ITEM_PRESS,Button2,function()
{
Animation([Rotate(-90)], Arrow, 500, NOT_DELAY, NOT_LOOP, LINEAR);
});
}
 
0
Answered

IR.EVENT_TAG_CHANGE срабатывает независимо от изменения токена

Алексей Цыганков 9 years ago in Tips and Tricks updated by Aleksandr Romanov (CTO) 6 years ago 3
Добрый день, помогите, пожалуйста, разобраться с событием EVENT_TAG_CHANGE. В моем проекте данное событие срабатывает при обновлении данных драйвера, а не при изменении токена :(
Для чистоты эксперимента создал пустой проект, добавил драйвер Modbus TCP to RTU, добавил 1 фидбэк, в скрипте прописал:
IR.AddListener (IR.EVENT_TAG_CHANGE, IR.GetDevice("Modbus TCP to RTU"), function(name,value) { 
IR.Log(name + "=" + value);
})
В итоге в логе вижу:
[05-06-2015 12:14:54.054] INFO Channel 1=0
[05-06-2015 12:14:54.626] INFO Channel 1=0
[05-06-2015 12:14:55.105] INFO Channel 1=0
[05-06-2015 12:14:55.667] INFO Channel 1=0
....
Как видно, токен не меняется, а событие всё равно вызывается каждые 500мс (Update Time в настройках драйвера).
0
Answered

Coolmaster 1000D -Daikin

Павел777 9 years ago in Tips and Tricks updated by Aleksandr Romanov (CTO) 6 years ago 2
На какие модели бытовых кондиционеров рассчитан этот модуль? У Дайкина бытовые сплиты, оснащенные адаптерами KRP928 не поддерживают управление скоростью вентилятора и контроль температуры помещения (источники- мануалы Сoolmaster 1000D, Daikin KRP928) . А в модуле есть элементы управления и контроля этих функций, более, того в характеристиках модуля указано:
- Управление скоростью вентилятора с обратной связью
- Обратная связь от Room и Set Temperature.   

У меня вопрос: для каких кондиционеров создавался этот модуль, с какими кондиционерами он тестировался, можно ли, используя этот модуль с бытовыми кондиционерами серии СПЛИТ обойти вышеупомянутые ограничения?
0
Answered

Отрицательное десятичное число в Javascript.

ai-systems@bk ru 10 years ago in Tips and Tricks updated by Aleksandr Romanov (CTO) 6 years ago 3
Здравствуйте!
Есть вопрос по преобразованию типов.


По RS232 получаем значение температуры с датчика в формате T=XY.
XY это шестнадцатиричное представление температуры в грудусах цельсия.
Т.е например 26 градусов это 1А и.т.д.
Вот функция:

llsTemphex = Data.charAt(9) + Data.charAt(10)<br>llsTemp = parseInt(llsTemphex, 16)<br>

При положительных значениях - все выводится верно.

Но если вместо 1A (26) будет E6 (-26), функция возвращает 230.
Как получить правильные отрицательные значения?



0
Answered

Удалённое обновление проекта

Алай Евгений 8 years ago in Tips and Tricks updated by Aleksandr Romanov (CTO) 6 years ago 1

Здравствуйте.

Возникла необходимость удалённого обновления проекта на iPhone клиента.

Есть статический IP-адрес, в роутере прописал переадресацию порта 10000 на комп с установленным Transfer, которым обычно его (iPhone клиента) и обновляю. Возможно сконнектить удалённый iPhone для обновления проекта?

0
Answered

при запуске приложения Иридиум выключается свет (KNX)

Максим 9 years ago in Tips and Tricks updated by Aleksandr Romanov (CTO) 6 years ago 1
Здравствуйте,

Есть вопрос, при каждом запуске приложения в комнате выключается свет, где ошибка?
Answer
Здравствуйте, Максим

Удалите из проекта Иридиум ссылки на групповые адреса, связанные не с исполняющими устройствами в шине KNX, а с клавишными выключателями, которые тоже управляют нагрузкой.
Второй вариант: в ETS убрать галочки Read в настройках групповых адресов клавишных выключателей.

Проблема в том, что при запуске, иридиум опрашивает состояние всех добавленных в проект групповых адресов. Среди них оказываются и адреса выключателей. Если у выключателей активна галочка Read (возможность принудительно опросить адрес), то выключатель отвечает в шину о своем состоянии. Исполняющее устройство воспринимает этот ответ как нажатие на клавишу и свет выключается.
Это осбенность работы шины, которую нужно учитвать или в ETS, или в проекте Иридиум.
В любом случае, удалить лишние адреса из проекта Иридиум будет очень полезно, т.к. они создают лишнюю нагрузку на шину при запуске проекта.
0
Answered

формирование OSC (OpenSoundControl) комманд ?

Ramil Vafin 9 years ago in Tips and Tricks updated by otinoff 1 year ago 9
Как преобразовать значение из элемента Уровень (float32) в формат HEX ?
Т.е. мне нужно сформировать команду в формате OSC: /volume,f XX XX XX XX, где ХХ - это значение взятое из элемента Уровень в HEX формате. Диапазон значений от -40,00 до 12,00 (числа с плавающей запятой).
Answer
Sergey (expert) 9 years ago
Добрый день, Ramil Vafin!

Это связано с отправкой данных в виде строки, требуется вместо этого сформировать массив байт значений.

var hex = IEEE754_DecToHEX(this.Value); 
// Конвертируем в массив байтов
var hexArray = [];
hexArray[0] = parseInt('0x' + hex.charAt(0) + hex.charAt(1), 16);
hexArray[1] = parseInt('0x' + hex.charAt(2) + hex.charAt(3), 16);
hexArray[2] = parseInt('0x' + hex.charAt(4) + hex.charAt(5), 16);
hexArray[3] = parseInt('0x' + hex.charAt(6) + hex.charAt(7), 16);

// Выводим в лог
IR.Log(hex);
IR.Log(hexArray);

var Packet = "/value"; // начало пакета
var end = "\r\n"; // конец пакета

hexArray.unshift(0x00); // Два символа нуля после начала пакета
hexArray.unshift(0x00);

hexArray.unshift(Packet); // Добавляем начало пакета
hexArray.push(end); // Добавляем конец пакета

// отправляем
IR.GetDevice("AV & Custom Systems (TCP)").Send(hexArray);




0
Completed

передача от iRidium на удаленное устройство

BlackAngel 9 years ago in Tips and Tricks updated by Aleksandr Romanov (CTO) 6 years ago 1
взят один из примеров с сайта iRidium где есть получение данных о погоде (YahooMetro). Есть окно где отображается температура (отдельное окошко с получением данных с сервера Yahoo именно температуры) реализовано через скрипт. Скажите возможно ли эти данные передать на устройство по Modbus. Если да, то опишите каким образом.


P.S. в проекте папка content, далее папка weather и в ней попап окно weather, в этом попап есть обьект chil. В скрипте chill упоминается только в таких командах:


.......
var iChill = iPopup.GetItem("Chill");
.......
.......
iChill.Text = xml.rss.channel ["yweather:wind"]["@chill"] + "°" + xml.rss.channel ["yweather:units"]["@temperature"];

0
Answered

Работа с JSON

Vladimir Muravyev 9 years ago in Tips and Tricks updated by Aleksandr Romanov (CTO) 6 years ago 2
Существует ли функция которая позволит получить количество обьектов в массиве JSON который пришел от устройства? Сейчас я решаю проблему подсчетом повторяющихся слов с помощью функции indexof (Запрос отправляю видеорегистратору, и приходит ответ с описанием свойств камер подключенных к NVR, это может быть 1 камера может быть 15 камер, хочу забрать эту информацию в двухмерный массив, без точного знания количества элементов массива (камер), не могу).