v1.0.0
OpenAPI 3.1.0

Обновление записей

Запросы PATCH применяют частичное обновление: изменяются только переданные поля, остальные сохраняют текущие значения. Вложенные объекты объединяются с существующими по ключам — не переданные вложенные ключи остаются без изменений.

Поля-массивы при этом не объединяются поэлементно — переданный массив целиком заменяет текущий, всегда (это не исключение, а общее правило для всех полей-массивов). Добавить один элемент в массив, не читая и не пересылая его целиком, нельзя.

Отдельные объектные поля являются исключением из merge-by-key и при обновлении заменяются целиком, как и массивы; такое поведение указано в описании соответствующего поля.

Фильтрация списков

Запросы на чтение списков поддерживают фильтрацию по любому полю записи (включая вложенные, через точку: where.config.foo) через query-параметры where.{поле} и has.{поле} — не только по тем полям, что приведены как пример параметра в описании конкретного эндпоинта.

  • where.{поле}=значение — точное совпадение.
  • where.{поле}!=значение — исключение значения.
  • where.{поле}>=значение / where.{поле}<=значение — сравнение (включительно).
  • where.{поле}=знач1,знач2 — вхождение в один из перечисленных вариантов.
  • has.{поле}=true|false — проверка присутствия поля в записи.

Поля с подчёркиванием в имени (например _purgeAt) неотличимы от вложенного пути после этой точки — при совпадении имени результат может быть неожиданным.

Связи между сущностями

Эндпоинты POST /links/{from}/to/{to} используют единый механизм построения связей: передайте item, чтобы выбрать исходную запись для привязки, и массивы link/unlink/ update с ID целевых записей, чтобы применить сразу несколько изменений одним запросом.

  • повторная привязка уже существующей связи, или отвязка несуществующей — no-op.
  • удаление любой из связанных записей автоматически отвязывает её от всех записей, с которыми она была связана, не затрагивая при этом сами эти записи.
  • запрос на изменение связей не атомарный: элементы link/unlink/update применяются параллельными кусками. Весь запрос завершается с ошибкой если в процессе изменения любых отдельных связей возникает проблема. При этом часть запрошенных изменений в связях может сохраниться успешно, потенциально приводя к неконсистентному состоянию.
Client Libraries

Устройства: объекты

​

Статистика подключений объекта

​

Возвращает историческую статистику подключений/сессий для одного объекта.

Действие ограничено одним объектом и доступно любому пользователю, у которого есть доступ к этому объекту — удобно для проверки истории подключений конкретного устройства (например, как часто оно выходило в сеть/пропадало из неё).

Особенности:

  • параметры запроса from/to задают период времени, за который формируется отчёт.
  • объект должен существовать и быть доступен вызывающему; иначе поиск завершается неудачей ещё до получения статистики.
Path Parameters
  • id
    Type: string
    required
Responses
  • 200

    OK

  • application/json
  • application/json
  • application/json
  • application/json
Request Example for get/objects/{id}/stats
curl 'https://dev.rightech.io/api/v1/objects/{id}/stats' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Создаёт объект из модели

​

Создаёт новый объект (экземпляр устройства/актива) из модели.

Объект — это экземпляр модели — конкретное устройство, датчик или актив, зарегистрированный на платформе. Этот эндпоинт регистрирует новый объект, привязывая его к существующей модели и присваивая ему идентичность в рамках группы.

Особенности:

  • model обязателен и может быть указан либо как id модели, либо как tagname модели; модель уже должна существовать.
  • если name не указано, по умолчанию используется id объекта (его id устройства), поэтому для читаемости в UI рекомендуется указывать явное name.
  • если базовая модель разрешённой модели отключает валидацию id (idValidate: false), id/deviceid объекта пропускает обычную проверку формата id — полезно для моделей, чей базовый тип не соответствует стандартному формату id устройства.
Responses
  • 200

    OK

  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/objects
curl https://dev.rightech.io/api/v1/objects \
  --request POST \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Список: объекты

​

Возвращает список: объекты.

Query Parameters
  • only
    Type: array string[]

    Вернуть только перечисленные поля (через запятую) вместо полного набора по умолчанию. Можно указывать и вложенные поля через точку (например config.foo); _id возвращается всегда, независимо от списка.

  • where.model
    Type: string

    Пример query-параметра фильтрации where.* - не единственно допустимый, применим к любому полю записи; см. "Фильтрация списков" во введении к спецификации.

  • has.model
    Type: string

    Пример query-параметра has.* (проверка присутствия поля) - применим к любому полю записи; см. "Фильтрация списков" во введении к спецификации.

  • limit
    Type: integer
    min:  
    0
    max:  
    10000

    Максимальное число записей в ответе. По умолчанию и не более 10000.

  • offset
    Type: integer
    min:  
    0

    Сколько записей пропустить от начала выборки (постраничный вывод совместно с limit).

  • from
    Type: string

    Нижняя граница по времени создания записи, включительно. Значение — Unix-время в миллисекундах или дата ISO-8601.

  • to
    Type: string

    Верхняя граница по времени создания записи, включительно. Формат значения — как у from.

  • since
    Type: string

    Вернуть только записи, созданные или изменённые после указанного момента (фильтр по времени создания и по времени последнего изменения, строго больше) — удобно для инкрементальной синхронизации. Записи, которые ни разу не изменялись, отбираются только по времени создания. Формат значения — как у from.

  • meta
    Type: string

    Режим агрегации: вместо списка записей вернуть объект статистики по отфильтрованной выборке (тело ответа — объект MetaResult, а не массив). Значение — список через запятую из count, min, max, items (пустое значение равнозначно count,min,max). count — число записей (присутствует всегда), min/max — запись с наименьшим/наибольшим временем создания, items — сами записи.

