跳到主要内容

app.properties 参考

PlantPulse Edge 的所有运行时设置。位置:

  • 容器模式 (2026.05+): 正式文件位于宿主机 /etc/kopens/conf/app.properties (bind mount, chmod 0640 root)。 /etc/kopens/app.properties 是指向它的符号链接 —— 编辑任一侧都会修改同一个文件。 如果文件不存在,安装时会用 image 默认值初始化一次,之后不会覆盖(操作员的编辑会跨镜像升级保留)。
  • 原生模式: $PE_HOME/conf/app.properties。 $PE_HOME/app/plantpulse-edge-web/WEB-INF/classes/app.properties 是用于 classpath 加载的运行时镜像。

容器模式下,install.sh 会在首次安装时生成 165 行的完整模板(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.ttl心跳 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_FILE 或 EDGE_ADMIN_PASSWORD_HASH 注入 PBKDF2 哈希值。

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 的读工作池大小
connection_reset_ms连接自动重置周期 (0 = 关闭)
connection_warn_ms连接时间超过此值时记录 WARN 日志
address_scan_thread_warn_ms单地址读取时间阈值
address_map_scan_thread_warn_ms单周期总读取时间阈值

测试/演示数据​

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

诊断传输​

edge.diagnostic.send.enabled=true

边缘自身诊断信息(如系统指标等)向平台传输的开关。

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.anonymous=yes
opc.ua.server.security.none=yes

边缘作为自身的 OPC-UA 服务器运行,将采集的标签暴露为节点。外部 SCADA 可作为 OPC-UA 客户端 连接并读取。设为 anonymous=yes 时允许匿名连接(旧的拼写错误键 ananymous 仅在新键不存在时读取);设为 security.none=yes 时在 TCP 端口开放无安全(None/None)会话端点。两者默认均为 yes。

TSE (时序引擎)​

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 会在队列处理时执行发布。
  • 所有数据点都流经单个主题 (/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.messagingMQTT 或 API。若设为 MQTT,则 APIQueueTransfer 作为辅助角色

开发模式​

dev.mode=EDGE

支持 EDGE(默认)和 STANDALONE。PLATFORM 会被拒绝。

命令/事件处理器 / 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 哈希
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 连接信息