MQTTメッセージペイロード仕様

CloudPRNT Version MQTT における、各MQTTメッセージのペイロード仕様について説明します。
MQTTメッセージのペイロードは、全てJSONフォーマットのデータです。

Server to Printer

トピック名(メソッド)一覧

CloudPRNTサーバーがプリンターに対して発行するメッセージの一覧です。

Method Name

Description

Trigger POST

Full MQTT / Pass URL

request-post

プリンターに サーバーポーリング (POST) を実行させます。

request-client-status

プリンターに client-status メッセージを発行させます。

request-get-server-info

プリンターに サーバー設定情報取得リクエスト (GET) を実行させます。

print-job

プリンターに印刷を実行させます。

order-client-action

プリンターに Client Action を実行させます。

claim-barcode-reader

プリンターに接続されているバーコードリーダーが読み取ったデータを要求します。

output-to-display

プリンターに接続されているカスタマーディスプレイを制御します。

apply-starconfiguration

プリンターにStar Configuration Formatを適用し、プリンター設定を変更します。

request-post

概要

プリンターに サーバーポーリング (POST) を実行させるためのメッセージです。
このメッセージを受信したプリンターは サーバーポーリング (POST) を実行します。
この サーバーポーリング (POST) をきっかけに、 CloudPRNT Version HTTP の印刷動作を開始できます。

トピック

star/cloudprnt/to-device/{printermac}/request-post

ペイロード例

{
    "title" : "request-post"
}

ペイロード詳細

Key

Type

Required

Decsription

title

string

true

"request-post"固定。

request-client-status

プリンターに client-status メッセージを発行させるためのメッセージです。
通常、プリンター側で状態変化があった場合のみプリンターからステータス通知メッセージが発行されます。
サーバーがすぐにプリンターの状態を知りたいときはこのメッセージを発行することで、即座にプリンターの状態を取得できます。
プリンターから定期的に client-status を発行させたい場合、サーバー設定情報取得リクエスト (GET) レスポンス (GET)pollingTimeSec キーを参照してください。

トピック

star/cloudprnt/to-device/{printermac}/request-client-status

ペイロード例

{
    "title" : "request-client-status"
}

ペイロード詳細

Key

Type

Required

Decsription

title

string

true

"request-client-status"固定。

request-get-server-info

プリンターに サーバー設定情報取得リクエスト (GET) を任意のタイミングで実行させるためのメッセージです。
このメッセージを受信したプリンターは サーバー設定情報取得リクエスト (GET) を実行します。
取得した設定が、前回取得した設定から変更されていれば、新しい設定でCloudPRNT動作を開始します。

トピック

star/cloudprnt/to-device/{printermac}/request-get-server-info

ペイロード例

{
    "title" : "request-get-server-info"
}

ペイロード詳細

Key

Type

Required

Decsription

title

string

true

"request-get-server-info"固定。

order-client-action

プリンターに Client Action を実行させるためのメッセージです。
プリンターは本メッセージを受け取ると client-status メッセージを発行します。
そのペイロード中にClient Actionの応答が含まれます。

トピック

star/cloudprnt/to-device/{printermac}/order-client-action

ペイロード例

{
    "title" : "order-client-action",
    "clientAction": [ {"request": "<request type>", "options": "<request parameters>"} ]
}
{
    "title" : "order-client-action",
    "clientAction": [
        {"request": "ClientType", "options": ""},
        {"request": "Encodings", "options": ""}
    ]
}

ペイロード詳細

Key

Type

Required

Decsription

title

string

true

"order-client-action"固定。

clientAction

[object]

true

Client Actionオブジェクト

[clientAction].request

string

true

Client Actionリクエスト

[clientAction].options

string

true

Client Actionパラメータ

claim-barcode-reader

プリンターに接続されたバーコードリーダーの読み取ったデータを要求するためのメッセージです。
クレーム要求を受信したプリンターは、バーコードリーダーでデータを読み取ると、client-status メッセージを発行します。
client-status のペイロードに、読み取ったデータが格納されます。

トピック

star/cloudprnt/to-device/{printermac}/claim-barcode-reader

ペイロード例

{
    "title" : "claim-barcode-reader",
    "claimBarcodeReader": [
        {
            "name": "<device name>",
            "claim" : true
        }
    ]
}

ペイロード詳細

Key

Type

Required

Decsription

title

string

true

"claim-barcode-reader"固定。

claimBarcodeReader

[object]

true

バーコードリーダー制御オブジェクト

[claimBarcodeReader].name

string

true

制御したいバーコードリーダーデバイス名を指定

[claimBarcodeReader].claim

boolean

true

true : バーコードリーダー制御開始
false : バーコードリーダー制御終了

output-to-display

プリンターに接続されているカスタマーディスプレイを制御するためのメッセージです。

トピック

star/cloudprnt/to-device/{printermac}/output-to-display

ペイロード例

{
    "title" : "output-to-display",
    "display": [
        {
            "name": "<device name>",
            "message": "<message markup>"
        }
    ]
}

ペイロード詳細

Key

Type

Required

Decsription

title

string

true

"output-to-display"固定。

display

[object]

true

カスタマーディスプレイ制御オブジェクト

[display].name

string

true

制御したいカスタマーディスプレイデバイス名を指定

[display].claim

string

true

カスタマーディスプレイに表示させる内容。
カスタマーディスプレイ を参照してください。

apply-starconfiguration

プリンターにStar Configuration Formatを適用するためのメッセージです。
本メッセージを受信したプリンターは、ペイロードに従いStar Configuration Formatを適用します。
その後、starconfiguration-result メッセージを発行します。

