Difference between revisions of "Contribution ChirpStack"

From air
Jump to navigation Jump to search
 
(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

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