当前位置:   article > 正文

【开源学习】TB-gateway -- 基本配置与使用

tb-gateway


更新日志:

  • 20240131 版本:
    • 新增 docker 安装部署时与版本相关的问题;
    • 全部配置文件替换为 tb-gateway 版本 3.4.2,更新配置详解:
      • 主配置文件由 yaml 格式改变为 json 格式配置,可配置内容增加;
      • mqtt 连接器配置内容增加;
      • modbus 连接器配置新增 slave 配置,删除 device 配置;
    • 全部内容重新测试,测试验证图片更新;
    • 新增自定义连接器官方示例的配置测试以及配置步骤总结;
    • 注:3.4 版本 modbus 协议存在问题;3.4.3、3.4.4 版本 opcua 协议存在问题!

tb-gateway 安装部署

官方为 ThingsBoard-Gateway 提供了多种安装部署方案,可以根据不同系统进行安装。

centOS 7 安装(不推荐)

采用 centOS 7 作为部署服务器,具体安装步骤如下(注:采用该方法安装2.7以上版本时存在问题,安装会失败):

  1. 下载 ThingsBoard-Gateway 安装包

    wget https://github.com/thingsboard/thingsboard-gateway/releases/latest/download/python3-thingsboard-gateway.rpm
    
    • 1
  2. 使用 yum 工具安装 ThingsBoard-Gateway:

    sudo yum install -y ./python3-thingsboard-gateway.rpm
    
    • 1
  3. 完成后查看 ThingsBoard-Gateway 的运行状态:

    systemctl status thingsboard-gateway
    
    • 1

    此时服务运行可能会报错,因为还没有对服务的相关配置进行更改。

Docker 安装(推荐)

服务器安装 docker 后,直接执行以下命令执行安装最新发行版本(本手册版本为 3.4):

docker run -d -it -v ~/.tb-gateway/logs:/thingsboard_gateway/logs -v ~/.tb-gateway/extensions:/thingsboard_gateway/extensions -v ~/.tb-gateway/config:/thingsboard_gateway/config --name tb-gateway -p 60000-61000:60000-61000 --restart always thingsboard/tb-gateway
  • 1

其中,-v 指令后冒号之前的文件路径为容器内部文件的挂载位置:

  • ~/.tb-gateway/logs:日志挂载路径;

  • ~/.tb-gateway/extensions:网关扩展目录挂载路径(各种协议连接器);

  • ~/.tb-gateway/config:配置文件挂载路径;

安装完成后,容器将自动启动,此时查看日志将看到网关连接存在错误,需要修改配置文件。

注:使用 docker 进行安装部署时,需要注意 docker 版本问题,不同版本的 docker 可拉取到的最新 tb-gateway 镜像的版本不同! 使用docker --version命令可查看 docker 版本。

  • 使用 docker 版本为 18.03.1-ce 时,tb-gateway 最新版本镜像为 2.9;

  • 使用 docker 版本为时,tb-gateway 最新版本镜像为 3.4.4(截至 2024-01-27);

【2024-01-27】注:版本 3.4.4\3.4.3 在使用 opcua 协议时存在问题。

建议使用 3.4.2 版本!,本文所有测试及配置内容均为 3.4.2 版本。

tb-gateway 通用配置文件

采用 rpm 安装包进行安装的配置文件路径为/etc/thingsboard-gateway/config,使用 docker 安装的配置文件则在宿主机的挂载路径~/.tb-gateway/config。该文件夹内包含有基础配置文件 tb_gateway.json,以及各种协议的配置文件,如 mqtt.json、modbus.json、opcua.json 等。

通用的基础配置文件 tb_gateway.json 用于配置到 thingsboard 平台的连接、存储模式以及各种协议连接器。

连接配置模块 thingsboard

该模块中主要配置网关到平台的连接参数,核心参数包括:

  • host:配置 tb 平台服务器地址;

  • port:配置 tb 平台网关消息接收的端口,默认为 1883(即平台 MQTT 服务器端口);

  • remoteShell:官方未解释,与配置远程 shell 指令相关(后续补充),默认 false;

  • remoteConfiguration:官方未解释,配置是否使用远程配置(3.4.2 以后版本新功能),建议 false;

  • statistics:配置统计收集数据并发送 tb 作为网关设备的属性进行存储(若需要使用的话需要额外的配置文件对要采集的参数进行定义,此处暂不讲解);

    • enable:配置是否启用该功能;

    • statsSendPeriodInSeconds:配置统计收集数据的传输间隔,默认为 3600;

    • configuration:配置采集数据配置文件;

  • deviceFiltering:该功能是可选的,用于配置设备筛选,可以配置筛选允许向 tb 发送数据的设备(若需要使用的话需要额外的配置文件定义筛选设备的规则,此处暂不讲解);

    • enable:配置是否启用该功能;

    • filterFile:配置设备过滤配置文件;

  • maxPayloadSizeBytes:官方未解释,最大的消息负载字节数,默认 1024;

  • minPackSendDelayMS:配置发送数据包之间的延迟,配置过小会导致 CPU 使用量上升;

  • minPackSizeToSend:官方未解释,配置最小的发送数据包大小,默认 500;

  • checkConnectorsConfigurationInSeconds:官方未解释,配置检查连接器配置的时间,默认 60 秒;

  • handleDeviceRenaming:官方未解释;

  • security:安全配置;

    • accessToken:配置 tb 平台上网关设备对应的 token;
  • qos:mqtt 协议消息质量等级,默认为 1;

  • checkingDeviceActivity:该功能是可选的,用于配置监控设备的活动;如果对该部分内容进行了配置,网关将每个一段时间对设备的活动状态进行检查;

    • checkDeviceInactivity:配置是否启用该功能;

    • inactivityTimeoutSeconds:配置设备的活跃超时时间,超过该时间的没有响应的设备将被认为处于非活跃状态,默认 200 秒;

    • inactivityCheckPeriodSeconds:配置设备活跃性检查的周期,默认 500 秒;

