1、网关介绍
网关是 ThingsBoard 中的一种特殊类型的设备,能够充当连接到不同系统的外部设备和 ThingsBoard 之间的桥梁。网关 API 提供了使用单个 MQTT 连接在多个设备和平台之间交换数据的能力。该网关还充当 ThingsBoard 设备,可以利用现有的MQTT 设备 API来报告统计数据、接收配置更新等通过服务端订阅属性
2、创建网关设备
创建设备的时候,选择设备为网关即可创建网关设备
3、设备连接API
为了通知 ThingsBoard 设备已连接到网关,需要发布以下消息:
Topic: v1/gateway/connect
Message: {"device":"Device A"}
其中设备 A是您的设备名称。
收到后,ThingsBoard 将查找或创建具有指定名称的设备。此外,ThingsBoard 还将向此网关发布有关特定设备的新属性更新和 RPC 命令的消息。
4、设备断开API
为了通知 ThingsBoard 设备已与网关断开连接,需要发布以下消息:
Topic: v1/gateway/disconnect
Message: {"device":"Device A"}
其中设备 A是您的设备名称。
一旦收到,ThingsBoard 将不再向此网关发布该特定设备的更新。
5、属性API
ThingsBoard 属性 API 允许设备
5.1、将属性更新发布到服务器
为了将客户端设备属性发布到 ThingsBoard 服务器节点,请将 PUBLISH 消息发送到以下主题:
Topic: v1/gateway/attributes
Message: {"Device A":{"attribute1":"value1", "attribute2": 42}, "Device B":{"attribute1":"value1", "attribute2": 42}}
其中,Device A和Device B是您的设备名称,attribute1和attribute2是属性键。
5.2、从服务器请求属性值
为了向 ThingsBoard 服务器节点请求客户端或共享设备属性,请将 PUBLISH 消息发送到以下主题:
Topic: v1/gateway/attributes/request
Message: {"id": $request_id, "device": "Device A", "client": true, "key": "attribute1"}
其中$request_id是您的整数请求标识符,Device A是您的设备名称,client标识客户端或共享属性范围,key是属性键。
在发送带有请求的 PUBLISH 消息之前,客户端需要订阅
Topic: v1/gateway/attributes/response
并期望消息的结果采用以下格式:
Message: {"id": $request_id, "device": "Device A", "value": "value1"}
5.3、从服务器订阅属性更新
为了订阅共享设备属性更改,请将 SUBSCRIBE 消息发送到以下主题:
v1/gateway/attributes
并期望消息的结果采用以下格式:
Message: {"device": "Device A", "data": {"attribute1": "value1", "attribute2": 42}}
6、遥测上传API
为了将设备遥测发布到 ThingsBoard 服务器节点,请将 PUBLISH 消息发送到以下主题:
Topic: v1/gateway/telemetry
信息:
单设备:
{
"Device A":[
{
"temperature": 43,
"humidity": 81
}
]
}
多设备:
{
"Device A": [
{
"ts": 1483228800000,
"values": {
"temperature": 42,
"humidity": 80
}
},
{
"ts": 1483228801000,
"values": {
"temperature": 43,
"humidity": 82
}
}
],
"Device B": [
{
"ts": 1483228800000,
"values": {
"temperature": 42,
"humidity": 80
}
}
]
}
其中,设备 A和设备 B是您的设备名称,温度和湿度是遥测密钥,ts是以毫秒为单位的 unix 时间戳。
7、远程过程调用API
服务器端 RPC
为了从服务器订阅 RPC 命令,请将 SUBSCRIBE 消息发送到以下主题:
v1/gateway/rpc
并期望带有以下格式的单独命令的消息:
{"device": "Device A", "data": {"id": $request_id, "method": "toggle_gpio", "params": {"pin":1}}}
一旦设备处理了命令,网关就可以使用以下格式发回命令:
{"device": "Device A", "id": $request_id, "data": {"success": true}}
其中$request_id是您的整数请求标识符,Device A是您的设备名称,method是您的 RPC 方法名称。
8、声明设备 API
请参阅相应的文章以获取有关功能的更多信息。
为了启动声明设备,请将 PUBLISH 消息发送到以下主题:
Topic: v1/gateway/claim
信息:
{
"Device A": {
"secretKey": "value_A",
"durationMs": 60000
},
"Device B": {
"secretKey": "value_B",
"durationMs": 60000
}
}
其中Device A和Device B是您的设备名称,secretKey和durationMs是可选密钥。如果未指定SecretKey,则使用空字符串作为默认值。如果未指定periodMs,则使用系统参数device.claim.duration(在文件/etc/thingsboard/conf/thingsboard.yml中)。
🌐 项目地址
Things Vuehttp://thingsvue.tpson.cn:7772/#/login?redirect=/tb-home/index
账号:admin@thingsboard.org 密码:admin123456
🎽 安装使用
获取项目代码:
代码地址https://gitee.com/tpsonwell_admin/thingsvue