diff --git a/device_diff.py b/device_diff.py index 6b3d5f6..f51303f 100644 --- a/device_diff.py +++ b/device_diff.py @@ -2,6 +2,7 @@ import logging from typing import Dict, List, Tuple, Optional +from concurrent.futures import ThreadPoolExecutor, as_completed from utils import send_tasmota_command @@ -103,9 +104,15 @@ class DeviceComparison: """ self.logger.info(f"Comparing {device1_name} vs {device2_name}") - # Get full status from both devices - device1 = self.get_device_full_status(device1_ip, device1_name) - device2 = self.get_device_full_status(device2_ip, device2_name) + # Get full status from both devices in parallel + self.logger.info("Querying devices in parallel...") + + with ThreadPoolExecutor(max_workers=2) as executor: + future1 = executor.submit(self.get_device_full_status, device1_ip, device1_name) + future2 = executor.submit(self.get_device_full_status, device2_ip, device2_name) + + device1 = future1.result() + device2 = future2.result() # Compare and find differences differences = {