Arduino 将事件发布到MQTT时出现主题错误

Arduino 将事件发布到MQTT时出现主题错误,arduino,ibm-cloud,publish-subscribe,mqtt,node-red,Arduino,Ibm Cloud,Publish Subscribe,Mqtt,Node Red,我使用的是来自ESP8266节点MCU和Arduino IDE的pubsub库 我的设备是用IBM BLUMEMIX IOT基金会(IOTF)注册的。 我使用的客户端名称是 char* myclient = "d:ORGID:Devicetype:Deviceid"; 其中orgid是我从Bluemix获得的orgid,设备类型和id来自我在IoTF中创建和注册的设备。我要发布的主题在我的代码中是这样的: client.publish("iot-2/evt/status/fmt/json"

我使用的是来自ESP8266节点MCU和Arduino IDE的pubsub库

我的设备是用IBM BLUMEMIX IOT基金会(IOTF)注册的。 我使用的客户端名称是

char* myclient = "d:ORGID:Devicetype:Deviceid"; 
其中orgid是我从Bluemix获得的orgid,设备类型和id来自我在IoTF中创建和注册的设备。我要发布的主题在我的代码中是这样的:

client.publish("iot-2/evt/status/fmt/json", msg);
在节点红色中,我在节点中有一个IOT,查看设备状态并使用Bluemix服务进行身份验证

当我将调试节点放在节点中查看IoT中的完整消息对象时,我看到了此错误(注意:我将此调试输出中的orgid更改为orgid):


我想知道我的话题是怎么变成这里的。有什么想法吗?

这是因为我的代码订阅了“iot-2/evt/command\u id/fmt/format\u string”而不是“iot-2/cmd/command\u id/fmt/format\u string”—一旦我修复了它,一切都很顺利。

这是因为我的代码订阅了“iot-2/evt/command\u id/fmt/format\u string”而不是“iot-2/evt/command\u id/fmt/format\u string”“iot-2/cmd/command\u id/fmt/format\u string”-一旦我解决了这个问题,一切都很顺利

{
    "_msgid": "9f433f7b.60bcc",
    "deviceId": "InterConnect",
    "deviceType": "nodeMCU",
    "payload": {
        "Action": "Disconnect",
        "ClientAddr": "24.47.149.38",
        "ClientID": "d:ORGID:nodeMCU:InterConnect",
        "CloseCode": 276,
        "ConnectTime": "2016-02-14T18:32:19.328Z",
        "Port": 1883,
        "Protocol": "mqtt4-tcp",
        "ReadBytes": 111,
        "ReadMsg": 0,
        "Reason": "The topic is not valid.",
        "SecureConnection": false,
        "Time": "2016-02-14T18:32:19.397Z",
        "User": "use-token-auth",
        "WriteBytes": 4,
        "WriteMsg": 0
    },
    "topic": "iot-2/type/nodeMCU/id/InterConnect/mon"
}