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参考