使用SensorDataUnitType创建传感器

时间:2019-05-01 12:18:00

标签: azure-digital-twins

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

这是我发送来创建新设备的有效载荷:

{"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 个答案:

答案 0 :(得分:2)

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

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

但是按照惯例应该是

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

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

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