跳到主要内容

app.properties 指南

PlantPulse Edge 的全部运行时配置。位置:

  • 容器模式 (2026.05+):正本为宿主机上的 /etc/kopens/conf/app.properties(bind mount,chmod 0640 root)。 /etc/kopens/app.properties 是指向它的 legacy 兼容符号链接 —— 无论编辑哪一侧,都是同一个文件。 若文件不存在,安装时会用 image default 进行一次 seed,此后不再覆盖(运维人员的编辑可跨镜像升级保留)。
  • Native 模式$PE_HOME/conf/app.properties$PE_HOME/app/plantpulse-edge-web/WEB-INF/classes/app.properties 为 classpath 加载用的 runtime mirror。

容器模式下,install.sh 在首次安装时会生成 165 行的 full template(16 个章节 + 每台设备 16~32 字符 的随机密码)。本页的默认值仅供参考 —— 实际运行设备的取值请直接查看设备内的文件。

变更生效方法

# 컨테이너 모드
sudo bash /opt/kopens/install/bin/config.sh --set edge.rest.api.auth false
sudo bash /opt/kopens/install/bin/config.sh --restart

# native 모드
sudo vi /opt/kopens/plantpulse-edge/conf/app.properties
sudo /opt/kopens/plantpulse-edge/bin/restart.sh

EDGE 标识 / 运行

edge.id=EDGE_00303
edge.site_id=SITE_00001
edge.ttl=30
edge.always-on=false
含义
edge.id边缘唯一 ID(必填,站点内唯一)
edge.site_id站点 ID —— 必须已在平台预先注册
edge.ttlheartbeat TTL(秒)
edge.always-on启动后是否立即启动 collector(false 时通过界面/REST 显式启动)

管理员账号

edge.admin_login_id=${ENV:EDGE_ADMIN_USER:admin}
edge.admin_password=${SECRET:EDGE_ADMIN_PASSWORD_HASH}

管理员密码请通过 EDGE_ADMIN_PASSWORD_HASH_FILEEDGE_ADMIN_PASSWORD_HASH 注入 PBKDF2 hash。

Collector

edge.collector.plc.thread_pool_count=4
edge.collector.plc.connection_reset_ms=0
edge.collector.plc.connection_warn_ms=1000
edge.collector.plc.address_scan_thread_warn_ms=200
edge.collector.plc.address_map_scan_thread_warn_ms=5000
含义
thread_pool_count每个 OPC 的 read 工作线程池大小
connection_reset_ms连接自动重置周期(0 = 关闭)
connection_warn_ms连接耗时超过该值时输出 WARN 日志
address_scan_thread_warn_ms单地址 read 耗时阈值
address_map_scan_thread_warn_ms单周期整体 read 耗时阈值

测试/演示数据

不支持内置 OPCUA/MODBUS 模拟器自动启动。测试/演示数据请使用外部 plantpulse-simulator 或测试标签。

诊断上传

edge.diagnostic.send.enabled=true

边缘自身诊断信息(系统指标等)向 platform 上传的开关。

OPC-UA 服务器(自身节点发布)

opc.ua.server.domain=127.0.0.1
opc.ua.server.tcp.port=12000
opc.ua.server.tls.port=12443
opc.ua.server.user=${ENV:OPCUA_USER:edge}
opc.ua.server.password=${SECRET:OPCUA_PASSWORD}
opc.ua.server.keystore.password=${ENV:CERT_PASS:}
opc.ua.server.ananymous=yes

边缘作为自身的 OPC-UA 服务器 运行,将采集到的标签以节点形式暴露。外部 SCADA 可作为 OPC-UA 客户端 接入并读取。为 ananymous=yes 时允许匿名接入(虽为拼写错误,但为保持代码兼容而保留)。

TSE (Time Series Engine)

tse.server.host=127.0.0.1
tse.server.port=7800
tse.server.user=tse
tse.server.password=tse123!

