Giter Club home page Giter Club logo

application_ttn_node-red's Introduction

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á!:muscle: 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 medo!:scream: 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!

application_ttn_node-red's People

Contributors

gpstesouro avatar

Stargazers

 avatar Gabriel Pivato avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.