thingsboard网关可让您将与旧式和第三方系统连接的IoT设备与ThingsBoard集成在一起。
网关是ThingsBoard中的一种特殊类型的设备,能够充当连接到不同系统的外部设备和ThingsBoard之间的桥梁。网关API提供了使用单个MQTT连接在多个设备和平台之间交换数据的功能。网关还充当ThingsBoard设备,并且可以利用现有的MQTT Device API来报告统计信息,接收配置更新等等。
架构
对平台来说网关是一个设备:只不过网关的消息体和其他设备不一样,网关监听的是消息代理发送的消息。针对MQTT来说,网关只不过选择性监听了topic,构建了一个映射“map”关系。
可以解决什么问题
现实中大部分都是通过网关操作设备的,不管是MQTT还是modbus或者opc。
问题一:如果你有1万台设备如何连接: 若是你有一万个设备,不可能一个一个用token去连的。
网关就解决了这个问题,简单 的说,通过网关,是管理一批设备,不通过网关,是管理一个设备。
功能
- MQTT扩展,用于控制,配置和收集使用现有协议连接到外部MQTT代理的IoT设备的数据。
- OPC-UA扩展,用于从连接到OPC-UA服务器的IoT设备收集数据。
- Sigfox扩展,用于从连接到Sigfox后端的IoT设备收集数据。
- Modbus扩展可从通过Modbus协议连接的IoT设备收集数据。
- 在网络和硬件故障的情况下,所收集数据的持久性可确保数据传输。
- 自动重新连接到ThingsBoard集群。
- 简单但功能强大的将传入数据和消息映射为统一格式。
内部机制
例如,下面列出的默认映射将强制网关订阅传感器主题,并将传入的JSON消息中的serialNumber用作设备名称。类似地,模型和温度 json对象字段将映射到相应的ThingsBoard设备属性和遥测字段。
{
"topicFilter": "sensors",
"converter": {
"type": "json",
"filterExpression": "",
"deviceNameJsonExpression": "${$.serialNumber}",
"attributes": [
{
"type": "string",
"key": "model",
"value": "${$.model}"
}
],
"timeseries": [
{
"type": "double",
"key": "temperature",
"value": "${$.temperature}"
}
]
}
}
参考
https://thingsboard.io/docs/iot-gateway/what-is-iot-gateway/ 什么是ThingsBoard IoT网关?
https://thingsboard.io/docs/iot-gateway/getting-started/ ThingsBoard IoT网关入门
https://thingsboard.io/docs/reference/gateway-mqtt-api/ MQTT网关API参考