b934600380019c2df84f371703333fe2c95a8caa
- Sync and async HTTP clients for Ignis Core WiZ server - 23 endpoints: auth, devices, groups, control, schedules, stats, API keys - Pydantic models with client-side validation - 108 unit tests - README with role table and usage examples
Ignis Client (Python)
HTTP-клиент для Ignis Core — сервера управления WiZ-лампами.
Установка
pip install -e .
# или вручную:
pip install httpx pydantic
Быстрый старт
from ignis_client import IgnisClient, CommandRequest
ignis = IgnisClient("http://192.168.1.50:8000", api_key="change-me")
# Авторизация
me = ignis.auth_me()
print(f"Роль: {me['name']}")
# Список устройств
devices = ignis.list_devices()
for mac, dev in devices.items():
print(f"{mac}: {dev['name']}")
# Управление группой
ignis.control_group("bedroom", CommandRequest(state=True, brightness=80))
# Сцена
ignis.control_group("livingroom", CommandRequest(scene="fireplace"))
# RGB
ignis.control_device("aa:bb:cc:dd", CommandRequest(r=255, g=120, b=60))
Асинхронный клиент
from ignis_client import AsyncIgnisClient, CommandRequest
async with AsyncIgnisClient("http://...", api_key="...") as ignis:
await ignis.control_group("bedroom", CommandRequest(state=False))
Роли доступа
| Метод | guest | admin | master |
|---|---|---|---|
auth_me, list_devices, list_groups, list_scenes |
да | да | да |
control_device, control_group, blink_device |
да | да | да |
device_status, group_status |
да | да | да |
system_info |
да | да | да |
create_group, delete_group, rescan |
— | да | да |
create_*_schedule, list_schedules, delete_schedule |
— | да | да |
stats_summary, stats_log |
— | да | да |
list_api_keys, create_api_key, revoke_api_key, activate_api_key |
— | — | да |
Тесты
python -m unittest discover -s tests -v
Зависимости
- Python >= 3.10
- httpx >= 0.26
- pydantic >= 2.5
Description
Languages
Python
100%