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.messaging | MQTT 或 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 / password | Plantpulse Platform 连接信息 |