Responses
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for get/objects
curl https://dev.rightech.io/api/v1/objects \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
[
  {
    "_id": "123e4567-e89b-12d3-a456-426614174000",
    "model": "123e4567-e89b-12d3-a456-426614174000",
    "id": "AABBCC-001122",
    "name": "string",
    "type": "string",
    "active": true,
    "config": null,
    "group": "123e4567-e89b-12d3-a456-426614174000",
    "license": "123e4567-e89b-12d3-a456-426614174000",
    "botEnabled": true,
    "bot": {
      "state": "string"
    },
    "models.id": "123e4567-e89b-12d3-a456-426614174000",
    "vehicleModel": "string",
    "regNumber": "string",
    "color": "string",
    "vin": "string",
    "charge": "string",
    "phone": "string",
    "sts": "string",
    "status": "string",
    "statusRequest": {
      "additionalProperty": "anything"
    },
    "description": "string",
    "steamHandle": true,
    "chain": "123e4567-e89b-12d3-a456-426614174000",
    "links": {},
    "progress": {
      "additionalProperty": "anything"
    },
    "segments": {
      "additionalProperty": "anything"
    },
    "login": "string",
    "password": "string",
    "icon": "string",
    "state": {
      "additionalProperty": 1
    },
    "processedState": {
      "additionalProperty": 1
    },
    "automatons": [
      "string"
    ],
    "alias": [
      "string"
    ],
    "_storageSize": 1,
    "_purgeAt": 1
  }
]

Список: команды

​

Возвращает список: команды.

Query Parameters
  • only
    Type: array string[]

    Вернуть только перечисленные поля (через запятую) вместо полного набора по умолчанию. Можно указывать и вложенные поля через точку (например config.foo); _id возвращается всегда, независимо от списка.

  • where.object
    Type: string

    Пример query-параметра фильтрации where.* - не единственно допустимый, применим к любому полю записи; см. "Фильтрация списков" во введении к спецификации.

  • has.object
    Type: string

    Пример query-параметра has.* (проверка присутствия поля) - применим к любому полю записи; см. "Фильтрация списков" во введении к спецификации.

  • limit
    Type: integer
    min:  
    0
    max:  
    10000

    Максимальное число записей в ответе. По умолчанию и не более 10000.

  • offset
    Type: integer
    min:  
    0

    Сколько записей пропустить от начала выборки (постраничный вывод совместно с limit).

  • from
    Type: string

    Нижняя граница по времени создания записи, включительно. Значение — Unix-время в миллисекундах или дата ISO-8601.

  • to
    Type: string

    Верхняя граница по времени создания записи, включительно. Формат значения — как у from.

  • since
    Type: string

    Вернуть только записи, созданные или изменённые после указанного момента (фильтр по времени создания и по времени последнего изменения, строго больше) — удобно для инкрементальной синхронизации. Записи, которые ни разу не изменялись, отбираются только по времени создания. Формат значения — как у from.

  • meta
    Type: string

    Режим агрегации: вместо списка записей вернуть объект статистики по отфильтрованной выборке (тело ответа — объект MetaResult, а не массив). Значение — список через запятую из count, min, max, items (пустое значение равнозначно count,min,max). count — число записей (присутствует всегда), min/max — запись с наименьшим/наибольшим временем создания, items — сами записи.

Responses
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for get/objects/commands
curl https://dev.rightech.io/api/v1/objects/commands \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
[
  {
    "_id": "123e4567-e89b-12d3-a456-426614174000",
    "object": "123e4567-e89b-12d3-a456-426614174000",
    "command": "string",
    "updatedAt": "string",
    "type": "string",
    "props": {
      "additionalProperty": "anything"
    },
    "params": {
      "additionalProperty": "anything"
    }
  }
]

Создать запись: команды

​

Создает новую запись в коллекции «команды» и возвращает добавленную запись.

Body·
required
application/json
  • command
    Type: string
  • object
    Type: string Format: uuid
  • params
    Type: object
  • props
    Type: object
  • type
    Type: string
  • updatedAt
    Type: string
Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/objects/commands
curl https://dev.rightech.io/api/v1/objects/commands \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "object": "",
  "command": "",
  "updatedAt": "",
  "type": "",
  "props": {
    "additionalProperty": "anything"
  },
  "params": {
    "additionalProperty": "anything"
  }
}'
{
  "_id": "123e4567-e89b-12d3-a456-426614174000",
  "object": "123e4567-e89b-12d3-a456-426614174000",
  "command": "string",
  "updatedAt": "string",
  "type": "string",
  "props": {
    "additionalProperty": "anything"
  },
  "params": {
    "additionalProperty": "anything"
  }
}

