iRidium Server + KNX

Подробнее о драйвере KNX можно прочитать тут: http://wiki2.iridiummobile.net/KNX



Этапы формирования проектов управления оборудованием KNX при помощи iRidium Server:
1. Создание серверного проекта. Импорт каналов управления, настройка подключения к оборудованию. Создание скриптовых сценариев, настройка записи в базу данных.
2.Создание панельного проекта, связанного с серверным. Создание

графического интерфейса проекта, связь графического интерфейса с

каналами и тегами управления.

3. Загрузка серверного проекта на сервер.
4. Загрузка панельного проекта в клиент.



Для быстрого перехода с версии 2.2 на версию с сервером удобно использовать ранее созданный в iRidium GUI Editor проект.



Проекты для изучения - серверный и, связанный с ним, панельный проект:
KNX server.sirpz
KNX project



1. Создать серверный проект

Подробнее о создании Серверного проекта описано тут.


1. Создать файл серверного проекта

В Меню выбрать пункт меню "New Server Project"



Image 8767


2. Назвать проект.

Дать имя новому проекту, либо оставить по-умолчанию.



3. Указать настройки подключения к серверу.

Внесите основную информацию о проекте, а так же указать настройки подключения к серверу (можно указать позже).



Image 8803



Для удобства дальнейшей работы заполните поля в разделе Settings:

  • Server host - IP адрес сервера
  • Server port - порт подключения к серверу (по-умолчанию: 30464)
  • Login (функционал в разработке) - логин для подключения панелей к серверу
  • Password (бфункционал в разработке) - пароль для подключения панелей к серверу
  • System ID (функционал в разработке) - уникальный идентификатор сервера, будет использован в системе push нотификаций и DDNS сервере
На этапе формирования панельных проектов, привязанных к вашему

серверному проекту, эти настройки автоматически будут импортированы, что

позволит вам не вводить настройки вручную в каждый из панельных

проектов.


О назначении других полей прочитайте здесь.

4. Перейти в рабочую вкладку I/O

(подробнее о назначении вкладок здесь):
Project Overview позволяет перемещаться между окнами настроек сервера:



Editor window Server Project Overview.png



Project Overview:








5. Добавить драйвер KNX в проект

Чаще

всего добавление KNX драйвера в проект происходит при помощи функции

Импорт. Импортировать можно проект, созданный в ETS, а так же *.irpz,

созданный в iRidium GUI Editor, если у вас уже есть готовая настроенная инсталляция на оборудовании KNX.



Доступ к функции импорта осуществляется из меню File->Import и по кнопке на панели DRIVERS:



Image 8842



6. Указать настройки подключения к оборудованию:

Если вы импортировали драйвера из проекта *.irpz, ранее созданного в iRidium GUI Editor, настройки уже будут заполнены.



Image 8845

Укажите настройки подключения к управляемому оборудованию во вкладке DRIVERS:



  • Name - имя управляемого устройства, произвольно
  • Debug Level - какие уведомления следует выводить в лог сервера
  • Local Connection - заполните список настроек подключения, он уникален для каждого драйвера



7. Настроить команды управления оборудованием и каналы обратной связи:

Настройте

команды и каналы обратной связи на панели DRIVERS, точно так же,

как и во вкладке Project Device Panel панельного проекта. Инструкции по драйверу KNX можно найти на

Wiki V.2
Если вы импортировали ранее созданный проект, то команды и каналы обратной связи уже настроены.
Image 8848

7. Настроить привязанные к драйверу серверные каналы и теги:


На панели IRIDIUM SERVER для каждой команды и канала обратной связи драйвера

формируется серверный канал (для записи) или тег (для чтения). На их

основе будет сформирован драйвер iRidium Server, и каждая панель

управления, которая будет подключаться к этому серверу, будет обращаться

именно к этим каналам и тегам.



Поля, которые можно настроить у серверного канала (для записи):
Image 8847

  • Name - короткое имя (по-умолчанию: имя команды драйвера)
  • Full Name - полное имя серверного канала для обращения из скрипта
  • Description - описание (опционально)
  • Script - выполнить JavaScript функцию без аргументов каждый раз при активации канала
