Startseite
Dies ist die Hauptseite der Gateway-Web-UI. Sie zeigt den gesamten Betriebszustand des Gateway in Form von Karten auf einem einzigen Bildschirm an. Die Karten werden im 1-Sekunden-Intervall aktualisiert, indem die Werte vom Backend (/monitor/bean) abgerufen werden. Nur die Sparkplug B-Karte wird separat im 5-Sekunden-Intervall (/api/v1/transfer) aktualisiert.

Klicken Sie auf das PlantPulse-Logo oben links oder greifen Sie direkt über http://<gateway>/ui/main zu.
- MQTT / Sparkplug B / OPC UA Server Karten: Direkter Lookup der Schlüssel
app.properties*.enable/host/port/user. Da install.sh für jede Box ein zufälliges Passwort generiert, ist das Feld «user» entweder leer oder wird pro Box unterschiedlich angezeigt. - Docker Karte:
/var/run/docker.sockMount erforderlich.plantpulse-edgeschließt sich selbst aus (self-exclude) — wird nicht in der Liste angezeigt (Sicherheitsblockierung von Start/Stop/Delete). - Netzwerk Karte (LAN1/LAN2/WiFi/GSM/VPN/Management): Mapping über
edge.net.<role>.ifaceWerte. Bei systemd-predictable Namen wieenp1s0 / enp2s0 / tailscale0(ähnlich wie bei Dev-Boxen) erfolgt die Konfiguration direkt inapp.properties(automatische Übernahme überNET1_IFACE=...env in install.sh möglich). - Überprüfung der Komponenten-Health in einer Zeile:
curl http://localhost/api/v1/system/health(keine Authentifizierung erforderlich, Status-Map der 8 Komponenten + 503-Verzweigung).
Kartenübersicht (insgesamt ~30 Stück)
Raster mit 6 Spalten. Es gibt drei Arten von Karten:
| Typ | Farbe | Bedeutung |
|---|---|---|
| action_box (weißer Hintergrund, großes Icon) | Grauer Rand | Klick führt zum entsprechenden Menü |
| black_box (schwarzer Hintergrund) | Graue Schrift | Unveränderliche Gateway-Informationen |
| gray_box (weißer Hintergrund, grauer Header) | Hellgrau | Echtzeit-Überwachung — Werte werden jede Sekunde aktualisiert |
1. Obere Aktionen / Informationen (Zeile 1)
1.1 엣지 정보 (black_box)
Was wird angezeigt: Unveränderliche Identitätsinformationen dieses Gateways. Diese werden nur einmal zum Zeitpunkt des Bootens gemessen und fest im Bildschirm hinterlegt.
| Feld | Bedeutung | Quelle |
|---|---|---|
| Hostname | Hostname des OS (z. B. pe-edge-01) | EdgeContext.hostname |
| O/S | OS-Name + Architektur (z. B. Linux (amd64)) | os.name + os.arch |
| Kernel | Kernel-Version (z. B. 5.14.0-...) | os.version |
| Version | Gateway-SW-Version (z. B. V2026.05.08) | app.properties |
| Build-Datum | Build-Datum des Artefakts (z. B. 2026-05-08) | BUILD_DATE |
⚠ Hostname- und OS-Informationen ändern sich nur, wenn das OS nach einem Neustart des Gateways ausgetauscht wurde.
1.2 프로토콜 연결 하기 (action_box)
→ Klick führt zu /ui/connect/connect. Bildschirm zum Hinzufügen neuer PLC / OPC-UA / MQTT / Simulator-Verbindungen.
1.3 연결된 목록 (N) (action_box)
→ Klick führt zu /ui/connect/list. Das N in Klammern gibt die Anzahl der derzeit registrierten OPC-Verbindungen an (monitor.opc_count).
1.4 애플리케이션 (action_box)
→ /ui/apps. Starten, Stoppen und Verwalten von Docker-basierten Benutzeranwendungen.
1.5 노-코드 플로우 (action_box)
→ /ui/flow (Node-RED Embed).
Detaillierte Nutzung: Flows (Node-RED)
1.6 환경 설정 (action_box)
→ /ui/system/config. Direkte Bearbeitung von app.properties + Systemneustart / Reboot / Backup / Bereinigung temporärer Dateien usw.
2. Gateway-Identifikation (3 Karten)
2.1 엣지 시작 시간 (gray_box)
Was wird angezeigt: Der exakte Zeitpunkt des letzten Bootens des Gateways (Tomcat) — yyyy년 MM월 dd일 [a] HH시 mm분 ss초 (KST).
Überprüfen Sie diesen Wert, wenn der Zeitpunkt eines Neustarts fragwürdig ist.
2.2 엣지 ID (gray_box)
Was wird angezeigt: Die eindeutige ID dieses Gateways (z. B. EDGE_00303). Dies ist die Basis für alle Identifikationen in Sparkplug, REST API, OPC-UA Node-Tree usw. Stammt aus app.properties edge.id.
2.3 배포 사이트 ID (gray_box)
Was wird angezeigt: In welchem Site (Werk / Linie) dieses Edge platziert ist (z. B. SITE_00001). Wird zur Bestimmung der Group ID für externe SCADA / Sparkplug verwendet. Stammt aus app.properties site.id.
3. Netzwerkstatus (6 Karten)
Jede Karte zeigt ein Link-Status-Icon + IP oder DISCONNECTED (grau).
3.1 인터넷 (gray_box)
Prüft, ob das Gateway das externe Internet per Ping erreichen kann. Icon-Farbe:
- Grübe Globe: Verbindung normal
- Rote Globe: Verbindung fehlgeschlagen
Das Ping-Ziel ist app.properties monitor.ping.targets (z. B. 8.8.8.8).
3.2 이더넷 (gray_box) — in zwei Bereiche unterteilt
- Links: 1 WAN (Externes Netz NIC,
net_1_ip) - Rechts: 2 PLC (PLC-Netz NIC,
net_2_ip)
Die Farben beider Bereiche ändern sich synchron basierend auf dem Internet-Ping-Ergebnis (vereinfachte Darstellung).
3.3 WIFI (gray_box)
wifi-1 Icon + IP oder wifi-slash grau (DISCONNECTED).
3.4 3G/4G/5G (gray_box)
IP des GSM-Modems oder DISCONNECTED. SIM-Karten-Icon.
3.5 VPN (gray_box)
shield-check Icon. Zeigt die IP bei aktiver VPN-Verbindung, ansonsten grau + DISCONNECTED.
3.6 관리 포트 (gray_box)
wrench Icon. IP des USB / separaten Management-NIC. In der Regel ein Diagnosekanal, der vom Site-Netzwerk getrennt ist.
4. Systemressourcen (5 Karten)
4.1 온도 (gray_box)
CPU-Temperatur. Ab 90°C: Rot + temperature-high Icon (Gefahr), darunter: Grün + temperature-low. Primäres Signal für blockierte Lüfter / Hochtemperatur-Alarme in Industrieumgebungen.
4.2 CPU (gray_box)
Gauge (0–100%) + Gesamtanzahl der Kerne. JustGage Bibliothek. 1-Sekunden-Aktualisierung.
Wenn die Auslastung dauerhaft über 90% liegt, müssen PLC-Polling-Intervalle / Tag-Anzahl geprüft werden.
4.3 물리 메모리 (gray_box)
Gauge + 사용 / 전체 (automatische Einheiten KB/MB/GB). RSS-Speicherverbrauch unabhängig vom Swap.
4.4 가상 메모리 (gray_box)
Swap-Auslastung. Gauge + 사용 / 전체. Normalwert 0–10%, bei dauerhaft über 30% besteht die Wahrscheinlichkeit eines RAM-Mangels.
4.5 디스크 (gray_box)
Auslastung von /data1 (oder Gateway-Home). Gauge + 사용 / 전체.
Bei über 90% sofortiges Ausführen des Verfahrens Bereinigung / Reinigung (clean.sh / node-cleanup.sh).
5. Netzwerkverkehr (1 Karte)
5.1 네트워크 사용량 (gray_box)
- Download (RX) — Akkumulierte empfangene Bytes
- Upload (TX) — Akkumulierte gesendete Bytes
Automatische Einheiten KB/MB/GB. Akkumulierter Wert seit dem Booten.
6. Erfassung / Verarbeitung (4 Karten)
6.1 연결 | 태그 건수 (gray_box)
- Obere große Zahl: Anzahl Verbindungen (OPC) (
opc_count) - Untere große Zahl: Anzahl Tags (
tag_count)
Gesamtanzahl der vom Gateway bekannten OPC/Tags, einschließlich System-Tags (EDGE_*).
6.2 PLC 연결 및 수집 상태 (gray_box) — 2x4 Matrix
| Links (Verbindung) | Bedeutung |
|---|---|
| 🟢 Verbunden | Anzahl OPC mit OK TCP/UDP-Verbindung (plc_con_connected_count) |
| 🔴 Getrennt | Anzahl OPC mit fehlgeschlagener Verbindung (plc_con_disconnected_count) |
| Rechts (Erfassung) | Bedeutung |
|---|---|
| 🟢 Normal | Erfassung gestartet + Read erfolgreich (plc_scan_start_count) |
| 🟧 Anomalie | Erfassung gestartet, aber Read über einen Zeitraum fehlgeschlagen (plc_scan_not_collect_count) |
| ⬜ Gestoppt | Vom Benutzer gestopptes OPC (plc_scan_stop_count) |
Unterschied zwischen Verbindung und Erfassung: Selbst wenn TCP aktiv ist (Verbindung ✅), wird ein Fall als Erfassungsanomalie eingestuft, wenn aus irgendeinem Grund keine Read-Daten eingehen.
6.3 PLC 읽기/쓰기 결과 (gray_box)
Akkumulierte Read/Write-Zähler des Erfassers/der REST API. Komprimierte Anzeige in K/M/B Einheiten.
| Erfolg | Fehler | |
|---|---|---|
| Lesen (R) | plc_value_read_success_count | plc_value_read_error_count |
| Schreiben (W) | plc_value_write_success_count | plc_value_write_error_count |
Klick auf das ↻ Refresh-Icon oben rechts → Aufruf von /connect/reset-read-error → Nur Fehlerzähler werden auf 0 zurückgesetzt. Zum Verwenden nach einer Alarmbereinigung, um im nächsten Zyklus neu zu zählen.
6.4 MPS (gray_box)
Messages Per Second — Anzahl der pro Sekunde verarbeiteten Datenpunkte (monitor.mps).
Darunter ein Sparkline (Mini-Trenddiagramm der letzten Werte). Laständerungen auf einen Blick.
Wenn der übliche mps eines Sites bei 100 liegt und plötzlich auf 0 fällt → PLC-Verbindung oder Erfassungsanomalie.
7. Übertragung / Speicherung (5 Karten)
7.1 대기 큐 (gray_box)
Größe der Queue für zur Übertragung wartende Punkte (queue_size).
Normalwert 0 bis einige Dutzend. Steigt bei blockierter externer Übertragung (z. B. Sparkplug-Unterbrechung) schnell an → Überlauf in die Disk-Queue (
queue_disk_size). Bei kontinuierlichem Anstieg ist die externe Kommunikation zu prüfen.
7.2 포인트 전송 건수 (gray_box)
Seit dem Booten erfolgreich extern übertragene akkumulierte Punktanzahl (sended_point_count).
7.3 포인트 전송량 (gray_box)
Seit dem Booten akkumulierte gesendete Bytes (sended_point_bytes). Automatische Einheiten. Referenz für die Abrechnung des Datennutzungsvolumens.
7.4 데이터 저장량 (gray_box)
Gesamtgröße der Zeitreihen im Cassandra Keyspace pe (Eingabe in MBytes → automatische Einheitenumrechnung). Zusammen mit dem verbleibenden Festplattenplatz betrachten.
7.5 데이터 저장 기간 (gray_box)
TTL (Time-To-Live) Tage für tm_tag_point (system_db_ttl, Standard: 30 Tage). Daten laufen nach Ablauf dieser Tage automatisch ab. Änderung in app.properties.
8. Systemfehler (1 Karte)
8.1 시스템 오류 (오늘) (gray_box)
Anzahl der Systemlogs der Stufe ERROR, die heute (00:00 bis jetzt) aufgetreten sind (system_error_count). Große rote Zahl.
Klick auf die Zahl → Weiterleitung zu /system/log/list, um den tatsächlichen Logtext zu prüfen.
9. Externe Dienste / Integration (5 Karten)
Jede Karte enthält einen Statusbalken (Grün/Rot/Grau) + eine Tabelle mit Verbindungsinformationen.
9.1 플랫폼 API 서버 (gray_box)
Verbindungsstatus zur übergeordneten PlantPulse Plattform API. Klick auf das Externe-Link-Icon oben rechts öffnet den Server in einem neuen Fenster.
| Zeile | Bedeutung |
|---|---|
| Balken | 🟢 Verbindung erfolgreich / 🔴 Verbindung fehlgeschlagen (monitor.api) |
| HOST/IP | server.host |
| PORT | server.port |
| USER | server.username |
9.2 OPC-UA 서버 (gray_box)
Informationen zum internen OPC-UA Server des Gateways. Externe SCADA verbinden sich hier, um Tags zu abonnieren.
| Zeile | Bedeutung |
|---|---|
| Balken | 🟢 Aktiviert (Server wird immer betrieben) |
| HOST/IP | opc.ua.server.host |
| PORT | opc.ua.server.tcp.port (Standard 12000) |
| USER | opc.ua.server.user |
Details zu Node-Tree / Zeitreihencharts: OPC UA Server verwenden
9.3 MQTT 서버 (gray_box)
Informationen zum internen HiveMQ des Gateways + Topics für Sparkplug etc.
| Zeile | Bedeutung |
|---|---|
| Balken | 🟢 Aktiviert / ⬜ Deaktiviert (mqtt.enable) |
| HOST/IP | mqtt.server.host |
| PORT | mqtt.server.port (Standard 1883) |
| USER | mqtt.server.user |
| TOPIC | mqtt.server.topic (Sparkplug spBv1.0/... oder Benutzertopic) |
9.4 Sparkplug B (gray_box)
Echtzeitstatus der Sparkplug-Publishing-Komponente (5-Sekunden-Aktualisierung, Punkt Sparkplug von /api/v1/transfer).
| Zeile | Bedeutung |
|---|---|
| Balken | 🟢 Aktiviert (Verbunden) / 🔴 Verbindung getrennt (Aktiv, aber Broker-Verbindung unterbrochen) / ⬜ Deaktiviert (sparkplug.enable=false) |
| GROUP | Sparkplug Group ID (z. B. Plant1) |
| NODE | Edge Node ID (z. B. EDGE_00303) |
| Session # | bdSeq (Device Birth/Death Sequenz — Anzahl der Neuverbindungen) |
| Message # | seq (Aktuelle Publish-Nachrichtennummer — Zyklus 0–255) |
Bleibt die Message # stehen, ist der Versand unterbrochen. Steigt die Session # häufig an, ist die Broker-Verbindung instabil.
9.5 도커 (gray_box)
Status des Docker-Daemons + Statistiken der Benutzeranwendungs-Container.
| Zeile | Bedeutung |
|---|---|
| Balken | 🟢 In Betrieb / 🔴 Gestoppt (monitor.docker_on) |
| Anzahl | Anzahl der Container [ 살아있는 / 전체 ] (docker_container_up_count / docker_container_total_count) |
Überblick, ob alle in /ui/apps registrierten Anwendungen aktiv sind.
10. Footer (Gemeinsam für alle Seiten)
Am unteren Bildschirmrand wird Folgendes angezeigt:
- Text PlantPulse Edge + Lizenz
- ☁ Software-Upgrade Icon — Klick ruft
upgrade.shauf (nach Bestätigungsdialog)- Badge neben dem Icon:
- Rotes «Upgrade verfügbar!» → Neue Version auf dem Download-Server vorhanden
- Graues «Download-Server nicht erreichbar» → Externes Netz / Zugriff auf
product.kopens.iofehlgeschlagen - (Kein Badge) → Aktuelle Version ist die neueste
- Badge neben dem Icon:
- Externe Port-Kürzel — Öffnen anderer externer Dienste (z. B. Grafana 3000) in einem neuen Fenster.
Intern ruft /config/upgrade/check per Server-to-Server https://product.kopens.io/.../VERSION.JSON ab und vergleicht diese, um das Badge sauber ohne CORS-Fehler anzuzeigen.
11. Aktualisierungsintervalle / Datenquellen
| Bereich | Aktualisierungsintervall | Endpunkt |
|---|---|---|
| Gauges / Ressourcen / Netzwerk / Zähler / Queues / Speichermenge / Fehler | 1 Sekunde | GET /monitor/bean |
| Sparkplug B Karte | 5 Sekunden | GET /api/v1/transfer |
| Upgrade-Badge | 1x beim Laden der Seite | GET /config/upgrade/check |
| Schwarze Info-Karten (Hostname/OS/Version etc.) | Keine Aktualisierung (Wert zum Zeitpunkt des Seitenladens) | EdgeContext (festgelegt beim Server-Boot) |
12. Häufige Muster
| Signal auf dem Bildschirm | Verdacht / Aktion |
|---|---|
| Temperatur Rot (90°C↑) | Blockierte Lüfter / Umgebungstemperatur — Sofortige Inspektion |
| CPU dauerhaft 90%+ | Polling-Intervall zu schnell / zu viele Tags |
| Disk 90%+ | Bereinigung und Reinigung — clean.sh + node-cleanup.sh |
| PLC-Unterbrechung Zähler steigt plötzlich | PLC-Netzwerk Kabel / Switch / PLC-Stromversorgung |
| Erfassungsanomalie > 0 | Verbindung OK, aber Read fehlgeschlagen — Adressformat / PLC-Firmware prüfen |
| MPS fällt auf 0 | Alle PLCs Read-Fehler oder Erfassung gestoppt |
| Warte-Queue steigt kontinuierlich | Externe Übertragung (Sparkplug / MQTT) blockiert — Karten 9.3/9.4 prüfen |
| Systemfehler Rote Zahl | Klick → Inhalt in /system/log/list prüfen |
| Sparkplug Message # ändert sich nicht | Versand unterbrochen — app.properties sparkplug.* prüfen |
| Docker Rot | Daemon-Status in systemctl status docker prüfen |
13. Weiterführende Informationen
- Verbindung hinzufügen: Neue PLC-Verbindung hinzufügen
- Verbindungsliste / Tag-Bildschirm: Echtzeitwerte anzeigen
- OPC UA Server: OPC UA Server verwenden
- Flow-Automatisierung: Einstieg in Flows (Node-RED)
- Systemkonfiguration / Betriebsskripte: Betriebsübersicht