Загрузить по id: команды

​

Возвращает одну запись из коллекции: команды.

Path Parameters
  • id
    Type: string Pattern: [0-9a-f]{24}
    required
Query Parameters
  • only
    Type: array string[]

    Вернуть только перечисленные поля (через запятую) вместо полного набора по умолчанию. Можно указывать и вложенные поля через точку (например config.foo); _id возвращается всегда, независимо от списка.

Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for get/objects/commands/{id}
curl 'https://dev.rightech.io/api/v1/objects/commands/{id}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "_id": "123e4567-e89b-12d3-a456-426614174000",
  "object": "123e4567-e89b-12d3-a456-426614174000",
  "command": "string",
  "updatedAt": "string",
  "type": "string",
  "props": {
    "additionalProperty": "anything"
  },
  "params": {
    "additionalProperty": "anything"
  }
}

Обновить запись: команды

​

Применяет частичное обновление к существующей записи коллекции «команды» - изменяет только переданные поля.

Path Parameters
  • id
    Type: string Pattern: [0-9a-f]{24}
    required
Body·
required
application/json
  • command
    Type: string
  • object
    Type: string Format: uuid
  • params
    Type: object
  • props
    Type: object
  • type
    Type: string
  • updatedAt
    Type: string
Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for patch/objects/commands/{id}
curl 'https://dev.rightech.io/api/v1/objects/commands/{id}' \
  --request PATCH \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "object": "",
  "command": "",
  "updatedAt": "",
  "type": "",
  "props": {
    "additionalProperty": "anything"
  },
  "params": {
    "additionalProperty": "anything"
  }
}'
{
  "_id": "123e4567-e89b-12d3-a456-426614174000",
  "object": "123e4567-e89b-12d3-a456-426614174000",
  "command": "string",
  "updatedAt": "string",
  "type": "string",
  "props": {
    "additionalProperty": "anything"
  },
  "params": {
    "additionalProperty": "anything"
  }
}

Удалить запись: команды

​

Перманентно удаляет указанную запись из коллекции: команды. Это действие нельзя отменить.

Path Parameters
  • id
    Type: string Pattern: [0-9a-f]{24}
    required
Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for delete/objects/commands/{id}
curl 'https://dev.rightech.io/api/v1/objects/commands/{id}' \
  --request DELETE \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "_id": "123e4567-e89b-12d3-a456-426614174000",
  "object": "123e4567-e89b-12d3-a456-426614174000",
  "command": "string",
  "updatedAt": "string",
  "type": "string",
  "props": {
    "additionalProperty": "anything"
  },
  "params": {
    "additionalProperty": "anything"
  }
}

Поток пакетов нескольких объектов

​

Передаёт потоком необработанные пакеты телеметрии для набора объектов за временной диапазон.

Возвращает историю необработанных пакетов (данные временных рядов, отправленные устройствами) сразу для одного или нескольких объектов, передаваемую потоком непрерывного ответа, а не единой JSON-полезной нагрузкой — полезно для экспорта или анализа телеметрии по нескольким объектам без постраничной разбивки.

Особенности:

  • объекты выбираются одним или несколькими параметрами запроса oid; объекты, недоступные/невидимые вызывающему, молча исключаются, а не вызывают ошибку.
  • параметры запроса from/to ограничивают временной период; без них вы можете получить очень большой объём данных, так как результат ограничен 10000 пакетами на каждый запрошенный id объекта.
  • ответ является потоком, а не буферизованным списком — потребляйте его как поток, а не ожидайте единый JSON-массив.
Responses
  • 200

    OK

  • application/json
  • application/json
  • application/json
Request Example for get/objects/packets
curl https://dev.rightech.io/api/v1/objects/packets \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Получает объект по id

​

Получает один объект по его id.

Возвращает полный документ объекта — такую же запись, как возвращает список объектов, но для одного конкретного объекта. {id} может быть как Mongo id объекта, так и его id устройства (deviceid); поиск принимает обе формы.

Особенности:

  • доступ ограничен организацией: пользователь может получить только объекты, принадлежащие его собственной группе/организации, или те, к которым ему явно предоставлен доступ.
  • параметр запроса only можно использовать, чтобы ограничить ответ подмножеством полей.
