Web UI Configuration
This screen allows you to edit the gateway settings (Edge identification, OPC UA, data transfer, operation mode, Platform, AI, and HA) via the web. The values are ultimately saved as app.properties.
1. Screen Layout — 7-Tab Form
This screen provides an itemized form for editing gateway settings. For each value, the meaning and default value are described below the input field.

| Number | Position | Function |
|---|---|---|
| ① | Top | Caution Panel — Restart requirements, mandatory keys, and troubleshooting for web access issues |
| ② | Below | 7 Tabs — Edge, OPC UA Server, Data Transfer, Operation Mode, Platform / API, AI Assistant, HA (Dual Edge) |
| ③ | Top Right | Save — Saves all values, not just the current tab |
| ④ | Body | Group Headers — Divisions within a single tab |
| ⑤ | Each Row | Label, input field, description and default value |
| ⑥ | Bottom | Continuing groups (PLC Collector, Diagnostics, REST API Authentication, etc.) |
Previously, this was a screen where the app.properties source was edited in its entirety using CodeMirror. It is now an itemized form, so you do not need to type keys manually. The only time you must edit files by hand is when the web UI does not load, in which case you should edit /opt/kopens/plantpulse-edge/conf/app.properties as specified in the caution panel.
Home Card Configuration → Click, or /ui/system/config.
2. Tab Details
Edge
| Group | Items |
|---|---|
| Edge Identification | edge.id · edge.site_id · Retention period(edge.ttl) · 24/7 Operation(edge.always-on) · Platform Callback Address(edge.base_url) |
| Administrator Account | edge.admin_login_id · edge.admin_password |
| Initial Registration (CSV) | edge.init — Automatically registers OPC/tag CSVs uploaded to /ui/connect/csv during boot |
| PLC Collector | Number of collection threads · Force connection reset(ms) · Connection warning(ms) · Address scan warning(ms) · Address map scan warning(ms) |
| Diagnostics | edge.diagnostic.send.enabled — Periodically sends data to the Platform diagnostics server |
| REST API Authentication | edge.rest.api.auth · edge.rest.api.key |
If left blank, the system determines the address in the order of LAN1 → LAN2 → Hostname. Specify it only if the device is behind a NAT or uses a separate management network. While domains and hostnames are supported, the Platform only allows loose certificate verification for private IPs, so using a name may cause TLS failures with self-signed certificates.
OPC UA Server
This is the OPC UA server that the Edge exposes externally (the side where external SCADA connects). Domain, TCP port, TLS port, user, password, allow anonymous access, insecure endpoint.
Data Transfer
| Group | Items |
|---|---|
| MQTT Publisher | mqtt.enable · Host · Port · User · Password · Topic |
| Sparkplug B | sparkplug.enable · Group ID · Edge Node ID · Device Strategy · QoS · bdSeq Path · Use Alias · Command Reception(sparkplug.cmd.enable) |
Operation Mode
There is only one dev.mode — only two options: EDGE (Platform connected) / STANDALONE (Not connected).
Entering PLATFORM will stop the startup process.
Platform / API
Platform server connection — Host, Port, SSL, API Key, and whether to use messaging with the broker address.
This tab includes a Connection Test button. As described on the screen, it «tests the connection to the Platform /api/v5 using the values currently entered on the screen without saving». Since ping does not require authentication, the API key is also verified — this prevents the error of saving an incorrect key and only discovering it after a restart.
AI Assistant
| Group | Items |
|---|---|
| AI Inference API | ai.enabled · ai.api.base_url · ai.model · ai.api.key |
| Tuning | ai.max_tool_steps · ai.timeout_ms · ai.bulk_read_limit |
For more details, see AI Edge Assistant.
HA (Dual Edge)
| Group | Items |
|---|---|
| HA Pair | ha.peer.enabled · Peer Host · Check Cycle(ms) |
| PLC Write Permission | edge.plc.write_authority |
3. Saving and Application
Save writes the values for all tabs, not just the one currently being viewed (POST /config/save). Saving happens immediately, but changes to the runtime are applied after a restart.
1. [저장] → 토스트 "재시작 필요"
2. 외부 SCADA / Sparkplug 수신측에 점검 공지 (앱만 재시작해도 30~90초는 끊깁니다)
3. 재시작 (/config/restart 또는 bin/restart.sh)
4. 1–2초 대기 → 화면 새로고침 → /api/v1/edge 로 새 값 확인
For items that only require the app to be restarted, restart-app.sh (30–90 seconds) is sufficient. For items that require the DB or MQTT to be restarted (e.g., mqtt.enable toggle), a Full Restart is required.
As warned on the screen — «Leaving mandatory keys blank or saving them with incorrect values may cause the next boot to fail». If the web UI does not load, access via SSH to manually correct /opt/kopens/plantpulse-edge/conf/app.properties and then bin/restart.sh.
In container mode (2026.05+), saving updates /etc/kopens/app.properties (host bind mount), and changes are applied by restarting the container. The auth.properties of the HiveMQ broker is automatically synchronized with mqtt.server.* at every boot, so no manual intervention is needed.
This can also be done via CLI.
sudo bash /opt/kopens/install/bin/config.sh --set edge.rest.api.auth true
sudo bash /opt/kopens/install/bin/config.sh --restart
4. Common Pitfalls
| Symptom | Cause / Solution |
|---|---|
| Save successful, but changes not applied | Restart not performed. Call bin/restart.sh |
| Web access impossible after saving | Mandatory values are blank or format is corrupted. Manual recovery via SSH |
| Not connecting to Platform | Press Connection Test first — it checks host, port, SSL, and API key simultaneously |
| Toast notification does not appear after saving | Communication error → Check network / Tomcat status (bin/ps.sh) |
The complete list of keys and default values is available in the app.properties Reference.
5. System Tags (Auto-registration / 90000–90037)
Upon gateway boot, the system automatically registers its own system connection (OPC_SYSTEM_<edge_id>) and 38 system tags (TAG_<edge_id>_90000 to _90037) to the OPC-UA server. External SCADA / IIoT systems can subscribe to these tags to receive the gateway's status, identification, and network information.
5.1 Identification / Network (90000–90006)
| Index | Metric | Type | Meaning |
|---|---|---|---|
| 90000 | HOSTNAME | STRING | Edge box hostname |
| 90001 | VERSION | STRING | Edge SW version |
| 90002 | NET_1_IP | STRING | Network port 1 IP |
| 90003 | NET_2_IP | STRING | Network port 2 IP |
| 90004 | NET_WIFI_IP | STRING | Wi-Fi IP |
| 90005 | NET_VPN_IP | STRING | VPN IP |
| 90006 | PING | BOOLEAN | Platform reachability |
5.2 Resources (90007–90011)
| Index | Metric | Type | Meaning |
|---|---|---|---|
| 90007 | CPU_USED_PERCENT | DOUBLE | CPU utilization (%) |
| 90008 | MEMORY_USED_PERCENT | DOUBLE | Memory utilization (%) |
| 90009 | DISK_USED_PERCENT | DOUBLE | Disk utilization (%) |
| 90010 | NETWORK_RX_BYTES | LONG | Network received bytes |
| 90011 | NETWORK_TX_BYTES | LONG | Network transmitted bytes |
5.3 Collection / Transfer / System (90012–90027)
| Index | Metric | Type | Meaning |
|---|---|---|---|
| 90012 | PLC_CON_CONNECTED_COUNT | LONG | Number of connected connections |
| 90013 | PLC_CON_DISCONNECTED_COUNT | LONG | Number of disconnected connections |
| 90014 | PLC_VALUE_READ_SUCCESS_COUNT | LONG | Number of successful tag reads |
| 90015 | PLC_VALUE_READ_ERROR_COUNT | LONG | Number of failed tag reads |
| 90016 | SENDED_POINT_COUNT | LONG | Number of points sent to Platform |
| 90017 | SENDED_POINT_BYTES | LONG | Bytes sent to Platform |
| 90018 | MPS | LONG | Points processed per second |
| 90019 | TEMPERATURE | INT | Device temperature |
| 90020 | OPC_COUNT | INT | Number of registered connections |
| 90021 | TAG_COUNT | INT | Number of registered tags |
| 90022 | SERVER_STARTED_TIMESTAMP | LONG | Edge start time (epoch ms) |
| 90023 | PLC_PING_FAILED_COUNT | INT | Number of devices not responding to ping |
| 90024 | SYSTEM_DB_TTL | INT | Local data retention period (TTL) |
| 90025 | SYSTEM_TOTAL_DB_SIZE | LONG | Local DB size |
| 90026 | SYSTEM_ERROR_COUNT | LONG | Number of Edge errors |
| 90027 | THREAD_COUNT | LONG | JVM thread count |
5.4 Operation / Identification (90028–90037)
| Index | Metric | Type | Meaning |
|---|---|---|---|
| 90028 | CONNECTED_OPC_IDS | STRING | List of connected connection IDs |
| 90029 | API_KEY | STRING | REST API key field. Value is always masked (******) so the actual key is not exposed |
| 90030 | REGISTED_OPC_IDS | STRING | List of registered connection IDs |
| 90031 | DISCONNECTED_OPC_IDS | STRING | List of disconnected connection IDs |
| 90032 | COLLECTING_OPC_IDS | STRING | List of connection IDs currently collecting |
| 90033 | STOPPED_OPC_IDS | STRING | List of connection IDs stopped from collecting |
| 90034 | BUILD_DATE | STRING | Edge build date |
| 90035 | DOCKER_CONTAINER_NAMES | STRING | Running Docker containers |
| 90036 | NET_MGNT_IP | STRING | Management network IP |
| 90037 | NET_GSM_IP | STRING | Cellular(GSM) IP |
Types refer to schema types. CPU, memory, disk utilization, and network bytes are published as INT. System tags are updated by
SendTaskevery 10 seconds. By subscribing to these with an external SCADA, you can create a dashboard to monitor Edge status without visiting the field.
6. Learn More
- Meaning of all keys: app.properties Reference
- Restart after changes: Restart (
restart.sh) - Change after backup: Backup (
backup.sh) - Verifying changes via system logs: View System Logs
- REST API Authentication / Key Issuance: REST API Guide