如何使用 NodeRed 或任何 REST 客户端发送设备管理请求



我正在尝试从 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 密钥进行基本身份验证。 我基于启动设备管理请求

我得到一个 403,文档有:

一个或多个设备不支持请求的操作

有人看到我错过了什么吗? 从物联网平台UI到相同的设备类型/设备ID,它都可以正常工作。

编辑:如果我使用像邮递员这样的 Rest 客户端,则相同的 403。

招摇的 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

您的设备在宣布自己为受管设备时是否发布了它支持的命令集?

设备连接到 Watson IoT 平台,并使用受管设备操作成为受管设备

看起来像这样

主题: 物联网设备-1/管理/管理

{... "支持":{ "设备操作":真, "固件操作":布尔值 },... },...}

https://console.ng.bluemix.net/docs/services/IoT/devices/device_mgmt/index.html

相关内容

  • 没有找到相关文章

最新更新