Path Parameters
  • id
    Type: string
    required
Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for get/objects/{id}
curl 'https://dev.rightech.io/api/v1/objects/{id}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "_id": "123e4567-e89b-12d3-a456-426614174000",
  "model": "123e4567-e89b-12d3-a456-426614174000",
  "id": "AABBCC-001122",
  "name": "string",
  "type": "string",
  "active": true,
  "config": null,
  "group": "123e4567-e89b-12d3-a456-426614174000",
  "license": "123e4567-e89b-12d3-a456-426614174000",
  "botEnabled": true,
  "bot": {
    "state": "string"
  },
  "models.id": "123e4567-e89b-12d3-a456-426614174000",
  "vehicleModel": "string",
  "regNumber": "string",
  "color": "string",
  "vin": "string",
  "charge": "string",
  "phone": "string",
  "sts": "string",
  "status": "string",
  "statusRequest": {
    "additionalProperty": "anything"
  },
  "description": "string",
  "steamHandle": true,
  "chain": "123e4567-e89b-12d3-a456-426614174000",
  "links": {},
  "progress": {
    "additionalProperty": "anything"
  },
  "segments": {
    "additionalProperty": "anything"
  },
  "login": "string",
  "password": "string",
  "icon": "string",
  "state": {
    "additionalProperty": 1
  },
  "processedState": {
    "additionalProperty": 1
  },
  "automatons": [
    "string"
  ],
  "alias": [
    "string"
  ],
  "_storageSize": 1,
  "_purgeAt": 1
}

Обновляет поля существующего объекта

​

Используйте это, чтобы изменить собственные свойства объекта (имя, конфигурацию, группу и т. д.). {id} принимает как Mongo id, так и id устройства.

Особенности:

  • это частичное обновление: изменяются только поля, присутствующие в теле запроса, всё остальное остаётся как есть.
  • обновляет документ объекта напрямую — это не тот эндпоинт, который следует использовать для изменения живого состояния/значения телеметрии объекта (для этого предусмотрен отдельный механизм пакетов/состояния).
Path Parameters
  • id
    Type: string
    required
Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for patch/objects/{id}
curl 'https://dev.rightech.io/api/v1/objects/{id}' \
  --request PATCH \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "_id": "123e4567-e89b-12d3-a456-426614174000",
  "model": "123e4567-e89b-12d3-a456-426614174000",
  "id": "AABBCC-001122",
  "name": "string",
  "type": "string",
  "active": true,
  "config": null,
  "group": "123e4567-e89b-12d3-a456-426614174000",
  "license": "123e4567-e89b-12d3-a456-426614174000",
  "botEnabled": true,
  "bot": {
    "state": "string"
  },
  "models.id": "123e4567-e89b-12d3-a456-426614174000",
  "vehicleModel": "string",
  "regNumber": "string",
  "color": "string",
  "vin": "string",
  "charge": "string",
  "phone": "string",
  "sts": "string",
  "status": "string",
  "statusRequest": {
    "additionalProperty": "anything"
  },
  "description": "string",
  "steamHandle": true,
  "chain": "123e4567-e89b-12d3-a456-426614174000",
  "links": {},
  "progress": {
    "additionalProperty": "anything"
  },
  "segments": {
    "additionalProperty": "anything"
  },
  "login": "string",
  "password": "string",
  "icon": "string",
  "state": {
    "additionalProperty": 1
  },
  "processedState": {
    "additionalProperty": 1
  },
  "automatons": [
    "string"
  ],
  "alias": [
    "string"
  ],
  "_storageSize": 1,
  "_purgeAt": 1
}

Удаляет объект

​

Безвозвратно удаляет объект и связанные с ним данные.

Удаление объекта деактивирует его, отключает (отправляет команду отключения/перевода в офлайн), сбрасывает хранимые события, обработанную телеметрию и коллекции необработанной телеметрии, а затем удаляет саму запись объекта. Это разрушительная, необратимая операция — используйте её, когда объект/устройство выводится из эксплуатации, и вы хотите освободить его хранилище и квоту.

Особенности:

  • тело запроса должно включать confirm: true, иначе запрос отклоняется — это защита от случайного удаления.
  • удаление выполняется как многошаговая фоновая задача (деактивация, отключение, удаление событий, удаление телеметрии, удаление объекта); если один из шагов завершается неудачей на середине, часть данных может быть уже удалена, в то время как сама запись объекта удаляется последней.
  • вся телеметрия и история событий объекта удаляются вместе с ним — восстановить эти данные впоследствии невозможно.
Path Parameters
  • id
    Type: string
    required
Responses
  • 200

    OK

  • application/json
  • application/json
  • application/json
  • application/json
Request Example for delete/objects/{id}
curl 'https://dev.rightech.io/api/v1/objects/{id}' \
  --request DELETE \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Поиск объектов через тело запроса

​

Ищет объекты по критериям фильтрации, переданным в теле запроса вместо URL.

Это тот же механизм получения списка/поиска, что и обычный список объектов, но позволяющий отправить фильтры, meta и выбор полей only в JSON-теле, а не как параметры запроса URL. Используйте это, когда ваш фильтр слишком велик или сложен для строки запроса (например, при передаче сразу многих условий фильтрации).

Особенности:

  • filter в теле преобразуется в те же параметры запроса where_*, используемые обычным эндпоинтом списка; таким образом можно фильтровать по любому полю.
  • meta и only можно передать в теле, и они объединяются с любыми одноимёнными параметрами, указанными в строке запроса.
  • функционально возвращает тот же вид результата, что и обычный список объектов; существует исключительно для обхода ограничений размера/сложности строки запроса.
Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/objects/query
curl https://dev.rightech.io/api/v1/objects/query \
  --request POST \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