可选。与独立时序引擎(plantpulse-timeseries-engine)联动时使用。

MQTT 发布

mqtt.enable=true
mqtt.server.host=127.0.0.1
mqtt.server.port=1883
mqtt.server.user=${ENV:MQTT_USER:edge}
mqtt.server.password=${SECRET:MQTT_PASSWORD}
mqtt.server.topic=/edge/point
  • mqtt.enable=true 时,MQTTQueueTransfer 在处理队列时进行 publish。
  • 所有 Point 都流向单一主题(/edge/point)。

Sparkplug B

sparkplug.enable=false
sparkplug.group.id= # 비우면 site_id
sparkplug.edge.node.id= # 비우면 EdgeContext.id
sparkplug.device.strategy=per-opc # per-opc | single (현재 per-opc 만 구현)
sparkplug.qos=0 # DDATA 빈번 → 0 권장
sparkplug.bdseq.path= # 비우면 ./data/sparkplug/bdseq
sparkplug.alias.enable=true # Phase 2 토글 (현 무영향)
sparkplug.cmd.enable=false # Phase 3 토글 (현 무영향)

Broker 连接信息直接复用 mqtt.server.*。详情参见 Sparkplug 文档

Plantpulse Server API

server.host=192.168.0.41
server.port=80
server.ssl=false
server.username=
server.api_key=${SECRET:PLANTPULSE_SERVER_API_KEY}
server.messaging=MQTT
含义
server.host/port平台 API 主机
server.ssl是否使用 HTTPS
server.api_key平台 API token 认证。建议 PLANTPULSE_SERVER_API_KEY_FILE
server.messagingMQTTAPI。为 MQTT 时,APIQueueTransfer 承担辅助角色

开发模式

dev.mode=EDGE

支持 EDGE(默认)与 STANDALONEPLATFORM 会被拒绝。

命令/事件处理器 / SQL 路径

app.es.scan.package=plantpulse.app
app.sql.path=classpath:resouces/sql
拼写错误(保持兼容性)

app.sql.path 中的 resouces 属于拼写错误,但目录也使用同名(/WEB-INF/resouces/sql/) 保留,因此可正常工作。修改时必须两侧一并修改。

API 使用

api.use=true

REST 控制器启用开关。

Cassandra DB

app.db.host=127.0.0.1
app.db.port=9042
app.db.username=${ENV:CASSANDRA_USER:cassandra}
app.db.password=${SECRET:CASSANDRA_PASSWORD:cassandra}
app.db.keyspace=pe
app.db.replication=1
app.db.scheme_ddl=/WEB-INF/db/scheme.cql

oltp.cassandra.driver=plantpulse.cassandra.jdbc.CassandraDriver
oltp.cassandra.url=jdbc:cassandra://127.0.0.1:9042/pe
oltp.cassandra.user=${ENV:CASSANDRA_USER:cassandra}
oltp.cassandra.password=${SECRET:CASSANDRA_PASSWORD:cassandra}
含义
app.db.*Cassandra 原生驱动(com.datastax.oss.driver)连接
oltp.cassandra.*JDBC 适配器连接(部分应用代码使用)
app.db.scheme_ddl启动时自动应用的 DDL 文件路径

主机 / 用户 / 密码两侧必须保持一致。

文件上传

file.upload.dir=/tmp/

文件上传组件使用的临时路径。生产环境建议使用独立目录。


建议修改清单

项目修改原因
edge.admin_password通过 EDGE_ADMIN_PASSWORD_HASH_FILE 注入 PBKDF2 hash
mqtt.server.password / opc.ua.server.password通过 MQTT_PASSWORD_FILE / OPCUA_PASSWORD_FILE 注入
app.db.password通过 CASSANDRA_PASSWORD_FILE 注入
sparkplug.bdseq.path建议使用绝对路径(/opt/kopens/.../data/sparkplug/bdseq
server.host / passwordPlantpulse Platform 连接信息