Lorawan-stack: Регистрация многоадресной рассылки и нисходящая многоадресная рассылка

Созданный на 30 окт. 2020  ·  7Комментарии  ·  Источник: TheThingsNetwork/lorawan-stack

Всем привет,

Резюме

Проблемы, связанные с _MULTICAST DEVICES REGISTRATION_ и _MULTICAST DOWNLINK_ через консоль и CLI

Действия по воспроизведению многоадресной регистрации через консоль

  • Я добавил конечное устройство со следующим параметром:

    • Режим активации: Мультикаст
    • Версия LoRaWAN: MAC V1.0.3
    • DevEUI: ничего
    • Частотный план: SF12 для RX2
    • Счетчик кадров: 32 бита
    • Многоадресный адрес: 00 00 00 01
    • Многоадресный NwkSKey: B1-D1-03-3E-FD-AA-C8-D9-1B-C0-D0-F0-F9-C0-07-98
    • Многоадресный AppSKey: 0D-81-06-99-B2-B5-4A-42-18-53-B1-B0-66-1B-27-24
  • Я запланировал многоадресный нисходящий канал через консоль

  • _Наблюдение:_ Адрес многоадресной рассылки, NwkSKey многоадресной рассылки и AppSKey многоадресной рассылки — это те же параметры настройки многоадресной рассылки, которые я сгенерировал в своих физических конечных устройствах OTAA в соответствии с протоколом, выпущенным Lora Alliance "_LoRaWAN® Remote Multicast Setup Specification v1.0.0_ (https:/ /lora-alliance.org/resource-hub/lorawanr-remote-multicast-setup-specification-v100)».

Что я вижу сейчас?

Регистрация проходит успешно, и нисходящий канал был успешно запланирован.

В чем проблема?

После регистрации я заметил, что зарегистрированное многоадресное устройство отображается не как _Activation mode multicast_, а как _Activation mode ABP_. Почему это так? Могу ли я запланировать действительный многоадресный нисходящий канал через консоль, даже если устройство находится в режиме _активации ABP_?

Действия по воспроизведению многоадресной регистрации через CLI

