Lorawan-stack: Registro de multidifusión y enlace descendente de multidifusión

Creado en 30 oct. 2020  ·  7Comentarios  ·  Fuente: TheThingsNetwork/lorawan-stack

Hola a todos,

Resumen

Problemas relacionados con el _REGISTRO DE DISPOSITIVOS DE MULTICAST_ y el _ENLACE DE DESCENSO DE MULTICAST_ a través de la consola y la CLI

Pasos para reproducir el registro de multidifusión a través de la consola

  • Agregué un dispositivo final con el siguiente parámetro:

    • Modo de activación: Multidifusión
    • Versión LoRaWAN: MAC V1.0.3
    • DevEUI: nada
    • Plan de frecuencias: SF12 para RX2
    • Contador de fotogramas: 32 bits
    • Dirección de multidifusión: 00 00 00 01
    • Multidifusión NwkSKey: B1-D1-03-3E-FD-AA-C8-D9-1B-C0-D0-F0-F9-C0-07-98
    • AppSKey de multidifusión: 0D-81-06-99-B2-B5-4A-42-18-53-B1-B0-66-1B-27-24
  • Programé un enlace descendente de multidifusión a través de la consola

  • _Observación:_ Dirección de multidifusión, NwkSKey de multidifusión y AppSKey de multidifusión son los mismos parámetros de configuración de multidifusión que he generado dentro de mis dispositivos finales OTAA físicos siguiendo el protocolo publicado por Lora Alliance " _LoRaWAN® Remote Multicast Setup Specification v1.0.0_ (https:/ /lora-alliance.org/resource-hub/lorawanr-remote-multicast-setup-specification-v100)".

¿Qué veo ahora?

El registro va bien y el enlace descendente se programó con éxito

¿Cuál es el problema?

Después del registro, noté que el dispositivo de multidifusión inscrito no se muestra como _modo de activación multidifusión_ sino como _modo de activación ABP_. ¿Por qué esto es tan? ¿Puedo programar un enlace descendente de multidifusión válido a través de la consola incluso si el dispositivo está en _Modo de activación ABP_?

Pasos para reproducir el registro de multidifusión a través de CLI

