paho-mqttのpublishのエラー値およびreturn値について

  • URLをコピーしました!

pythonでMQTTを扱うならpaho-mqttのライブラリを使うのが定番です。

paho_mqttを扱う際のMQTTpublishのreturn値にどのようなものがあるのか気になったため(実は,調べてもなかなか出てこなかった...),ライブラリのコードから探ってみた。

目次

Publish時のreturn値

エラーコードは以下のようになります。
おおよそエラーコードの文言でどのような状態か理解できますね。

# Error values
MQTT_ERR_AGAIN = -1
MQTT_ERR_SUCCESS = 0
MQTT_ERR_NOMEM = 1
MQTT_ERR_PROTOCOL = 2
MQTT_ERR_INVAL = 3
MQTT_ERR_NO_CONN = 4
MQTT_ERR_CONN_REFUSED = 5
MQTT_ERR_NOT_FOUND = 6
MQTT_ERR_CONN_LOST = 7
MQTT_ERR_TLS = 8
MQTT_ERR_PAYLOAD_SIZE = 9
MQTT_ERR_NOT_SUPPORTED = 10
MQTT_ERR_AUTH = 11
MQTT_ERR_ACL_DENIED = 12
MQTT_ERR_UNKNOWN = 13
MQTT_ERR_ERRNO = 14
MQTT_ERR_QUEUE_SIZE = 15

publish エラー値を見る

作成したインスタンスでpublishを行う
rcにリターンコードを格納してみる。

client = mqtt.Client() #インスタンスの作成
rc = client.publish(topic, message) #MQTTPublish処理
print(rc)
----------------
出力 (0,1)

エラーコードはタプルで帰ってくるようだ。

第1パラメータエラーコードで,第2パラメータmessageIDとなるようです。
今回は,エラーコード:0 (MQTT_ERR_SUCCESS),messageID: 1 となる。

ということなので,エラーコードで処理を判定する場合は第1パラメータをみることになるだろう。

rc = client.publish(topic, message) #MQTTPublish処理

if rc[0] != 0:
  #ERROR!!
else:
  #SUCCESS!!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次