gpstesouro / application_TTN_Node-RED

Explorando APIs e nodes TTN

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

application_TTN_Node-RED

Explorando APIs e monitorando gateways TTN (The Thing Network)


Antiga Versão - v0 (caso já conheça o contexto, sugiro saltar para Nova Versão)

A boa dica desta vez será um fluxo para monitorar falhas de gateways (Gateway Management). Na verdade, nada foi inventado, pois este trabalho foi inspirado e adaptado da comunidade TTN de Barcelona (https://tinkerman.cat/post/monitor-your-ttn-gateways-with-node-red). Mas afinal, o que é TTN? Por favor, acesse o link.

Mas em uma linha: TTN é um rede voltada para IoT que emprega a tecnologia LoRa&LoRaWAN para atender aos quesitos de conectividade à longa distância (5 km variável) e low power.

A ideia se baseia em utilizar algumas APIs, meio que perdidas no “limbo”, para checar o status (online ou offline) dos gateways numa determinada região e, melhor ainda, ser alertado por meio do envio de mensagem - aplicativo Telegram - quando houver alguma alteração de status.

Bem, faz-se necessário saber lidar um pouco com o Node-RED, descobrir o ID dos gateways-alvos de interesse e configurar apropriadamente o Node "telegram sender". Simplesmente, importe o código gw-management-v0.json (descontinuado e substituído pela nova versão no item abaixo) para o seu Node-RED e faça as adaptações necessárias para sua rede, checando cada etapa do fluxo com o Node "debug".

tela Node-RED


Nova Versão (v1)

Bene, bene, bene ... o mundo sempre girando!

Houve na TTN uma significativa mudança, eu diria não só de versão da stack do servidor de rede LoRaWAN mas também conceitual sob vários aspectos. Uma destas mudanças impactou as antigas API correlatas ao status dos gateways, que foram utilizadas na descrição acima. Eis um trecho retirado da fala do próprio Johan Stokking:

I’m happy to announce that we have a new API for fetching gateway locations, online status and other info for The Things Stack Community Edition, Cloud, Open Source and Enterprise: Packet Broker Mapper API. Since we wanted to make gateway information available in one place, we built a new service for this in Packet Broker. With Packet Broker being the backbone for LoRaWAN traffic, making gateway information available in a central place allows for better insight in the entire ecosystem and discovery of (private) networks to exchange traffic with.

Backwards compatibility

This replaces two existing APIs: the https://www.thethingsnetwork.org/gateway-data endpoint and the NOC (part of V2). The former now uses the Packet Broker Mapper API as data source, so applications using the old API now receive up-to-date information (including our very own www.thethingsnetwork.org gateway map as we work on a redesign of the homepage). Please update your API clients to consume the new API, as we will be shutting down the "/gateway-data" endpoint by the end of 2021. The NOC is already gone.

Pois então, a ideia é recuperar a aplicação antiga (gerenciamento dos GW regionais) utilizando-se da nova API (Packet Broker Mapper) disponibilizada.

Exemplos de emprego da API:

Observações: (i) TTN utiliza netID 000013 e tenantID (locatário): ttn (V3) and ttnv2 (V2); (ii) como novidade, rxRate e txRate são taxas médias de tráfego dos últimos 6 minutos e, também, houve a inclusão da timestamp updatedAt; (iii) tenha paciência em aguardar as atualizações: o status online=false (offline), rxRate e txRate podem demorar um pouco mais de 10 minutos e online=true leva cerca de 1 minuto para ser reportado pela API; (iv) na versão anterior o robô enviava a mensagem para uma conta pessoal, agora amplia o público ao direcionar a mensagem para um grupo Telegram; e (v) ainda estou pensando nisto (talvez a futura v1.1), parece viável implementar um indicativo de SLA (Acordo de Nível de Serviço) por gateway. Depende da adesão à ideia.

tela Node-RED

Agora sim ... eis o novo código gw-management-v1.json a ser importado para o Node-RED, para aqueles interessados em implementar na sua respectiva região.

😊 GOSTOU DA IDEIA? Pois então, caso queira observar uma solução já implementada e em produção, junte-se ao grupo TTN_Gateways_CXS no Telegram e seja notificado a cada mudança de estado dos gateways LoRaWAN que integram a rede TTN em Caxias do Sul - RS. Por favor, "a principio" interprete a quietude do robô como favorável, pois poucas mensagens emitidas quer dizer que a rede está estabilizada (sem alternância entre offline <-> online). Além disso ... na modelagem das API há um filtro temporal de transiente (evitar reportar flutuações); sendo mais claro, quero dizer que há uma latência de 11 minutos, caso o GW tenha se tornado "offline". Já a informação de "online" é reportada mais de imediato (1 min). 😊


Outras possibilidades para verificar a rede TTN:

  1. Modo básico e que todos conhecem: TTN Community;
  2. Mapa de Gateways oficial da TTN, já via Packet Brocker Mapper. Vale a pena observar no mapa a aglomeração de gateways na Europa; e
  3. Agora, caso deseje uma solução personalizada e beirando um designer profissional - com o requinte de um dashboard - não deixe de visitar o seguinte link. Olha que belezura! E já testei ... FUNCIONA BEM!

TTN Gateway Radius and New Node


Para finalizar um BRINDE para quem leu o artigo até o final:

  1. Que tal fuçar no mundo Docker-Conteiner em três curtos parágrafos? É sério! Você não se arrependerá! 💪 Primeiro acesse o link: Play with Docker (PWD). Você precisa se cadastrar: fazer um LOGIN (e-mail e criar uma senha). Depois START.
  2. Clique em + ADD NEW INSTANCE. Agora a parte mais difícil, não tenha receio! 😱 Na linha de comando digite: docker container run -d -p 1880:1880 gpstesouro/ttn_gateways_rs <enter>. Espere até a tela preta parar de "pipocar", seu container está sendo recheado de "gostosuras".
  3. Quase lá! Clique em 1880 (ou acione OPEN PORT e digite 1880 <OK>). Uma nova janela se apresentará. Simplesmente, feche algumas janelas popup de aviso e voilá! 🙏 Finja que não vê o Node-RED e só chame o dashboard (coloque ui após a primeira barra solitária da URL: http://ip...play-with-docker.com/ui <enter>) e divirta-se... GET

Eu não disse ... facinho! 😏 Você acabou de utilizar o recurso Docker através do site PWD, criou um container - rodando um aplicativo Node-RED - que se autodestruirá após 4 horas. PARABÉNS!

About

Explorando APIs e nodes TTN


Languages

Language:JavaScript 96.8%Language:Dockerfile 3.2%