Поля, которые можно настроить у серверного тега (для чтения):
Image 8799
  • Name - короткое имя (по-умолчанию: имя канала обратной связи драйвера)
  • Full Tag Name - полное имя серверного тега для обращения из скрипта
  • Description - описание (опционально)
  • Store In DB - сохранение всех измененных значений в базу данных
  • Access - тип переменной: Public - можно изменить с панели управления, Private - можно изменить только с сервера
  • Deadband - погрешность изменения, которую не нужно учитывать при построении графика на основании данных тега. Например, при Deadband: 0.5, изменение переменной на 0.3 не отобразится на графике в приложении-клиенте.
  • Script - выполнить JavaScript функцию каждый раз при активации тега
!В текущей версии iRidium Studio beta нет возможности синхронизировать имена 
драйвера, каналов и тегов - т.о. дайте им окончательные имена при текущей 
настройке. Т.е., если вы уже начнете настраивать панельный проект, а после 
этого решите переименовать драйвер, каналы или теги в панели IRIDIUM 
SERVER, то при синхронизации они добавятся как новый драйвер, или как 
новый канал или фитбек и вам придется заново связывать их с элементами 
графического интерфейса.

8. Создать виртуальные переменные (опционально):

Виртуальные переменные (Virtual)

- переменные, в которые можно записывать любые данные, полученные в

результате работы скриптов (числа, строки, массивы). Виртуальные

переменные доступны для изменения с панели управления.



  • VIrtual > Channels - переменные, доступные для записи
  • VIrtual > Tags - переменные, доступные для чтения
Работа с Virtual идентична работе с Project Tokens, использует те же правила и функции API.



Для примера, создадим 2 виртуальных серверных канала (с именами

External KNX IP и Internal KNX IP), которые при активации будут вызывать

функцию SetParameters и переключать настройки драйвера с внешних на

внутренние и наоборот. А также виртуальный серверный тег "Status KNX", в

который мы будем записывать текст из скрипта:



1. Создайте 2 виртуальный канала и 1 виртуальный тег по ПКМ:



Image 8801



2. Перейдите в редактор JS-скриптов. Создайте файл скрипта с необходимыми функциями:

function External_KNX_IP()
{
 IR.Log("External KNX IP"); //выводит в лог сервера
 IR.GetDevice("KNX").SetParameters({Host: "192.168.0.152", Port: "3671", ConnectTime: "120000", SendTime: "0", PingTime: "60000"}); // меняет настройки подключения к драйверу
 IR.SetVariable("Server.Tags.Status KNX","We try to connect to External KNX IP"); //записывает в виртуальный тег Status текст
};
function Internal_KNX_IP()
{
 IR.Log("Internal KNX IP"); //выводит в лог сервера
 IR.GetDevice("KNX").SetParameters({Host: "213.114.30.30", Port: "3671", ConnectTime: "120000", SendTime: "0", PingTime: "60000"}); // меняет настройки подключения к драйверу
 IR.SetVariable("Server.Tags.Status KNX","We try to connect to Internal KNX IP"); //записывает в виртуальный тег Status текст
};
3. В поле Script необходимой команды выберите нужную функцию для обеих команд.



Image 8802



В тестовом проекте добавлены примеры, как сделать функции SetParameters и Connect, Disconnect к драйверу.

9. Написать необходимые скрипты (опционально).

Как обращаться к каналам и тегам серверного проекта описано тут .



10. Сохранить проект.

KNX server.sirpz



2. Создать панельный проект


1. Добавить в панельный проект каналы и теги серверного проекта

Существует несколько способов:



1. Создать панельный проект из серверного проекта

1. Откройте ваш серверный проект. Правой кнопкой мыши нажмите на его имя и выберите пункт меню "Create Panel Project"



Image 8816

2. Дайте имя панельному проекту.
3.

В панельном проекте в "Project Device Panel" находится драйвер iRidium

Server, который содержит настройки подключения к серверному проекту

(если вы их заранее настроили), а так же все каналы и теги.



2. Синхронизировать драйвер iRidium Server с существующим панельным проектом

