Contribution ChirpStack: Difference between revisions

From air
Jump to navigation Jump to search
No edit summary
 
(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 10: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