Делюсь опытом интеграции контроллера Мegad-2561 с приложением iRidium pro.
Приложение платное, подробное описание на сайте разработчика http://www.iridiummobile.ru/pro/
iRidium Script Часть 1: http://www.iridiummobile.ru/academy/script/
iRidium Script Часть 2: http://www.iridiummobile.ru/academy/script_part_2/
Создание анимированных элементов в интерфейсах iRidium: http://www.iridiummobile.ru/academy/animation_webinar/
Не смотря на минимальные познания в программировании, с созданием драйвера (отправка команд на MegaD) проблем не было. Сложности у меня возникли с получением обратной связи. При тех. поддержке команды иридия, и Andrey_B, интеграция прошла успешно.
На данный момент на Мegad реализовано управление освещением (кнопки, датчик движения, таймеры, диммер), получение температуры, влажности, получение статуса “вкл/выкл” AV оборудования датчиками напряжения U-Sensor, снятие показаний счетчиков ХВС(НАМУР), ГВС(Геркон). Так же в проекте снятие показаний электросчетчика Микрон СЭБ-2А.
Подключение сервера iRidium к контроллеру Мegad-2561 по протоколу HTTP.
http://dev.iridiummobile.net/AV_%26_Cus ... ems_(HTTP)
1. Контроллер MegaD-2561 конфигурируется для автономной работы.
2. В серверном проекте iRidium необходимо из базы данных создать драйвер AV & Custom Systems (HTTP)
http://dev.iridiummobile.net/Editor_Ser ... е_драйвера
3. В драйвере создать “Commands / Channels” - каналы через которые скриптом будут отправляться команды методом “. Send” на контроллер MegaD.
http://dev.iridiummobile.net/Editor_Ser ... _и_сервера
http://dev.iridiummobile.net/Drivers_API#.Send
В проекте MegaD-2561+ MegaD-7I7O-SD+ MegaD-7I7O-R, соответственно каналы управления выходами:
MegaD-7I7O-SD “Out_7… Out_12, Out_Dimm_13”
MegaD-7I7O-R “Out_22… Out_28“ 4. В драйвере создать “Feedback / Tags” каналы обратной связи для записи из скрипта состояния портов:
MegaD-2561 XT2 “In_30… In_35”, XP5 “In_36”, XP6 “In_37”
MegaD-7I7O-SD “In_0… In_6” и “Out_7… Out_12, Out_Dimm_13”
MegaD-7I7O-R “In_15… In_21” и “Out_23… Out_28”
5. Создать в серверном проекте необходимые виртуальные “Channels” и “Tags”
6. Создать скрипт для чтения и записи стояния портов в переменные проекта.
http://dev.iridiummobile.net/JS_Guide#П ... бор_данных
Код: Выделить всё
var Module = function(name)
{
var g_Device = IR.GetDevice(name);
////////////////////////////////////////////////////////////////////////////////
function mFeedback()
{g_Device.Send(['GET,/sec/?cmd=all'])} // запрос состояния всех портов
IR.AddListener(IR.EVENT_START,0,function()
{IR.SetInterval(800, mFeedback ) }); //Таймер на запрос
IR.AddListener(IR.EVENT_RECEIVE_TEXT, g_Device, function(text)
{IR.Log("MegaD = " +text)
// parser
if(text != "Done")
{ var arr = text.split(';');
for(var i = 0; i < arr.length; i++)
{
// In/Out
if(arr[i].substring(0,3) == "OFF")
{IR.SetVariable("Drivers.MegaD_2561.Tags.In_" + [i], 0);
} else
if(arr[i].substring(0,2) == "ON")
{ IR.SetVariable("Drivers.MegaD_2561.Tags.In_" + [i], 1)}
if(arr[i] == "OFF")
{IR.SetVariable("Server.Tags.MegaD_2561.Out_" + [i], 0);
} else
if(arr[i] == "ON")
{ IR.SetVariable("Server.Tags.MegaD_2561.Out_" + [i], 1)}
// Диммер
if(arr[13] >= "0" )
{ IR.SetVariable("Server.Tags.Virtual_Dimmer_13", arr[13])};
// HTU21D Темп,Влаж.
{ var arr33 = arr[33].split(/[/:]/);
{ if(arr33[1] != "200")
{IR.SetVariable("Server.Tags.Virtual_Temp_bath_33", arr33[1])}
if(arr33[3] != "200")
{IR.SetVariable("Server.Tags.Virtual_Hum_bath_33", arr33[3])}
}
}
{ var arr31 = arr[31].split(/[/:]/);
{ if(arr31[1] != "200")
{IR.SetVariable("Server.Tags.Virtual_Temp_out_31", arr31[1])}
if(arr31[3] != "200")
{IR.SetVariable("Server.Tags.Virtual_Hum_out_31", arr31[3])}
}
}
// Счетчик (НАМУР->АЦП) ХВС
{ var ADC37 = arr[37]
if (+ADC37 > 400)
{IR.SetVariable("Server.Tags.MegaD_2561.In_37", 1 );
}else
if (+ADC37 < 180 )
{IR.SetVariable("Server.Tags.MegaD_2561.In_37", 0)};
}
}
}
//////
});
}
var Mega_1 = Module("MegaD_2561"); // Имя девайса из DRIVERS