Files
ClimatController/tests/test_tion_controller.py
T

63 lines
1.4 KiB
Python

import asyncio
import json
import logging
from app.tion import TionController
from app.my_dataclasses import *
def print_state(title: str, state) -> None:
print()
print("=" * 50)
print(title)
print("=" * 50)
print(json.dumps(
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)
tion = TionController(TION_MAC)
print("Подключение к Tion...")
async with tion:
print(f"Connected: {tion.connected}")
# Читаем исходное состояние
state = await tion.get_state()
print_state("Исходное состояние", state)
# Включаем
state = await tion.power_on()
print_state("После POWER ON", state)
await asyncio.sleep(1)
# Скорость 2
state = await tion.set_speed(2)
print_state("После SPEED 2", state)
await asyncio.sleep(1)
# Скорость 3
state = await tion.set_speed(3)
print_state("После SPEED 3", state)
print()
print(f"Connected after exit: {tion.connected}")
if __name__ == "__main__":
asyncio.run(main())