簡體   English   中英

將事件發布到MQTT時出現主題錯誤

[英]Topic errors when publishing an event to MQTT

我正在使用ESP8266 NodeMCU和Arduino IDE中的pubsub庫。

https://github.com/knolleary/pubsubclient/tree/master/examples/mqtt_esp8266

我的設備已在IBM Bluemix IoT Foundation(IoTF)中注冊。

我正在使用的客戶端名稱是

char* myclient = "d:ORGID:Devicetype:Deviceid"; 

orgid是我來自Bluemix的orgID,並且Device type和ID來自我在IoTF中創建並注冊的設備。 我要發布到的主題就是我代碼中的這一行:

client.publish("iot-2/evt/status/fmt/json", msg);

在Node-RED中,我有一個IOT-in節點,它查看設備狀態並使用Bluemix服務進行身份驗證。

當我放置一個調試節點從IoT-in節點查看完整的消息對象時,我看到此錯誤(注意:在此調試輸出中,我將orgid更改為ORGID):

{
    "_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"
}

我想知道我的主題如何更改為此處顯示的內容。 有任何想法嗎?

發生這種情況是因為我的代碼正在訂購“ iot-2 / evt / command_id / fmt / format_string”而不是“ iot-2 / cmd / command_id / fmt / format_string”-一旦我解決了問題,一切就很好了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM