Zum Hauptinhalt springen

app.properties-Referenz

Alle Laufzeiteinstellungen von PlantPulse Edge. Speicherort:

  • Container-Modus (2026.05+): Das Original liegt auf dem Host /etc/kopens/conf/app.properties (Bind Mount, chmod 0640 root). /etc/kopens/app.properties ist ein Symlink, der darauf zeigt – eine Bearbeitung betrifft also in beiden Fällen dieselbe Datei. Wenn die Datei fehlt, wird sie bei der Installation einmalig mit dem Image-Default erzeugt und danach nicht mehr überschrieben (Operator-Änderungen 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 Laufzeit-Spiegel für den Klassenpfad.

Im Container-Modus erzeugt install.sh bei der Erstinstallation eine 165-zeilige Vollvorlage (16 Abschnitte + 16–32 Zeichen Zufallspasswort pro Box). Die Standardwerte auf dieser Seite sind eine Referenz – die Werte der tatsächlich laufenden Box entnehmen Sie bitte der Datei in 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 (erforderlich, innerhalb der Site eindeutig)
edge.site_idSite-ID – muss in der Plattform vorregistriert sein
edge.ttlHeartbeat-TTL (Sekunden)
edge.always-onCollector-Start direkt nach dem Boot (bei false: expliziter Start über GUI/REST)

Administratorkonto​

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

Das Admin-Passwort wird als PBKDF2-Hash über EDGE_ADMIN_PASSWORD_HASH_FILE oder EDGE_ADMIN_PASSWORD_HASH injiziert.

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_countWorker-Pool-Größe für das Lesen pro OPC
connection_reset_msAutomatischer Verbindungs-Reset-Zyklus (0 = aus)
connection_warn_msWARNE-Log, wenn die Verbindungszeit diesen Wert überschreitet
address_scan_thread_warn_msZeitschwelle für Lesevorgänge einer einzelnen Adresse
address_map_scan_thread_warn_msZeitschwelle für Lesevorgänge des gesamten Zyklus

Test-/Demodaten​

Ein automatischer Start des integrierten OPCUA/MODBUS-Simulators wird nicht unterstützt. Verwenden Sie für Test-/Demodaten einen externen plantpulse-simulator oder Test-Tags.

Diagnose-Übertragung​

edge.diagnostic.send.enabled=true

Umschalter für die Übertragung der Edge-eigenen Diagnose (z. B. Systemmetriken) an die Plattform.

OPC-UA-Server (eigene Knotenveröffentlichung)​

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

Der Edge fungiert als eigener OPC-UA-Server und stellt erfasste Tags als Knoten bereit. Externe SCADA-Systeme können als OPC-UA-Clients verbinden und lesen. anonymous=yes erlaubt anonymen Zugriff (der alte Tippfehler-Schlüssel ananymous wird nur gelesen, wenn der neue fehlt); security.none=yes öffnet den ungesicherten (None/None) Session-Endpunkt auf dem TCP-Port. Beide sind standardmäßig yes.

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 der 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 veröffentlicht MQTTQueueTransfer beim Verarbeiten der Warteschlange.
  • Alle Datenpunkte laufen über ein einzelnes Thema (/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 aus mqtt.server.* werden direkt wiederverwendet. Weitere Details finden Sie unter 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 Plattform-API
server.sslHTTPS aktiviert oder nicht
server.api_keyToken-Authentifizierung für die Plattform-API. PLANTPULSE_SERVER_API_KEY_FILE empfohlen
server.messagingMQTT oder API. Bei MQTT übernimmt APIQueueTransfer eine unterstützende Rolle

Entwicklungsmodus​

dev.mode=EDGE

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

Befehls-/Ereignis-Handler / SQL-Pfad​

app.es.scan.package=plantpulse.app
app.sql.path=classpath:resouces/sql
Tippfehler (Kompatibilität beibehalten)

resouces in app.sql.path ist ein Tippfehler, aber das Verzeichnis wird unter demselben Namen (/WEB-INF/resouces/sql/) beibehalten, sodass es funktioniert. Bei einer Änderung müssen beide Stellen angepasst werden.

API-Nutzung​

api.use=true

Umschalter 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 nativen Cassandra-Treiber (com.datastax.oss.driver)
oltp.cassandra.*JDBC-Adapter-Verbindung (wird von einigen Anwendungsteilen genutzt)
app.db.scheme_ddlPfad zur DDL-Datei, die beim Start automatisch angewendet wird

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

Datei-Upload​

file.upload.dir=/tmp/

Temporärer Pfad für die Upload-Komponente. In Produktionsumgebungen wird ein separates Verzeichnis empfohlen.


Empfohlene Checkliste für Änderungen​

PositionGrund für die Änderung
edge.admin_passwordPBKDF2-Hash über EDGE_ADMIN_PASSWORD_HASH_FILE injizieren
mqtt.server.password / opc.ua.server.passwordÜber MQTT_PASSWORD_FILE / OPCUA_PASSWORD_FILE injizieren
app.db.passwordÜber CASSANDRA_PASSWORD_FILE injizieren
sparkplug.bdseq.pathAbsoluter Pfad empfohlen (/opt/kopens/.../data/sparkplug/bdseq)
server.host / passwordVerbindungsdaten zur Plantpulse Platform