MQTT 设备 API
基础入门
MQTT 是基于TCP/IP协议栈构建的异步通信消息协议,是一种轻量级的发布、订阅信息传输协议。可在不可靠的网络环境中进行扩展,适用于设备硬件存储空间或网络带宽有限的场景。 使用MQTT协议,消息发送者与接收者不受时间和空间的限制。物联网平台支持设备使用MQTT协议接入。
详情参考:MQTT协议接入
MQTT连接及错误代码
您可以使用设备访问令牌,它也称为 $ACCESS_TOKEN。应用程序需要发送用户名为 $ACCESS_TOKEN 的 MQTT CONNECT 消息。
错误码说明:
code | message | 备注 |
---|---|---|
0x00 | Connected | 成功连接到物联平台 |
0x04 | Connection Refused, bad username or password | 用户名为空 |
0x05 | Connection Refused, not authorized | 未授权- 用户名包含无效的 $ACCESS_TOKEN |
数据格式-键值对
默认情况下,物联平台支持以 JSON 格式的Key-Value内容。键始终是字符串,而值可以是string, boolean, double, long 或 JSON。例如:
{
"stringKey":"value",
"booleanKey":true,
"doubleKey":28.2,
"longKey":45,
"jsonKey": {
"number": 1,
"array": [100,200,300],
"object": {"key": "value"}
}
}
遥测上报接口
发送遥测数据到物联平台,请将 PUBLISH 消息发送到以下主题:
v1/devices/me/telemetry
支持的数据格式为:
{"key1":"value1", "key2":"value2"}
请注意,在这种情况下,服务器端时间戳将分配给上传的数据!
如果您的设备能够获取客户端时间戳,您可以使用以下格式:
{"ts":1653667614599, "values":{"key1":"value1", "key2":"value2"}}
属性上报接口
上报属性到设备
客户端属性最常见的用法是报告设备状态,比如向平台报告设备已安装的固件、应用程序版本等
您可以将客户端设备属性发布到物联平台,请发送 PUBLISH 消息到以下主题:
v1/devices/me/attributes
{"currentFirmwareVersion":"1.0.0"}
请求设备属性
您可以向物联平台请求客户端或共享设备属性,请将 PUBLISH 消息发送到以下主题:
v1/devices/me/attributes/request/$request_id
其中 $request_id 是您的整数请求标识符,在发送带有请求的 PUBLISH 消息之前,客户端需要订阅
v1/devices/me/attributes/response/+
例如:
订阅属性更新
要订阅共享设备属性更改,请向以下主题发送 SUBSCRIBE 消息:
v1/devices/me/attributes
如果服务端更改了共享属性时,客户端就会收到对应属性值: