Switch control and schedules to JSON payloads
This commit is contained in:
24
README.md
24
README.md
@@ -87,7 +87,7 @@ IGNIS_SYNC_DATABASE_URL=sqlite:///./ignis.db
|
||||
- `GET /stats/log`
|
||||
- `GET /auth/me`
|
||||
|
||||
Текущий контракт для `control` и `schedules` использует query-параметры.
|
||||
`control` и `schedules` принимают JSON body.
|
||||
|
||||
Поддерживаемые параметры команд:
|
||||
|
||||
@@ -100,15 +100,28 @@ IGNIS_SYNC_DATABASE_URL=sqlite:///./ignis.db
|
||||
Примеры:
|
||||
|
||||
```bash
|
||||
curl -X POST 'http://localhost:8000/control/device/dev-1?temp=4200' \
|
||||
-H 'X-API-Key: change-me'
|
||||
curl -X POST 'http://localhost:8000/control/device/dev-1' \
|
||||
-H 'X-API-Key: change-me' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"temp": 4200}'
|
||||
```
|
||||
|
||||
```bash
|
||||
curl -X POST 'http://localhost:8000/schedules/once?target_id=bedroom&hours_from_now=2&is_group=true&temp=3200' \
|
||||
-H 'X-API-Key: change-me'
|
||||
curl -X POST 'http://localhost:8000/schedules/once' \
|
||||
-H 'X-API-Key: change-me' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"target_id":"bedroom","hours_from_now":2,"is_group":true,"temp":3200}'
|
||||
```
|
||||
|
||||
Валидация:
|
||||
|
||||
- `brightness`: `10..100`
|
||||
- `temp`: `2200..6500`
|
||||
- `r/g/b`: `0..255`
|
||||
- `scene`, `temp` и `rgb` взаимоисключаемы
|
||||
- `r`, `g`, `b` нужно передавать только полной тройкой
|
||||
- для `schedules/once` нужно передать ровно одно из `run_at` или `hours_from_now`
|
||||
|
||||
## API keys
|
||||
|
||||
- список ключей возвращает публичный `key` / `key_id`
|
||||
@@ -163,5 +176,4 @@ timeout 120s .venv/bin/python -m unittest discover -s tests -v
|
||||
|
||||
- discovery всё ещё основан на переборе IP по подсетям
|
||||
- UI остаётся монолитным файлом
|
||||
- `control` и `schedules` ещё не переведены на JSON body
|
||||
- stats пока простые и не заменяют нормальную аналитику
|
||||
|
||||
Reference in New Issue
Block a user