Skip to content

Commit 169b68e

Browse files
authored
Update DocumentationTechniquePython.adoc (V1.0)
1 parent b3c8cf8 commit 169b68e

File tree

1 file changed

+125
-19
lines changed

1 file changed

+125
-19
lines changed
Lines changed: 125 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,140 @@
1-
= Cahier de recette - Plateforme d'ecommerce - Sweetshop
1+
= Documentation Technique : clientMQTT.py et config.ini
22
:toc:
33
:toc-title: Sommaire
44
:Entreprise: LudoRama
55
:Equipe: LudoRama
66

7-
== Présentation de l'application
8-
(Présentation rapide de l'application)
9-
== Procédure d'installation
10-
=== Pour le développement
11-
(comment installer l'environnement de développement)
7+
Cette documentation décrit le fonctionnement et l'utilisation des fichiers `clientMQTT.py` et `config.ini`.
128

9+
== Objectifs
10+
Cette documentation a pour objectifs : +
11+
1. Expliquer la structure du code. +
12+
2. Décrire les étapes d'installation. +
13+
3. Décrire les étapes de lancement du code. +
14+
4. Montrer les cas de tests, avec des captures d'écran.
1315

14-
== Pour le poste
16+
== 1. Structure du Code
1517

18+
=== 1.1 Fichier config.ini
19+
Le fichier `config.ini` contient les paramètres de configuration nécessaires au bon fonctionnement du client MQTT.
1620

17-
== Use Case Global
18-
(Expliquer le use case global)(types d'utilisateurs, spécificités...)
21+
[source, ini]
22+
----
23+
[MQTT]
24+
# Connexion MQTT
25+
broker_address = mqtt.iut-blagnac.fr
26+
port = 1883
1927
28+
# Topics et données à surveiller
29+
topics = AM107, solaredge
30+
AM107_rooms = all
31+
AM107_info_types = temperature, humidity, co2
32+
solaredge_info_types = all
2033
21-
== Architecture
22-
=== Architecture générale
23-
(Architecture générale en terme de sous-systèmes et rôle de chaque élément : fichier de données, fichier de configuration, parties de l'application, ...)
24-
=== Ressources externes utilisées et rôles
25-
( API utilisées avec lien d'accès web + lien doc en ligne, ...)
26-
=== Structuration en package de l'application
27-
(Structuration en packages de l’application documentée. Principes retenus pour cette structuration qui doivent être justifiés. Si des patterns particuliers sont utilisés (MVC, ...), les expliquer clairement.)
28-
=== Élements essentiels
29-
(Eléments essentiels à connaître, spécificités, … nécessaires à la mise en œuvre du développement. Cette partie peut être illustrée par un diagramme de séquence. Par exemple, une structure récurrente de classes peut être décrite ici (contrôleurs de dialogues, contrôleurs de vue, …), les threads utilisés, ...)
34+
# Stockage et paramètres
35+
base_path = ../Java/src/main/resources/application/capteur/
36+
seuil_alert = 30, 60, 1000
37+
period = 15
38+
----
3039

40+
**Description des paramètres :** +
41+
- `broker_address` : Adresse du broker MQTT. +
42+
- `port` : Port utilisé pour la communication. +
43+
- `topics` : Topics surveillés, séparés par des virgules. +
44+
- `AM107_rooms` : Salles surveillées (`all` ou noms spécifiques). +
45+
- `base_path` : Chemin pour stocker les données. +
46+
- `seuil_alert` : Seuils d'alerte pour chaque type de données.
3147

32-
== Fonctionnalités
48+
=== 1.2 Fichier clientMQTT.py
49+
Le fichier `clientMQTT.py` est le script principal qui : +
50+
- Se connecte au broker MQTT. +
51+
- Récupère les messages des topics surveillés. +
52+
- Stocke les données et génère des alertes si les seuils sont dépassés. +
3353

54+
**Structure du code :** +
55+
1. Importation des bibliothèques nécessaires. +
56+
2. Chargement des paramètres depuis `config.ini`. +
57+
3. Connexion au broker MQTT via la fonction `on_connect`. +
58+
4. Traitement des messages reçus avec `on_message`. +
59+
5. Gestion des périodes avec la fonction `gestion_periode`. +
60+
6. Enregistrement des données et alertes via `enregistrer_donnees` et `enregistrer_alerte`.
3461

62+
== 2. Étapes d'Installation
63+
64+
=== 2.1 Prérequis
65+
- Python 3 installé.
66+
- Bibliothèques nécessaires : `paho-mqtt`.
67+
68+
=== 2.2 Installation des dépendances
69+
Pour installer les dépendances, exécutez :
70+
```bash
71+
pip install paho-mqtt
72+
```
73+
74+
=== 2.3 Configuration de config.ini Modifiez config.ini pour adapter les paramètres :
75+
- Broker MQTT : Adresse et port.
76+
- Topics : Indiquez les topics à surveiller.
77+
- Chemin de stockage : Assurez-vous que le chemin spécifié est accessible.
78+
79+
=== 2.4 Organisation des fichiers Structure des fichiers recommandée :
80+
```arduino
81+
project/
82+
├── clientMQTT.py
83+
├── config.ini
84+
└── [répertoire de stockage défini dans base_path]
85+
```
86+
87+
== 3. Étapes de Lancement du Code
88+
89+
1. Vérifiez la configuration dans config.ini. +
90+
2. Lancez le script avec la commande : +
91+
```bash
92+
python3 clientMQTT.py
93+
```
94+
3. Surveillez les logs dans le terminal : +
95+
- Connexion réussie au broker.
96+
- Messages reçus et enregistrés.
97+
4. Vérifiez les fichiers générés dans le répertoire de stockage.
98+
99+
== 4. Cas de Tests
100+
101+
=== 4.1 Fonctionnement Nominal Test de collecte et d'enregistrement des données.
102+
103+
Étapes :
104+
105+
1. Configurez config.ini avec des paramètres valides. +
106+
2. Publiez des messages via MQTT Explorer ou un script. +
107+
3. Vérifiez : +
108+
- Les données s'affichent dans le terminal.
109+
- Les fichiers sont correctement enregistrés.
110+
111+
.Capture d'écran : Connexion réussie image::captures/connexion_reussie.png[alt="Connexion réussie"]
112+
113+
.Capture d'écran : Données enregistrées image::captures/donnees_enregistrees.png[alt="Données enregistrées"]
114+
115+
=== 4.2 Gestion des Alertes Test de génération d'alertes en cas de dépassement des seuils.
116+
117+
Étapes :
118+
119+
1. Configurez des seuils faibles dans config.ini.
120+
2. Publiez des messages contenant des valeurs élevées.
121+
3. Vérifiez :
122+
- Une alerte est générée dans le terminal.
123+
- Les alertes sont stockées dans des fichiers.
124+
125+
.Capture d'écran : Alerte déclenchée image::captures/alerte_declenchee.png[alt="Alerte déclenchée"]
126+
127+
=== 4.3 Gestion des Erreurs Tests de robustesse avec des données incorrectes.
128+
129+
Cas testés :
130+
131+
- Message JSON invalide : Le message est ignoré.
132+
- Topic inconnu : Le message est ignoré sans erreur.
133+
134+
.Capture d'écran : JSON invalide image::captures/json_invalide.png[alt="JSON invalide"]
135+
136+
.Capture d'écran : Topic inconnu image::captures/topic_inconnu.png[alt="Topic inconnu"]
137+
138+
== 5. Résumé
139+
140+
Ce système permet de surveiller des données en temps réel avec gestion des seuils et stockage structuré. En suivant cette documentation, vous pourrez installer, configurer et tester le système avec succès.

0 commit comments

Comments
 (0)