Skip to main content

Home Screen

This is the main page of the gateway web UI. It displays all operational statuses of the gateway in card format on a single screen. Cards are updated by fetching values from the backend (/monitor/bean) every 1 second, with the exception of the Sparkplug B card, which is updated every 5 seconds (/api/v1/transfer).

Edge Home Screen — Gateway Information, Network, Resource, Collection, and Server cards on one screen

Access by clicking the PlantPulse logo in the upper left or directly via http://<gateway>/ui/main.

Container Mode Cards (2026.05+)
  • MQTT / Sparkplug B / OPC UA Server cards: Directly look up keys *.enable / host / port / user in app.properties. Since install.sh generates a random password for each box, the user may be blank or differ by box.
  • Docker card: Requires /var/run/docker.sock mount. plantpulse-edge excludes itself — it does not appear in the list to prevent accidental start/stop/delete.
  • Network card (LAN1/LAN2/WiFi/GSM/VPN/Management): Mapped to edge.net.<role>.iface values. If using systemd predictable names like enp1s0 / enp2s0 / tailscale0 (similar to dev boxes), configure directly in app.properties (can be automatically reflected via NET1_IFACE=... env in install.sh).
  • Component health check: curl http://localhost/api/v1/system/health (no authentication required, 8 component status map + 503 branching).

Card Overview (Total ~30 cards)​

6-column horizontal grid. There are three types of cards:

TypeColorMeaning
action_box (White background, large icon)Gray borderNavigate to the corresponding menu upon click
black_box (Black background)Gray textStatic gateway information
gray_box (White background, gray header)Light grayReal-time monitoring — values update every 1 second

1. Top Actions / Information (Row 1)​

1.1 엣지 정보 (black_box)​

What it displays: The static identity information of this gateway. These values are measured once at boot time and are fixed on the screen.

FieldMeaningSource
Host NameOS hostname (e.g., pe-edge-01)EdgeContext.hostname
O/SOS name + architecture (e.g., Linux (amd64))os.name + os.arch
KernelKernel version (e.g., 5.14.0-...)os.version
VersionGateway SW version (e.g., V2026.05.08)app.properties
Build DateBuild date of the artifact (e.g., 2026-05-08)BUILD_DATE

⚠ Host Name and O/S information only change if the OS is replaced after a gateway restart.

1.2 프로토콜 연결 하기 (action_box)​

→ Clicking navigates to /ui/connect/connect. This screen is used to add new PLC, OPC-UA, MQTT, or simulator connections.

1.3 연결된 목록 (N) (action_box)​

→ Clicking navigates to /ui/connect/list. The "N" in parentheses indicates the number of currently registered OPC connections (monitor.opc_count).

1.4 애플리케이션 (action_box)​

→ /ui/apps. Start, stop, and manage Docker-based user applications.

1.5 노-코드 플로우 (action_box)​

→ /ui/flow (Node-RED embed). Detailed usage: Flows (Node-RED)

1.6 환경 설정 (action_box)​

→ /ui/system/config. Direct editing of app.properties, system restart/reboot, backup, temporary file cleanup, etc.


2. Gateway Identification (3 cards)​

2.1 엣지 시작 시간 (gray_box)​

What it displays: The exact time the gateway (Tomcat) was last booted — yyyy년 MM월 dd일 [a] HH시 mm분 ss초 (KST). Use this value to verify the "Last Restart" if the restart timing is suspected.

2.2 엣지 ID (gray_box)​

What it displays: The unique ID of this gateway (e.g., EDGE_00303). This is the basis for all identification in Sparkplug, REST API, OPC-UA node trees, etc. It originates from edge.id of app.properties.

2.3 배포 사이트 ID (gray_box)​

What it displays: Which site (factory/line) this Edge is deployed to (e.g., SITE_00001). Used to determine the Group ID for external SCADA or Sparkplug. It originates from site.id of app.properties.


3. Network Status (6 cards)​

Each card shows a link status icon + IP or DISCONNECTED (gray).

3.1 인터넷 (gray_box)​

Whether the gateway can ping the external internet. Icon colors:

  • Green globe: Normal connection
  • Red globe: Connection failed

The ping target is monitor.ping.targets of app.properties (e.g., 8.8.8.8).

3.2 이더넷 (gray_box) — Divided into two sections​

  • Left: 1 WAN (External network NIC, net_1_ip)
  • Right: 2 PLC (PLC network NIC, net_2_ip)

The color of each section changes according to the internet ping result (simplified display).

3.3 WIFI (gray_box)​

