Zum Hauptinhalt springen

app.properties – Leitfaden

Sämtliche Laufzeiteinstellungen von PlantPulse Edge. Ablageort:

  • Container-Modus (2026.05+): Das Original liegt auf dem Host unter /etc/kopens/conf/app.properties (bind mount, chmod 0640 root). /etc/kopens/app.properties ist ein Legacy-Kompatibilitäts-Symlink darauf — egal über welchen Pfad Sie editieren, es ist dieselbe Datei. Fehlt die Datei, wird sie bei der Installation einmalig mit dem Image-Default geseedet und danach nicht mehr überschrieben (Änderungen des Betreibers bleiben über Image-Upgrades hinweg erhalten).
  • Native-Modus: $PE_HOME/conf/app.properties. $PE_HOME/app/plantpulse-edge-web/WEB-INF/classes/app.properties ist der Runtime-Mirror für das Laden über den Classpath.

Im Container-Modus erzeugt install.sh bei der Erstinstallation ein vollständiges Template mit 165 Zeilen (16 Abschnitte + pro Box zufällig generierte Passwörter mit 16–32 Zeichen). Die Defaultwerte auf dieser Seite dienen als Referenz — die tatsächlichen Werte der Box prüfen Sie bitte direkt in der Datei auf der Box.

Änderungen anwenden

# 컨테이너 모드
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-Identifikation / Betrieb

edge.id=EDGE_00303
edge.site_id=SITE_00001
edge.ttl=30
edge.always-on=false
SchlüsselBedeutung
edge.idEindeutige Edge-ID (Pflicht, innerhalb des Standorts eindeutig)
edge.site_idStandort-ID — muss zuvor auf der Platform registriert sein
edge.ttlHeartbeat-TTL (Sekunden)
edge.always-onOb der Collector unmittelbar beim Booten startet (bei false expliziter Start über Oberfläche/REST)

Administratorkonto

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

Übergeben Sie das Administratorpasswort als PBKDF2-Hash über EDGE_ADMIN_PASSWORD_HASH_FILE oder EDGE_ADMIN_PASSWORD_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
SchlüsselBedeutung
thread_pool_countGröße des Read-Worker-Pools pro OPC
connection_reset_msIntervall für automatischen Reset der Verbindung (0 = aus)
connection_warn_msWARN-Log, wenn die Verbindungszeit diesen Wert überschreitet
address_scan_thread_warn_msSchwellwert für die Lesezeit einer einzelnen Adresse
address_map_scan_thread_warn_msSchwellwert für die gesamte Lesezeit eines Zyklus

Test-/Demodaten

Der automatische Start der integrierten OPCUA/MODBUS-Simulatoren wird nicht unterstützt. Verwenden Sie für Test-/Demodaten ein externes plantpulse-simulator oder Test-Tags.

Diagnoseübertragung

edge.diagnostic.send.enabled=true

Schalter für die Übertragung der Edge-Eigendiagnose (Systemmetriken usw.) an die Platform.

OPC-UA-Server (Veröffentlichung eigener Nodes)

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

Die Edge arbeitet als eigener OPC-UA-Server und stellt die erfassten Tags als Nodes bereit. Ein externes SCADA kann sich als OPC-UA-Client verbinden und lesen. Bei ananymous=yes ist anonymer Zugriff erlaubt (Schreibfehler, aus Codekompatibilität beibehalten).

TSE (Time Series Engine)

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

Optional. Wird bei Anbindung einer separaten Zeitreihen-Engine (plantpulse-timeseries-engine) verwendet.

MQTT-Veröffentlichung

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
  • Bei mqtt.enable=true publiziert MQTTQueueTransfer bei der Queue-Verarbeitung.
  • Alle Points laufen über ein einziges Topic (/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 토글 (현 무영향)

Die Broker-Verbindungsdaten werden unverändert aus mqtt.server.* übernommen. Details siehe Sparkplug-Dokumentation.

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
SchlüsselBedeutung
server.host/portHost der Platform-API
server.sslHTTPS ja/nein
server.api_keyToken-Authentifizierung der Platform-API. PLANTPULSE_SERVER_API_KEY_FILE empfohlen
server.messagingMQTT oder API. Bei MQTT übernimmt APIQueueTransfer die Hilfsrolle

Entwicklungsmodus

dev.mode=EDGE

Unterstützt werden EDGE (Standard) und STANDALONE. PLATFORM wird abgelehnt.

Befehls-/Event-Handler / SQL-Pfad

app.es.scan.package=plantpulse.app
app.sql.path=classpath:resouces/sql
Schreibfehler (aus Kompatibilitätsgründen beibehalten)

resouces in app.sql.path ist ein Schreibfehler, funktioniert aber, da das Verzeichnis denselben Namen (/WEB-INF/resouces/sql/) trägt. Bei einer Änderung müssen beide Stellen gemeinsam angepasst werden.

API-Nutzung

api.use=true

Schalter zur Aktivierung der REST-Controller.

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}
SchlüsselBedeutung
app.db.*Verbindung über den nativen Cassandra-Treiber (com.datastax.oss.driver)
oltp.cassandra.*Verbindung über den JDBC-Adapter (wird von Teilen des Anwendungscodes genutzt)
app.db.scheme_ddlPfad der DDL-Datei, die beim Booten automatisch angewendet wird

Host, Benutzer und Passwort müssen in beiden Fällen übereinstimmen.

Datei-Upload

file.upload.dir=/tmp/

Temporärer Pfad, den die Datei-Upload-Komponente verwendet. In Produktivumgebungen wird ein separates Verzeichnis empfohlen.


Checkliste empfohlener Änderungen

PunktGrund der Änderung
edge.admin_passwordPBKDF2-Hash über EDGE_ADMIN_PASSWORD_HASH_FILE übergeben
mqtt.server.password / opc.ua.server.passwordÜbergabe über MQTT_PASSWORD_FILE / OPCUA_PASSWORD_FILE
app.db.passwordÜbergabe über CASSANDRA_PASSWORD_FILE
sparkplug.bdseq.pathAbsoluter Pfad empfohlen (/opt/kopens/.../data/sparkplug/bdseq)
server.host / passwordVerbindungsdaten der Plantpulse Platform