Contribution ChirpStack: Difference between revisions
(29 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[https://air.imag.fr/index.php/Contribution_au_projet_open-souce_ChirpStack Description du projet] |
[https://air.imag.fr/index.php/Contribution_au_projet_open-souce_ChirpStack Description du projet] |
||
[https://github.com/campus-iot/Chirpstack-docker/tree/final-report/Final%20report Rapport final] |
|||
[https://docs.google.com/presentation/d/1AuEhaHrHMfaVp9BKJF1YRoHDTcAAnk59moazu95j86U/edit?usp=sharing Présentation Finale] |
|||
[https://docs.google.com/presentation/d/1jki9UUmdc6g9Ql5Qc31wcFGkKlHdqY66hVSvVdGPKt0/edit?usp=sharing Présentatation intermédiaire] |
|||
[https://github.com/campus-iot Dépôts Github] |
|||
=Le projet en quelques mots= |
=Le projet en quelques mots= |
||
Ce projet à pour but |
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= |
=L'équipe et leurs rôles= |
||
* |
* Julien Cordat-Auclair - Intégration de TTN Mapper |
||
* Mandresy Rakotoarimalala - Scrum master, Monitoring avec Grafana, Dactylographe |
|||
* Iheb Mastoura - Monitoring avec Grafana |
|||
* Jian Zheng - Intégration Kafka |
|||
* Mathieu Dumax Vorzet - DevOps, Intégration contributions de l'an dernier |
* 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 == |
==Sprint 1 - Du 29/01/20 au 02/02/20 == |
||
Prise en main d'outils : |
Prise en main d'outils : |
||
Line 85: | Line 94: | ||
* Enregistrement de la gateway Multitech sur son serveur Chirpstack |
* Enregistrement de la gateway Multitech sur son serveur Chirpstack |
||
'''Groupe Prometheus:''' (Mandresy, Iheb) |
|||
==Sprint 4 - Du 17/02/20 au 23/02/20 == |
|||
'''Groupe Prometheus:''' |
|||
*Travail au niveau du network server |
*Travail au niveau du network server |
||
*Modification du fichier de configuration .toml |
*Modification du fichier de configuration .toml |
||
*Téléchargement et prise en main de prometheus |
*Téléchargement et prise en main de prometheus |
||
'''Groupe anciennes contributions''': |
'''Groupe anciennes contributions''': (Hoël, Mathieu) |
||
*Objectifs: |
*Objectifs: |
||
**Visualisation des devices sur une carte |
**Visualisation des devices sur une carte |
||
Line 97: | Line 105: | ||
*Adaptation du code de l'année précédente à l'architecture actuelle de Chirpstack |
*Adaptation du code de l'année précédente à l'architecture actuelle de Chirpstack |
||
'''Groupe Kafka:''' |
'''Groupe Kafka:''' (Jian) |
||
*Lecture de documentation sur Kafka et prise en main en local |
*Lecture de documentation sur Kafka et prise en main en local |
||
==Sprint |
==Sprint 4 - Du 17/02/20 au 23/02/20 == |
||
'''Groupe Prometheus:''' |
'''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 fichier de configuration de Prometheus pour prendre en compte le network server |
||
*Modification du docker-compose |
*Modification du docker-compose |
||
'''Groupe anciennes contributions |
'''Groupe anciennes contributions''': (Hoël) |
||
*Correction d'erreurs liées à l'adaptation du code de l'an dernier |
|||
*Mise en place des branches d'environnement Git |
|||
*Partie visualisation des devices avec une carte intégrée, à tester |
|||
*Modification du code de l'API pour la partie authentification MQTT |
|||
*Clé MQTT rendue facultative pour les gateways |
|||
*Partie visualisation des devices avec une carte intégrée |
|||
'''Groupe Kafka:''' |
'''Groupe Kafka:''' (Jian) |
||
*Modification de l'UI au niveau de l'application server |
*Modification de l'UI au niveau de l'application server |
||
*Ajout du backend de Kafka en local |
*Ajout du backend de Kafka en local |
||
*Test de fonctionnement |
*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 |
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 == |
==Sprint 6 - Du 9/03/20 au 15/03/20 == |
||
Réunion avec Didier Donsez: |
|||
Groupe Prometheus: |
|||
*Retourner au Fablab pour faire des tests avec le gateway Kerlink Ifemto |
|||
*Debug par Mathieu des fichiers qui rendaient difficile l'accès au métriques |
|||
*Les métriques manquantes sont liées au manque de gateway et device sur l'application |
|||
*Prometheus et Grafana totalement fonctionelle |
|||
Enregistrement de la gateway Kerlink sur notre server Chirpstack local. |
|||
Groupe Intégration des anciennes contributions: |
|||
Groupe |
'''Groupe Prometheus:''' (Iheb, Hoël) |
||
*Accès à de nouvelles métriques |
|||
*Kafka fonctionelle |
|||
*Mise à jour du dashboard Grafana |
|||
*reflexion sur la mise en place d'un environement docker pour kafka |
|||
*reflexion sur la mise en place de test pour kafka |
|||
'''Groupe Intégration des anciennes contributions:''' (Hoël, Mathieu) |
|||
Préparation des slides pour la soutenance de mi-parcours |
|||
*Partie authentification MQTT fonctionnelle, utilisation du plugin go-auth |
|||
*Partie visualisation des devices à tester avec un gateway branché |
|||
'''Groupe Kafka:''' (Jian, Mandresy, Hoël) |
|||
==Sprint 7 - Du 16/03/20 au 22/03/20 == |
|||
*Problème d'intégration au niveau de l'UI |
|||
Enregistrement de la Gateway Kerlink localement. |
|||
*Utilisation de Apache Nifi pour configurer un consommateur Kafka en local |
|||
*Ajout de fonctions manquantes sur l'API Chirpstack |
|||
Groupe |
'''Groupe TTN Mapper:''' (Julien) |
||
*Récupération des données par MQTT |
|||
*Nouvelles métriques |
|||
*Intégration du bridge entre MQTT et TTN via Node-RED |
|||
*Mis a jour du dashboard grafana |
|||
*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 |
|||
Groupe Intégration des anciennes contributions: |
|||
Pull request pour Prometheus-Grafana |
|||
Groupe Kafka: |
|||
*Probleme d'intégration UI |
|||
*Utilisation d'Apache Nifi pour un configurer un Consomateur Kafka |
|||
*Debug sur chirpstack API |
|||
==Sprint 7 - Du 16/03/20 au 27/03/20 == |
|||
Préparation à la soutenance finale: |
|||
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 |
|||
Slides |
|||
rédaction des docs |
|||
'''Groupe TTN Mapper:''' (Julien) |
|||
Pull request pour l'intégration du MQTT auth |
|||
*Poursuite de la recherche de l'interprétation des données par TTN (mauvaise piste) |
|||
PUll request pour Prometheus-Grafana |
|||
*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 |
Latest revision as of 10:38, 26 March 2020
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 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