Integración de ChirpStack

ChirpStack maneja las integraciones a través de eventos. Estos eventos pueden ser codificados como JSON, Protobuffer o JSON(v3). Los eventos que se envían son los siguientes:

  • UP. Contiene los datos y metadatos para un payload de uplink.

  • STATUS. Contiene eventos de batería y estado recibido por los dispositivos.

  • JOIN. Evento publicado cuando un dispositivo se une a la red.

  • ACK. Evento publicado cuando se envía el payload de confirmación.

  • TXACK. Evento publicado cuando una trama de downlink ha sido confirmado por el gateway para su transmisión.

  • ERROR Evento publicado en caso de un error relacionado con la programación de payload.

Para mayor información sobre los eventos de ChirpStack se puede visitar la documentación de ChirpStack.

Alternativas de Integración

Dentro de las opciones de integración con las que cuenta ChirpStack, se encuentran las siguientes:

  • AMQP/ RabbitMQ. Esta integración publica los eventos a una clave de enrutamiento AMQP. A través de crear uno o múltiples enlaces a una o más colas, es posible suscribirse a todos los datos.

  • AWS SNS. La integración mediante el servicio de notificación simple (SNS) publica todos los eventos a los cuales aplicaciones o servicios de AWS se pueden suscribir.

  • Azure Service Bus. La integración mediante este servicio publica todos los eventos al Bus de Servicio a los cuales de pueden suscribir.

  • GCP Pub/Sub. Esta integración publica todos los eventos a un tópico de Pub/Sub de Google Cloud Platform (GCP). A través de la consola se pueden crear una o múltiples suscripciones, para integrarla con otras aplicaciones o almacenarla en una de las opciones de almacenamiento de Google.

  • HTTP. Cuando se configura, la integración de HTTP puede efectuar peticiones POST a los eventos configurados.

  • InfluxDB. Esta integración escribe datos del dispositivo en una base de datos InfluxDB. Esto hace posible visualizar directamente los datos usando, por ejemplo Grafana.

  • Kafka. La integración con Kafka publica los eventos a un tópico de Kafka usando una clave de evento configurable. Kafka usa la clave para distribuir mensajes sobre particiones.

  • LoRa Cloud. Provee integración con diferentes servicios de LoRa Cloud. Entre los principales, se encuentra el servicio de Geolocalización que cuenta con un algoritmos para diferentes casos de uso para la geolocalización de los dispositivos finales.

  • MQTT. Publica todos los datos que recibe de los dispositivos en un formato JSON sobre MQTT.

  • myDevices. La integración con myDevices de Cayenne permite el reenvío de los datos de los dispositivos a las entidades de myDevices.

  • Pilot Things. Esta integración envía la información en raw data hacia las instancias configuradas en Pilot Things.

  • PostgreSQL. Esta integración escribe todos los eventos a una base de datos PostgreSQL. Esta base de datos posteriormente, puede ser usada por otras aplicaciones o ser visualizada usando Grafana por ejemplo.

  • ThingsBoard. Cuando se configura permite enviar los atributos y telemetría de los dispositivos a las instancias configuradas en ThingsBoard.

Integración con ThingsBoard

La integración con ThingsBoard, de acuerdo con la documentación requiere que los datos de uplink sean decodificados, de tal manera que se puedan obtener los datos en formato de objeto JSON.

Así mismo, el token de la instancia en ThingsBoard debe estar configurado en la lista de variables del dispositivo, con el nombre ThingsBoardAccessToken.

Los atributos enviados a ThingsBoard, son los siguientes:

  • application_id

  • application_name

  • dev_eui

  • device_name

Respecto a la telemetría enviada, comprende:

  • Uplink. Correspondiente a los datos decodificados a los que se añade el prefijo data_.

  • Device-status. Con el prefijo status_. El intervalo de las peticiones del estado del dispositivo pueden ser configurados a través del Perfil del Servicio.

  • Locación. Se le añade el prefijo location_. Solo disponible en el caso de gateways con capacidad de Geolocalización.