Не удается добавить новый датчик в объектную модель - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь изменить предоставленный быстрый образец здесь .Я попытался добавить несколько пользовательских типов данных датчика, но это не удается.Затем я попробовал несколько типов данных, упомянутых в документации, которые тоже не удалось.Я получаю сообщение об ошибке ниже

Creating Sensor: {
    "DataType": "Noise",
    "DeviceId": "some-device-id",
    "HardwareId": "SAMPLE_SENSOR_NOISE"
  }
  Request: POST 
https://******.*******.azuresmartspaces.net/management/api/v1.0/sensors
Response Status: 404, NotFound , {"error": 
{"code":"404.600.000.001","message":"There is no SensorDataType of the 
given name."}}
  1. Можем ли мы добавить пользовательский тип данных датчика?
  2. Если нет, то каковы встроенные типы данных?или если да, то что здесь пошло не так?

1 Ответ

0 голосов
/ 19 февраля 2019

Вам необходимо опубликовать DataType при создании объекта Sensor.Используйте «Нет», если вы хотите изменить его позже.Документы Swagger показывают «Модель», которую вы можете развернуть, и видите необходимые поля.

Если DataType отсутствует в api / v1 / system / types, вам необходимо включить его или создать новый DataType.Создайте новый DataType POST для типов с необходимой информацией.Минимум - это TypeName и SpaceID для точного соответствия типу.Мой типичный шаблон - создание корневого пространства и добавление в него любых пользовательских объектов-близнецов, таких как типы.

Я считаю, что это также регистрозависимые имена.

https://{servicename}.{region}.azuresmartspaces.net/management/swagger/ui/index#/Types 

РЕДАКТИРОВАТЬ:

Проверьте ваши онтологии с помощью:

https://{servicename}.{region}.azuresmartspaces.net/management/api/v1.0/ontologies

Выберите их по ID и POST, чтобы установить их в true, чтобы получитьвсе доступные встроенные типы:

[
    {
        "id": 1,
        "name": "Required",
        "loaded": true
    },
    {
        "id": 2,
        "name": "Default",
        "loaded": true
    },
    {
        "id": 3,
        "name": "BACnet",
        "loaded": true
    },
    {
        "id": 4,
        "name": "Advanced",
        "loaded": true
    }
]

Затем вы можете запросить все данные типы:

https://{servicename}.{region}.azuresmartspaces.net/management/api/v1.0/types?includes=Description,FullPath,Ontologies,Space

Вы должны получить что-то вроде:

[
    {
        "id": 1,
        "category": "DeviceSubtype",
        "name": "None",
        "disabled": false,
        "logicalOrder": 0,
        "fullName": "None",
        "spacePaths": [
            "/system"
        ],
        "ontologies": [
            {
                "id": 1,
                "name": "Required",
                "loaded": true
            }
        ]
    },
    {
        "id": 2,
        "category": "DeviceType",
        "name": "None",
        "disabled": false,
        "logicalOrder": 0,
        "fullName": "None",
        "spacePaths": [
            "/system"
        ],
        "ontologies": [
            {
                "id": 1,
                "name": "Required",
                "loaded": true
            }
        ]
    },
    {
        "id": 3,
        "category": "DeviceBlobSubtype",
        "name": "None",
        "disabled": false,
        "logicalOrder": 0,
        "fullName": "None",
        "spacePaths": [
            "/system"
        ],
        "ontologies": [
            {
                "id": 1,
                "name": "Required",
                "loaded": true
            }
        ]
    },
    ...Objects,
]
...