トピック

star/cloudprnt/to-device/{printermac}/apply-starconfiguration

ペイロード例

以下の例では、プリンターはペイロードの starconfiguration で指定されたStar Configuration Formatデータを適用します。

{
    "title" : "apply-starconfiguration",
    "jobToken" : "tokenID",
    "jobType" : "raw",
    "starconfiguration" : "DQogInRpdGxlIjogInN0YXJfY29uZmlndXJhdGlvbiIs..."
}

以下の例では、プリンターはペイロードの starconfiguration で指定されたURLに対し 印刷ジョブリクエスト (GET) を実行し、そのレスポンスで得られたデータを適用します。

{
    "title" : "apply-starconfiguration",
    "jobToken" : "tokenID",
    "jobType" : "url",
    "starconfiguration" : "https://dataserver..."
}

ペイロード詳細

Key

Type

Required

Decsription

title

string

true

"apply-starconfiguration"固定。

jobToken

string

true

各ジョブに割り当てる固有のトークン。

jobType

string

true

raw : starconfigurationキーの値を適用する。
url : starconfigurationキーの値で指定されたURLからデータを 印刷ジョブリクエスト (GET) で取得して適用する。

starconfiguration

string

true

StarConfiguration Formatデータを指定する。

ペイロードに関する補足情報

  • jobToken

    プリンターは直近10件のjobTokenを記憶します。同じjobTokenのapply-starconfigurationメッセージを受信した場合、設定適用処理を行いません。
    重複したjobTokenを受け取った場合、starconfiguration-result メッセージのstatusCodeキーでjobTokenの重複を通知します。
  • starconfiguration

    jobTypeがrawの場合、Base64フォーマットのStar Configuration Formatデータを格納します。
    jobTypeがurlの場合、Star Configuration FormatデータのURLを格納します。

Printer to Server

注釈

プリンターからCloudPRNTサーバーへのMQTTメッセージ発行は、CloudPRNT Version MQTT (Full MQTT / Pass URL)で利用している場合のみ発生します。
CloudPRNT Version MQTT (Trigger POST)では、プリンターからMQTTメッセージを発行することはありません。

トピック名(メソッド)一覧

プリンターがCloudPRNTサーバーに対して発行するメッセージの一覧。

Method Name

Description

Trigger POST

Full MQTT / Pass URL

client-status

プリンターのステータスを通知します。

print-result

受信した print-job メッセージに対する印刷結果を通知します。

starconfiguration-result

受信した apply-starconfiguration メッセージに対する結果を通知します。

client-will

プリンターがMQTTブローカーから切断されたことを通知します。

client-status

概要

プリンターのステータスをCloudPRNTサーバーに通知するためのメッセージです。
プリンターは以下の場面で、本メッセージを発行します。
  • MQTTブローカーに接続したとき

  • プリンターステータスが変化したとき

  • バーコードリーダーのクレーム中、バーコードを読み取ったとき

  • CloudPRNTサーバーから request-client-status メッセージを受け取ったとき

  • CloudPRNTサーバーから order-client-action メッセージを受け取ったとき

トピック

star/cloudprnt/to-server/{printermac}/client-status

ペイロード詳細

Key

Type

Required

Decsription

title

string

true

"client-status"固定。

他のキーと値の仕様は サーバーポーリング (POST)JSONリクエスト に準じます。

starconfiguration-result

概要

CloudPRNTサーバーから apply-starconfiguration メッセージを受け取り、StarConfigの設定動作を行ったあと、設定結果を通知するためのメッセージです。

トピック

star/cloudprnt/to-server/{printermac}/starconfiguration-result

ペイロード例

{
    "title" : "starconfiguration-result",
    "jobToken" : "tokenID",
    "statusCode": "200%20OK",
    "printerMAC": "<Ethernet MAC address>",
    "uniqueID": "<server assigned ID>",
    "firmware": "success",
    "skip": 0,
    "error": 0
}

ペイロード詳細

Key

Type

Required

Decsription

title

string

true

"starconfiguration-result"固定。

jobToken

string

true

CloudPRNTサーバーが発行した apply-starconfiguration メッセージにより割り当てられたjobToken

statusCode

string

true

プリンターステータスコード を参照

printerMAC

string

true

プリンターのEthernetMACアドレス

uniqueID

string

false

CloudPRNTサーバーが Client ActionSetID で割り当てたID

firmware

string

false

ファームウェア更新処理をした場合の実行結果

skip

string

true

処理をスキップされた項目数

error

string

true

処理がエラーとなった項目数

client-will

概要

プリンターがMQTTブローカーにConnectする際に登録するWillメッセージです。
プリンターが意図せずネットワークから切断されたとき、ブローカーから配信されます。
プリンターモデルによっては、電源を落として正常終了したとき、ブローカーに登録したWillではなく、プリンターがその場で同じフォーマットのメッセージを発行します。
unintentionalDisconnection キーの値により、異常切断かどうか判断できます。

トピック

star/cloudprnt/to-server/{printermac}/client-will

ペイロード例

{
    "title" : "client-will",
    "printerMAC": "<Ethernet MAC address>",
    "uniqueID": "<server assigned ID>",
    "unintentionalDisconnection" : true
}

ペイロード詳細

Key

Type

Required

Decsription

title

string

true

"client-will"固定。

printerMAC

string

true

プリンターのEthernetMACアドレス

uniqueID

string

false

CloudPRNTサーバーが Client ActionSetID で割り当てたID

unintentionalDisconnection

boolean

false

true : プリンターがネットワークから意図せず切断された。
false : プリンターをソフトスイッチで正しく電源OFFした。