[
  {
    "_id": "123e4567-e89b-12d3-a456-426614174000",
    "model": "123e4567-e89b-12d3-a456-426614174000",
    "id": "AABBCC-001122",
    "name": "string",
    "type": "string",
    "active": true,
    "config": null,
    "group": "123e4567-e89b-12d3-a456-426614174000",
    "license": "123e4567-e89b-12d3-a456-426614174000",
    "botEnabled": true,
    "bot": {
      "state": "string"
    },
    "models.id": "123e4567-e89b-12d3-a456-426614174000",
    "vehicleModel": "string",
    "regNumber": "string",
    "color": "string",
    "vin": "string",
    "charge": "string",
    "phone": "string",
    "sts": "string",
    "status": "string",
    "statusRequest": {
      "additionalProperty": "anything"
    },
    "description": "string",
    "steamHandle": true,
    "chain": "123e4567-e89b-12d3-a456-426614174000",
    "links": {},
    "progress": {
      "additionalProperty": "anything"
    },
    "segments": {
      "additionalProperty": "anything"
    },
    "login": "string",
    "password": "string",
    "icon": "string",
    "state": {
      "additionalProperty": 1
    },
    "processedState": {
      "additionalProperty": 1
    },
    "automatons": [
      "string"
    ],
    "alias": [
      "string"
    ],
    "_storageSize": 1,
    "_purgeAt": 1
  }
]

Читает историю пакетов телеметрии объекта

​

Возвращает необработанные или обработанные пакеты данных («packets»), которые объект получал с течением времени — например, для отображения графиков истории, построения треков или экспорта в CSV/JSON/GPX. Без дополнительных параметров запроса передаёт потоком историю пакетов для запрошенного временного диапазона; с meta=bounds вместо этого возвращает только самое раннее и текущее известное состояние (min/max), что полезно для определения доступного диапазона дат перед запросом полной истории.

Особенности:

  • Базовое хранилище может различаться: пакеты могут читаться из коллекций телеметрии MongoDB или из отдельного обработанного/postgres хранилища временных рядов («pgts»), в зависимости от модели объекта и параметров запроса (db, ofType).
  • Параметр db=reserve может перенаправить чтение в резервное расположение хранилища вместо основного.
  • meta=bounds возвращает только информацию о границах (min/max), а не полный поток пакетов — используйте это, чтобы узнать доступный диапазон запроса, а не сами данные.
Path Parameters
  • id
    Type: string
    required
Responses
  • 200

    OK

  • application/json
  • application/json
  • application/json
  • application/json
Request Example for get/objects/{id}/packets
curl 'https://dev.rightech.io/api/v1/objects/{id}/packets' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Отправляет пакет телеметрии по HTTP

​

Отправляет новый пакет телеметрии для объекта по обычному HTTP.

Это эндпоинт приёма по обычному HTTP для устройств, сообщающих данные напрямую через REST, а не через MQTT, CoAP, LoRaWAN или один из других поддерживаемых протоколов передачи. Тело запроса сопоставляется с аргументами модели объекта и публикуется как новый пакет состояния, так же как данные, поступающие по любому другому протоколу.

Особенности:

  • Предназначен для объектов, чья модель использует базовый протокол http-ric; отправка пакетов для модели, построенной на другом протоколе, является несоответствием (эта проверка существует в коде, но в данный момент отключена).
  • Если у объекта прикреплена лицензия, запрос подпадает под ограничения этой лицензии на размер пакета и частоту пакетов — слишком большие полезные нагрузки отклоняются с «Payload Too Large», а превышение дневной квоты пакетов отклоняется с «Too Many Requests».
  • Каждый принятый пакет увеличивает статистику использования объекта, которая учитывается при измерении/биллинге.
  • Пустые пакеты (тело, которое не сопоставляется ни с одним распознанным аргументом модели) принимаются, но фактически не публикуются.
Path Parameters
  • id
    Type: string
    required
Responses
  • 200

    OK

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/objects/{id}/packets
curl 'https://dev.rightech.io/api/v1/objects/{id}/packets' \
  --request POST \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Возвращает историю команд, отправленных объекту

​

Каждый вызов POST /objects/{id}/commands/{command} записывается; этот эндпоинт передаёт этот журнал потоком, чтобы вы могли проверить, какие команды были отправлены объекту, когда и с каким результатом. Полезно для отладки поведения устройства или проверки того, что отправленная вами команда (включая отложенные команды, поставленные в очередь, пока объект был офлайн) действительно была доставлена.

Особенности:

  • Результаты можно фильтровать по временному диапазону с помощью параметров запроса, так же как и другие эндпоинты журналов/телеметрии на уровне объекта (например, packets, events).
  • Ответ передаётся потоком, поэтому может эффективно возвращать большое число записей без постраничной разбивки.
Path Parameters
  • id
    Type: string Pattern: [0-9a-f]{24}
    required
