EzData2 は現在、MQTT と WebSocket の 2 種類の接続方式を提供しており、デバイス側でのデータ連携を実現できます。
デバイスを接続する前に、ハードウェアデバイスの MAC アドレスを使用して登録インターフェースを呼び出し、Device Token を取得する必要があります。登録が完了し、Device Token を正常に取得した後、my.m5stack.com にアクセスして個人アカウントにログインし、Add Group をクリックして Token オプションを選択します。
Device Token をコピーして貼り付けることで作成が完了し、Device Token とアカウントの紐付けが行われます。単一デバイスの Device Token は、1 つのデータセット Group に相当します。
デバイス側では、以下の通信プロトコルを参照し、Device Token によるログイン認証完了後、データフィールドの追加・削除・更新・取得(CRUD)操作を行うことができます。
| コード | 種別 | 説明 |
|---|---|---|
| 100 | データ操作 | デバイス側でデータを追加 |
| 101 | データ操作 | デバイス側でデータを変更 |
| 102 | データ操作 | デバイス側でデータを削除 |
| 103 | データ照会 | デバイス側でデータ一覧を取得 |
| 104 | データ照会 | デバイス側でデータ詳細を取得 |
| 105 | ファイルアップロード | デバイス側でファイルをアップロード(通知) |
| 106 | ユーザー操作 | ユーザー側で QR コードをスキャン |
| 107 | ユーザー操作 | ユーザー側でデータを変更 |
| 108 | ユーザー操作 | ユーザー側でデータを削除 |
| 109 | ユーザー操作 | ユーザー側でデータを追加 |
| 500 | エラー | デバイス側リクエストエラー |
エンドポイント: https://ezdata2.m5stack.com/api/v2/device/registerMac メソッド: POST 説明: MAC アドレスを使用してデバイスを登録し、deviceToken を生成します。
リクエストパラメータ:
Product name フィールドを参照{ "deviceType": "", "mac": "" }
レスポンスパラメータ:
{ "code": 0, "data": "", "msg": "" }
エンドポイント: https://ezdata2.m5stack.com/api/v2/device/uploadDeviceFile メソッド: POST 説明: HTTP 経由でファイルをアップロードします。アップロードが成功すると、サーバーは WebSocket / MQTT を通じて cmd: 105 のレスポンスメッセージを送信します。
WS アドレス: wss://ezdata2.m5stack.com/ws
リクエスト:
{ "deviceToken": "4fbb52fb5b6243e083377f45d216820f" }
レスポンス:
device Login successful
リクエスト:
{ "deviceToken": "4fbb52fb5b6243e083377f45d216820f", "body": "ping" }
レスポンス:
pong
サーバーアドレス: uiflow2.m5stack.com ポート: 1883
接続情報:
名称: ez{mac}ez
ClientId: ez{mac}ez
ユーザー名: {deviceToken}(デバイスの Token)
mac: デバイスの MAC アドレス(「:」区切りなし、大文字小文字は不問)
Topic(トピック):
$ezdata/{deviceToken}/up$ezdata/{deviceToken}/down以下は WebSocket または MQTT のメッセージボディ内容です。
リクエスト:
{ "deviceToken": "4fbb52fb5b6243e083377f45d216820f", "body": { "name": "adasd", "value": "ddsad", "requestType": 100 } }
レスポンス:
{ "body": { "deviceToken": "4fbb52fb5b6243e083377f45d216820f", "name": "adasd", "value": "ddsad" }, "cmd": 100, "code": 200 }
リクエスト:
{ "deviceToken": "4fbb52fb5b6243e083377f45d216820f", "body": { "name": "adasd", "value": "ddsad", "requestType": 101 } }
レスポンス:
{ "body": { "deviceToken": "4fbb52fb5b6243e083377f45d216820f", "name": "adasd", "value": "ddsad" }, "cmd": 101, "code": 200 }
リクエスト:
{ "deviceToken": "4fbb52fb5b6243e083377f45d216820f", "body": { "name": "adasd(3)", "value": "ddsad", "requestType": 102 } }
レスポンス:
{ "body": { "deviceToken": "4fbb52fb5b6243e083377f45d216820f", "name": "adasd(3)", "value": "ddsad" }, "cmd": 102, "code": 200 }
リクエスト:
{ "deviceToken": "4fbb52fb5b6243e083377f45d216820f", "body": { "requestType": 103 } }
レスポンス:
{ "body": [ { "createTime": 1751274100000, "dataToken": "6a330c4bf0924da3a2b11c833f9c2db1", "id": "6a330c4bf0924da3a2b11c833f9c2db1", "name": "adasd", "updateTime": 1751274100000, "value": "ddsad" }, { "createTime": 1751274119000, "dataToken": "60ea29ff4df446358b7bf2151939abb4", "id": "60ea29ff4df446358b7bf2151939abb4", "name": "adasd(1)", "updateTime": 1751274119000, "value": "ddsad" } ], "cmd": 103, "code": 200 }
リクエスト:
{ "deviceToken": "4fbb52fb5b6243e083377f45d216820f", "body": { "name": "adasd", "requestType": 104 } }
レスポンス:
{ "body": { "createTime": 1751274100000, "dataToken": "6a330c4bf0924da3a2b11c833f9c2db1", "id": "6a330c4bf0924da3a2b11c833f9c2db1", "name": "adasd", "updateTime": 1751274100000, "value": "ddsad" }, "cmd": 104, "code": 200 }
説明:本メッセージは HTTP インターフェースによるアップロードによってトリガーされ、デバイス側は長時間接続を通じてレスポンスを受信します。
リクエスト:
(HTTP https://ezdata2.m5stack.com/api/v2/device/uploadDeviceFile を通じて送信)
WebSocket / MQTT レスポンス:
{ "body": { "deviceToken": "4fbb52fb5b6243e083377f45d216820f", "name": "deviceFile", "value": "https://ezdata2-oss-dev.m5stack.com/37a6259cc0c1dae299a7866489dff0bd/deviceFile/deviceFile.jpg" }, "cmd": 105, "code": 200 }