Siguiendo las instrucciones de The Things Stack (https://thethingsstack.io/devices/class-c-multicast/):

  • Añadir dispositivo de multidifusión:
    $ ttn-lw-cli dispositivos finales crear app1 mc1
    --frequency-plan-id EU_863_870
    --lorawan-versión 1.0.3
    --lorawan-phy-versión 1.0.3-a
    --session.dev-dirección 00000001
    --session.keys.app-s-key.key 0D810699B2B54A421853B1B0661B2724
    --session.keys.nwk-s-key.key B1D1033EFDAAC8D91BC0D0F0F9C00798
    --multidifusión
    --soporta-clase-c

  • Enlace descendente de multidifusión programado con MQTT (mosquitto)

_Comando 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 '{"enlaces descendentes":[{"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

  • _Observación:_ Dirección de multidifusión, NwkSKey de multidifusión y AppSKey de multidifusión son los mismos parámetros de configuración de multidifusión que he generado dentro de mis dispositivos finales OTAA físicos siguiendo el protocolo publicado por Lora Alliance " _LoRaWAN® Remote Multicast Setup Specification v1.0.0_ (https:/ /lora-alliance.org/resource-hub/lorawanr-remote-multicast-setup-specification-v100)".

¿Qué veo ahora?
El dispositivo de multidifusión agregado resulta como _Modo de activación de multidifusión_ como debería.
La respuesta del mosquitto downlink es la siguiente:

_Mosquitto Respuesta:_ Cliente mosqpub|23216-LAPTOP-OE enviando CONNECT
Cliente mosqpub|23216-LAPTOP-OE recibió CONNACK
Cliente mosqpub|23216-LAPTOP-OE enviando PUBLISH (d0, q0, r0, m1, 'v3/ app1@movexxxxx/devices/ mc1 /down/push', ... (154 bytes))
Cliente mosqpub|23216-LAPTOP-OE enviando DESCONECTAR

¿Cuál es el problema?

Si trato de enviar un mensaje de enlace descendente de multidifusión desde la plataforma, se producen errores: "no hay ruta de enlace descendente disponible" .

¿Es correcta la respuesta del enlace descendente mosquitto_pub? Porque no vi que llegara nada a mis dispositivos finales físicos OTAA.

¿Lo que falta?

No entiendo cómo correlacionar mis dispositivos OTAA con mi grupo de multidifusión a través de la consola. Me gustaría ver, por ejemplo, un grupo de multidifusión (con su McAddress y Mckeys) donde pueda agregar mis dispositivos OTAA porque no está claro cómo el enlace descendente de multidifusión puede llegar a mis dispositivos OTAA.

needdetails

Comentario más útil

No, no veo ningún enlace descendente que llegue a mi puerta de enlace "datos en vivo", sino que vi algunos datos que llegan a la sección "datos en vivo" de mi aplicación "foo":

Suscríbase al registro de eventos de la puerta de enlace con;

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

Habilite también los registros de depuración ( log.level: debug ).

Luego programe el mensaje de enlace descendente y observe los registros y los eventos de la puerta de enlace.


Entonces, ¿quiere decir que el mensaje de enlace descendente llega a todos los dispositivos OTAA conectados a la puerta de enlace como un mensaje de difusión y no a un grupo específico de dispositivos OTAA?

Sí, así es como funciona LoRaWAN. Cada dispositivo de clase C que escuche en esa frecuencia con esa velocidad de datos específica recibirá el mensaje. Verán la DevAddr del mensaje para ver si coincide con una sesión (de multidifusión) para la que tienen claves de sesión. Si es así, procesan el mensaje y ven si NwkSKey coincide con el MIC, etc.

Hablando de que; ¿Estás seguro de que la frecuencia y la tasa de datos son correctas? La clase C usa los parámetros RX2 para esto. Los dispositivos finales deben escuchar esos parámetros para las tramas de enlace descendente de multidifusión.

Todos 7 comentarios

@MatteMoveSRL gracias por su problema. Si eres cliente de TTI con un plan de soporte, lo mejor es utilizar el canal de soporte.

Usamos plantillas de problemas aquí para obtener información de manera estructurada.


Noté que el dispositivo de multidifusión de inscripción no resulta como _Modo de activación de multidifusión_ sino como _Modo de activación ABP_. ¿Por qué esto es tan?

Necesitamos pasos de reproducción para esto, edite su publicación para seguir la plantilla de problema.


No puedo enviar mensajes de enlace descendente desde la plataforma porque se producen los errores "no hay ruta de enlace descendente disponible" . También intenté enviar un enlace descendente usando MQTT en Windows de la siguiente manera, pero no llega nada a mi dispositivo final.

Consulte https://thethingsstack.io/devices/class-c-multicast/ , luego la segunda nota en Multicast Group y el ejemplo a continuación sobre cómo programar el enlace descendente.

@johanstokking ¡Muchas gracias por las respuestas!

Actualicé mi cadena de problemas para obtener la información de una manera estructurada como usted sugirió. espero que se entienda

Sigo sin entender estos dos puntos:

¿Es correcta la respuesta del enlace descendente mosquitto_pub? Porque no vi que llegara nada a mis dispositivos finales físicos OTAA

No entiendo cómo correlacionar mis dispositivos OTAA con mi grupo de multidifusión a través de la consola. Me gustaría ver, por ejemplo, un grupo de multidifusión (con su McAddress y Mckeys) donde pueda agregar mis dispositivos OTAA porque no está claro cómo el enlace descendente de multidifusión puede llegar a mis dispositivos OTAA

Muchas gracias de antemano por su tiempo y su respuesta.

@MatteMoveSRL ¿Es correcta la respuesta del enlace descendente mosquitto_pub? Porque no vi que llegara nada a mis dispositivos finales físicos OTAA

Aparte del tiempo absoluto, que está en el pasado, no se ve mal.

Pero, ¿ gtwid es una puerta de enlace conectada? ¿Ve el enlace descendente programado en la Consola, al observar el tráfico de la puerta de enlace?

@MatteMoveSRL No entiendo cómo correlacionar mis dispositivos OTAA con mi grupo de multidifusión a través de la consola. Me gustaría ver, por ejemplo, un grupo de multidifusión (con su McAddress y Mckeys) donde pueda agregar mis dispositivos OTAA porque no está claro cómo el enlace descendente de multidifusión puede llegar a mis dispositivos OTAA

Todavía no hemos implementado el protocolo de configuración remota de multidifusión en el servidor de aplicaciones. Así que no correlacionamos esto. El dispositivo de multidifusión es un dispositivo virtual. Si su dispositivo final entiende el enlace descendente tanto en el canal de unidifusión como en el de multidifusión, debería estar bien.

@johanstokking Gracias por la rápida respuesta

Pero, ¿gtwid es una puerta de enlace conectada?

Sí, la puerta de enlace está conectada y usé "gw-test" en lugar de "gtwid" en el comando mosquitto.

gateway1

¿Ve el enlace descendente programado en la Consola, al observar el tráfico de la puerta de enlace?

No, no veo ningún enlace descendente que llegue a mi puerta de enlace "datos en vivo", sino que vi algunos datos que llegan a la sección "datos en vivo" de mi aplicación "foo":

downlink2
downlink1

Si su dispositivo final entiende el enlace descendente tanto en el canal de unidifusión como en el de multidifusión, debería estar bien.

Entonces, ¿quiere decir que el mensaje de enlace descendente llega a todos los dispositivos OTAA conectados a la puerta de enlace como un mensaje de difusión y no a un grupo específico de dispositivos OTAA?

No, no veo ningún enlace descendente que llegue a mi puerta de enlace "datos en vivo", sino que vi algunos datos que llegan a la sección "datos en vivo" de mi aplicación "foo":

Suscríbase al registro de eventos de la puerta de enlace con;

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

Habilite también los registros de depuración ( log.level: debug ).

Luego programe el mensaje de enlace descendente y observe los registros y los eventos de la puerta de enlace.


Entonces, ¿quiere decir que el mensaje de enlace descendente llega a todos los dispositivos OTAA conectados a la puerta de enlace como un mensaje de difusión y no a un grupo específico de dispositivos OTAA?

Sí, así es como funciona LoRaWAN. Cada dispositivo de clase C que escuche en esa frecuencia con esa velocidad de datos específica recibirá el mensaje. Verán la DevAddr del mensaje para ver si coincide con una sesión (de multidifusión) para la que tienen claves de sesión. Si es así, procesan el mensaje y ven si NwkSKey coincide con el MIC, etc.

Hablando de que; ¿Estás seguro de que la frecuencia y la tasa de datos son correctas? La clase C usa los parámetros RX2 para esto. Los dispositivos finales deben escuchar esos parámetros para las tramas de enlace descendente de multidifusión.

@johanstokking Gracias por su respuesta.

Sí, así es como funciona LoRaWAN. Cada dispositivo de clase C que escuche en esa frecuencia con esa velocidad de datos específica recibirá el mensaje. Verán la DevAddr del mensaje para ver si coincide con una sesión (de multidifusión) para la que tienen claves de sesión. Si es así, procesan el mensaje y ven si NwkSKey coincide con el MIC, etc.

Gracias lo tengo. Fuiste muy claro.

Hablando de que; ¿Estás seguro de que la frecuencia y la tasa de datos son correctas? La clase C usa los parámetros RX2 para esto. Los dispositivos finales deben escuchar esos parámetros para las tramas de enlace descendente de multidifusión.

Estoy bastante seguro de que he establecido los parámetros correctos. En mi opinión, el problema podría ser cómo programo el enlace descendente con MQTT o algo relacionado con la puerta de enlace. Lo intentaré esta semana siguiendo tus buenos consejos y te responderé.

Utilice los foros para preguntas adicionales; no respondemos preguntas sobre problemas de GitHub. Consulte las plantillas de problemas para eso también.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

adriansmares picture adriansmares  ·  9Comentarios

adriansmares picture adriansmares  ·  8Comentarios

htdvisser picture htdvisser  ·  9Comentarios

adamsondelacruz picture adamsondelacruz  ·  7Comentarios

johanstokking picture johanstokking  ·  6Comentarios