Difference between revisions of "Contribution ChirpStack"
(69 intermediate revisions by 2 users 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= |
||
+ | 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é: |
||
+ | {| class="wikitable" |
||
+ | |- |
||
+ | ! scope="col"| Matériel |
||
+ | ! scope="col"| Quantité |
||
+ | |- |
||
+ | ! scope="row"| TTIG gateway |
||
+ | | 2 |
||
+ | |- |
||
+ | ! scope="row"| Kerlink iFemtoCell gateway |
||
+ | | 1 |
||
+ | |- |
||
+ | ! scope="row"| Testeur réseau |
||
+ | | 2 |
||
+ | |- |
||
+ | ! scope="row"| 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 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 |
Latest revision as of 12: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