MQTTメッセージTopic仕様

CloudPRNT Version MQTT における、MQTTメッセージのTopic仕様について説明します。

CloudPRNTサーバー側

Subscribe

CloudPRNTサーバーは、以下のトピックでメッセージを購読します。
CloudPRNTサーバーと同じMQTTブローカーに接続する全てのプリンターからのメッセージを購読します。
star/cloudprnt/to-server/#
受信トピック例
star/cloudprnt/to-server/00:11:22:aa:bb:cc/client-status
star/cloudprnt/to-server/00:11:22:aa:bb:cc/print-result

注釈

CloudPRNT Version MQTT (Trigger POST)においては、プリンターからMQTTメッセージは発行されません。
そのため、CloudPRNTサーバーはMQTTメッセージを購読する必要はありません。

Publish

以下のトピックでプリンターに対するメッセージを発行します。
トピックでプリンター個体を指定することができます。
star/cloudprnt/to-device/{printermac}/{method}
発行トピック例
star/cloudprnt/to-device/00:11:22:aa:bb:cc/print-job
star/cloudprnt/to-device/00:11:22:aa:bb:cc/request-post

プリンター側

Subscribe

CloudPRNT Version MQTT で動作しているプリンターは、以下のトピックでメッセージを購読します。
自身のMACアドレスを指定するメッセージのみ受信します。
star/cloudprnt/to-device/{printermac}/#

Publish

CloudPRNT Version MQTT (Full MQTT / Pass URL) で動作しているプリンターは、以下のトピックでメッセージを発行します。
サーバーは、トピックだけでメッセージの送り元、メソッドを識別できます。
star/cloudprnt/to-server/{printermac}/{method}

オプション : トピック名のカスタマイズ

上記で説明した通り、トピック名は以下をデフォルトとしています。
サーバー向けメッセージ : star/cloudprnt/to-server/{printermac}/{method}
プリンター向けメッセージ : star/cloudprnt/to-device/{printermac}/{method}

オプション機能として、サーバー設定情報取得リクエスト (GET) のサーバーレスポンスで取得した設定値により、プリンターが購読・発行するトピック名のプレフィックスを任意に変更することができます。

例 : レスポンスボディJSONにて、以下のように記載します。
"deviceSubscribeTopicName" : "test/system/to-device/{MAC}",
"devicePublishTopicName" : "test/system/to-server/{MAC}",
上記の設定例により、プリンターは以下の購読・発行を行います。
  • プリンターがSubscribeするトピック名 : test/system/to-device/00:11:22:aa:bb:cc/#

  • プリンターがPublishするトピック名 : test/system/to-server/00:11:22:aa:bb:cc/{method}

deviceSubscribeTopicNameキーの値に対し、/#を付与したものが、プリンターがSubscribeするトピック名になります。
devicePublishTopicNameキーの値に対し、/{method}を付与したものが、プリンターがPublishするトピック名になります。{method}の実際の値はclient-status, print-resultなどです。