Skip to main content

Формат пакета

ID SEQ FLAGS PAYLOAD[0] PAYLOAD[1] ... PAYLOAD[x]
1B 1B 1B Массив Массив Массив
ПолеДлинаЗначение
ID1 байт0x78
SEQ1 байтНомер операции обмена (0–255)
FLAGS1 байтБиты состояния устройства
PAYLOADмассивСм. описание ниже
  • Поле ID используется как фиксированный идентификатор Protocol78.
  • Поле SEQ — это счётчик обмена, передаваемый в каждом пакете.
  • Поле FLAGS содержит статусные биты, описывающие текущее состояние устройства.

Дополнительная информация по каждому полю приведена в следующих разделах.

Флаги состояния устройства​

FLAGS — 1 байт (8 бит), каждый бит отражает отдельное состояние устройства.
БитЗначение флагаOrionMeter LA-IPOrionMeter TWMOrionLightingLWOSLC
0Зависит от типа устройстваБатарея разряженаБатарея разряженаРасписание отсутствует--
1Низкая температура+++++
2Высокая температура+++++
3Тампер (магнитное вмешательство)++―++
4Зависит от типа устройства―Снят―-Открыта дверь
5Требуется обновление времени+++++
6Зависит от типа устройства―Пересвет―――
7Зависит от типа устройства―Обратный поток―Обратный поток―

Поле PAYLOAD​

Поле PAYLOAD представляет собой массив данных, передаваемый от устройства на сервер приложений. Каждый элемент массива (PAYLOAD[0], PAYLOAD[1], ..., PAYLOAD[n]) имеет следующую структуру:

ЭлементFORMATDATA
ДЛИНА1 байт―
ЗНАЧЕНИЕСм. нижеМассив

Поле FORMAT определяет тип передаваемых данных, а поле DATA содержит соответствующее содержимое. Конкретное значение FORMAT описано в следующих разделах.

Значения FORMAT​

Поле FORMAT (1 байт) в каждом элементе PAYLOAD определяет тип передаваемых данных. Последующие байты DATA интерпретируются согласно значению FORMAT.

Значения FORMAT​

Поле FORMAT (1 байт) определяет тип данных, передаваемых в каждом элементе PAYLOAD.

FORMATНазначение (кратко)Подробное описание
0x00Мгновенные данныеЗначения счётных входов на момент отправки пакета
0x01Архив: день, Counter 1Суточный архив почасовых показаний, Counter 1 (устаревший). Timestamp = value + 3600
0x02Архив: день, Counter 1Суточный архив почасовых показаний, Counter 1
0x03Архив: день, Counter 2Суточный архив почасовых показаний, Counter 2 (устаревший). Timestamp = value + 3600
0x04Архив: день, Counter 2Суточный архив почасовых показаний, Counter 2
0x05Архив: день, Counter 3Суточный архив почасовых показаний, Counter 3 (устаревший). Timestamp = value + 3600
0x06Архив: день, Counter 3Суточный архив почасовых показаний, Counter 3
0x07События вскрытия (TAMPER)Зафиксированы попытки вмешательства: магнит, вскрытие
0x08Сервисные данныеВнутренние данные устройства: версия, состояния, конфигурация
0x09Архив датчиковАрхивные значения аналоговых и цифровых датчиков
0x0AСобытия дискретных входовФиксация событий (вкл/выкл) дискретных входов
0x0BАрхив событий дискр. входовАрхив состояний и событий дискретных входов
0x10Описание по запросуОтвет на запрос с описанием структуры данных
0x11Данные от электросчётчиковПринятые данные EM: энергия, мощность и др.
0x12Данные от датчиковПоказания расходомеров, термометров, манометров
0x13Данные от теплосчётчиковПринятые данные от HM (теплоэнергия и т.д.)
0x14Расширенные данные от HMДополнительные параметры теплосчётчиков
0x15События счётчиковВскрытие, перезапуск, неисправности
0x16Тарифные расписанияДанные для расписания тарифов
0x17Необработанные данныеПрямой дамп от счётчиков
0x20MODBUSДанные от устройств по протоколу Modbus
0x30Расписание SLCУправление по расписанию (например, освещение)
Важно

Так как поле FORMAT не содержит явного указания длины поля DATA, декодер должен поддерживать все форматы, описанные в данной документации.
Если при обработке данных будет обнаружен неизвестный FORMAT, дальнейшая обработка должна быть остановлена, а оставшаяся часть пакета — проигнорирована.