Kaiten

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

To Kaiten

Типы

Модель

Функции и принципы построения моделей описаны в разделе документации:

TypeScript
import type { Base, ModelNode } from "@rightech/api"; export interface Model extends Base { base: string; // идентификатор базовой модели: mqtt, lorawan, http ... data: ModelNode; // содержимое модели в виде древовидной структуры}

Узлы модели

Все узлы модели, имеют следущий минимальный набор полей:

TypeScript
export type BaseNode = { type: string; id: string; name: string; description?: string; active: boolean; // видимость узла, может быть скрыт children?: ModelNode[]; // дочерние узлы};

Поле type определяет тип узла:

TypeScript
export type ModelNode = | BaseNode | SystemNode | EventNode | ArgumentNode | ActionNode;

Подсистема

TypeScript
export type SystemNode = BaseNode & { type: "subsystem";};

Аргумент

TypeScript
export type ArgumentDataType = | "number" | "boolean" | "string" | "object" | string; export type ArgumentNode = BaseNode & { type: "argument"; dataType: ArgumentDataType; unit?: string; // еденица измерения};

Список доступных для использования едениц измерения можно получить через GET /api/v1/locale в поле units

Действие

TypeScript
export type ActionNode = BaseNode & { type: "action"; service: string; command?: string; params?: Record<string, string>;};

Чаще всего используется для описания команд к устройству в терминах базового протокола.
Например команда PUBLISH протокола MQTT будет иметь следующий вид:

JSON
{ "id": "led-on", "name": "Turn-on LED", "active": true, "type": "action", "command": "publish", "params": { "topic": "base/relay/led1", "payload": "1" }}

Событие

TypeScript
export type EventNode = BaseNode & { type: "event";};