#!/usr/bin/env python3 """Сырой вывод PetKit device roster (что реально возвращает API), без парсинга.""" import asyncio, json, os from datetime import datetime from aiohttp import ClientSession from petkitaio import PetKitClient from petkitaio.constants import Endpoint HERE = os.path.dirname(os.path.abspath(__file__)) def load_env(): p = os.path.join(HERE, ".env") for line in open(p): line = line.strip() if line and not line.startswith("#") and "=" in line: k, _, v = line.partition("=") os.environ.setdefault(k.strip(), v.strip().strip('"').strip("'")) async def main(): load_env() s = ClientSession() c = PetKitClient( os.environ["PETKIT_EMAIL"], os.environ["PETKIT_PASSWORD"], s, os.environ.get("PETKIT_REGION", "Russian Federation"), ) await c.login() print("=== AUTH ===") print("user_id:", c.user_id, " group_ids:", list(c.group_ids), " base:", c.base_url) url = f"{c.base_url}{Endpoint.DEVICE_ROSTER}" hdr = await c.create_header() day = str(datetime.now().date()).replace("-", "") print(f"\n=== RAW DEVICE ROSTER (day={day}) ===") for gid in c.group_ids: data = {"day": day, "groupId": gid} resp = await c._post(url, hdr, data) print(f"--- group {gid} ---") print(json.dumps(resp, ensure_ascii=False, indent=2)) await s.close() asyncio.run(main())