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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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://sandbox.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