Une plateforme web moderne pour visualiser, décoder et analyser les données de vos capteurs LoRaWAN via ChirpStack.
- Tableau de Bord Live : Visualisation en temps réel de l'activité du réseau et des capteurs.
- Widgets Intelligents : Détection et affichage automatique des métriques clés (Température, Humidité, CO2, Batterie, etc.) pour chaque capteur.
- Décodage Universel : Intègre un décodeur unifié capable de gérer nativement de nombreux fabricants (Milesight, Dragino, Nexelec, Watteco, NKE, etc.) et de s'adapter automatiquement.
- Analytique : Graphiques interactifs pour explorer l'historique des données.
- Configuration Facile : Interface de paramétrage intégrée (pas besoin de toucher au code).
- Gestion de Flotte : Suivi de l'état (Online/Offline) et du niveau de batterie des équipements.
- Console Live : Flux de logs en temps réel et outil d'envoi de commandes Downlink.
-
Prérequis :
- Python 3.8 ou supérieur.
- Un accès à une instance ChirpStack.
-
Installation des dépendances :
pip install -r requirements.txt
-
Lancement de l'application :
python app.py
L'application sera accessible à l'adresse :
http://localhost:3000
Plus besoin de modifier les fichiers de code pour connecter votre instance ChirpStack.
- Ouvrez l'application dans votre navigateur.
- Allez dans le menu Paramètres (dans la barre latérale).
- Remplissez les champs :
- URL API ChirpStack : L'adresse de votre serveur (ex:
https://chirpstack.mon-domaine.com). - Token API : Votre clé d'API (générée dans ChirpStack).
- Repo GitHub (Optionnel) : Pour la sauvegarde automatique des données.
- URL API ChirpStack : L'adresse de votre serveur (ex:
- Cliquez sur Enregistrer.
Les paramètres sont sauvegardés localement dans un fichier config.json.
Le projet suit la méthodologie B-MAD. La documentation complète est disponible dans le dossier docs/ :
- 💡 Brainstorming & Contexte : Pourquoi ce projet existe.
- 📋 Spécifications (PRD) : Fonctionnalités et exigences.
- 🏗️ Architecture Technique : Comment ça marche sous le capot.
app.py: Serveur Backend Flask.Decoder.py: Moteur de décodage unifié (Python).index.html: Interface utilisateur (SPA).assets/js/dashboard.js: Logique Frontend et gestion des widgets.database.json: Stockage local des trames reçues.config.json: Fichier de configuration généré par l'interface.
Les contributions sont les bienvenues ! Pour ajouter un nouveau décodeur :
- Ajoutez votre classe de décodage dans
Decoder.py. - Dans
Decoder.py, ajoutez votre classe à la listeglobals.COMPATIBILITY.