Responses
  • 200

    OK

  • application/json
  • application/json
  • application/json
  • application/json
Request Example for get/objects/{id}/logs/commands
curl 'https://dev.rightech.io/api/v1/objects/{id}/logs/commands' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Модель объекта с текущими значениями

​

Возвращает определение модели объекта, обогащённое текущими живыми значениями этого объекта.

Там где GET /models/{id} возвращает определение модели изолированно, этот эндпоинт возвращает ту же структуру модели, но с заполненным _value (и его меткой времени) для каждого аргумента из текущего состояния объекта — позволяя увидеть структуру модели и живые данные объекта в одном ответе. Сам документ объекта включён под _object.

Особенности:

  • {id} должен быть действительным id объекта (24-символьный шестнадцатеричный Mongo id) — id устройства здесь не принимаются, в отличие от большинства других маршрутов /objects/{id}.
  • используйте параметр запроса with, чтобы дополнительно включить дерево data модели, props или правила access, а taggedOnly — чтобы ограничить возвращаемые аргументы теми, у которых есть теги использования; по умолчанию эти дополнительные секции удаляются из ответа.
  • если объект находится в режиме «processed», значения берутся из его обработанного состояния, а не из необработанного.
Path Parameters
  • id
    Type: string Pattern: [0-9a-f]{24}
    required
Responses
  • 200

    OK

  • application/json
  • application/json
  • application/json
  • application/json
Request Example for get/objects/{id}/model
curl 'https://dev.rightech.io/api/v1/objects/{id}/model' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Возвращает историю событий одного объекта

​

Возвращает записанную временную шкалу событий для одного объекта, передаваемую потоком в том виде, в каком события хранятся. Это удобный, предварительно отфильтрованный сокращённый путь к GET /events, ограниченный одним id объекта, полезный, когда вы уже знаете, каким объектом интересуетесь, и вам не нужно запрашивать данные по нескольким объектам или типам событий.

Особенности:

  • Поддерживает только фильтрацию по временному диапазону (from/to); в отличие от общего эндпоинта /events, не поддерживает фильтрацию по имени события, id пользователя или повышенный уровень доступа администратора — вы всегда получаете события, видимые на обычном уровне доступа для группы объекта.
  • Ответ передаётся потоком, без постраничной разбивки.
Path Parameters
  • id
    Type: string Pattern: [0-9a-f]{24}
    required
Responses
  • 200

    OK

  • application/json
  • application/json
  • application/json
  • application/json
Request Example for get/objects/{id}/events
curl 'https://dev.rightech.io/api/v1/objects/{id}/events' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Публикует пользовательское событие на объекте

​

Позволяет записать пользовательское событие в временную шкалу конкретного объекта, так же как записываются встроенные события (например, поступление пакетов или запуски автоматов). Событие транслируется через поток событий системы и сохраняется, поэтому оно становится частью истории событий этого объекта и доступно всем, кто подписан на живую ленту событий. Используйте это, когда внешней интеграции или скрипту нужно зафиксировать что-то значимое для объекта вне автоматических источников событий системы.

Особенности:

  • id объекта берётся из URL, а не из тела запроса — это отличается от общего POST /events, которому требуется id объекта (_oid) в теле.
  • Объект должен разрешаться в контексте текущей организации/группы вызывающего, иначе вызов завершается неудачей.
  • Требуется имя события, указанное как event, name или type в теле; полезная нагрузка может быть указана как data, payload или body.
Path Parameters
  • id
    Type: string Pattern: [0-9a-f]{24}
    required
Responses
  • 200

    OK

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/objects/{id}/events
curl 'https://dev.rightech.io/api/v1/objects/{id}/events' \
  --request POST \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Привязывает геозону к объекту

​

Привязывает геозону к объекту, начиная отслеживание его положения относительно неё.

После привязки пакеты координат объекта проверяются на соответствие форме геозоны, и статус объекта «внутри/снаружи» относительно этой геозоны становится видимым на объекте. Вход в геозону или выход из неё вызывает встроенные события «вход в геозону» / «выход из геозоны» (или любые пользовательские события, настроенные на геозоне), которые могут использоваться как триггеры в переходах автомата.

Примечания:

  • отслеживание вступает в силу только после поступления нового пакета координат объекта после привязки; ничего не оценивается ретроактивно по прошлым пакетам
  • повторный вызов для уже привязанной пары объект/геозона не приводит ни к чему (не является ошибкой)
  • удаление самой геозоны автоматически отвязывает её от всех объектов, к которым она была привязана
Path Parameters
  • id
    Type: string Pattern: [0-9a-f]{24}
    required
  • geofence
    Type: string
    required
Responses
  • 200

    OK

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/objects/{id}/geofences/{geofence}/start
curl 'https://dev.rightech.io/api/v1/objects/{id}/geofences/{geofence}/start' \
  --request POST \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Отвязывает геозону от объекта

​

Отвязывает геозону от объекта, останавливая отслеживание его положения относительно неё.

