Skip to main content

Классы устройств

Класс LoRaWAN определяет, когда устройство слушает эфир и может принять данные от сервера (downlink). От класса зависят время работы от батареи и то, как быстро до устройства дойдёт команда. Orion Network Server поддерживает классы A и C.

КлассКогда устройство слушает эфирЧерез сколько дойдёт командаПитаниеВ ONS
AДва коротких окна сразу после каждого своего uplinkПосле следующего uplink — через минуты или часыБатарея, самый экономный режимПоддерживается
BДополнительно — короткие окна по расписанию, синхронизированному маяком шлюзовПо спецификации — до ближайшего окна по расписанию; ONS таким устройствам данные не отправляетБатареяНе поддерживается
CПостоянно, кроме моментов собственной передачиСекундыВнешнее питаниеПоддерживается

Класс A​

Базовый класс: его поддерживает любое устройство LoRaWAN. После каждой передачи устройство открывает два коротких окна приёма: RX1 — по умолчанию через 1 секунду после uplink, RX2 — через 2 секунды. В остальное время приёмник выключен, поэтому устройство тратит меньше всего энергии.

Как ONS отправляет данные устройству класса A:

  • Кадр ждёт в очереди, пока устройство не выйдет на связь. Сразу после uplink сервер передаёт кадр через шлюз в одно из окон приёма.
  • Окно — RX1 или RX2 — задаётся в настройках устройства. Если кадр уже не успевает дойти до шлюза к окну RX1, сервер отправит его в RX2.
  • В одно окно уходит один кадр. Если в очереди остались ещё, сервер сообщает об этом устройству флагом FPending, и остальные кадры уйдут после следующих uplink.
  • Пока устройство после подключения к сети не прислало ни одного uplink, сервер не может передать ему данные.

Кадр, поставленный в очередь, по умолчанию ждёт 1 час, затем получает статус 8 (Expired). Если устройство выходит на связь реже, задайте при отправке больший срок ожидания — поле ttl в downlink_data_req.

Класс B​

Устройство класса B, кроме окон после uplink, открывает окна приёма по расписанию. Расписание синхронизировано маяком (beacon), который передают шлюзы с GPS.

ONS класс B не поддерживает: устройству, у которого в настройках указан класс B, сервер данные не отправляет. Если прошивка устройства позволяет, переведите его в класс A или C.

Класс C​

Приёмник устройства класса C включён постоянно, кроме моментов собственной передачи, поэтому команда доходит за секунды. Такой режим расходует много энергии и подходит устройствам с внешним питанием: реле, контроллерам, модемам приборов учёта с питанием от сети.

Как ONS отправляет данные устройству класса C:

  • Кадр уходит сразу после постановки в очередь, на частоте и скорости окна RX2.
  • Передаёт кадр шлюз, который лучше всех принял последний uplink устройства. Другой шлюз можно указать полем gatewayEui в downlink_data_req.
  • Если шлюз занят, отправка откладывается. Если исчерпан бюджет эфира шлюза, кадр получает статус 14 (DC Limit) и остаётся в очереди.
  • Как и в классе A, устройство должно хотя бы раз выйти на связь после подключения к сети: до первого uplink сервер не знает, через какой шлюз передавать кадр.

Как задать класс​

Класс задаётся в настройках устройства: поле node_class в командах WebSocket API create_device_req и update_device_req — 1 для A, 2 для B, 3 для C. По умолчанию — класс A. Когда изменение начнёт действовать, написано на странице update_device_req. Текущий класс возвращает команда dev_lw_class_req.

Внимание

Класс в настройках должен совпадать с тем, как на самом деле работает прошивка устройства. Сервер сам класс не определяет и не меняет: команду DeviceModeInd из LoRaWAN 1.1, которой устройство сообщает о смене класса, ONS не обрабатывает. Если в настройках указан класс C, а устройство работает в классе A, сервер отправит кадр сразу, устройство его не услышит, а статус кадра всё равно будет 3 (Delivered) — это подтверждение от шлюза, а не от устройства.

См. также​