如何使用 NodeRed 或任何 REST 客户端发送设备管理请求
How to send a device management request using NodeRed or any REST client
我正在尝试从 NodeRed Flow 发送 DM 固件更新命令。
函数节点:
msg.payload = {"MgmtInitiationRequest": {
"action":"firmware/update",
"devices": [{
"typeId": "myType",
"deviceId": "myDevice"
}]
}}
msg.headers={"Content-Type":"application/json"}
return msg;
我将它发送到带有 POST 到
的 http 请求节点
https://orgid.internetofthings.ibmcloud.com/api/v0002/mgmt/requests
使用 api 密钥的基本身份验证。我基于 Initiate a device management request
我找回了 403,文档中的内容为:
One or more of the devices does not support the requested action
有人看到我遗漏了什么吗?从物联网平台 UI 到同一个 devicetype/deviceid,它都能正常工作。
编辑:如果我使用像 Postman 这样的 Rest 客户端,同样的 403。
当您的设备宣布自己作为托管设备时,它是否发布了它所支持的受支持命令集?
一个设备连接到 Watson IoT Platform 并使用受管设备操作成为受管设备。
看起来像这样
主题:iotdevice-1/mgmt/manage
{
...
"supports":{
"deviceActions":是的,
"firmwareActions": 布尔值
},
...
},
...
}
https://console.ng.bluemix.net/docs/services/IoT/devices/device_mgmt/index.html
大摇大摆的 API 文档有点误导,因为 'body' 参数被赋予了一个名称。
但是,与其他 POST API 一样,该名称实际上并未作为有效负载的一部分包含在任何地方。
有效负载应如下所示:
{
"action": "firmware/update",
"devices": [
{
"typeId": "string",
"deviceId": "string"
}
]
}
文档中的此页面提供了更多详细信息:
https://console.ng.bluemix.net/docs/services/IoT/devices/device_mgmt/requests.html#firmware-actions-update
我正在尝试从 NodeRed Flow 发送 DM 固件更新命令。
函数节点:
msg.payload = {"MgmtInitiationRequest": {
"action":"firmware/update",
"devices": [{
"typeId": "myType",
"deviceId": "myDevice"
}]
}}
msg.headers={"Content-Type":"application/json"}
return msg;
我将它发送到带有 POST 到
的 http 请求节点https://orgid.internetofthings.ibmcloud.com/api/v0002/mgmt/requests
使用 api 密钥的基本身份验证。我基于 Initiate a device management request
我找回了 403,文档中的内容为:
One or more of the devices does not support the requested action
有人看到我遗漏了什么吗?从物联网平台 UI 到同一个 devicetype/deviceid,它都能正常工作。
编辑:如果我使用像 Postman 这样的 Rest 客户端,同样的 403。
当您的设备宣布自己作为托管设备时,它是否发布了它所支持的受支持命令集?
一个设备连接到 Watson IoT Platform 并使用受管设备操作成为受管设备。
看起来像这样
主题:iotdevice-1/mgmt/manage
{ ... "supports":{ "deviceActions":是的, "firmwareActions": 布尔值 }, ... }, ... }
https://console.ng.bluemix.net/docs/services/IoT/devices/device_mgmt/index.html
大摇大摆的 API 文档有点误导,因为 'body' 参数被赋予了一个名称。 但是,与其他 POST API 一样,该名称实际上并未作为有效负载的一部分包含在任何地方。
有效负载应如下所示:
{
"action": "firmware/update",
"devices": [
{
"typeId": "string",
"deviceId": "string"
}
]
}
文档中的此页面提供了更多详细信息: https://console.ng.bluemix.net/docs/services/IoT/devices/device_mgmt/requests.html#firmware-actions-update