Страница 2 из 8

Re: Работа MDM с оборудованием BOLID

Добавлено: Чт июл 28, 2016 11:31 am
Geban
болид можно сростить двумя способами
или через С2000-ПП по модбас
или писать обработчик ихнего дурацкого протокола Орион

Re: Работа MDM с оборудованием BOLID

Добавлено: Чт июл 28, 2016 10:00 pm
SergeyM
У меня работает через skif. Все события из болида валятся в него, затем, через скрипт передаются в МДМ, в МДМ php обработчик по образу ESP.

Отправлено с моего SM-G900FD через Tapatalk

Re: Работа MDM с оборудованием BOLID

Добавлено: Чт июл 28, 2016 10:25 pm
SergeyM
вот скрипт, который крутится на сервере
скриптSPOILER_SHOW
****************************************************************************
** При запуске сервера сохранить все события в файл (если файл не существует).
** Дописывать в конец файла все вновь поступившие события.
** Сценарий только для сервера (поместить в каталог Scripts\ScriptsServer).
****************************************************************************/

const numPku = 1; // Номер пульта
const fileName = "test/allEvents.txt"; // Файл для записи событий (относительно каталого log)

//---------------------------------------------------------------------------
if (!armSkif.fileExists(fileName)){ // Если файл не суествует, то:
var count = armSkif.getEventCount(numPku); // Количество событий в БД

for (var i=0; i<count;){
var str="";

for (var j=0; (j<100) && (i<count); j++)
str += strEvent(i++); // Функция описана ниже

// armSkif.writeFile(fileName, str); // Записать в файл
}
}

armSkif.signalNewEvent.connect( newEvent );// Вызвать функцию newEvent при поступлении нового события

//---------------------------------------------------------------------------
function newEvent(nPKU, count){
if ( (numPku==nPKU) && (count>0)){ // Если событие для нужного пульта
var n = count - 1; // Порядковый номер события в базе данных
var str = strEvent(n); // Функция описана ниже
// armSkif.writeFile(fileName, str); // Записать в файл
if (armSkif.isOsLinux()) armSkif.runProgram(str);
}
}
//---------------------------------------------------------------------------
function strEvent(n){ // Функция возвращает информацию о событии с номером (n)
var date = armSkif.getEventDate(numPku, n); // Дата/время события
var zone = armSkif.getEventZone(numPku, n); // Зона доступа (для СКУД)
var nPart_descr = armSkif.getPartDescription(nPKU, nPart); // Описание раздела
var nPart_descr = nPart_descr.replace (/\s/ig,"_"); // Убираем лишние символы
var nPart_state = armSkif.convertStateToDescript( armSkif.getPartState(nPKU, nPart) ); // Состояние раздела
var nPart_state = nPart_state.replace (/\s/ig,"_"); // Убираем лишние символы


var str = "curl " + '"' + "http://10.195.30.33/objects/?script=skifevents&nPKU=" + nPKU + // начало
//date.toLocaleDateString() + ";" + // Дата
//date.toLocaleTimeString() + ";" + // Время
"&Date=" + date.getDate() + "." + date.getMonth() + "." + date.getFullYear() + // Дата
"&Time=" + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds() + // Время
"&zone" + zone + // Зона доступа
"&nPart" + nPart + //Раздел
"&nPart_descr" + nPart_descr + // Описание раздела
"&nPart_state" + nPart_state + // Состояние раздела
"&EventDev" + armSkif.getEventDev(numPku, n) + // Номер прибора
"&getEventUnit" + armSkif.getEventUnit(numPku, n) + // Агрегат (шлейф/реле/считыватель)
"&nPart_event=" + armSkif.convertStateToDescript( armSkif.getEvent(numPku, n) ) + // Описание события
"&nPart_eventpart=" + armSkif.getEventPart(numPku, n) + // Раздел
"&Event_zone=" + ((zone==-1) ? "": zone) + // Зона доступа (для СКУД)
"&Event_descr=" + armSkif.getEventDescr(numPku, n)+ // Описание события
"&Event_addr=" + armSkif.getEventAddr(numPku, n) + // Адрес (прибор/шлейф/реле/считыватель)
"&Event_descr=" + armSkif.getEventUser(numPku, n) + "\n"; // Хозорган

return str;
}

/*
Не задействованные функции
armSkif.getEventDev(numPku, n); // Номер прибора
armSkif.getEventUnit(numPku, n); // Агрегат (шлейф/реле/считыватель)
armSkif.isUnitSh(numPku, n); // Если событие относится к шлейфу
armSkif.isUnitRl(numPku, n); // Если событие относится к реле
armSkif.isUnitRd(numPku, n); // Если событие относится к считывателю
armSkif.getEventKey(numPku, n); // Ключ (пароли не высвечиваются, только коды ключей)
*/
соответственно http://10.195.30.33/objects/?script=skifevents
10.195.30.33 заменить на свой IP МДМ
skifevents - имя скрипта в МДМ

Re: Работа MDM с оборудованием BOLID

Добавлено: Чт авг 11, 2016 12:30 pm
Geban
Для работы через скиф нужен пульт же вроди... У меня вот например дома висит КДЛ на нем ВТ 8 штук. рядом с ним СП1 (4 реле). еще на КДЛе висят датчики дыма и счетчики импульсов.
По началу пробовал расковырять ихний протокол... дурной протокол.. видимо инженеры БОЛИД очень любят функцию xor... короче забил, пошел за 800р купил С2000-ПП. В итоге получаем немного геммора с настройкой и на выходе нормальный православный понятный modbus.

Re: Работа MDM с оборудованием BOLID

Добавлено: Вт окт 25, 2016 3:19 pm
smoker_vvo
SergeyM: По MQTT завязывать Болид и МДМ не пробовали??

Re: Работа MDM с оборудованием BOLID

Добавлено: Вт окт 25, 2016 6:30 pm
aurodionov
smoker_vvo писал(а):SergeyM: По MQTT завязывать Болид и МДМ не пробовали??
Я пробовал, работает.
Связывал через скиф

Пишу с пульта....

Re: Работа MDM с оборудованием BOLID

Добавлено: Вт окт 25, 2016 7:24 pm
SergeyM
Да. Подтверждаю, в последней версии Skif добавлена возможность работы по mqtt. После 2х часов танцев с бубном заработало. Правда еще не пробовал управлять болидом из МДМ.

Отправлено с моего SM-G900FD через Tapatalk

Re: Работа MDM с оборудованием BOLID

Добавлено: Пт окт 28, 2016 12:58 pm
smoker_vvo
Нуууу..... рассказывайте, рассказывайте.... какие коды за что отвечаютЪ....... С управлением как то не получается... И поделитесь кодом для МДМ по анализу ......

Re: Работа MDM с оборудованием BOLID

Добавлено: Пт окт 28, 2016 1:50 pm
SergeyM
Полный перечень кодов есть в документации на Болид. В хелпе Скифа тоже есть. Код сейчас выложить не могу, нахожусь в больнице. Посмотрите у меня в коннекте, там может быть.


Отправлено с моего SM-G900FD через Tapatalk

Re: Работа MDM с оборудованием BOLID

Добавлено: Чт ноя 24, 2016 2:37 pm
smoker_vvo
Дяденьки! Ну поделитесь взамодействием BOLID, MQTT и МДМ...... например, как получив значение 24 (на охране) перевести его некое текстовое значение типа ОХРАНА Включена....... или присвоить цветовой статус красный Желтый Зеленый. и как управлять ШС или разделами с МДМ.....