Lorawan-stack: Registro multicast e downlink multicast

Criado em 30 out. 2020  ·  7Comentários  ·  Fonte: TheThingsNetwork/lorawan-stack

Olá pessoal,

Resumo

Problemas relacionados a _MULTICAST DEVICES REGISTRATION_ e _MULTICAST DOWNLINK_ por meio do console e CLI

Etapas para reproduzir o registro multicast por meio do console

  • Eu adicionei um dispositivo final com o seguinte parâmetro:

    • Modo de ativação: Multicast
    • Versão LoRaWAN: MAC V1.0.3
    • DevEUI: nada
    • Plano de frequência: SF12 para RX2
    • Contador de quadros: 32 bits
    • Endereço multicast: 00 00 00 01
    • Multicast NwkSKey: B1-D1-03-3E-FD-AA-C8-D9-1B-C0-D0-F0-F9-C0-07-98
    • Multicast AppSKey: 0D-81-06-99-B2-B5-4A-42-18-53-B1-B0-66-1B-27-24
  • Agendei um downlink multicast através do console

  • _Observação:_ Multicast Address, Multicast NwkSKey e Multicast AppSKey são os mesmos parâmetros de configuração de multicast que gerei dentro dos meus dispositivos finais físicos OTAA seguindo o protocolo lançado pela Lora Alliance " _LoRaWAN® Remote Multicast Setup Specification v1.0.0_ (https:/ /lora-alliance.org/resource-hub/lorawanr-remote-multicast-setup-specification-v100)".

O que eu vejo agora?

O registro vai bem e o downlink foi agendado com sucesso

Qual é o problema?

Após o registro, notei que o dispositivo multicast registrado não resulta como _Modo de ativação multicast_, mas como _Modo de ativação ABP_. Porque isto é assim? Posso agendar um downlink multicast válido por meio do console mesmo se o dispositivo estiver no _Modo de ativação ABP_?

Etapas para reproduzir o registro multicast via CLI

