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

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

Модератор: immortal

Geban
Сообщения: 136
Зарегистрирован: Вс июл 14, 2013 2:42 pm
Благодарил (а): 6 раз
Поблагодарили: 26 раз

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

Сообщение Geban » Чт июл 28, 2016 11:31 am

болид можно сростить двумя способами
или через С2000-ПП по модбас
или писать обработчик ихнего дурацкого протокола Орион
SergeyM
Сообщения: 100
Зарегистрирован: Вт ноя 11, 2014 5:16 pm
Откуда: Шатура
Благодарил (а): 4 раза
Поблагодарили: 8 раз

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

Сообщение SergeyM » Чт июл 28, 2016 10:00 pm

У меня работает через skif. Все события из болида валятся в него, затем, через скрипт передаются в МДМ, в МДМ php обработчик по образу ESP.

Отправлено с моего SM-G900FD через Tapatalk
Windows, Debian 8, 1-Wire
Connect
SergeyM
Сообщения: 100
Зарегистрирован: Вт ноя 11, 2014 5:16 pm
Откуда: Шатура
Благодарил (а): 4 раза
Поблагодарили: 8 раз

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

Сообщение SergeyM » Чт июл 28, 2016 10:25 pm

вот скрипт, который крутится на сервере
скриптПоказать
****************************************************************************
** При запуске сервера сохранить все события в файл (если файл не существует).
** Дописывать в конец файла все вновь поступившие события.
** Сценарий только для сервера (поместить в каталог 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 - имя скрипта в МДМ
Windows, Debian 8, 1-Wire
Connect
Geban
Сообщения: 136
Зарегистрирован: Вс июл 14, 2013 2:42 pm
Благодарил (а): 6 раз
Поблагодарили: 26 раз

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

Сообщение Geban » Чт авг 11, 2016 12:30 pm

Для работы через скиф нужен пульт же вроди... У меня вот например дома висит КДЛ на нем ВТ 8 штук. рядом с ним СП1 (4 реле). еще на КДЛе висят датчики дыма и счетчики импульсов.
По началу пробовал расковырять ихний протокол... дурной протокол.. видимо инженеры БОЛИД очень любят функцию xor... короче забил, пошел за 800р купил С2000-ПП. В итоге получаем немного геммора с настройкой и на выходе нормальный православный понятный modbus.
За это сообщение автора Geban поблагодарил:
Pioneer-dz (Чт окт 06, 2016 9:56 pm)
Рейтинг: 1.16%
smoker_vvo
Сообщения: 113
Зарегистрирован: Пт дек 14, 2012 3:46 am
Благодарил (а): 2 раза
Поблагодарили: 1 раз

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

Сообщение smoker_vvo » Вт окт 25, 2016 3:19 pm

SergeyM: По MQTT завязывать Болид и МДМ не пробовали??
aurodionov
Сообщения: 87
Зарегистрирован: Пн янв 27, 2014 2:50 pm
Откуда: Россия, Тюмень
Благодарил (а): 12 раз
Поблагодарили: 14 раз

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

Сообщение aurodionov » Вт окт 25, 2016 6:30 pm

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

Пишу с пульта....
SergeyM
Сообщения: 100
Зарегистрирован: Вт ноя 11, 2014 5:16 pm
Откуда: Шатура
Благодарил (а): 4 раза
Поблагодарили: 8 раз

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

Сообщение SergeyM » Вт окт 25, 2016 7:24 pm

Да. Подтверждаю, в последней версии Skif добавлена возможность работы по mqtt. После 2х часов танцев с бубном заработало. Правда еще не пробовал управлять болидом из МДМ.

Отправлено с моего SM-G900FD через Tapatalk
Windows, Debian 8, 1-Wire
Connect
smoker_vvo
Сообщения: 113
Зарегистрирован: Пт дек 14, 2012 3:46 am
Благодарил (а): 2 раза
Поблагодарили: 1 раз

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

Сообщение smoker_vvo » Пт окт 28, 2016 12:58 pm

Нуууу..... рассказывайте, рассказывайте.... какие коды за что отвечаютЪ....... С управлением как то не получается... И поделитесь кодом для МДМ по анализу ......
SergeyM
Сообщения: 100
Зарегистрирован: Вт ноя 11, 2014 5:16 pm
Откуда: Шатура
Благодарил (а): 4 раза
Поблагодарили: 8 раз

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

Сообщение SergeyM » Пт окт 28, 2016 1:50 pm

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


Отправлено с моего SM-G900FD через Tapatalk
Windows, Debian 8, 1-Wire
Connect
smoker_vvo
Сообщения: 113
Зарегистрирован: Пт дек 14, 2012 3:46 am
Благодарил (а): 2 раза
Поблагодарили: 1 раз

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

Сообщение smoker_vvo » Чт ноя 24, 2016 2:37 pm

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