Создать датчик с SensorDataUnitType - PullRequest
2 голосов
/ 01 мая 2019

Я пытаюсь создать новое устройство с датчиком (-ами).

Это полезная нагрузка, которую я отправляю для создания нового устройства:

{"Name":"DeviceABC","HardwareId":"D4xxx425","SpaceId":"xxxx-xxx-xx-xx-xxx","Status":"Provisioned","CreateIoTHubDevice":false,"Properties":[{"Name":"VendorName","Value":"MyVendor"},{"Name":"VendorDeviceId","Value":"D4xxx19425"},{"Name":"VendorDeviceType","Value":"electricity"}],"Sensors":[{"pollRate":0,"id":null,"dataType":"Json","dataUnitType":"KilowattHourEnergy","deviceId":null,"portType":null,"port":"electricity","spaceId":null,"type":"Classic"}]}

В этом случае я хочу использовать встроенный тип. КВт.ч

 {
    "id": 186,
    "category": "SensorDataUnitType",
    "name": "KilowattHourEnergy",
    "disabled": false,
    "logicalOrder": 0,
    "friendlyName": "kWh"
}

Тип SensorDataType:

{
    "id": 314,
    "spaceId": "xxxx-xx-xxx-xx-xxxx",
    "category": "SensorDataType",
    "name": "Json",
    "disabled": false,
    "logicalOrder": 0
}

Когда я делаю это для других устройств без указания dataUnitType в объекте датчика, он работает нормально. Но как только я включаю его, я получаю это:

{
"error": {
    "code": "400.600.000.000",
    "message": "Invalid datatype/dataunittype combination used on sensor."
}}

1 Ответ

2 голосов
/ 01 мая 2019

Кажется, существует соглашение об именовании между SensorDataType и SensorDataUnitType. Соглашение состоит в том, что SensorDataUnitType должен заканчиваться полным SensorDataType. В вашем примере у вас есть:

"dataType":"Json",
"dataUnitType":"KilowattHourEnergy",

Но в соответствии с соглашением это должно быть

"dataType":"Json",
"dataUnitType":"KilowattHourEnergyJson",

Конечно, вы не можете просто изменить KilowattHourEnergy, потому что это системная онтология. Поэтому, чтобы заставить его работать, мне нужно было создать KilowattHourEnergyJson как новый тип.

Я полагаю, что наиболее полный ответ будет включать, что в вашем случае SensorDataType, вероятно, не должен быть JSON, но должен быть Energy.

...