import asyncio import json import logging from app.tion import ( TionController, TionService, ) from app.my_dataclasses import * def print_service(service: TionService) -> None: print() print("=" * 60) print(f"Running: {service.running}") print(f"Online: {service.online}") print(f"Last seen: {service.last_seen}") print(f"Last error: {service.last_error}") if service.state is not None: print() print(json.dumps( service.state.to_dict(), indent=2, ensure_ascii=False, )) async def main(): # Убираем лишнее логирование logging.getLogger("asyncio").setLevel(logging.WARNING) logging.getLogger("bleak").setLevel(logging.WARNING) logging.getLogger("tion_btle").setLevel(logging.WARNING) controller = TionController(TION_MAC) service = TionService( controller, poll_interval=3, ) async with service: print("=== После запуска ===") print_service(service) print() print("Ждём несколько циклов polling...") await asyncio.sleep(60) print_service(service) print() print("=== Устанавливаем скорость 2 ===") state = await service.execute( lambda tion: tion.set_speed(2) ) print(json.dumps( state.to_dict(), indent=2, ensure_ascii=False, )) print() print("=== Устанавливаем температуру 20°C ===") await service.execute( lambda tion: tion.set_target_temperature(20) ) print_service(service) print() print("=== После stop ===") print_service(service) if __name__ == "__main__": asyncio.run(main())