使用 SensorDataUnitType 创建传感器

Create a sensor with SensorDataUnitType

我正在尝试创建一个带有传感器的新设备。

这是我为创建新设备而发送的负载:

{"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"
}

传感器数据类型是:

{
    "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."
}}

SensorDataType 和 SensorDataUnitType 之间似乎有命名约定。惯例是 SensorDataUnitType 需要以完整的 SensorDataType 结尾。在您的示例中,您有:

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

但按照惯例应该是

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

当然,您不能只更改 KilowattHourEnergy,因为它在系统 ontology 中。因此,为了使其正常工作,我必须将 KilowattHourEnergyJson 创建为一种新类型。

我想最完整的答案应该包括,在您的情况下,SensorDataType 可能不应该是 JSON,而应该是 Energy。