Contribution ChirpStack

From air
Jump to navigation Jump to search

Description du projet

Rapport final

Présentation Finale

Présentatation intermédiaire

Dépôts Github

Le projet en quelques mots

Ce projet à pour but d'améliorer le projet open-source Chirpstack en y ajoutant certaines fonctionnalitées comme l'intégration d'une carte pour géolocaliser les devices ou intégrer un monitoring de l'application avec Grafana.

L'équipe et leurs rôles

  • Julien Cordat-Auclair - Intégration de TTN Mapper
  • Mathieu Dumax Vorzet - DevOps, Intégration contributions de l'an dernier
  • Hoël Jalmin - Chef de projet, Intégration contributions de l’an dernier, Dactylographe
  • Iheb Mastoura - Monitoring avec Grafana
  • Mandresy Rakotoarimalala - Scrum master, Monitoring avec Grafana, Dactylographe
  • Jian Zheng - Intégration de Kafka

Avancée équipe

Sprint 1 - Du 29/01/20 au 02/02/20

Prise en main d'outils :

  • Installation Docker
  • Prise en main de ChirpStack et LoRa
  • Discussion sur les contributions que nous souhaitons apporter
  • Récupération de matériel au Fablab dont:
    • Un gateway Kerlink iFemto
    • Un field test device Adeunis

Lecture de documentation sur MQTT, CUPS, Architecture de Chirpstack

Julien rejoint le groupe

Matériel emprunté:

Matériel Quantité
TTIG gateway 2
Kerlink iFemtoCell gateway 1
Testeur réseau 2
Multitech gateway 1

Sprint 2 - Du 03/02/20 au 09/02/20

Répartition des rôles au sein du groupe

Consensus sur les contributions que l'on souhaite réaliser ie:

  • Intégration de Cayenne sur Chirpstack
  • Intégration de monitoring avec Grafana
  • Solveur de géolocalisation TDoA
  • LoRa 2.4Ghz
  • Intégration TTN mapper (facultatif)

RDV avec Didier Donsez pour discuter des contributions à réaliser:

  • Filtrage des packets au niveau du MQTTbroker
  • LoRa 2.4Ghz (facultatif)
  • Intégration de TTN mapper
  • TTIG TTN to Chirpstack
  • Monitoring avec Grafana
  • Intégrer les contributions effectuée l'année dernière

Mise en place de l'environnement de travail :

  • Installation de Go/Docker et des packets nécessaires
  • Clonage des composants de chirpstack un par un
  • Modification des fichiers de configurations log.toml
  • Prise en main du code source

[EDIT]

L'environnement de travail final était sur docker donc les configurations effectuées cette semaine n'ont pas été conservées

Sprint 3 - Du 10/02/20 au 16/02/20

Séparation en 3 groupes:

RDV avec Didier Donsez au fablab:

  • Enregistrement de la gateway Kerlink Ifemto sur son serveur Chirpstack
  • Enregistrement de la gateway Multitech sur son serveur Chirpstack

Groupe Prometheus: (Mandresy, Iheb)

  • Travail au niveau du network server
  • Modification du fichier de configuration .toml
  • Téléchargement et prise en main de prometheus

Groupe anciennes contributions: (Hoël, Mathieu)

  • Objectifs:
    • Visualisation des devices sur une carte
    • Sécurisation des gateways par une clé mqtt
  • Adaptation du code de l'année précédente à l'architecture actuelle de Chirpstack

Groupe Kafka: (Jian)

  • Lecture de documentation sur Kafka et prise en main en local

Sprint 4 - Du 17/02/20 au 23/02/20

Groupe Prometheus: (Mandresy, Iheb, Mathieu)

  • Debug par Mathieu des fichiers qui rendaient difficile l'accès au métriques
  • Modification du fichier de configuration de Prometheus pour prendre en compte le network server
  • Modification du docker-compose

Groupe anciennes contributions: (Hoël)

  • Correction d'erreurs liées à l'adaptation du code de l'an dernier
  • Partie visualisation des devices avec une carte intégrée, à tester

Groupe Kafka: (Jian)

  • Modification de l'UI au niveau de l'application server
  • Ajout du backend de Kafka en local
  • Test de fonctionnement

Julien commence à travailler avec nous.

  • Lecture de documentation LoRa, Chirpstack & Orne Brocaar
  • Prise de connaissance du travail déjà réalisé

Sprint 5 - Du 2/03/20 au 8/03/20

Groupe Prometheus: (Iheb, Mandresy, Hoël)

  • Suppression de l'authentification pour accéder au dashboard Grafana
  • Prometheus et Grafana fonctionels, manque certaines métriques

Groupe anciennes contributions: (Hoël, Mathieu)

  • Modification du code de l'API pour la partie authentification MQTT
  • Clé MQTT rendue facultative pour les gateways
  • Ajout d'un cas de manque de localisation pour afficher une carte sans erreur

Groupe Kafka: (Jian, Mandresy)

  • Kafka fonctionel en local
  • Réflexion sur la mise en place d'un environnement docker pour Kafka
  • Réflexion sur la mise en place de test uniques pour Kafka

Groupe TTN Mapper: (Julien)

  • Lecture de documentation TTN (TheThingsNetwork), TTNMapper, MQTT (Mosquitto) & Node-RED
  • Début de la mise en place de la récupération des données en local via MQTT

Préparation de la soutenance de mi-parcours

Remise au propre de l'historique Git par Mathieu

Sprint 6 - Du 9/03/20 au 15/03/20

Réunion avec Didier Donsez:

  • Retourner au Fablab pour faire des tests avec le gateway Kerlink Ifemto
  • Les métriques manquantes sont liées au manque de gateway et device sur l'application

Enregistrement de la gateway Kerlink sur notre server Chirpstack local.

Groupe Prometheus: (Iheb, Hoël)

  • Accès à de nouvelles métriques
  • Mise à jour du dashboard Grafana

Groupe Intégration des anciennes contributions: (Hoël, Mathieu)

  • Partie authentification MQTT fonctionnelle, utilisation du plugin go-auth
  • Partie visualisation des devices à tester avec un gateway branché

Groupe Kafka: (Jian, Mandresy, Hoël)

  • Problème d'intégration au niveau de l'UI
  • Utilisation de Apache Nifi pour configurer un consommateur Kafka en local
  • Ajout de fonctions manquantes sur l'API Chirpstack

Groupe TTN Mapper: (Julien)

  • Récupération des données par MQTT
  • Intégration du bridge entre MQTT et TTN via Node-RED
  • Formatage & Décodage des données pour la reconnaissance de ces dernières par TNN

[EDIT] Ce travail était une mauvaise piste et n'a pas été conservé

Remise au propre de l'historique Git par Mathieu

Pull request pour Prometheus-Grafana

Sprint 7 - Du 16/03/20 au 27/03/20

Création d'une VM Azure pour la démonstration, installation de nginx

Enregistrement d'une gateway sur la VM et clonage des répertoires du projet

Groupe TTN Mapper: (Julien)

  • Poursuite de la recherche de l'interprétation des données par TTN (mauvaise piste)
  • Début du travail avec docker de manière à créer une instance privée de TTNMapper
  • Récupération d'une image docker TTN Mapper

Echec de l'intégration par erreur d'adresse locale sur la VM

Préparation à la soutenance finale:

  • Slides
  • Rédaction des rapports et de tutoriels pour le prochain groupe qui travaillera sur le projet
  • Pull request pour l'intégration du MQTT auth
  • Enregistrement des vidéos de démonstration