Lorawan-stack: Enregistrement multicast et liaison descendante multicast

Créé le 30 oct. 2020  ·  7Commentaires  ·  Source: TheThingsNetwork/lorawan-stack

Bonjour à tous,

Résumé

Problèmes concernant _MULTICAST DEVICES REGISTRATION_ et _MULTICAST DOWNLINK_ via la console et la CLI

Étapes pour reproduire l'enregistrement multidiffusion via la console

  • J'ai ajouté un périphérique final avec le paramètre suivant :

    • Mode d'activation : Multidiffusion
    • Version LoRaWAN : MAC V1.0.3
    • DevEUI : rien
    • Plan de fréquences : SF12 pour RX2
    • Compteur d'images : 32 bits
    • Adresse de multidiffusion : 00 00 00 01
    • Clé NwkS multidiffusion : B1-D1-03-3E-FD-AA-C8-D9-1B-C0-D0-F0-F9-C0-07-98
    • Clé d'application multidiffusion : 0D-81-06-99-B2-B5-4A-42-18-53-B1-B0-66-1B-27-24
  • J'ai programmé une liaison descendante multicast via la console

  • _Observation :_ Adresse de multidiffusion, Multidiffusion NwkSKey et Multidiffusion AppSKey sont les mêmes paramètres de configuration de multidiffusion que j'ai générés à l'intérieur de mes appareils terminaux OTAA physiques en suivant le protocole publié par Lora Alliance " _LoRaWAN® Remote Multicast Setup Specification v1.0.0_ (https:/ /lora-alliance.org/resource-hub/lorawanr-remote-multicast-setup-specification-v100)".

Que vois-je maintenant ?

L'enregistrement se passe bien et la liaison descendante a été planifiée avec succès

Quel est le problème?

Après l'enregistrement, j'ai remarqué que l'appareil de multidiffusion inscrit ne se traduit pas en _Activation mode multicast_ mais plutôt en _Activation mode ABP_. Pourquoi cela est-il ainsi? Puis-je programmer une liaison descendante multicast valide via la console même si l'appareil est en _Mode d'activation ABP_ ?

Étapes pour reproduire l'enregistrement de multidiffusion via CLI

