Merge branch 'multithreading-for-multiple-devices'
Fusion du README pour le MT
This commit is contained in:
		
							
								
								
									
										58
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										58
									
								
								README.md
									
									
									
									
									
								
							@@ -263,7 +263,63 @@ ping 192.168.10.202
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## Support multi-équipements
 | 
					## 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
 | 
					## Logs et debugging
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user