Это отменяет действие start: объект больше не проверяется на соответствие форме геозоны, его статус «внутри/снаружи» для этой геозоны больше не отслеживается, и события входа/выхода для этой геозоны больше не будут срабатывать для этого объекта.

Примечания:

  • вызов этого метода, когда объект не привязан к геозоне, не приводит ни к чему (не является ошибкой)
  • это удаляет только связь между конкретным объектом и конкретной геозоной; другие объекты, привязанные к той же геозоне, не затрагиваются
  • удаление самой геозоны автоматически оказывает такой же эффект на все привязанные к ней объекты
Path Parameters
  • id
    Type: string Pattern: [0-9a-f]{24}
    required
  • geofence
    Type: string
    required
Responses
  • 200

    OK

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/objects/{id}/geofences/{geofence}/stop
curl 'https://dev.rightech.io/api/v1/objects/{id}/geofences/{geofence}/stop' \
  --request POST \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Статус автоматов объекта

​

Передаёт потоком живой статус выполнения автоматов, работающих на объекте.

Модели могут иметь прикреплённые автоматы (сценарии конечного автомата), и объект наследует автоматы своей модели. Этот эндпоинт открывает потоковый ответ с текущим состоянием, логами и статусом этих автоматов по мере их выполнения на конкретном объекте — он сообщает состояние выполнения, а не определение автомата (состояния/переходы), которое является отдельным ресурсом /automatons/:id.

Примечания:

  • параметр пути {automaton} позволяет отфильтровать поток до одного автомата
  • по умолчанию соединение возвращает только текущий снимок; добавьте ?watch=true (или любое значение, кроме false), чтобы держать поток открытым и получать обновления по мере изменения состояния автомата
  • передайте ?subscribeToEventsFor=<duration> (например, 30s, 5m), чтобы продлить/обновить TTL подписки объекта на события, пока вы наблюдаете — полезно, чтобы поддерживать активной базовую ленту событий в течение вашей сессии
  • если базовый поток автомата выдаёт ошибку, эндпоинт отвечает пустым массивом, а не завершает запрос неудачей
Path Parameters
  • id
    Type: string Pattern: [0-9a-f]{24}
    required
  • automaton
    Type: string
    required
Responses
  • 200

    OK

  • application/json
  • application/json
  • application/json
  • application/json
Request Example for get/objects/{id}/automatons/{automaton}
curl 'https://dev.rightech.io/api/v1/objects/{id}/automatons/{automaton}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Статус автоматов объекта

​

Передаёт потоком живой статус выполнения автоматов, работающих на объекте.

Модели могут иметь прикреплённые автоматы (сценарии конечного автомата), и объект наследует автоматы своей модели. Этот эндпоинт открывает потоковый ответ с текущим состоянием, логами и статусом этих автоматов по мере их выполнения на конкретном объекте — он сообщает состояние выполнения, а не определение автомата (состояния/переходы), которое является отдельным ресурсом /automatons/:id.

Примечания:

  • по умолчанию соединение возвращает только текущий снимок; добавьте ?watch=true (или любое значение, кроме false), чтобы держать поток открытым и получать обновления по мере изменения состояния автомата
  • передайте ?subscribeToEventsFor=<duration> (например, 30s, 5m), чтобы продлить/обновить TTL подписки объекта на события, пока вы наблюдаете — полезно, чтобы поддерживать активной базовую ленту событий в течение вашей сессии
  • если базовый поток автомата выдаёт ошибку, эндпоинт отвечает пустым массивом, а не завершает запрос неудачей
Path Parameters
  • id
    Type: string Pattern: [0-9a-f]{24}
    required
Responses
  • 200

    OK

  • application/json
  • application/json
  • application/json
  • application/json
Request Example for get/objects/{id}/automatons
curl 'https://dev.rightech.io/api/v1/objects/{id}/automatons' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Запускает автомат на объекте

​

Запускает выполнение сценария автоматизации на объекте.

Используйте это, чтобы начать выполнение сценария конечного автомата (автомата) для конкретного объекта — например, чтобы запустить сценарий мониторинга или управления, когда устройство выходит в сеть. Вы можете передать vars в теле запроса, чтобы задать начальные переменные автомата.

Примечания:

  • если автомат ещё не привязан к объекту, он привязывается автоматически в рамках запуска (не нужно предварительно вызывать API связей отдельно)
  • некоторые автоматы построены сразу на нескольких моделях («мультимодельный» сценарий, координирующий более одного объекта вместе, например датчик и исполнительное устройство, действующие как единый логический блок). Для них объект уже должен принадлежать заранее сформированной группе объектов (по одному на каждую требуемую модель), привязанной к этому автомату — запуск завершается ошибкой «insufficient objects», если группа не заполнена, и «invalid link data», если связи объекта с автоматом не хватает идентификатора группы
  • для обычных (одномодельных) автоматов требования к группировке отсутствуют — любой привязанный объект можно запустить независимо
Path Parameters
  • id
    Type: string Pattern: [0-9a-f]{24}
    required
  • automaton
    Type: string
    required