wifi-1 icon + IP, or wifi-slash gray (DISCONNECTED).

3.4 3G/4G/5G (gray_box)​

GSM modem IP or DISCONNECTED. SIM card icon.

3.5 VPN (gray_box)​

shield-check icon. Displays IP when VPN is connected; gray + DISCONNECTED when disconnected.

3.6 관리 포트 (gray_box)​

wrench icon. IP of the USB or separate management NIC. Generally a diagnostic channel isolated from the site network.


4. System Resources (5 cards)​

4.1 온도 (gray_box)​

CPU temperature. Red + temperature-high icon if 90°C or higher (critical); otherwise green + temperature-low. This is the primary signal for fan blockage or high-temperature alarms in industrial environments.

4.2 CPU (gray_box)​

Gauge (0–100%) + total core count. Uses the JustGage library. Updated every 1 second.

If it consistently exceeds 90%, review the PLC polling period or number of tags.

4.3 물리 메모리 (gray_box)​

Gauge + 사용 / 전체 (auto-unit KB/MB/GB). RSS usage, independent of swap.

4.4 가상 메모리 (gray_box)​

Swap usage. Gauge + 사용 / 전체. Normal range is 0–10%; if it consistently exceeds 30%, RAM may be insufficient.

4.5 디스크 (gray_box)​

Utilization of /data1 (or gateway home). Gauge + 사용 / 전체.

If it exceeds 90%, immediately execute the Cleanup / Purge (clean.sh / node-cleanup.sh) procedure.


5. Network Traffic (1 card)​

5.1 네트워크 사용량 (gray_box)​

  • Download (RX) — Cumulative received bytes
  • Upload (TX) — Cumulative transmitted bytes

Auto-units in KB/MB/GB. Cumulative values since boot.


6. Collection / Processing (4 cards)​

6.1 연결 | 태그 건수 (gray_box)​

  • Top large number: Connection (OPC) Count (opc_count)
  • Bottom large number: Tag Count (tag_count)

The total count of OPCs/tags known to the gateway, including system tags (EDGE_*).

6.2 PLC 연결 및 수집 상태 (gray_box) — 2x4 Matrix​

Left (Connection)Meaning
🟢 ConnectedNumber of OPCs with successful TCP/UDP connection (plc_con_connected_count)
🔴 DisconnectedNumber of OPCs with connection failure (plc_con_disconnected_count)
Right (Collection)Meaning
🟢 NormalCollection started + read succeeding (plc_scan_start_count)
🟧 AnomalyCollection started but read failing for a certain period (plc_scan_not_collect_count)
⬜ StoppedOPC stopped by the user (plc_scan_stop_count)

Connection and collection are different: Even if TCP is alive (Connection ✅), it is classified as a collection anomaly if reads are not arriving for any reason.

6.3 PLC 읽기/쓰기 결과 (gray_box)​

Cumulative read/write counters accumulated by the collector/REST API. Compressed display in K/M/B units.

SuccessFailure
Read (R)plc_value_read_success_countplc_value_read_error_count
Write (W)plc_value_write_success_countplc_value_write_error_count

Click the ↻ refresh icon in the upper right → calls /connect/reset-read-error → resets only the failure counter to 0. Used when you want to start counting fresh from the next cycle after clearing an alarm.

6.4 MPS (gray_box)​

Messages Per Second — Number of data points processed per second (monitor.mps). A sparkline (mini trend chart) is located directly below to provide a quick view of load changes.

If the site's typical mps is 100 but suddenly drops to 0 → PLC connection or collection anomaly.


7. Transmission / Storage (5 cards)​

7.1 대기 큐 (gray_box)​

The queue size of points awaiting transmission (queue_size).

Typically 0 to several dozen. If external transmission is blocked (e.g., Sparkplug disconnected), it increases rapidly → overflows into the disk queue (queue_disk_size). If this card continues to grow, check external communications.

7.2 포인트 전송 건수 (gray_box)​

Cumulative number of points successfully transmitted externally since boot (sended_point_count).

7.3 포인트 전송량 (gray_box)​

Cumulative transmitted bytes since boot (sended_point_bytes). Auto-units. Refer to this for data usage billing calculations.

7.4 데이터 저장량 (gray_box)​

Total size of time series data stored in the Cassandra keyspace pe (MBytes input → auto-unit conversion). View this alongside remaining disk space.

7.5 데이터 저장 기간 (gray_box)​

TTL (Time-To-Live) days for tm_tag_point (system_db_ttl, default 30 days). Data expires automatically after this period. Change this in app.properties.


