63 lines
1.4 KiB
Python
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()) |