В п. Внешние системы приведено описание, как Внешние системы могут оформить в платформе публикацию параметров и событий на внешний брокер MQTT, либо RabbitMQ (AMQP протокол).
Оба протокола содержат одинаковый формат данных.
Кратко, публикация работает следующим образом:
mqtt-topic = /inspark/{ext_system_id}/measures/out/PARAMID - для измерений по параметру PARAMID, где PARAMID это (ContrDeviceParam.id для измеряемых, ContrCalcParam.id для вычисляемых)
mqtt-topic = /inspark/{ext_system_id}/events/out/EVENTID - топик формируется составным, с участием идентификатора внешней системы и типа события, где EVENTID это идентификатор типа параметра (Event.id)
inspark-event - в нее публикуются события, в формате JSON объекта
inspark-measure - в нее публикуются измерения, в формате JSON объекта
message = {"id":33013,"value":"7.0","time":1707393139000, "paramCode": <альтернативный код параметра>, "statusID": 0 } - json объект, где:
id - идентификатор параметра PARAMID
value - значение
time - время значения в формате юникс (миллисекунды)
paramcode - альтернативный код, может использоваться для интеграций. Например, внешней системе надо, чтобы значение по параметру содержала какой-то их код. Такой код можно в ЛК записать в поле paramcode.
statusID - системный статус парамтра, может присылать значения «Норма»-1, «Отклонение»-2, «Критическое»-3, «Недостоверно»- (-1) и «Нет контроля» - 0.
event = {"id":29052,"eventId":5003,"time":1707393189000,"msg":"Что-то пошло не так на Объекте , по Параметру"} - json объект, где:
id - идентификатор записи журнала событий (EventLog.id)
eventId - идентификатор типа события, EVENTID
time - время события в формате юникс (миллисекунды)
msg - текст события (EventLog.message)