1. Открыть в iRidium Studio ваш серверный проект.
2. Создать в iRidium Studio новый или открыть существующий панельный проект.
3. В панельный проект добавить драйвер iRidium Server:
Image 8817



4. Выбрать в качестве источника для драйвера iRidium Server ваш серверный проект:
Image 8818

  1. Выделить драйвер iRidium Server на панели "Project Device Panel"
  2. Нажать в на ... в строке Source Project в настройках драйвера.
  3. Выбрать из списка необходимый серверный проект
  4. Нажать ОК.
5. Синхронизировать драйвер с серверным проектом:
Image 8819



  1. Выделить драйвер iRidium Server на панели "Project Device Panel"
  2. Нажать на иконку синхронизации.
  3. Согласиться с запросом синхронизации.
Расположение каналов и тегов в драйвере iRidium Server:
Image 88281 - Driver Tokens - переменные драйвера. Отображают статус подключения к серверу. Переменные драйвера доступны только на чтение:


  • Online - состояние подключения к серверу (Online/Offline = 1/0)
  • Status - статус подключения к серверу (Offline/Connecting/Online/Waiting = 0...3)
  • Host - доменное имя удаленной системы
  • IP - IP-адрес управляющей панели
  • Port - локальный порт клиента, через который осуществляется связь с удаленным устройством
  • HostIP - IP-адрес удаленной системы, к которой подключено iRidium App
  • HostPort - порт на удаленной системе, к которому подключается iRidium App
  • ServerName - имя сервера
  • ServerModel - модель сервера
  • ServerHWID - идентификатор сервера
  • ServerFamily - код семейства операционной системы
  • ServerArch - код архитектуры (1 - x86; 2 - x64-86; 3 - ARM32)
  • ServerFamillyName - имя семейства операционной системы
  • ServerArchName - имя архитектуры операционной системы
  • ServerOsName - полное имя операционной системы
  • ServerVersion - версия сервера
2. Каналы управления драйверов, управляемых через сервер.
3. Виртуальные серверные каналы.
4. Токены драйвера, управляемого через сервер.
5. Теги обратной связи драйверов, управляемых через сервер.
6. Виртуальные серверные теги.



!Не создавайте в панельном проекте в драйвере iRidium Server новых команд и

каналов обратной связи. При синхронизации они не будут созданы в

серверном проекте и не будут работать.



Параметры серверной команды в панельном проекте:
Name - Имя канала. Формат имени "Имя_драйвера.Имя канала"



Параметры серверного тега в панельном проекте:
Name - Имя тега. Формат имени "Имя_драйвера.Имя тега"
Save Value When Disconnect

- сохранение последнего полученного значения тега на кнопке, когда

оборвалась связь панели с сервером (True - сохранять значение на

элементе; False - сбрасывать значение в 0);




2. Привязать команды к графическим элементам

Команды и обратная связь драйверов, а также Токены драйвера

привязываются аналогично уже существующим инструкциям работы с

драйверами, описанными на iRidiumWiki.



Виртуальные серверные каналы привязываются как SendNumber с пустым значение поля:
Image 8829



Виртуальные серверные теги привязываются, как As Value или As Text, в зависимости от целей.



3. Синхронизация серверного и панельного проектов в процессе работы

Если вы будете исправлять серверный проект уже в процессе работы над

панельным проектом, появится необходимость синхронизации этих проектов.



В текущей версии iRidium Studio синхронизация может:
+ добавлять новые каналы и теги из серверного проекта;



Не может:
- обновлять имена драйвера, канала и тега сервера (если вы измените имя

существующего канала или тега, он добавится вновь с новым именем);
- удалять каналы и теги в панельном проекте, если они удалены из серверного;



Процесс синхронизации:
1. Измените серверный проект и сохраните его
2. Перейдите в связанный с ним панельный проект и:
Image 8819



  1. Выделить драйвер iRidium Server на панели "Project Device Panel"
  2. Нажать на иконку синхронизации.
  3. Согласиться с запросом синхронизации.
KNX project.irpz



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



> > Как загрузить серверный проект на iRidium Server

Эта статья была полезна для 7 людей. Эта статья помогла Вам?

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