EzData2 currently provides two connection methods, MQTT and WebSocket, for device-side data interaction. Before device access, the hardware device MAC address must be used to call the registration API to obtain a Device Token. After registration is completed and the Device Token is successfully obtained, visit my.m5stack.com to log in to your personal account, click Add Group, and select the Token option. Copy and paste the Device Token to create the Group, completing the binding between the Device Token and the account. A single device’s Device Token corresponds to a data collection Group. Referring to the communication protocol below, after logging in and authenticating with the Device Token, the device can perform create, read, update, and delete operations on data fields.
| Code | Type | Description |
|---|---|---|
| 100 | Data | Device adds data |
| 101 | Data | Device updates data |
| 102 | Data | Device deletes data |
| 103 | Query | Device queries data list |
| 104 | Query | Device queries data details |
| 105 | Upload | Device uploads file (notification) |
| 106 | User | User scans QR code |
| 107 | User | User updates data |
| 108 | User | User deletes data |
| 109 | User | User adds data |
| 500 | Error | Device request error |
API: https://ezdata2.m5stack.com/api/v2/device/registerMac Method: POST Description: Register a device via MAC address and generate a deviceToken.
Request Parameters:
Product name field in Board Definitions.{
"deviceType": "",
"mac": ""
} Response Parameters:
{
"code": 0,
"data": "",
"msg": ""
} API: https://ezdata2.m5stack.com/api/v2/device/uploadDeviceFile Method: POST Description: Upload files via HTTP. After successful upload, the server will send a cmd: 105 response message via WebSocket/MQTT.
WS Address: wss://ezdata2.m5stack.com/ws
Request:
{
"deviceToken": "4fbb52fb5b6243e083377f45d216820f"
} Response:
device Login successful Request:
{
"deviceToken": "4fbb52fb5b6243e083377f45d216820f",
"body": "ping"
} Response:
pong Server Address: uiflow2.m5stack.com Port: 1883
Connection Information:
Name: ez{mac}ez
ClientId: ez{mac}ez
Username: {deviceToken} (your device token)
mac: Device MAC address, without ":" separators, case-insensitive.
Topics:
$ezdata/{deviceToken}/up$ezdata/{deviceToken}/downThe following content represents the message body for WebSocket or MQTT.
Request:
{
"deviceToken": "4fbb52fb5b6243e083377f45d216820f",
"body": {
"name": "adasd",
"value": "ddsad",
"requestType": 100
}
} Response:
{
"body": {
"deviceToken": "4fbb52fb5b6243e083377f45d216820f",
"name": "adasd",
"value": "ddsad"
},
"cmd": 100,
"code": 200
} Request:
{
"deviceToken": "4fbb52fb5b6243e083377f45d216820f",
"body": {
"name": "adasd",
"value": "ddsad",
"requestType": 101
}
} Response:
{
"body": {
"deviceToken": "4fbb52fb5b6243e083377f45d216820f",
"name": "adasd",
"value": "ddsad"
},
"cmd": 101,
"code": 200
} Request:
{
"deviceToken": "4fbb52fb5b6243e083377f45d216820f",
"body": {
"name": "adasd(3)",
"value": "ddsad",
"requestType": 102
}
} Response:
{
"body": {
"deviceToken": "4fbb52fb5b6243e083377f45d216820f",
"name": "adasd(3)",
"value": "ddsad"
},
"cmd": 102,
"code": 200
} Request:
{
"deviceToken": "4fbb52fb5b6243e083377f45d216820f",
"body": {
"requestType": 103
}
} Response:
{
"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
} Request:
{
"deviceToken": "4fbb52fb5b6243e083377f45d216820f",
"body": {
"name": "adasd",
"requestType": 104
}
} Response:
{
"body": {
"createTime": 1751274100000,
"dataToken": "6a330c4bf0924da3a2b11c833f9c2db1",
"id": "6a330c4bf0924da3a2b11c833f9c2db1",
"name": "adasd",
"updateTime": 1751274100000,
"value": "ddsad"
},
"cmd": 104,
"code": 200
} Description: This message is triggered by an HTTP upload. The device receives the response via a persistent connection.
Request: (Initiated via HTTP https://ezdata2.m5stack.com/api/v2/device/uploadDeviceFile)
WebSocket/MQTT Response:
{
"body": {
"deviceToken": "4fbb52fb5b6243e083377f45d216820f",
"name": "deviceFile",
"value": "https://ezdata2-oss-dev.m5stack.com/37a6259cc0c1dae299a7866489dff0bd/deviceFile/deviceFile.jpg"
},
"cmd": 105,
"code": 200
}