Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
2025-04-19 10:49:10 +02:00

163
README.md
View File

@@ -1,149 +1,86 @@
# 🔌 Gestion des sondes domotiques # 🛰️ Gestion des sondes domotiques Domo91
![Python](https://img.shields.io/badge/Python-3.10-blue?logo=python) Application de **supervision des températures** avec :
![Licence](https://img.shields.io/badge/Licence-Propriétaire-red) - Alertes automatiques (retard > 30 minutes)
![Gitea](https://img.shields.io/badge/Gitea-actif-success) - Visualisation graphique Streamlit
![Hébergement](https://img.shields.io/badge/Hébergement-auto--géré-informational) - Génération de rapports PDF
- Intégration Gitea + déploiement automatisé
Application de **surveillance des températures** avec alertes, visualisation Streamlit, et déploiement automatisé via Gitea + Supervisor. - Mode test sanitaire manuel via bouton
--- ---
## 🌟 Fonctionnalités principales ## ⚙️ Fonctionnalités principales
- 🔢 Lecture de capteurs **DS18B20** et **DHT22** - Lecture de capteurs **DS18B20** et **DHT22**
- 📡 Transmission via **MQTT** - Transmission des données via **MQTT**
- 🌐 Interface Streamlit ([app.domo91.fr](https://app.domo91.fr)) - Visualisation en **Streamlit** (accessible via app.domo91.fr)
- ⚠️ Alertes email / Telegram si dépassement > 30 minutes - Alertes Telegram / Email / affichage en direct
- 🚀 Déploiement auto avec `deploy.sh` - Mise en alerte si dépassement de seuil > 30 minutes
- 📁 Stockage **SQL** sur MySQL (VPS) - Bouton "Forcer une alerte de test" intégré
<<<<<<< HEAD - Génération de rapport **PDF** journalier à la demande
======= - Gestion et configuration des sondes dans l'interface
- 🔔 Bouton "Forcer une alerte de test" pour vérifications sanitaires
>>>>>>> 9adf2a0317ad44b7a379bf32a53b9e76d9a71db7
--- ---
## 📈 Exemple de visualisation ## 🖼️ Aperçu
Voici un aperçu dun graphique dans linterface Streamlit : ![Exemple](https://dummyimage.com/800x400/cccccc/000000&text=Aperçu+interface+Streamlit)
![Exemple de graphique Streamlit](https://via.placeholder.com/600x200.png?text=Graphique+Streamlit)
--- ---
## 📂 Structure du projet ## 📁 Structure du projet
| Fichier | Description | | Fichier | Rôle |
|----------------------|----------------------------------------------| |----------------------|----------------------------------------------------------------------|
| `Monitor.py` | Analyse de température et alertes | | `domo91.py` | Interface Streamlit principale |
| `domo91.py` | Interface graphique web | | `Monitor.py` | Script en tâche de fond pour la détection dalertes |
| `Cuisine_saclay.py` | Script capteur pour le site de Saclay | | `deploy.sh` | Script de déploiement depuis Gitea |
| `Cuisine_meudon.py` | Script capteur pour Meudon | | `Cuisine_saclay.py` | Collecte des températures sur site de Saclay |
| `check_supervisor.py`| Vérifie létat des scripts supervisés | | `Cuisine_meudon.py` | Collecte des températures sur site de Meudon |
| `deploy.sh` | Déploiement auto depuis Gitea (branche `product`) | | `requirements.txt` | Dépendances Python à installer |
| `requirements.txt` | Dépendances Python |
--- ---
## 🛠 Installation locale ## 🖥 Installation locale
```bash ```bash
# Clone depuis Gitea git clone https://mj91.fr:448/michel/Gestion_sondes.git
git clone https://mj91.fr:448/michel/gestion_sondes.git cd Gestion_sondes
cd gestion_sondes
# Environnement virtuel # Créer l'environnement virtuel
python -m venv .venv python -m venv .venv
source .venv/bin/activate # Linux/macOS source .venv/bin/activate # Linux/macOS
.venv\Scripts\activate # Windows .venv\Scripts\activate # Windows
# Installer les dépendances
pip install -r requirements.txt pip install -r requirements.txt
# Lancer Streamlit
streamlit run domo91.py
``` ```
--- ---
## 🏛️ Architecture globale ## 🔐 Authentification
- Données temps réel envoyées par ESP8266 (MQTT) L'accès est sécurisé par identifiant/mot de passe.
- Base MySQL avec tables par site (`Saclay`, `Meudon`, `Roissy`...) Les superviseurs peuvent :
- Script `Monitor.py` tournant en boucle 5 minutes (avec `supervisord`) - Gérer les sondes et chambres froides
- Application Streamlit avec login / rôle (accès personnalisé) - Modifier les seuils
- Alertes par Email / Telegram, PDF générables depuis lapp - Ajouter des utilisateurs (à venir)
<<<<<<< HEAD
=======
- Bouton "Forcer une alerte de test" (insère une alerte dans la BDD avec `Etat = 'Test'`)
>>>>>>> 9adf2a0317ad44b7a379bf32a53b9e76d9a71db7
--- ---
## 🧰 Bases de données principales ## 📦 Déploiement & sauvegarde
### 📉 Températures - Déploiement automatisé via `deploy.sh` (push vers Gitea)
- Tables : `Saclay`, `Meudon`, etc. (même structure) - Base de données MySQL hébergée sur VPS
- Champs : `Id`, `Sonde`, `Temperature`, `Date` - Historique et alertes conservés par site (`Alertes_Saclay`, `Alertes_Meudon`, etc.)
### ⚠️ Alertes
- Tables : `Alertes_Saclay`, `Alertes_Meudon`, etc.
- Champs : `Id`, `Sonde`, `Debut_defaut`, `Etat` (En cours, Acquitté, Test...)
### 🏢 Chambres froides (seuils)
- Table : `Chambres_froides`
- Champs : `Id`, `Lieu`, `Sonde`, `Temp_Max`, `Etat` (ON/OFF)
### 🔐 Authentification
- Table : `MotsDePasse`
- Champs : `Utilisateur`, `MotDePasse`, `Lieu`, `Role`
### 📅 Inventaires
- Champs : `Id_inventaire`, `Id_Article`, `Quantité`, `Prix`, `Date`
- Remplissage via Excel nettoyé par macro VBA ou formulaire
--- ---
## 💪 Monitor.py ## 🛠️ À venir
- 🔄 Boucle toutes les 5 minutes - Alerte email/SMS en production
- ⚠️ Déclenche une alerte si seuil dépassé pendant 30 minutes - Programmation dalertes de test mensuelles
- ✅ Acquittement automatique quand retour à la normale - Interface utilisateur WordPress simplifiée
- 📧 Notifications par Email + Telegram
---
## 💼 Bonnes pratiques Git
- Branche `develop` : développement
- Branche `product` : version stable (protégée)
- Pas de push direct sur `product`
- Utiliser `pull --rebase` pour éviter les conflits
- `deploy.sh` pour déploiement manuel si besoin
---
## 🌟 Idées damélioration
- 📱 Alertes SMS via API (Twilio ou OVH)
- 📊 Historique détaillé + export CSV
- 📋 Récap PDF automatique chaque matin
- 📆 Maintenance planifiée avec calendrier
- 🌐 Tableau de bord multi-sites consolidé
---
## 📖 Auteur & contact
Projet développé par [Michel]
Site principal : [https://app.domo91.fr](https://app.domo91.fr)
Gitea auto-hébergé sur : [https://mj91.fr](https://mj91.fr)
<<<<<<< HEAD
=======
## 📖 Auteur & contact
Projet développé par [Michel]
Site principal : [https://app.domo91.fr](https://app.domo91.fr)
Gitea auto-hébergé sur : [https://mj91.fr](https://mj91.fr)
>>>>>>> 9adf2a0317ad44b7a379bf32a53b9e76d9a71db7