0


【开源学习】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
  2. 使用 yum 工具安装 ThingsBoard-Gateway:sudo yum install-y ./python3-thingsboard-gateway.rpm
  3. 完成后查看 ThingsBoard-Gateway 的运行状态:systemctl status thingsboard-gateway此时服务运行可能会报错,因为还没有对服务的相关配置进行更改。

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 -p60000-61000:60000-61000 --restart always thingsboard/tb-gateway

其中,-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}

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

  • 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}

选用 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}

远程调用配置模块 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"}]

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

本文转载自: https://blog.csdn.net/zqf787351070/article/details/135954722
版权归原作者 情绪大瓜皮丶 所有, 如有侵权,请联系我们删除。

“【开源学习】TB-gateway -- 基本配置与使用”的评论:

还没有评论