Contribution ChirpStack
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:
- Hoël & Mathieu: Intégration des contributions de l'année d'avant (authentification mqtt des gateways, visualisation des devices sur une carte). Issue Mqtt: https://github.com/brocaar/chirpstack-application-server/issues/427. Issue map: https://github.com/brocaar/chirpstack-application-server/issues/439
- Mandresy & Iheb: Intégration d'un dashboard Grafana pour les métriques du network server (en changeant le docker compose). Issue: https://github.com/brocaar/chirpstack-network-server/issues/468
- Jian: Intégration de Kafka
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 22/03/20
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
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
Utilisation d'une VM Azure pour la démonstration