8. System Errors (1 card)​

8.1 시스템 오류 (오늘) (gray_box)​

The number of ERROR level system logs that occurred today (00:00–present) (system_error_count). Large red number. Click the number → navigate to /system/log/list to check the actual log body.


9. External Services / Integration (5 cards)​

Each card consists of a status bar (green/red/gray) + a connection information table.

9.1 플랫폼 API 서버 (gray_box)​

Connection status with the upper PlantPulse platform API. Clicking the external link icon in the upper right opens that server in a new window.

RowMeaning
Bar🟢 Connection Success / 🔴 Connection Failure (monitor.api)
HOST/IPserver.host
PORTserver.port
USERserver.username

9.2 OPC-UA 서버 (gray_box)​

Information for the embedded OPC-UA server in the gateway. External SCADAs connect here to subscribe to tags.

RowMeaning
Bar🟢 Active (Server always operational)
HOST/IPopc.ua.server.host
PORTopc.ua.server.tcp.port (Default 12000)
USERopc.ua.server.user

For detailed node trees / time series charts: Using OPC UA Server

9.3 MQTT 서버 (gray_box)​

Information for the embedded HiveMQ in the gateway + the topic for publishing Sparkplug, etc.

RowMeaning
Bar🟢 Active / ⬜ Inactive (mqtt.enable)
HOST/IPmqtt.server.host
PORTmqtt.server.port (Default 1883)
USERmqtt.server.user
TOPICmqtt.server.topic (Sparkplug spBv1.0/... or user topic)

9.4 Sparkplug B (gray_box)​

Real-time status of the Sparkplug publishing component (5-second update, item Sparkplug of /api/v1/transfer).

RowMeaning
Bar🟢 Active (Connected) / 🔴 Disconnected (Active but broker connection lost) / ⬜ Inactive (sparkplug.enable=false)
GROUPSparkplug Group ID (e.g., Plant1)
NODEEdge Node ID (e.g., EDGE_00303)
Session #bdSeq (Device birth/death sequence — reconnection count)
Message #seq (Current published message number — 0–255 cycle)

If Message # is frozen, transmission has stopped. If Session # increases frequently, the broker connection is unstable.

9.5 도커 (gray_box)​

Docker daemon status + user application container statistics.

RowMeaning
Bar🟢 Running / 🔴 Stopped (monitor.docker_on)
CountNumber of containers (docker_container_up_count / docker_container_total_count) in [ 살아있는 / 전체 ]

Provides an at-a-glance view of whether all applications registered in /ui/apps are alive.


The following are displayed at the bottom of the screen:

  • PlantPulse Edge text + License
  • ☁ Software Upgrade icon — clicking calls upgrade.sh (after confirmation dialog)
    • Badge next to icon:
      • Red "Upgrade Available!" → New version exists on download server
      • Gray "Download Server Unreachable" → External network / product.kopens.io access failure
      • (No badge) → Current version is the latest
  • External Port Shortcuts — Open other external services (e.g., Grafana 3000) in a new window

Internally, /config/upgrade/check fetches https://product.kopens.io/.../VERSION.JSON server-to-server for comparison → badges are displayed cleanly without CORS errors.


11. Update Cycle / Data Source Summary​

AreaUpdate CycleEndpoint
Gauges / Resources / Network / Counters / Queues / Storage / Errors1 secondGET /monitor/bean
Sparkplug B card5 secondsGET /api/v1/transfer
Upgrade badgeOnce on page loadGET /config/upgrade/check
Black info cards (Host Name/OS/Version, etc.)No update (Value at page load)EdgeContext (Determined at server boot)

12. Common Observation Patterns​

Screen SignalSuspected Cause / Action
Temperature Red (90°C↑)Fan blockage / Ambient temperature — Inspect immediately
CPU Consistently 90%+Polling period too fast / Too many tags
Disk 90%+Cleanup and Purge — clean.sh + node-cleanup.sh
PLC Disconnected count sudden increasePLC network cable / Switch / PLC power
Collection Anomaly > 0Connection OK but read failed — Check address format / PLC firmware
MPS drops to 0All PLCs read failed or collector stopped
Wait Queue continues to increaseExternal transmission (Sparkplug / MQTT) blocked — Check 9.3/9.4 cards
System Error red numberClick → Check body in /system/log/list
Sparkplug Message # does not changeTransmission stopped — Check sparkplug.* of app.properties
Docker RedCheck daemon status in systemctl status docker

13. Learn More​