Responses
  • 200

    OK

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/objects/{id}/automatons/{automaton}/start
curl 'https://dev.rightech.io/api/v1/objects/{id}/automatons/{automaton}/start' \
  --request POST \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Генерирует событие в автомате

​

Отправляет пользовательское событие в работающий автомат.

Сценарии автоматов реагируют на события, чтобы переходить между состояниями. Этот эндпоинт позволяет вызвать произвольное событие (с опциональной полезной нагрузкой) напрямую в конкретный экземпляр автомата, работающий на объекте, так же как это сделал бы автоматический триггер (например, порог телеметрии). Это программный эквивалент ручной генерации события для автомата, работающего на объекте.

Примечания:

  • требует event (идентификатор события) в теле запроса; payload опционален и передаётся в логику перехода автомата
  • автомат не обязательно должен быть запущен через ту же сессию — для генерации события требуется только то, чтобы экземпляр автомата в данный момент работал на объекте
Path Parameters
  • id
    Type: string Pattern: [0-9a-f]{24}
    required
  • automaton
    Type: string
    required
Responses
  • 200

    OK

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/objects/{id}/automatons/{automaton}/emit
curl 'https://dev.rightech.io/api/v1/objects/{id}/automatons/{automaton}/emit' \
  --request POST \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Останавливает автомат на объекте

​

Останавливает работающий сценарий автоматизации на объекте.

Используйте это, чтобы прекратить сценарий, ранее запущенный на объекте, например, при выводе устройства из эксплуатации или приостановке автоматического управления.

Примечания:

  • по умолчанию автомат остаётся привязанным к объекту после остановки, чтобы его можно было запустить снова позже
  • передайте unlink: true в теле запроса (или ?unlink=true), чтобы также удалить связь между автоматом и объектом в рамках остановки
Path Parameters
  • id
    Type: string Pattern: [0-9a-f]{24}
    required
  • automaton
    Type: string
    required
Responses
  • 200

    OK

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/objects/{id}/automatons/{automaton}/stop
curl 'https://dev.rightech.io/api/v1/objects/{id}/automatons/{automaton}/stop' \
  --request POST \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Отправляет команду объекту

​

Запускает выполнение команды, определённой в модели объекта, для этого конкретного объекта. Тело запроса передаётся как параметры команды (например, заданное значение, целевое состояние). Это API, используемый для управления устройством/объектом — например, включения реле, изменения значения конфигурации или вызова любого другого действия, предоставляемого моделью объекта.

Особенности:

  • Имя команды должно существовать в модели объекта; неизвестные команды отклоняются.
  • Некоторые команды помечены в модели как требующие подтверждения (confirm: true). Для них первый вызов без ?confirm=true завершается неудачей, чтобы клиент мог показать пользователю запрос на подтверждение; команда фактически выполняется только после повторения запроса с ?confirm=true. Это предназначено для команд, случайный запуск которых может иметь нежелательные последствия (например, перезагрузка или разблокировка).
  • Если целевой объект офлайн, команда ставится в очередь как отложенная команда и доставляется, когда объект снова выходит в сеть, а не завершается неудачей сразу; команды в очереди, не выполненные слишком долго, отбрасываются.
  • Используйте GET /objects/{id}/logs/commands, чтобы просмотреть историю команд, отправленных объекту, и их результаты.
Path Parameters
  • id
    Type: string
    required
  • command
    Type: string
    required
Responses
  • 200

    OK

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/objects/{id}/commands/{command}
curl 'https://dev.rightech.io/api/v1/objects/{id}/commands/{command}' \
  --request POST \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Данные: метки (Collapsed)

​

Метки — текущие (последние) значения параметров объектов.

Данные: сообщения (Collapsed)

​

Сообщения телеметрии, история значений параметров объектов.

Данные: события (Collapsed)

​

События объектов и системы.

Данные: файлы (Collapsed)

​

Файлы, загруженные в систему.

Данные: таблицы (Collapsed)

​

Автоматизация: автоматы (Collapsed)

​

Автоматизация: обработчики (Collapsed)

​

Автоматизация: геозоны (Collapsed)

​

Геозоны.

Автоматизация: каналы уведомлений (Collapsed)

​

Каналы уведомлений.

Автоматизация: каналы уведомлений Operations

Автоматизация: задачи (Collapsed)

​

Аналитика: дашборды (Collapsed)

​

Дашборды.

Аналитика: отчёты (Collapsed)

​

Отчёты, их построение и готовые сборки.

Доступ: пользователи (Collapsed)

​

Пользователи.

Доступ: пользователи Operations

Доступ: группы (Collapsed)

​

Группы.

Доступ: роли (Collapsed)

​

Роли и права доступа.

Доступ: учётные данные (Collapsed)

​

Учётные данные.

Доступ: учётные данные Operations

Доступ: токены (Collapsed)

​

API-токены для доступа к API.

Доступ: токены Operations

Служебное: связи (Collapsed)

​

Служебное: геокодирование (Collapsed)

​

Геокодирование.

Служебное: геокодирование Operations

Models