141 lines
10 KiB
Markdown
141 lines
10 KiB
Markdown
# 📱 Gestion des sondes DS18B20
|
|
|
|
Application de **surveillance des températures** avec alertes automatiques, visualisation Streamlit, génération de PDF, gestion des utilisateurs, et déploiement via Gitea + Supervisor.
|
|
|
|
---
|
|
|
|
## 🔧 Fonctionnalités principales
|
|
|
|
- 👥 Lecture de capteurs DS18B20 et DHT22
|
|
- 📢 Transmission des relevés via MQTT
|
|
- 🌐 Interface utilisateur Streamlit (https://domo91.fr)
|
|
- 🔠 Détection de dépassement de seuil (plus de 30 min)
|
|
- ⚠️ Alertes automatiques par **email** et **SMS** en cas de dépassement
|
|
- 🔄 Rappels d'alerte toutes les heures si défaut non corrigé
|
|
- 📉 Visualisation graphique interactive + seuils
|
|
- 📄 Génération de rapports PDF journaliers
|
|
- 🕒 Filtrage par tranche horaire (matin, après-midi, nuit) dans les rapports PDF
|
|
- 👤 Gestion d'utilisateurs et de rôles (superviseur / utilisateur simple)
|
|
- 📁 Stockage des relevés et alertes sur MySQL distant
|
|
- 🛡️ Protection des fichiers sensibles (.env non versionné)
|
|
- Sauvegarde automatique (python)
|
|
|
|
---
|
|
|
|
## 🖼️ Exemple de visualisation
|
|
|
|
*Graphique interactif Streamlit avec courbes de températures et seuils d'alerte :*
|
|
|
|

|
|
|
|
---
|
|
|
|
## 📁 Structure du projet
|
|
|
|
| Fichier | Description |
|
|
|-----------------------|---------------------------------------------------------|
|
|
| `Monitor.py` | Analyse de températures, génération et rappel d'alertes |
|
|
| `domo91.py` | Interface utilisateur Streamlit |
|
|
| `Cuisine_saclay.py` | Lecture capteurs site Saclay |
|
|
| `Cuisine_meudon.py` | Lecture capteurs site Meudon |
|
|
| `check_supervisor.py` | Vérification du bon fonctionnement des scripts |
|
|
| `Alerte_sms.py` | Gestion de l'envoi de SMS avec OVH |
|
|
| `deploy.sh` | Script de déploiement rapide vers VPS |
|
|
| `requirements.txt` | Dépendances Python nécessaires |
|
|
| `.env.example` | Modèle du fichier d'environnement à copier |
|
|
|
|
---
|
|
|
|
## 📝 Génération de rapports PDF journaliers
|
|
|
|
L'application permet de générer des rapports PDF propres et compacts à partir des relevés de température.
|
|
|
|
Fonctionnalités incluses :
|
|
- Sélection du **site** et de la **date**
|
|
- Choix d'une **plage horaire** (matin, après-midi, nuit ou toute la journée)
|
|
- Relevés présentés en **deux colonnes** pour un gain d'espace
|
|
- Affichage des **alertes en cours** sur la période choisie
|
|
- Téléchargement direct depuis l'application Streamlit
|
|
|
|
Les fichiers sont automatiquement nommés et enregistrés dans le répertoire `/PDF` pour archivage.
|
|
|
|
---
|
|
|
|
## 🤍 Installation locale (mode développement)
|
|
|
|
```bash
|
|
git clone https://mj91.fr:448/Michel/Gestion_sondes.git
|
|
cd Gestion_sondes
|
|
cp .env.example .env
|
|
python -m venv .venv
|
|
source .venv/bin/activate # Linux/macOS
|
|
.venv\Scripts\activate.bat # Windows
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
---
|
|
|
|
## ☁️ Environnement serveur VPS
|
|
|
|
- Debian 12 OVH
|
|
- MySQL 8 distant
|
|
- Supervisor pour la surveillance des scripts
|
|
- Interface = App Domo91 pour la gestion des sondes multisites
|
|
- Chaufferie = Remontées des températures relevées dans la chaufferie Saclay
|
|
- cuisine_meudon = Remontées des températures de la cuisine Meudon
|
|
- cuisine_saclay = Remontées des températures de la cuisine Saclay
|
|
- log_viewer = App pour le visionage des fichiers log
|
|
- tableurs = App pour la gestion des utilisateurs et le cryptage des mots de passe.
|
|
|
|
- Nginx en reverse proxy (`app.domo91.fr`)
|
|
- Certificats HTTPS via Let's Encrypt
|
|
|
|
---
|
|
|
|
## 🔐 Authentification et gestion des utilisateurs
|
|
|
|
- Table `MotsDePasse` MySQL
|
|
- Gestion des accès par site (limitation ou multi-sites)
|
|
- Superviseurs : accès total et gestion des sondes
|
|
- Utilisateurs simples : accès restreint à leur site
|
|
|
|
---
|
|
|
|
## 📦 Déploiement
|
|
|
|
```bash
|
|
./deploy.sh
|
|
```
|
|
|
|
- Push automatique du projet vers le VPS
|
|
- Redémarrage automatique de Streamlit
|
|
- Pensez à **mettre à jour manuellement** le fichier `.env` sur le serveur en cas de modification de la configuration (mails, base de données...)
|
|
|
|
---
|
|
|
|
## 📅 Tests et maintenance
|
|
|
|
- Test manuel des alertes possibles via interface utilisateur (menu Test Alerte)
|
|
- Fichiers de logs enregistrés dans `/home/debian/Gestion-sondes/Logs/`
|
|
- Fichier surveillance_releves.py (lancé dans cron et exécutable toutes les 5mn) Surveillance de l'arrivée de datas dans les tables.
|
|
|
|
---
|
|
|
|
## Sauvegardes
|
|
Gérée par cron
|
|
-#crontab-e
|
|
- 0 2 * * * /home/debian/Gestion_sondes/scripts/backup_all.sh >> /home/debian/Gestion_sondes/scripts/backup.log 2>&1
|
|
- Exécution = 2 heures tous les jours
|
|
- Dossier = /home/debian/backup
|
|
- Exécutable = /home/debian/Gestion_sondes/scripts/backup_all.sh
|
|
- Fichier log = /home/debian/Gestion_sondes/scripts/backu.log
|
|
|
|
## 📚 Licence
|
|
|
|
Projet **privé** — Propriété de l'auteur.
|
|
Toute diffusion, copie ou reproduction est interdite sans autorisation écrite préalable.
|
|
|
|
---
|
|
|
|
*Dernier correctif : gestion de l'envoi de SMS avec OVH ✔️*
|