Contribution ChirpStack: Difference between revisions
(20 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 |
||
⚫ | |||
⚫ | |||
⚫ | |||
* 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 |
|||
⚫ | |||
⚫ | |||
⚫ | |||
= |
=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 |
||
⚫ | |||
⚫ | |||
⚫ | |||
*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''': (Hoël |
'''Groupe anciennes contributions''': (Hoël, Mathieu) |
||
*Objectifs: |
*Objectifs: |
||
**Visualisation des devices sur une carte |
**Visualisation des devices sur une carte |
||
Line 102: | Line 108: | ||
*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 |
*Debug par Mathieu des fichiers qui rendaient difficile l'accès au métriques |
||
⚫ | |||
⚫ | |||
'''Groupe anciennes contributions''': (Hoël) |
|||
*Correction d'erreurs liées à l'adaptation du code de l'an dernier |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
* Lecture de documentation LoRa, Chirpstack & Orne Brocaar |
|||
*Prise de connaissance du travail déjà réalisé |
|||
⚫ | |||
'''Groupe Prometheus:''' (Iheb, Mandresy, Hoël) |
|||
*Suppression de l'authentification pour accéder au dashboard Grafana |
*Suppression de l'authentification pour accéder au dashboard Grafana |
||
*Prometheus et Grafana fonctionels, manque certaines métriques |
*Prometheus et Grafana fonctionels, manque certaines métriques |
||
'''Groupe anciennes contributions:''' (Hoël) |
'''Groupe anciennes contributions:''' (Hoël, Mathieu) |
||
*Modification du code de l'API pour la partie authentification MQTT |
*Modification du code de l'API pour la partie authentification MQTT |
||
*Clé MQTT rendue facultative pour les gateways |
*Clé MQTT rendue facultative pour les gateways |
||
*Ajout d'un cas de manque de localisation pour afficher une carte sans erreur |
|||
⚫ | |||
'''Groupe Kafka:''' (Jian |
'''Groupe Kafka:''' (Jian, Mandresy) |
||
⚫ | |||
⚫ | |||
⚫ | |||
*Kafka fonctionel en local |
*Kafka fonctionel en local |
||
*Réflexion sur la mise en place d'un environnement docker pour Kafka |
*Réflexion sur la mise en place d'un environnement docker pour Kafka |
||
*Réflexion sur la mise en place de test uniques pour |
*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 |
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 == |
||
Line 138: | Line 158: | ||
'''Groupe Prometheus:''' (Iheb, Hoël) |
'''Groupe Prometheus:''' (Iheb, Hoël) |
||
*Suppression de l'authentification pour accéder au dashboard Grafana |
|||
*Prometheus et Grafana fonctionels, manque certaines métriques |
|||
*Accès à de nouvelles métriques |
*Accès à de nouvelles métriques |
||
*Mise à jour du dashboard Grafana |
*Mise à jour du dashboard Grafana |
||
'''Groupe Intégration des anciennes contributions:''' (Hoël) |
'''Groupe Intégration des anciennes contributions:''' (Hoël, Mathieu) |
||
*Partie authentification MQTT fonctionnelle, utilisation du plugin go-auth |
*Partie authentification MQTT fonctionnelle, utilisation du plugin go-auth |
||
*Partie visualisation des devices à tester avec un gateway branché |
*Partie visualisation des devices à tester avec un gateway branché |
||
'''Groupe Kafka:''' (Jian, Mandresy, Hoël) |
'''Groupe Kafka:''' (Jian, Mandresy, Hoël) |
||
*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 |
|||
*Problème d'intégration au niveau de l'UI |
*Problème d'intégration au niveau de l'UI |
||
*Utilisation de Apache Nifi pour configurer un consommateur Kafka en local |
*Utilisation de Apache Nifi pour configurer un consommateur Kafka en local |
||
*Ajout de fonctions manquantes sur l'API Chirpstack |
*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 |
Pull request pour Prometheus-Grafana |
||
==Sprint 7 - Du 16/03/20 au |
==Sprint 7 - Du 16/03/20 au 27/03/20 == |
||
⚫ | |||
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: |
Préparation à la soutenance finale: |
||
*Slides |
*Slides |
||
*Rédaction des rapports et de tutoriels pour le prochain groupe qui travaillera sur le projet |
*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 |
*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