En suivant les instructions de The Things Stack (https://thethingsstack.io/devices/class-c-multicast/) :

  • Ajouter un appareil multidiffusion :
    $ ttn-lw-cli périphériques finaux créent app1 mc1
    --frequence-plan-id EU_863_870
    --lorawan-version 1.0.3
    --lorawan-phy-version 1.0.3-a
    --session.dev-addr 00000001
    --session.keys.app-s-key.key 0D810699B2B54A421853B1B0661B2724
    --session.keys.nwk-s-key.key B1D1033EFDAAC8D91BC0D0F0F9C00798
    --multidiffusion
    --supports-classe-c

  • Liaison descendante multicast programmée avec MQTT (moustique)

_Commande Mosquitto :_ 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 '{"downlinks":[{"frm_payload":"ciao","f_port":42,"priority":"NORMAL","class_b_c":{"gateways":[{"gateway_ids": {"gateway_id":" gtwid "}}],"absolute_time":"2020-10-28T20:20:00Z"}}]}' -d

  • _Observation :_ Adresse de multidiffusion, Multidiffusion NwkSKey et Multidiffusion AppSKey sont les mêmes paramètres de configuration de multidiffusion que j'ai générés à l'intérieur de mes appareils terminaux OTAA physiques en suivant le protocole publié par Lora Alliance " _LoRaWAN® Remote Multicast Setup Specification v1.0.0_ (https:/ /lora-alliance.org/resource-hub/lorawanr-remote-multicast-setup-specification-v100)".

Que vois-je maintenant ?
Le périphérique de multidiffusion ajouté résulte en _multidiffusion en mode d'activation_ comme il se doit.
La réponse de la liaison descendante du moustique est la suivante :

_Réponse Mosquitto :_ Client mosqpub|23216-LAPTOP-OE envoyant CONNECT
Le client mosqpub|23216-LAPTOP-OE a reçu CONNACK
Client mosqpub|23216-LAPTOP-OE envoyant PUBLISH (d0, q0, r0, m1, 'v3/ app1@movexxxxx/devices/ mc1 /down/push', ... (154 octets))
Client mosqpub|23216-LAPTOP-OE envoyant DISCONNECT

Quel est le problème?

Si j'essaie d'envoyer un message de liaison descendante multidiffusion depuis la plate-forme, des erreurs : "aucun chemin de liaison descendante disponible" se produisent.

Au lieu de cela, la réponse de liaison descendante mosquitto_pub est-elle correcte ? Parce que je n'ai rien vu arriver sur mes terminaux physiques OTAA.

Que manque-t-il?

Je ne comprends pas comment corréler mes appareils OTAA avec mon groupe de multidiffusion via la console. J'aimerais voir par exemple un groupe multicast (avec ses McAddress et Mckeys) où je peux ajouter mes appareils OTAA car on ne sait pas comment la liaison descendante multicast peut atteindre mes appareils OTAA.

needdetails

Commentaire le plus utile

Non je ne vois aucune liaison descendante arriver dans ma passerelle "live data" mais à la place j'ai vu des données arriver dans la section "live data" de mon application "foo":

Veuillez vous abonner au journal des événements de la passerelle avec ;

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

Activez également les journaux de débogage ( log.level: debug ).

Planifiez ensuite le message de liaison descendante et observez les journaux et les événements de la passerelle.


Voulez-vous dire que le message de liaison descendante arrive à tous les appareils OTAA connectés à la passerelle comme un message de diffusion et non à un groupe spécifique d'appareils OTAA ?

Oui, c'est ainsi que fonctionne LoRaWAN. Chaque appareil de classe C écoutant cette fréquence avec ce débit de données spécifique recevra le message. Ils examineront le DevAddr du message pour voir s'il correspond à une session (multidiffusion) pour laquelle ils disposent de clés de session. Si c'est le cas, ils traitent le message et voient si la NwkSKey correspond au MIC, etc.

En parlant de ça ; êtes-vous sûr que la fréquence et le débit de données sont corrects ? La classe C utilise les paramètres RX2 pour cela. Les terminaux doivent écouter ces paramètres pour les trames de liaison descendante multidiffusion.

Tous les 7 commentaires

@MatteMoveSRL merci pour votre problème. Si vous êtes un client TTI avec un plan de support, le mieux est d'utiliser le canal de support.

Nous utilisons ici des modèles de problèmes afin d'obtenir des informations de manière structurée.


J'ai remarqué que le dispositif de multidiffusion d'inscription ne se traduit pas par _Activation mode multicast_ mais plutôt comme _Activation mode ABP_. Pourquoi cela est-il ainsi?

Nous avons besoin d'étapes de reproduction pour cela, veuillez modifier votre message pour suivre le modèle de problème.


Je ne peux pas envoyer de messages de liaison descendante depuis la plate-forme car des erreurs "aucun chemin de liaison descendante disponible" se produisent. J'ai également essayé d'envoyer une liaison descendante en utilisant MQTT sur Windows comme suit, mais rien n'arrive sur mon appareil final.

Voir https://thethingsstack.io/devices/class-c-multicast/ , puis la deuxième note sous Multicast Group et l'exemple ci-dessous expliquant comment planifier une liaison descendante.

@johanstokking Merci beaucoup pour les réponses !

J'ai mis à jour mes problèmes pour obtenir les informations de manière structurée, comme vous l'avez suggéré. j'espère que c'est compréhensible

Je ne comprends toujours pas ces deux points:

Au lieu de cela, la réponse de liaison descendante mosquitto_pub est-elle correcte ? Parce que je n'ai rien vu arriver sur mes terminaux physiques OTAA

Je ne comprends pas comment corréler mes appareils OTAA avec mon groupe de multidiffusion via la console. J'aimerais voir par exemple un groupe multicast (avec ses McAddress et Mckeys) où je peux ajouter mes appareils OTAA car on ne sait pas comment la liaison descendante multicast peut atteindre mes appareils OTAA

Merci beaucoup d'avance pour votre temps et votre réponse.

@MatteMoveSRL La réponse de la liaison descendante moustique_pub est-elle correcte ? Parce que je n'ai rien vu arriver sur mes terminaux physiques OTAA

Mis à part le temps absolu, qui est dans le passé, cela ne semble pas faux.

Mais, est-ce gtwid est une passerelle connectée ? Voyez-vous la liaison descendante planifiée dans la console, lorsque vous examinez le trafic de la passerelle ?

@MatteMoveSRL Je ne comprends pas comment corréler mes appareils OTAA avec mon groupe de multidiffusion via la console. J'aimerais voir par exemple un groupe multicast (avec ses McAddress et Mckeys) où je peux ajouter mes appareils OTAA car on ne sait pas comment la liaison descendante multicast peut atteindre mes appareils OTAA

Nous n'avons pas encore implémenté le protocole Remote Multicast Setup dans le serveur d'applications. Nous ne corrélons donc pas cela. Le périphérique de multidiffusion est un périphérique virtuel. Si votre appareil final comprend la liaison descendante à la fois sur le canal monodiffusion et sur le canal multidiffusion, tout devrait bien se passer.

@johanstokking Merci pour la réponse rapide

Mais gtwid est-il une passerelle connectée ?

Oui, la passerelle est connectée et j'ai utilisé "gw-test" au lieu de "gtwid" dans la commande mosquitto.

gateway1

Voyez-vous la liaison descendante planifiée dans la console, lorsque vous examinez le trafic de la passerelle ?

Non je ne vois aucune liaison descendante arriver dans ma passerelle "live data" mais à la place j'ai vu des données arriver dans la section "live data" de mon application "foo":

downlink2
downlink1

Si votre appareil final comprend la liaison descendante à la fois sur le canal monodiffusion et sur le canal multidiffusion, tout devrait bien se passer.

Voulez-vous dire que le message de liaison descendante arrive à tous les appareils OTAA connectés à la passerelle comme un message de diffusion et non à un groupe spécifique d'appareils OTAA ?

Non je ne vois aucune liaison descendante arriver dans ma passerelle "live data" mais à la place j'ai vu des données arriver dans la section "live data" de mon application "foo":

Veuillez vous abonner au journal des événements de la passerelle avec ;

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

Activez également les journaux de débogage ( log.level: debug ).

Planifiez ensuite le message de liaison descendante et observez les journaux et les événements de la passerelle.


Voulez-vous dire que le message de liaison descendante arrive à tous les appareils OTAA connectés à la passerelle comme un message de diffusion et non à un groupe spécifique d'appareils OTAA ?

Oui, c'est ainsi que fonctionne LoRaWAN. Chaque appareil de classe C écoutant cette fréquence avec ce débit de données spécifique recevra le message. Ils examineront le DevAddr du message pour voir s'il correspond à une session (multidiffusion) pour laquelle ils disposent de clés de session. Si c'est le cas, ils traitent le message et voient si la NwkSKey correspond au MIC, etc.

En parlant de ça ; êtes-vous sûr que la fréquence et le débit de données sont corrects ? La classe C utilise les paramètres RX2 pour cela. Les terminaux doivent écouter ces paramètres pour les trames de liaison descendante multidiffusion.

@johanstokking Merci pour votre réponse.

Oui, c'est ainsi que fonctionne LoRaWAN. Chaque appareil de classe C écoutant cette fréquence avec ce débit de données spécifique recevra le message. Ils examineront le DevAddr du message pour voir s'il correspond à une session (multidiffusion) pour laquelle ils disposent de clés de session. Si c'est le cas, ils traitent le message et voient si la NwkSKey correspond au MIC, etc.

Merci je l'ai eu. Tu as été vraiment clair.

En parlant de ça ; êtes-vous sûr que la fréquence et le débit de données sont corrects ? La classe C utilise les paramètres RX2 pour cela. Les terminaux doivent écouter ces paramètres pour les trames de liaison descendante multidiffusion.

Je suis à peu près sûr d'avoir défini les bons paramètres. À mon avis, le problème pourrait être la façon dont je planifie la liaison descendante avec MQTT ou quelque chose concernant la passerelle. Je vais essayer cette semaine en suivant vos bons conseils et je reviens vers vous.

Veuillez utiliser les forums pour des questions supplémentaires ; nous ne répondons pas aux questions sur les problèmes de GitHub. Veuillez également consulter les modèles de problèmes pour cela.

Cette page vous a été utile?
0 / 5 - 0 notes