Seguindo a instrução The Things Stack (https://thethingsstack.io/devices/class-c-multicast/):

  • Adicionar dispositivo multicast:
    Dispositivos finais $ ttn-lw-cli criam app1 mc1
    --frequency-plan-id EU_863_870
    --lorawan-versão 1.0.3
    --lorawan-phy-versão 1.0.3-a
    --session.dev-addr 00000001
    --session.keys.app-s-key.key 0D810699B2B54A421853B1B0661B2724
    --session.keys.nwk-s-key.key B1D1033EFDAAC8D91BC0D0F0F9C00798
    --multicast
    --supports-class-c

  • Downlink multicast programado com 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 '{"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

  • _Observação:_ Multicast Address, Multicast NwkSKey e Multicast AppSKey são os mesmos parâmetros de configuração de multicast que gerei dentro dos meus dispositivos finais físicos OTAA seguindo o protocolo lançado pela Lora Alliance " _LoRaWAN® Remote Multicast Setup Specification v1.0.0_ (https:/ /lora-alliance.org/resource-hub/lorawanr-remote-multicast-setup-specification-v100)".

O que eu vejo agora?
O dispositivo multicast adicionado resulta como _Activation mode multicast_ como deveria.
A resposta do downlink do mosquito é a seguinte:

_Mosquitto Answer:_ Cliente mosqpub|23216-LAPTOP-OE enviando CONNECT
Cliente mosqpub|23216-LAPTOP-OE recebeu 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

Qual é o problema?

Se eu tentar enviar uma mensagem de downlink multicast da plataforma, ocorrerão erros: "nenhum caminho de downlink disponível" .

Em vez disso, a resposta do downlink do mosquitto_pub está correta? Porque não vi nada chegando aos meus dispositivos finais OTAA físicos.

O que está faltando?

Não entendo como correlacionar meus dispositivos OTAA com meu grupo multicast por meio do console. Eu gostaria de ver por exemplo um grupo multicast (com seu McAddress e Mckeys) onde eu possa adicionar meus dispositivos OTAA porque não está claro como o downlink multicast pode alcançar meus dispositivos OTAA.

needdetails

Comentários muito úteis

Não, não vejo nenhum downlink chegando no meu gateway "dados ao vivo", mas vi alguns dados chegando na seção "dados ao vivo" do meu aplicativo "foo":

Assine o log de eventos do gateway com;

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

Ative também os logs de depuração ( log.level: debug ).

Em seguida, agende a mensagem de downlink e observe os logs e eventos de gateway.


Então você quer dizer que a mensagem de downlink chega a todos os dispositivos OTAA conectados ao gateway como uma mensagem de broadcast e não a um grupo específico de dispositivos OTAA?

Sim, é assim que o LoRaWAN funciona. Cada dispositivo de classe C que estiver ouvindo nessa frequência com essa taxa de dados específica receberá a mensagem. Eles examinarão o DevAddr da mensagem para ver se ela corresponde a uma sessão (multicast) para a qual eles têm chaves de sessão. Em caso afirmativo, eles processam a mensagem e verificam se o NwkSKey corresponde ao MIC etc.

Falando nisso; você tem certeza de que a frequência e a taxa de dados estão corretas? A classe C usa os parâmetros RX2 para isso. Os dispositivos finais devem estar ouvindo nesses parâmetros os quadros de downlink multicast.

Todos 7 comentários

@MatteMoveSRL obrigado pelo seu problema. Se você é cliente TTI com plano de suporte, o melhor é usar o canal de suporte.

Usamos modelos de problemas aqui para obter informações de maneira estruturada.


Percebi que o dispositivo de multicast de registro não resulta como _Modo de ativação multicast_, mas como _Modo de ativação ABP_. Porque isto é assim?

Precisamos de etapas de reprodução para isso, edite sua postagem para seguir o modelo de problema.


Não consigo enviar mensagens de downlink da plataforma porque ocorrem erros "nenhum caminho de downlink disponível" . Tentei também enviar um downlink usando o MQTT no Windows da seguinte forma, mas nada chega ao meu dispositivo final.

Consulte https://thethingsstack.io/devices/class-c-multicast/ , depois a segunda nota em Multicast Group e o exemplo abaixo com como agendar downlink.

@johanstokking Muito obrigado pelas respostas!

Atualizei meus problemas para obter as informações de forma estruturada como você sugeriu. espero que seja compreensível

Ainda não entendi esses dois pontos:

Em vez disso, a resposta do downlink do mosquitto_pub está correta? Porque eu não vi nada chegando nos meus dispositivos finais OTAA físicos

Não entendo como correlacionar meus dispositivos OTAA com meu grupo multicast por meio do console. Eu gostaria de ver por exemplo um grupo multicast (com seu McAddress e Mckeys) onde eu possa adicionar meus dispositivos OTAA porque não está claro como o downlink multicast pode alcançar meus dispositivos OTAA

Muito obrigado desde já pelo seu tempo e pela sua resposta.

@MatteMoveSRL Em vez disso, a resposta do downlink do mosquitto_pub está correta? Porque eu não vi nada chegando nos meus dispositivos finais OTAA físicos

Tirando o tempo absoluto, que está no passado, não parece errado.

Mas, gtwid é um gateway conectado? Você vê o downlink agendado no Console, ao analisar o tráfego do gateway?

@MatteMoveSRL Não entendo como correlacionar meus dispositivos OTAA com meu grupo multicast por meio do console. Eu gostaria de ver por exemplo um grupo multicast (com seu McAddress e Mckeys) onde eu possa adicionar meus dispositivos OTAA porque não está claro como o downlink multicast pode alcançar meus dispositivos OTAA

Ainda não implementamos o protocolo Remote Multicast Setup no Application Server. Então não correlacionamos isso. O dispositivo multicast é um dispositivo virtual. Se o seu dispositivo final entende downlink tanto no canal unicast quanto no canal multicast, você deve estar bem.

@johanstokking Obrigado pela resposta rápida

Mas, o gtwid é um gateway conectado?

Sim, o gateway está conectado e usei "gw-test" em vez de "gtwid" no comando mosquitto.

gateway1

Você vê o downlink agendado no Console, ao analisar o tráfego do gateway?

Não, não vejo nenhum downlink chegando no meu gateway "dados ao vivo", mas vi alguns dados chegando na seção "dados ao vivo" do meu aplicativo "foo":

downlink2
downlink1

Se o seu dispositivo final entende downlink tanto no canal unicast quanto no canal multicast, você deve estar bem.

Então você quer dizer que a mensagem de downlink chega a todos os dispositivos OTAA conectados ao gateway como uma mensagem de broadcast e não a um grupo específico de dispositivos OTAA?

Não, não vejo nenhum downlink chegando no meu gateway "dados ao vivo", mas vi alguns dados chegando na seção "dados ao vivo" do meu aplicativo "foo":

Assine o log de eventos do gateway com;

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

Ative também os logs de depuração ( log.level: debug ).

Em seguida, agende a mensagem de downlink e observe os logs e eventos de gateway.


Então você quer dizer que a mensagem de downlink chega a todos os dispositivos OTAA conectados ao gateway como uma mensagem de broadcast e não a um grupo específico de dispositivos OTAA?

Sim, é assim que o LoRaWAN funciona. Cada dispositivo de classe C que estiver ouvindo nessa frequência com essa taxa de dados específica receberá a mensagem. Eles examinarão o DevAddr da mensagem para ver se ela corresponde a uma sessão (multicast) para a qual eles têm chaves de sessão. Em caso afirmativo, eles processam a mensagem e verificam se o NwkSKey corresponde ao MIC etc.

Falando nisso; você tem certeza de que a frequência e a taxa de dados estão corretas? A classe C usa os parâmetros RX2 para isso. Os dispositivos finais devem estar ouvindo nesses parâmetros os quadros de downlink multicast.

@johanstokking Obrigado pela sua resposta.

Sim, é assim que o LoRaWAN funciona. Cada dispositivo de classe C que estiver ouvindo nessa frequência com essa taxa de dados específica receberá a mensagem. Eles examinarão o DevAddr da mensagem para ver se ela corresponde a uma sessão (multicast) para a qual eles têm chaves de sessão. Em caso afirmativo, eles processam a mensagem e verificam se o NwkSKey corresponde ao MIC etc.

Obrigado consegui. Você foi muito claro.

Falando nisso; você tem certeza de que a frequência e a taxa de dados estão corretas? A classe C usa os parâmetros RX2 para isso. Os dispositivos finais devem estar ouvindo nesses parâmetros os quadros de downlink multicast.

Tenho certeza de que defini os parâmetros corretos. Na minha opinião, o problema pode ser como eu agendo o downlink com o MQTT ou algo relacionado ao gateway. Vou tentar esta semana seguindo suas boas dicas e voltar para você.

Por favor, use os fóruns para perguntas adicionais; não respondemos a perguntas sobre problemas do GitHub. Por favor, veja os modelos de problemas para isso também.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

adriansmares picture adriansmares  ·  9Comentários

ecities picture ecities  ·  5Comentários

bafonins picture bafonins  ·  5Comentários

ecities picture ecities  ·  5Comentários

johanstokking picture johanstokking  ·  8Comentários