Kaiten

[PMO] База знаний функциональности (интернет)

To Kaiten

Публичное описание получения данных по Websocket


Event Stream в Rightech IoT Cloud

Event Stream позволяет получать события от объектов и системы в реальном времени.

Поддерживаемые протоколы:

  • ✅ WebSocket (рекомендуется)

  • SSE (Server-Sent Events)

  • HTTP (long polling / поток)

Endpoint:

https://dev.rightech.io/events/stream


Авторизация

Используется тот же токен, что и для REST API (подробнее https://rightech.io/ru/developers/http/auth)

Заголовок:

Authorization: Bearer <TOKEN>

Где получить токен:
см. документацию Rightech API.


Формат событий

Все события имеют общий формат:

{ "_msgid": "string", "_oid": "object_id", "time": 1664803947450, "event": "event-type", "data": { ... } }

Основные поля

Поле

Описание

_msgid

ID сообщения

_oid

ID объекта

time

Время события (Unix, ms)

event

Тип события

data

Данные события

Типы описаны в:

https://github.com/Rightech/rest-api/blob/master/types/events.d.ts


Подключение через WebSocket (рекомендуется)


Пример на JavaScript (браузер / Node.js)

const token = "YOUR_API_TOKEN"; const ws = new WebSocket("wss://dev.rightech.io/events/stream", { headers: { Authorization: `Bearer ${token}` } }); ws.onopen = () => { console.log("Connected to Rightech event stream"); }; ws.onmessage = (event) => { const data = JSON.parse(event.data); console.log("Event:", data); }; ws.onerror = (err) => { console.error("WebSocket error:", err); }; ws.onclose = () => { console.log("Connection closed"); };

В браузере заголовки могут не поддерживаться — используйте Node.js (ws) или передавайте токен через query-параметр (если разрешено сервером).


Типы событий


1. object-packet — пакет от объекта

Приходит при получении данных от устройства.

{ "event": "object-packet", "data": { "_ts": 1664803947447731, "payload": "9", "temperature": 9, "time": 1664803947447, "topic": "base/state/temperature" } }

Полезно для:

  • телеметрии

  • MQTT данных

  • показаний датчиков


2. object-update — изменение объекта

При изменении любого поля объекта.

{ "event": "object-update", "data": { "diffs": [ { "op": "replace", "path": "/description", "value": "test-02" } ] } }

Формат diffs соответствует:

https://jsonpatch.com/

Операции:

  • add

  • remove

  • replace

  • move

  • copy

  • test


3. Пользовательские события из автомата

Вызываются через state machine / automation.

{ "event": "test-event-01", "data": { "hello": "world" } }


Готовые примеры

JS пример:

https://github.com/prohazko2/odoo-pacs/blob/main/src/pacs.js#L51

Типы событий:

https://github.com/Rightech/rest-api/blob/master/types/events.d.ts