MQTT协议

入门

MQTT基础

MQTT是一种轻量级的发布-订阅消息传递协议,它可能最适合各种物联网设备。

你可以在此处找到有关MQTT的更多信息,ThingsBoard服务器支持QoS级别0(最多一次)和QoS级别1(至少一次)以及一组预定义主题的MQTT代理。

客户端

你可以在网上找到大量的MQTT客户端库,本文中的示例将基于Mosquitto和MQTT.js您可以使用我们的Hello World指南中的说明。

MQTT连接

我们将在本文中使用令牌凭据对进行设备访问,这些凭证稍后将称为$ACCESS_TOKEN应用程序需要发送用户名包含$ACCESS_TOKEN的MQTT CONNECT消息。

连接状态码说明:

  • 0x00 连接成功 - 成功连接

  • 0x04 连接失败 - 用户名或密码错误。

  • 0x05 连接未授权 - -用户名包含无效的 $ACCESS_TOKEN

Key-value格式

支持以JSON格式的key-value字符串,值可以是string、bool、float、long或者二进制格式的序列化字符串;

MQTT连接配置

47.106.143.1:1883

userName: GP1109N12345678(在平台获取访问令牌password: (无)

TOPIC主题发布接口列表

topic

Qos-级别

认证方式

注释

1

v1/gateway/connect

1

accessToken

连接到网关

2

v1/gateway/disconnect

1

accessToken

断开网关

3

v1/gateway/attributes

1

accessToken

设备属性

4

v1/gateway/telemetry

1

accessToken

数据遥测

payload格式例如:

{
	"DEVICE": [{
		"ts": "1609144280398",
		"values": {
        "stringKey":"value1", 
        "booleanKey":true, 
        "doubleKey":42.0, 
        "longKey":73, 
        "jsonKey": {
           "someNumber": 42,
           "someArray": [1,2,3],
           "someNestedObject": {"key": "value"}
        }
       }
	}]
}

v1/gateway/telemetry

网关心跳包实例:

{
	"WG12345678": [{
		"ts": "1609145640724",
		"values": {
			"H": "60",
			"mode": "2",
			"NET4GSTA": "1,0",
			"mT": "3,0,1",
			"mFifo": "618,618,1389,1389",
			"DDA": "1",
			"boxSta": "0",
			"TH": "30.40,42.4",
			"NR": "1247,1254",
			"Lat": "22.540456",
			"Lon": "113.928825",
			"SDR": 1,
			"power": {
				"0": 0,
				"1": "6.80",
				"2": "29",
				"9": "11.48",
				"10": "3800",
				"11": "3300",
				"12": "0",
				"13": "3300",
				"14": "40"
			}
		}
	}]
}

终端数据包实例:

{
	"WG12345678/sf_2_0_340000": [{
		"ts": "1609144280398",
		"values": {
			"T": "1609144280355",
			"SN": "00006500",
			"da": "010CE735CA7C271E21FFFFFF"
		}
	}]
}

在上面的示例中我们"ts":"1609144280398",是具有毫秒精度的Unix时间戳。例如:值’1609140420031’转换后是’2020-12-28 16:31:20’。

最后更新于

这有帮助吗?