Классы устройств
Класс 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) — это подтверждение от шлюза, а не от устройства.
См. также
- Отправка данных на устройство — порядок команд и статусы кадра.
- Частотные планы — частоты и скорости окон RX1 и RX2 для каждого плана.