diff --git a/README.md b/README.md index 4266310..4a390c8 100644 --- a/README.md +++ b/README.md @@ -263,7 +263,63 @@ ping 192.168.10.202 ## Support multi-équipements -**Note** : Le support complet multi-équipements nécessite une implémentation avec threading/multiprocessing. Actuellement, le script traite le premier équipement de la liste et affiche un avertissement pour les autres. +Le script supporte nativement la surveillance simultanée de plusieurs équipements grâce à une architecture **multi-threading** : + +### Fonctionnement + +- **Thread indépendant** pour chaque équipement configuré +- **Surveillance parallèle** : tous les équipements sont surveillés simultanément +- **Isolation des erreurs** : la défaillance d'un équipement n'affecte pas les autres +- **Clients MQTT séparés** : chaque thread utilise son propre client MQTT +- **Arrêt gracieux** : tous les threads s'arrêtent proprement sur signal + +### Avantages + +- ⚡ **Performance optimale** : pas de blocage entre équipements +- 🔄 **Traitement parallèle** : requêtes SNMP simultanées +- 🛡️ **Robustesse** : isolation des défaillances +- 📊 **Scalabilité** : facilement extensible à des dizaines d'équipements +- 🔧 **Maintenance** : logs clairement identifiés par équipement + +### Configuration multi-équipements + +```yaml +devices: + routeur_principal: + ip: "192.168.10.1" + snmp_community: "public" + oids: + # ... configuration OID ... + + switch_bureau: + ip: "192.168.10.5" + snmp_community: "public" + oids: + # ... configuration OID ... + + point_acces_wifi: + ip: "192.168.10.10" + snmp_community: "private" + oids: + # ... configuration OID ... +``` + +### Logs multi-threading + +Chaque thread est clairement identifié dans les logs : + +``` +(INFO) [Device-routeur_principal] Starting monitoring thread +(INFO) [Device-switch_bureau] MQTT client connected +(DEBUG) [Device-point_acces_wifi] Published state to SNMP/point_acces_wifi/state +``` + +### Gestion des ressources + +- **Clients MQTT uniques** : ID client basé sur le nom de l'équipement +- **Topics séparés** : chaque équipement a ses propres topics MQTT +- **Discovery HA indépendante** : configuration Home Assistant par équipement +- **Disponibilité individuelle** : statut online/offline par équipement ## Logs et debugging