Следуя инструкции The Things Stack (https://thethingsstack.io/devices/class-c-multicast/):

  • Добавить многоадресное устройство:
    $ ttn-lw-cli конечные устройства создают app1 mc1
    --идентификатор частотного плана EU_863_870
    --lorawan-версия 1.0.3
    --lorawan-phy-версия 1.0.3-a
    --session.dev-адрес 00000001
    --session.keys.app-s-key.key 0D810699B2B54A421853B1B0661B2724
    --session.keys.nwk-s-key.key B1D1033EFDAAC8D91BC0D0F0F9C00798
    --многоадресная рассылка
    --supports-класс-c

  • Запланированный многоадресный нисходящий канал с MQTT (mosquitto)

_Mosquitto Command:_ C:Programmimosquitto>mosquitto_pub -h movexxxx.xxx.xxxx.xxxx.xxxx.com -t "v3/ app1@movexxxx/devices/ mc1 /down/push" -u " app1@movexxxx " -P "NNSXS .YNQ5LIW5SExxxx" -m '{"нисходящие ссылки":[{"frm_payload":"ciao","f_port":42,"priority":"NORMAL","class_b_c":{"шлюзы":[{"gateway_ids": {"gateway_id":" gtwid "}}],"absolute_time":"2020-10-28T20:20:00Z"}}]}' -d

  • _Наблюдение:_ Адрес многоадресной рассылки, NwkSKey многоадресной рассылки и AppSKey многоадресной рассылки — это те же параметры настройки многоадресной рассылки, которые я сгенерировал в своих физических конечных устройствах OTAA в соответствии с протоколом, выпущенным Lora Alliance "_LoRaWAN® Remote Multicast Setup Specification v1.0.0_ (https:/ /lora-alliance.org/resource-hub/lorawanr-remote-multicast-setup-specification-v100)».

Что я вижу сейчас?
Добавленное многоадресное устройство приводит к _Activation mode multicast_, как и должно быть.
Ответ нисходящего канала mosquitto следующий:

_Mosquitto Ответ:_ Клиент mosqpub|23216-LAPTOP-OE отправляет CONNECT
Клиент mosqpub|23216-LAPTOP-OE получил CONNACK
Клиент mosqpub|23216-LAPTOP-OE отправляет PUBLISH (d0, q0, r0, m1, 'v3/ app1@movexxxxx/devices/ mc1 /down/push', ... (154 байт))
Клиент mosqpub|23216-LAPTOP-OE отправляет DISCONNECT

В чем проблема?

Если я пытаюсь отправить многоадресное нисходящее сообщение с платформы, возникают ошибки: «Нет доступного нисходящего пути» .

Вместо этого правильный ответ нисходящей линии mosquitto_pub? Потому что я не видел ничего, поступающего на мои физические конечные устройства OTAA.

Чего не хватает?

Я не понимаю, как соотнести мои OTAA-устройства с моей многоадресной группой через консоль. Я хотел бы видеть, например, многоадресную группу (с его McAddress и Mckeys), куда я могу добавить свои устройства OTAA, потому что неясно, как многоадресный нисходящий канал может достичь моих устройств OTAA.

needdetails

Самый полезный комментарий

Нет, я не вижу ни одного нисходящего канала, поступающего в «живые данные» моего шлюза, но вместо этого я видел некоторые данные, поступающие в раздел «живые данные» моего приложения «foo»:

Пожалуйста, подпишитесь на журнал событий шлюза с;

$ ttn-lw-cli events --gateway-id gtw-test

Также включите журналы отладки ( log.level: debug ).

Затем запланируйте сообщение по нисходящему каналу и просмотрите журналы и события шлюза.


То есть вы имеете в виду, что нисходящее сообщение поступает на все устройства OTAA, подключенные к шлюзу, как широковещательное сообщение, а не на определенную группу устройств OTAA?

Да, именно так работает LoRaWAN. Каждое устройство класса C, прослушивающее эту частоту с этой конкретной скоростью передачи данных, получит сообщение. Они просматривают DevAddr сообщения, чтобы увидеть, соответствует ли оно (многоадресному) сеансу, для которого у них есть сеансовые ключи. Если это так, они обрабатывают сообщение и проверяют, соответствует ли NwkSKey MIC и т. д.

Говоря о которых; Вы уверены, что частота и скорость передачи данных правильные? Класс C использует для этого параметры RX2. Конечные устройства должны прослушивать эти параметры для многоадресных кадров нисходящей линии связи.

Все 7 Комментарий

@MatteMoveSRL спасибо за вашу проблему. Если вы являетесь клиентом TTI с планом поддержки, лучше всего использовать канал поддержки.

Здесь мы используем шаблоны задач, чтобы получать информацию в структурированном виде.


Я заметил, что регистрация многоадресного устройства не приводит к _активации режима многоадресной рассылки_, а вместо этого является _активацией режима ABP_. Почему это так?

Для этого нам нужны шаги воспроизведения, пожалуйста, отредактируйте свой пост, чтобы следовать шаблону выпуска.


Я не могу отправлять нисходящие сообщения с платформы, потому что возникают ошибки «нет доступного нисходящего пути» . Я также попытался отправить нисходящую ссылку с помощью MQTT в Windows, как показано ниже, но на мое конечное устройство ничего не приходит.

См. https://thethingsstack.io/devices/class-c-multicast/ , затем второе примечание в группе многоадресной рассылки и приведенный ниже пример того, как запланировать нисходящий канал.

@johanstokking Большое спасибо за ответы!

Я обновил свои проблемы, чтобы получить информацию в структурированном виде, как вы предложили. Я надеюсь, что это понятно

Я до сих пор не понимаю этих двух моментов:

Вместо этого правильный ответ нисходящей линии mosquitto_pub? Потому что я не видел, чтобы что-то поступало на мои физические конечные устройства OTAA.

Я не понимаю, как соотнести мои OTAA-устройства с моей многоадресной группой через консоль. Я хотел бы видеть, например, многоадресную группу (с его McAddress и Mckeys), куда я могу добавить свои устройства OTAA, потому что неясно, как многоадресный нисходящий канал может достичь моих устройств OTAA.

Заранее большое спасибо за ваше время и ответ.

@MatteMoveSRL Верен ли вместо этого ответ нисходящей ссылки mosquitto_pub? Потому что я не видел, чтобы что-то поступало на мои физические конечные устройства OTAA.

Помимо абсолютного времени, которое находится в прошлом, оно не выглядит неправильным.

Но является ли gtwid подключенным шлюзом? Видите ли вы нисходящий канал, запланированный в консоли, при просмотре трафика шлюза?

@MatteMoveSRL Я не понимаю, как сопоставить мои устройства OTAA с моей группой многоадресной рассылки через консоль. Я хотел бы видеть, например, многоадресную группу (с его McAddress и Mckeys), куда я могу добавить свои устройства OTAA, потому что неясно, как многоадресный нисходящий канал может достичь моих устройств OTAA.

Мы еще не реализовали протокол Remote Multicast Setup на сервере приложений. Поэтому мы не соотносим это. Многоадресное устройство является виртуальным устройством. Если ваше конечное устройство понимает нисходящий канал как в одноадресном, так и в многоадресном канале, все должно быть в порядке.

@johanstokking Спасибо за быстрый ответ

Но является ли gtwid подключенным шлюзом?

Да, шлюз подключен, и я использовал «gw-test» вместо «gtwid» в команде mosquitto.

gateway1

Видите ли вы нисходящий канал, запланированный в консоли, при просмотре трафика шлюза?

Нет, я не вижу ни одного нисходящего канала, поступающего в «живые данные» моего шлюза, но вместо этого я видел некоторые данные, поступающие в раздел «живые данные» моего приложения «foo»:

downlink2
downlink1

Если ваше конечное устройство понимает нисходящий канал как в одноадресном, так и в многоадресном канале, все должно быть в порядке.

То есть вы имеете в виду, что нисходящее сообщение поступает на все устройства OTAA, подключенные к шлюзу, как широковещательное сообщение, а не на определенную группу устройств OTAA?

Нет, я не вижу ни одного нисходящего канала, поступающего в «живые данные» моего шлюза, но вместо этого я видел некоторые данные, поступающие в раздел «живые данные» моего приложения «foo»:

Пожалуйста, подпишитесь на журнал событий шлюза с;

$ ttn-lw-cli events --gateway-id gtw-test

Также включите журналы отладки ( log.level: debug ).

Затем запланируйте сообщение по нисходящему каналу и просмотрите журналы и события шлюза.


То есть вы имеете в виду, что нисходящее сообщение поступает на все устройства OTAA, подключенные к шлюзу, как широковещательное сообщение, а не на определенную группу устройств OTAA?

Да, именно так работает LoRaWAN. Каждое устройство класса C, прослушивающее эту частоту с этой конкретной скоростью передачи данных, получит сообщение. Они просматривают DevAddr сообщения, чтобы увидеть, соответствует ли оно (многоадресному) сеансу, для которого у них есть сеансовые ключи. Если это так, они обрабатывают сообщение и проверяют, соответствует ли NwkSKey MIC и т. д.

Говоря о которых; Вы уверены, что частота и скорость передачи данных правильные? Класс C использует для этого параметры RX2. Конечные устройства должны прослушивать эти параметры для многоадресных кадров нисходящей линии связи.

@johanstokking Спасибо за ответ.

Да, именно так работает LoRaWAN. Каждое устройство класса C, прослушивающее эту частоту с этой конкретной скоростью передачи данных, получит сообщение. Они просматривают DevAddr сообщения, чтобы увидеть, соответствует ли оно (многоадресному) сеансу, для которого у них есть сеансовые ключи. Если это так, они обрабатывают сообщение и проверяют, соответствует ли NwkSKey MIC и т. д.

Спасибо, я понял. Вы были действительно ясны.

Говоря о которых; Вы уверены, что частота и скорость передачи данных правильные? Класс C использует для этого параметры RX2. Конечные устройства должны прослушивать эти параметры для многоадресных кадров нисходящей линии связи.

Я почти уверен, что установил правильные параметры. На мой взгляд, проблема может заключаться в том, как я планирую нисходящий канал с помощью MQTT или что-то в отношении шлюза. Я попробую на этой неделе, следуя вашим хорошим советам, и свяжусь с вами.

Пожалуйста, используйте форумы для дополнительных вопросов; мы не отвечаем на вопросы по проблемам GitHub. См. также шаблоны задач.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги