在Azure IoT中心中创建具有设备孪生的额外字段标签的设备

时间:2018-07-04 14:20:18

标签: azure-iot-hub azure-iot-sdk

在Azure IoT中心中创建设备时是否可以在deviceTwin的标签中定义属性?或者需要先创建设备,然后获取并更新deviceTwin。似乎“ Registry.create”(来自节点sdk)不接受此类选项。我要实现的目标是

`...
const device ={
    deviceId: '1',
    tags: {
        location: 'London'
    }
}
registry.create(device, callback)
...`

1 个答案:

答案 0 :(得分:1)

在节点中使用Registry创建设备时,无法在Device Twin的标签中定义属性。实际上,Registry类中的create方法正在将PUT REST API调用到create or update device。设备信息应参考请求正文,它不接受请求正文中的属性项。

但是,有一种解决方法。您可以使用Bulk Create Or Update Devices创建带有标签和properties的新设备。

例如,将请求正文发布如下:

[
    {"Id":"7ADF1F8E-0208-49B7-B62A-021323EF1B55","tags":{"location": "London"},"properties":{"desired":{"Temperature":30}},"Status":"enable","importMode":"create"},
    {"Id":"F2805601-1F4D-459F-9D8F-E2F7D3638EF5","tags":{"location": "New York"},"properties":{"desired":{"Temperature":31}},"Status":"enable","importMode":"create"},
    {"Id":"D0447599-5B2D-4EDB-A809-29643CC7E30E","tags":{"location": "Paris"},"properties":{"desired":{"Temperature":32}},"Status":"enable","importMode":"create"}
]

之后,您将在设备twin中找到标签和所需的属性。

enter image description here