如何通过IoT Runtime预配设备时自动分配设备模板?
在Azure IoT Runtime预配时自动分配设备模板的正确配置方式
要通过IoT Runtime预配设备时自动关联设备模板(数字孪生模型),你需要在config.toml的**[provisioning]区块内的payload字段**中指定modelId,这是你之前配置未生效的核心原因——格式或位置不对。
具体配置步骤:
- 打开设备上的
config.toml文件,定位到[provisioning]配置段 - 在该段内添加
payload字段,值为包含modelId的JSON字符串(必须用单引号包裹,避免TOML解析冲突) - 确保
modelId的键名是小写的modelId,对应的值是你已在IoT Hub中发布的数字孪生模型ID
示例配置(DPS预配场景):
[provisioning] source = "dps" global_endpoint = "https://global.azure-devices-provisioning.net" id_scope = "your-id-scope" registration_id = "your-device-reg-id" authentication = "symmetric_key" symmetric_key = "your-symmetric-key" # 关键配置:在payload中指定modelId payload = '{"modelId": "dtmi:com:example:YourDeviceModel;1"}'
示例配置(直接IoT Hub预配场景):
[provisioning] source = "manual" device_connection_string = "HostName=your-hub.azure-devices.net;DeviceId=your-edge-device;SharedAccessKey=your-key" # 关键配置:在payload中指定modelId payload = '{"modelId": "dtmi:com:example:YourDeviceModel;1"}'
额外注意事项:
- 必须确保你指定的
modelId对应的数字孪生模型已经在目标IoT Hub中完成上传并发布,否则预配时无法完成关联 - 不要将
modelId作为独立的自定义字段放在config.toml的其他位置,必须嵌套在payload的JSON结构内 - TOML对字符串格式敏感,
payload的JSON内容必须用单引号包裹,内部的JSON键值对使用双引号,避免解析错误
内容的提问来源于stack exchange,提问作者Divakar
相关产品推荐
相关产品推荐