存储配置模块 storage

存储配置模块主要用于设置数据发送到 tb 平台之前如何进行保存,即采集数据的持久化配置,tb-gateway 提供了三种持久化的方式,分别为:

  • memory:内存存储,将接收到的数据保存到 RAM 内存中;

  • file:文件存储,将接收到的数据保存到硬盘上;

  • sqlite:sqlite 存储,将接收到的数据保存到 .db 文件中;

通过type参数可以指定上述三种模式,并对各模式中的参数进行配置,网关默认设置为内存存储模式,其可配置参数包括:

  • read_records_count:从存储中获取并发送至 tb 平台的消息数量;

  • max_records_count:存储中可存储的最大消息数量(超出的消息将丢失);

配置示例:

  "storage": {
   
    "type": "memory",
    "read_records_count": 100,
    "max_records_count": 100000
  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

选用文件存储模式时,其可配置参数包括:

  • data_folder_path

  • max_file_count

  • max_read_records_count

  • max_records_per_file

配置示例:

  "storage": {
   
    "type": "file",
    "data_folder_path": "./data/",
    "max_file_count": 10,
    "max_read_records_count": 10,
    "max_records_per_file": 10000
  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

选用 sqlite 存储模式时,其可配置参数包括:

  • data_file_path

  • messages_ttl_check_in_hours

  • messages_ttl_in_days

配置示例:

  "storage": {
   
    "type": "sqlite",
    "data_file_path": "./data/data.db",
    "messages_ttl_check_in_hours": 1,
    "messages_ttl_in_days": 7
  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

远程调用配置模块 grpc

该模块目前未测试,官方文档未进行解释,待验证;

连接器配置模块 connectors

该模块用于配置要启动的连接器,每一个连接器需要执行下列 3 个参数:

  • useGRPC:可选配置参数,用于配置当前连接器是否开启 rpc 功能,默认为 true;

  • name:指定连接器名称;

  • type:连接器类型;

  • configuration:连接器的配置文件名称;

配置示例:

  "connectors": [
    {
   
      "type": "mqtt",
      "name": "MQTT Broker Connector",
      "configuration": "mqtt.json"
    },
    {
   
      "type": "modbus",
      "name": "Modbus Connector",
      "configuration": "modbus.json"
    },
    {
   
      "type": "opcua",
      "name": "OPC-UA Connector",
      "configuration": "opcua.json"
    }
  ]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

tb-gateway 基础使用

gateway 连接至 tb

在修改通用配置文件 tb_gateway.yaml 之前,首先需要在 tb 平台上创建对应的网关设备,如下所示:

在这里插入图片描述

完成网关设备创建后,修改 tb_gateway.yaml 配置文件,配置 host、port 以及 accessToken 字段,分别为 tb 平台的服务地址、tb 平台 MQTT 端口号以及网关设备的访问令牌(设备详情中点击“复制访问令牌”按钮获取,也可自定义,详见 thingsboard 使用手册)。简单的配置示例如下:

{
   
  "thingsboard": {
   
    "host": "192.168.XX.XXX",
    "port": 1883,
    "remoteShell": false,
    "remoteConfiguration": true,
    "statistics": {
   
      "enable": true,
      "statsSendPeriodInSeconds": 3600
    },
    "deviceFiltering": {
   
      "enable": false,
      "filterFile": "list.json"
    },
    "maxPayloadSizeBytes": 1024,
    "minPackSendDelayMS": 200,
    "minPackSizeToSend": 500,
    "checkConnectorsConfigurationInSeconds": 60,
    "handleDeviceRenaming": true,
    "security": {
   
      "type": "accessToken",
      "accessToken": "YqZ0moqfS1srMt4OXDWP"
    },
    "qos": 1,
    "checkingDeviceActivity": {
   
      "checkDeviceInactivity": false
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/402135
推荐阅读
相关标签
  

闽ICP备14008679号