Zum Hauptinhalt springen

Umgebungskonfiguration (/ui/system/config) — app.properties bearbeiten

Dieses Fenster dient zum direkten Bearbeiten der Datei app.properties im Web, die sämtliche Einstellungen des Gateways enthält (DB / MQTT / OPC-UA / Standort / Monitoring / Benutzer usw.).

Home-Karte Umgebungskonfiguration → klicken, oder /ui/system/config.

Speicherverhalten im Container-Modus (2026.05+)

Beim Speichern wird /etc/kopens/app.properties (host bind mount) aktualisiert und durch einen Container-Neustart (Schaltfläche /config/restart oder signal file /etc/kopens/host-action.request) übernommen. Das auth.properties des HiveMQ broker wird vom container-entrypoint bei jedem Boot automatisch mit mqtt.server.* synchronisiert — es muss lediglich app.properties geändert werden (kein manuelles Bearbeiten von auth.properties nötig).

CLI-Änderung:

sudo bash /opt/kopens/install/bin/config.sh --set edge.rest.api.auth true
sudo bash /opt/kopens/install/bin/config.sh --restart

1. Aufbau des Fensters

┌─────────────────────────────────────────────────────────────┐
│ 환경 설정 [←] [💾 저장] │
├─────────────────────────────────────────────────────────────┤
│ ⚠ 주의사항 패널 (빨강) │
│ - 환경 설정 파일 수정 시 서버 재시작 필요 │
│ - 필수 키 삭제 금지 │
│ - 웹 접속 불가시 ${PE_HOME}/conf/app.properties 수동 수정 │
├─────────────────────────────────────────────────────────────┤
│ [CodeMirror 에디터 — properties 모드 / xq-dark 테마] │
│ (라인번호, 매칭 괄호, 자동 완성, 활성 라인 하이라이트) │
└─────────────────────────────────────────────────────────────┘

2. Aktionen in der Kopfzeile

SchaltflächeFunktion
← ZurückWechsel zu /ui/main
💾 Speichern (blaue Schaltfläche)POST /config/save — speichert den aktuellen Editorinhalt in app.properties

Toast direkt nach dem Speichern: "Die Konfiguration wurde abgeschlossen! Nach einem Neustart des Servers werden die Einstellungen übernommen."

⚠ Das Speichern selbst erfolgt sofort, die Laufzeit übernimmt die Werte jedoch erst nach einem Neustart.


3. Editor — CodeMirror

FunktionVerhalten
Modustext/x-properties (Format KEY=VALUE)
Themexq-dark (schwarzer Hintergrund + leuchtende Keywords)
Zeilennummernlinks angezeigt
Klammerpaare${...} usw. automatisch hervorgehoben
Aktive ZeileCursorzeile hervorgehoben
Automatischer Zeilenumbruchlange Zeilen werden automatisch umgebrochen
Höhe2400px (lange Datei am Stück)

4. Wichtigste Schlüssel in app.properties — die häufig benötigten

Details siehe app.properties Konfiguration. Häufig angepasste Einträge:

