Newer
Older
smart-home-server / docs / server-spec.md

REST API для умного дома

Приём событий от устройств

POST /events/new

Описание:
Принимает событие (ивент) от устройства умного дома. Предназначен для отправки любых событий: нажатий кнопок, изменения состояний, передачи измерений и других сигналов.

Доступ:
Только для авторизованных устройств.
Требует заголовок Authorization: Bearer <token>


Формат запроса

{
  "device_id": "ecf0a1b5c9d74f9a8e294c1f67b0a8b9",
  "event_name": "button_press",
  "data": {
    "channel": 0
  }
}

Поле data — произвольный объект, структура зависит от event_name и device_type.
Если data содержит поле channel, сервер дополнительно генерирует события с привязкой к каналу.

Пример успешного ответа

{ "status": "ok" }

Пример ответа при неизвестном устройстве

{
  "status": false,
  "error_alias": "unknown_device",
  "failed_fields": ["device_id"]
}

Обработка события на сервере

Сервер отвечает 200 OK немедленно, а затем (асинхронно, через fastcgi_finish_request) триггерит события через внутреннюю шину в нескольких форматах — см. docs/architecture.md, раздел «Система событий».