跳到主要内容

设备配置

简介

🤖 权限:仅组织管理员可编辑设备配置信息


设备配置用于统一管理数采客户端及项目中的相关数采信息,主要包含以下内容:

  1. 设备注册信息

    • 用于预定义设备 ID 的获取位置
    • 仅在设备首次注册时生效
  2. 监听与采集信息

    • 定义监听目录、采集目录
    • 与手动采集、规则采集配合使用
  3. 设备属性信息

    • 定义项目规则中可使用的 topic
    • 定义从设备文件中读取附加信息

注意:除设备注册信息外,其他配置项均支持自动更新。已启用的设备客户端会每隔 1 分钟自动同步云端配置。

入口

在组织管理页面的「设备」分页,点击【设备配置】按钮,即可进入配置编辑界面。此处使用 yaml 语言进行编辑操作。

org-device

完成配置后点击【保存】,配置将对全组织已启用客户端的设备生效。

org-dev-rule-save

设备配置内容详解

主要对 4 个模块进行设置:

模块名称功能描述
数据收集器设置(collector)上传数据前检查云端是否存在相同文件
存储设置(mod)设备 ID 存放位置;监听目录;客户端初始化监听时间范围;采集目录
设备事件属性(device)事件的属性值
规则触发话题(topic)规则触发话题

示例模板如下:

collector:
skip_check_same_file: false # 默认检查云端是否存在相同 sha256 的文件,若存在,则不上传,直接引用云端的文件,避免重复上传相同文件

mod:
# mod 名称,默认 default,支持监听设备端指定目录下的文件,若有自定义的监听形式,请联系刻行时空
name: 'default'

conf:
# 启用开关,true/false,默认启用
enabled: true

# 假设机器端存在 /home/coscene/example.yaml 文件,其内容为
# serial_num: 1234
#
# 则对应的配置,在机器注册阶段会读取 example.yaml 的 serial_num 字段的值(1234)作为机器的唯一标识码
sn_file: /home/coscene/example.yaml
sn_field: serial_num

# 设备端的监听目录,作为项目中规则的监听目录
listen_dirs:
- /home/bag/

# 当前时间距离文件更新时间超出 {skip_period_hours} 小时的时候,文件不会被监听
skip_period_hours: 2

# 设备端的采集目录,作为项目中数据采集任务与规则采集的指定目录
collect_dirs:
- /home/bag/
- /home/log/

# 递归遍历所有子文件夹设置,针对监听目录和采集目录,是否遍历填写目录下的所有嵌套子文件夹,默认为否
recursively_walk_dirs: true

# 手动任务采集时指定上传额外文件,支持文件夹和文件,填写绝对路径;支持特定的时间变量模版
additional_files:
- /home/just2004noetic/Downloads/testcase
- /additional_files/{{start_time.format('YYYY-MM-DD')}}/log/

# 假设机器端存在 /home/coscene/device.yaml 文件,其内容为
# soft_version: v1.0
#
# 则设备触发规则后,将读取 device.yaml 文件中的 soft_version: v1.0 作为生成事件的属性值
# 若要查看事件统计面板,请联系刻行时空
device:
extra_files:
- /home/coscene/device1.yaml
- /home/coscene/device2.yaml

# 话题,作为项目中规则触发话题的选项来源,以缩小规则匹配的范围
# 假设存在 /error_code 话题
topics:
- /error_code

数据收集器设置(collector)

此模块用于设置是否对待上传的数据进行检查,相同 sha256 的文件会被跳过上传,直接引用云端的文件,减少数据上传量,提升数据采集效率。

collector:
skip_check_same_file: false # 默认检查云端是否存在相同 sha256 的文件,若存在,则不上传,直接引用云端的文件,避免重复上传相同文件

存储设置(mod)

主要负责设置设备端数据的存储地址相关信息:

  • name:名称默认名称 default,支持监听设备端指定目录下的文件,如有自定义监听形式,请联系刻行时空。

  • conf:启用开关,true/false,默认启用。

  • sn_file

    • 选填项
    • 假设机器端存在对应文件(如 /home/coscene/example.yaml),其内容包含设备唯一标识码(如 serial_num: 1234),则在机器注册阶段会读取该文件指定字段的值(1234)作为机器的唯一标识码。
  • sn_field

    • 选填项
    • 对应标识码字段名
  • skip_period_hours:若当前时间距离文件更新时间超出设定时间,文件不会被监听。

  • recursively_walk_dirs:当监听和采集目录存在子文件夹,是否遍历嵌套子文件夹中的文件。默认为否,只读取当前文件夹下的一级所有文件

  • listen_dirs

    • 选填项
    • 设备端的监听目录,作为项目中规则的监听目录
    • 若不使用监听文件的方式,可在设备端安装 coListener 实时监听设备端 topic 数据,
  • collect_dirs:设备端的采集目录,作为项目中数据采集任务与规则采集的指定目录。

  • additional_files

    • 选填项
    • 手动任务采集时,支持补充采集额外的文件信息(如地图、日志等)。支持填写文件夹以及文件绝对路径,文件夹会递归遍历所有的子文件
    • 路径支持模版变量信息,如 /home/{{start_time.format('YYYY-MM-DD')}}/log/, 模版变量在采集任务中会替换成对应的采集任务时间信息,依据选择的采集开始和截止时间修改,变量会绑定更新,渲染为对应的值。具体的语法请参考 模板语法使用