KategorieSchlüsselBedeutung
Betriebsmodusdev.modeEDGE / STANDALONE / PLATFORM — im Edge üblicherweise EDGE
Standortkennungedge.ideindeutige ID des Gateways (EDGE_*)
site.id / site.nameStandortkennung
Übergeordnete Platformserver.host / server.port / server.usernamePlantPulse Platform API
server.api_key (Fallback auf altes server.apikey)Token für tokenbasierte Authentifizierung (V4 setUsernameAndToken)
REST API-Authentifizierung (externe Clients)edge.rest.api.authbei true wird beim Aufruf von /api/* eine Authentifizierung erzwungen
edge.rest.api.keyvon extern zu sendender API-Key. Im Betrieb über EDGE_REST_API_KEY_FILE / EDGE_REST_API_KEY einspeisen und per Header X-API-Key oder Authorization: Bearer senden. ?api_key=-Query wird mit 401 abgewiesen
OPC-UA Serveropc.ua.server.host / tcp.port / user / passwordintegrierter OPC-UA Server des Gateways (Zugriff durch externes SCADA)
opc.ua.server.anonymousAnonymous zulassen (yes/no/true/false/on/1) — der alte, fehlerhaft geschriebene Schlüssel ananymous wird als Fallback ebenfalls akzeptiert (beidseitig kompatibel)
MQTTmqtt.enable / mqtt.server.host / port / user / password / topicHiveMQ (eigen oder extern)
Sparkplug Bsparkplug.enable / sparkplug.cmd.enable / group.id / edge.node.idSparkplug-Versand + Empfang von NCMD/DCMD-Befehlen
DB / TTLapp.db.scheme_ddlPfad der DDL-Datei (default WEB-INF/db/scheme.cql — Cassandra CQL DDL)
cassandra.host / port / keyspace / edge.ttlSpeicherrichtlinie für Zeitreihen (TTL-Einheit = Tage)
Monitoringmonitor.ping.targetsPing-Ziel im Internet
Erfassungsrichtliniecollector.thread.size / collector.batch.sizePoolgröße der Erfassung
Sicherheitsecurity.session.timeout.minutesTimeout der Websitzung
Löschen / Tippfehler bei Pflichtschlüsseln → Bootfehler

Fehlen Pflichtschlüssel wie edge.id, cassandra.host, mqtt.server.host oder ist deren Format ungültig, schlägt der startup listener beim nächsten Boot fehl. Wenn die Weboberfläche nicht erscheint: per SSH einloggen, /opt/kopens/plantpulse-edge/conf/app.properties direkt korrigieren → bin/restart.sh.


5. Übernahmeprozedur nach dem Speichern

1. [💾 저장] 클릭 → 토스트 "재시작 필요"
2. 외부 SCADA / Sparkplug 수신측에 점검 공지 (다운타임 ~6초)
3. SSH 또는 시스템 메뉴 → /config/restart 호출
4. 1–2초 대기 → 화면 새로고침 → /api/v1/edge 로 새 값 확인

Für einen schnellen Neustart siehe Neustart (restart.sh) (nur Tomcat, ~6 Sekunden). Für Einträge, die einen vollständigen Neustart inklusive DB / MQTT erfordern (z. B. mqtt.enable toggle), siehe Vollständiger Neustart (stop.shstart.sh).


6. Häufige Stolperfallen

SymptomUrsache / Abhilfe
Gespeichert, aber Änderung wird nicht wirksamkein Neustart durchgeführt. bin/restart.sh aufrufen
Nach dem Speichern kein Webzugriff mehrPflichtschlüssel gelöscht / Tippfehler. Per SSH einloggen und manuell wiederherstellen
Kein Toast direkt nach dem SpeichernKommunikationsfehler → Netzwerk / Tomcat-Status prüfen (bin/ps.sh)
Koreanische Kommentare unlesbarDatei ist nicht UTF-8. Mit externem Editor UTF-8 (ohne BOM) erzwingen und speichern
Derselbe Schlüssel erscheint zweimalDer zuletzt aufgeführte Wert hat Vorrang. Erste Zeile löschen

7. System-Tags (automatische Registrierung / 90000–90035)

Beim Boot registriert das Gateway seinen eigenen OPC (EDGE_*) sowie 36 System-Tags (TAG_<edge_id>_NNNNN) automatisch im OPC-UA Server. Abonniert ein externes SCADA / IIoT-System diese Tags, erhält es die Informationen zu Status/Identität/Netzwerk des Gateways unverändert.

7.1 Identität / Host (90000–90004)

IndexMetrikTypBedeutung
90000HOSTNAMESTRINGOS hostname
90001VERSIONSTRINGSW-Version des Gateways
90002EDGE_IPSTRINGeigene IP des Gateways
90003EDGE_NAMESTRINGName des Gateways
90004OPERATING_SYSTEMSTRINGOS + Architektur

7.2 Netzwerk (90005–90011)

IndexMetrikTypBedeutung
90005NET_1_IPSTRINGIP von NIC 1
90006NET_2_IPSTRINGIP von NIC 2
90007NET_WIFI_IPSTRINGWIFI-IP
90008NET_GSM_IPSTRINGIP des GSM-Modems
90009NET_VPN_IPSTRINGVPN-IP (tailscale usw.)
90010NET_MGNT_IPSTRINGIP des Management-Ports
90011TEMPERATUREDOUBLECPU-Temperatur (°C)

7.3 System / Erfassung / Queue (90012–90027)

IndexMetrikTypBedeutung
90012CPU_USAGEDOUBLECPU %
90013MEM_USAGEDOUBLESpeicher %
90014DISK_USAGEDOUBLEFestplatte %
90015OPC_COUNTINTAnzahl registrierter OPC
90016TAG_COUNTINTAnzahl registrierter Tags
90017PLC_CON_CONNECTED_COUNTINTAnzahl verbundener OPC
90018PLC_CON_DISCONNECTED_COUNTINTAnzahl getrennter OPC
90019PLC_SCAN_START_COUNTINTAnzahl OPC mit normaler Erfassung
90020PLC_SCAN_NOT_COLLECT_COUNTINTAnzahl OPC mit gestörter Erfassung
90021PLC_SCAN_STOP_COUNTINTAnzahl OPC mit gestoppter Erfassung
90022QUEUE_SIZEINTSpeicher-Queue
90023QUEUE_DISK_SIZEINTDisk-Queue
90024SENDED_POINT_COUNTLONGkumulierte gesendete Punkte
90025SENDED_POINT_BYTESLONGkumulierte gesendete Bytes
90026MPSDOUBLENachrichten pro Sekunde
90027SYSTEM_ERROR_COUNTINTAnzahl ERROR heute

7.4 Betrieb / Identität (90028–90035) — neu

IndexMetrikTypBedeutung
90028CONNECTED_OPC_IDSSTRINGListe der verbundenen OPC-IDs (kommagetrennt)
90029API_KEYSTRINGaktuell aktiver REST API-Key
90030REGISTED_OPC_IDSSTRINGListe aller registrierten OPC-IDs
90031DISCONNECTED_OPC_IDSSTRINGListe der getrennten OPC-IDs
90032COLLECTING_OPC_IDSSTRINGListe der OPC-IDs in Erfassung
90033STOPPED_OPC_IDSSTRINGListe der OPC-IDs mit gestoppter Erfassung
90034BUILD_DATESTRINGBuilddatum des Artefakts (yyyy-MM-dd)
90035DOCKER_CONTAINER_NAMESSTRINGNamen der laufenden Docker-Container (kommagetrennt)

Alle System-Tags werden im Sekundentakt von SendTask aktualisiert. Abonniert ein externes SCADA diese Werte, lässt sich ein Dashboard aufbauen, das den Edge-Status auf einen Blick zeigt — ganz ohne Gang Vor-Ort.


8. Weiterführende Informationen