Refactor: Clean main.py

This commit is contained in:
Артём Кокос
2026-02-21 13:34:47 +07:00
parent b30ce9ce2a
commit 765bfd3201
7 changed files with 328 additions and 403 deletions

View File

@@ -86,3 +86,17 @@ class DiscoveryService:
# Фильтруем дубликаты (если лампа ответила несколько раз)
unique_devices = list({d["mac"]: d for d in found_devices}.values())
return unique_devices
async def start_background_discovery(self, state_manager, interval=600):
"""Запускает бесконечный цикл сканирования."""
while True:
try:
found_devices = await self.scan_network()
for dev_data in found_devices:
state_manager.update_device(dev_data)
logger.info(
f"📡 Discovery: онлайн {len(state_manager.devices)} устройств"
)
except Exception as e:
print(f"❌ Discovery error: {e}")
await asyncio.sleep(interval)

View File

@@ -1,6 +1,7 @@
import logging
from typing import Dict, List, Optional
from app.models.device import DeviceSchema, GroupModel
from app.core.discovery import DiscoveryService
logger = logging.getLogger(__name__)
@@ -36,3 +37,4 @@ class StateManager:
state_manager = StateManager()
discovery_service = DiscoveryService()