85 lines
2.1 KiB
Python
85 lines
2.1 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)
|
|
|
|
state = await tion.set_target_temperature(20)
|
|
print_state("TARGET TEMP 20°C", state)
|
|
|
|
state = await tion.set_air_mode("recirculation")
|
|
print_state("RECIRCULATION", state)
|
|
await asyncio.sleep(3)
|
|
|
|
state = await tion.set_air_mode("outside")
|
|
print_state("RECIRCULATION", state)
|
|
await asyncio.sleep(3)
|
|
|
|
state = await tion.sound_off()
|
|
print_state("SOUND OFF", state)
|
|
|
|
state = await tion.sound_on()
|
|
print_state("SOUND ON", state)
|
|
|
|
state = await tion.light_off()
|
|
print_state("LIGHT OFF", state)
|
|
|
|
state = await tion.light_on()
|
|
print_state("LIGHT ON", state)
|
|
print()
|
|
print(f"Connected after exit: {tion.connected}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main()) |