Я пишу сервис для пересылки данных наших датчиков на платформу Cumulocity.Я спроектировал структуру так, чтобы все данные сначала отправлялись нашему основному арендатору, а затем данные устройств для каждого клиента пересылались соответствующим арендаторам с помощью Data Broker.
Я могу группировать устройства вручную и пересылать по группам, но я нене хочу иметь дело с этим каждый раз, когда добавляется новое устройство. Данные сенсора содержат имя клиента.Возможно, я могу добавить имя клиента в свойства устройства (например, device_type) и использовать его в качестве фильтра, но я хочу избежать этого, если это возможно.Поэтому я подумал, что когда данные датчика попадают в мою конечную точку, я делаю что-то вроде этого:
Посмотрите, существует ли устройство в базе данных. Если оно существует, просто опубликуйте данные измерений.
Если не посмотреть базу данных группы (просто хранилище значений ключей, содержащее имена клиентов и идентификаторы управляемых объектов соответствующих групп из Cumulocity), чтобы узнать, есть ли запись для клиента.
Если не добавить запись и создать группу с именем клиента. Затем добавьте устройство в группу.
Если оно существует, просто добавьте устройствов группу.
Я попытался добавить устройства в группы с помощью REST, и это работает.Проблема в том, что я не могу создать группу устройств с REST.
Я посмотрел примеры запросов Cumulocity API и попытался немного их настроить.
Я попытался отправить запрос POST на {{url}} / inventory / managedObjects as:
{
"name": "TestDeviceGroup",
"c8y_IsDeviceGroup": {}
}
Возвращает 201 созданный, но я не вижу группу.Когда я пытаюсь получить коллекцию групп, я вижу ее там как управляемый объект с новым идентификатором.
Я пытался добавить новое устройство к этому объекту как дочерний ресурс.
{{url}} / inventory / managedObjects / {{GroupId}} / childAssets
{
"managedObject": "id:{{deviceId}}"
}
Возвращает 201 созданное, но ГРУППА устройства не обновляется.
Если я воссоздаю этот сценарий с созданной группойс пользовательским интерфейсом и его идентификатором все работает нормально, и устройство добавляется в группу.
Как я понимаю, то, что я создаю, не является допустимой группой устройств, и это главная проблема.Поэтому мой вопрос: как я могу создать группу устройств с REST?