mod:
# mod 名称,默认 default,支持监听设备端指定目录下的文件,若有自定义的监听形式,请联系刻行时空
name: 'default'

conf:
# 启用开关,true/false,默认启用
enabled: true

# 假设机器端存在 /home/coscene/example.yaml 文件,其内容为
# serial_num: 1234
#
# 则对应的配置,在机器注册阶段会读取 example.yaml 的 serial_num 字段的值(1234)作为机器的唯一标识码
sn_file: /home/coscene/example.yaml
sn_field: serial_num

# 设备端的监听目录,作为项目中规则的监听目录
listen_dirs:
- /home/bag/

# 当前时间距离文件更新时间超出 {skip_period_hours} 小时的时候,文件不会被监听/采集
skip_period_hours: 2

# 设备端的采集目录,作为项目中数据采集任务与规则采集的指定目录
collect_dirs:
- /home/bag/
- /home/log/

# 会递归遍历 /home/bag/ 和 /home/log/ 目录下的所有子文件夹
recursively_walk_dirs: true

# 手动采集任务开始时间为 2025-06-27 14:00:00,额外补充上传 /home/just2004noetic/Downloads/testcase 和 /home/2025-06-27/log 目录下的所有文件,包含子文件夹
additional_files:
- /home/just2004noetic/Downloads/testcase
- /home/{{start_time.format('YYYY-MM-DD')}}/log/

设备事件属性(device)

假设机器端存在特定文件(如 /home/coscene/device.yaml,内容为 soft_version: v1.0),则设备触发规则后,将读取该文件中的指定内容(如 soft_version: v1.0)作为生成事件的属性值。还可通过 extra_files 配置其他相关文件。

# 假设机器端存在 /home/coscene/device.yaml 文件,其内容为
# soft_version: v1.0
#
# 则设备触发规则后,将读取 device.yaml 文件中的 soft_version: v1.0 作为生成事件的属性值
# 若要查看事件统计面板,请联系刻行时空
device:
extra_files:
- /home/coscene/device1.yaml
- /home/coscene/device2.yaml

规则触发话题(topics)

话题作为项目中规则触发话题的选项来源,可缩小规则匹配的范围,提高监听效率。例如,假设存在 error_code 话题,可进行如下配置:

# 话题,作为项目中规则触发话题的选项来源,以缩小规则匹配的范围
# 假设存在 error_code 话题
topics:
- error_code

模板语法使用

概述

模板语法是一种动态生成字符串的强大工具,特别适用于根据时间范围动态生成文件路径和文件名。基于 Handlebars 模板引擎,集成了 Day.js 时间处理库。

通过掌握这些模板语法,您可以轻松创建动态的文件路径和文件名,大大提高数据管理的灵活性和自动化程度。

基本语法

支持的变量

目前支持以下两个时间变量:

  • start_time - 当前采集任务的开始时间
  • end_time - 当前采集任务的结束时间

基本模板格式

{{变量名.format('格式字符串')}}

示例

// 基本用法
'{{start_time.format("YYYY-MM-DD")}}'
// 输出: "2021-01-01"

// 组合使用
'data/{{start_time.format("YYYY")}}/{{start_time.format("MM")}}/file.log'
// 输出: "data/2021/01/file.log"

时间格式化

常用格式化选项

基于 Day.js 格式化文档,支持以下格式:

格式输出描述
YYYY2021四位年份
YY21两位年份
MM01-12月份(补零)
M1-12月份
DD01-31日期(补零)
D1-31日期
HH00-23小时(补零)
H0-23小时
mm00-59分钟(补零)
m0-59分钟
ss00-59秒(补零)
s0-59

格式化示例

// 日期格式
'{{start_time.format("YYYY-MM-DD")}}' // 2021-01-01
'{{start_time.format("YYYY/MM/DD")}}' // 2021/01/01
'{{start_time.format("MM-DD-YYYY")}}' // 01-01-2021

// 时间格式
'{{start_time.format("HH:mm:ss")}}' // 10:30:00
'{{start_time.format("HH-mm")}}' // 10-30

// 组合格式
'{{start_time.format("YYYY-MM-DD HH:mm:ss")}}' // 2021-01-01 10:30:00
'{{start_time.format("YYYYMMDD_HHmmss")}}' // 20210101_103000

// 按年月日组织的文件夹结构
'logs/{{start_time.format("YYYY")}}/{{start_time.format("MM")}}/{{start_time.format("DD")}}'
// 输出: logs/2021/01/01

// 时间范围文件夹
'data/{{start_time.format("YYYY-MM-DD")}}_to_{{end_time.format("YYYY-MM-DD")}}'
// 输出: data/2021-01-01_to_2021-01-02

参考文档


通过以上详细步骤和说明,管理员可全面、准确地对设备数采客户端进行配置,确保设备数据采集工作的高效运行。

如有任何疑问,请随时联系我们获取支持。