2026-07-106 min Lesezeit

Echtzeit-Daten in der Industrie: Socket.io für GLT-Dashboards

A
Animus Digital
Software Engineer

Wenn eine Heizkraftzentrale einen Frostschutz-Alarm meldet oder ein Rückkühlwerk den Sollwert verlässt, darf der Wert nicht erst beim nächsten Seiten-Reload erscheinen. Klassisches HTTP-Polling — alle paar Sekunden „Gibt es Neues?" — erzeugt Overhead, verzögert Reaktionen und skaliert schlecht bei tausenden Datenpunkten.

Für Animus Industries GLT, unser On-Premise-Gebäudeleitsystem, haben wir deshalb von Anfang an auf Echtzeit-Architektur gesetzt — nicht als Feature, sondern als Fundament.

Architektur auf einen Blick

Die GLT läuft als getrenntes Frontend (Next.js auf Port 3005) und Backend (Node.js/Express auf Port 3001) auf einem Industrie-PC. Der entscheidende Kanal:

Logic-Engine (2 s Tick) → systemState (RAM) → Socket.io emit('state_update') → React Dashboard

Sobald die Logic-Engine einen neuen Anlagenzustand berechnet, pusht der Server das komplette systemState-Objekt an alle verbundenen Clients. Zusätzlich fließen semantische Haystack-Entitäten über haystack_update — wichtig für Explorer, Katalog und strukturierte OT-Daten.

JWT-gesicherte WebSockets

REST und WebSocket nutzen dieselbe JWT-Session. Der Client verbindet sich mit auth: { token } — keine parallele Auth-Logik, kein Session-Leak zwischen HTTP und Socket. Das vereinfacht Audits und entspricht dem Sicherheitsniveau, das Facility Manager und Integratoren erwarten.

Rendering-Strategien für SCADA & Dashboards

Das Pushen der Daten ist nur die halbe Miete. Ein GLT-Dashboard mit Alarmleiste, Zeitreihen, Zonensteuerung und Kategorie-KPIs darf bei jedem Tick nicht komplett neu rendern.

Unsere Praxis bei Animus Digital:

  1. Granulares State-Update: Nur betroffene Widgets reagieren auf state_update — nicht die gesamte Page.
  2. Server-seitiges Throttling: Sensoren mit 100 Hz werden in der Logic-Engine aggregiert, bevor sie den Client erreichen.
  3. Canvas für Zeitreihen: Historien-Charts (z. B. Außentemperatur) laufen über GPU-beschleunigtes Canvas-Rendering statt tausender SVG-Knoten.
  4. Getrennte Live- und Config-Pfade: SCADA-Anlagenbilder und Grundriss-Karten haben eigene Update-Zyklen — Engineering-Modus vs. Live-Modus.

On-Premise statt Cloud-Latenz

GLT-Systeme operieren im OT-Netz. Echtzeit-Daten bleiben auf dem IPC — keine Roundtrips über externe Cloud-Regionen. Socket.io auf localhost bedeutet sub-Millisekunden-Latenz zwischen Logic-Engine und Browser, auch wenn der Schichtleiter nur ein Tablet im Technikraum nutzt.

Das Ergebnis

Das Resultat ist eine Oberfläche, die sich nicht wie „Industrie-Software von 2005" anfühlt: Dark-Mode-Dashboard, interaktiver Grundriss über neun Etagen, Kiosk-Terminals und SCADA-Editor im selben System. Moderne Web-Technologie auf dem Shop-Floor — ohne Kompromisse bei Echtzeit und Sicherheit.

→ Case Study: Animus Industries GLT