2

我正在尝试使用传感器创建一个新设备。

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

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

1 回答 1

2

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

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

但是按照惯例应该是

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

当然,您不能只更改 KilowattHourEnergy,因为它位于系统本体中。所以为了让它工作,我必须创建 KilowattHourEnergyJson 作为一种新类型。

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

于 2019-05-01T13:56:56.417 回答