Sandstar Web Socket
Echtzeit-Kommunikation zwischen Browser und Gerät
Verbinden Sie Ihren Browser direkt mit Gebäudecontrollern -- keine Plugins, keine Java-Applets, keine Middleware-Kopfschmerzen.
Sandstar Web Socket bietet Echtzeit-Bidirektionalkommunikation zwischen Webanwendungen und Sedona-basierten Gebäudeautomationscontrollern. Öffnen Sie einen Browser-Tab, verbinden Sie sich mit einem Gerät und lesen Sie sofort Sensorwerte, schreiben Sollwerte und überwachen Änderungen -- alles in Echtzeit.
Als native SkySpark-Erweiterung lässt es sich nahtlos in Ihre bestehende Infrastruktur integrieren. Keine zusätzlichen Server zu verwalten, keine separaten Prozesse zu betreuen. Installieren Sie einfach das Pod und Ihre Web-Apps können sofort mit Sedona-Geräten kommunizieren.
Warum es existiert
Traditionalerweise war die Verbindung eines Webbrowsers mit einem Sedona-Controller ein separater Kotlin-/Java-Microservice erforderlich, der als Übersetzer fungierte. Das bedeutete, einen weiteren Prozess zu verwalten, mit Java-FFI-Besonderheiten umzugehen und über zwei Laufzeitumgebungen hinweg zu debuggen. Sandstar Web Socket beseitigt all das mit einer einzigen nativen Fantom-Implementierung, die in SkySpark selbst läuft.
Für wen es gedacht ist
- Gebäudeautomations-Integratoren, die webbasierte Tools für Sedona-Geräte benötigen
- SkySpark-Entwickler, die benutzerdefinierte Web-Schnittstellen für Geräteinteraktion erstellen
- Systemadministratoren, die weniger bewegliche Teile in ihrem Automationsstapel möchten
Verbindungs-Dashboard
Jedes Gerät auf einen Blick
Sehen Sie jeden verbundenen Controller, jede aktive Browser-Sitzung und jede Nachricht, die das System durchläuft -- live. Der Status-Endpunkt gibt Ihnen sofortige Diagnose, ohne eine Protokolldatei zu öffnen.
Verbindungszahlen, geräteweise Sitzungszustände, DASP-Socket-Integrität und Watch-Manager-Statistiken sind alle verfügbar unter /live/soxstatus. Integrieren Sie es in Ihren Monitoring-Stack oder überprüfen Sie es von einem Browser aus.
Echtzeit-Datenfluss
Browser zu Gerät in einem Hop
Ihr Browser öffnet einen WebSocket auf Port 7070. Der Server übersetzt JSON-Nachrichten in SOX-Protokollbefehle und sendet sie über DASP/UDP an den Sedona-Controller. Antworten fließen über denselben Weg zurück -- kein Polling, keine Verzögerungen.
Mehrere Browser-Tabs teilen sich automatisch dieselbe Gerätesitzung. Der Message-Router verarbeitet 17 SOX-Befehltypen -- Lesevorgänge, Schreibvorgänge, Abos, Dateiübertragungen, Komponentenverwaltung und mehr -- alles über eine einzelne WebSocket-Verbindung.
Sitzungsverwaltung
Intelligentes Pooling, keine Verbindungsfehler
Sedona-Controller unterstützen maximal 2 gleichzeitige Verbindungen. Anstatt mit diesem Limit zu kämpfen, teilt der Sitzungspool eine einzelne Verbindung pro Gerät über alle Browser-Clients. Öffnen Sie fünf Tabs zum selben Controller -- sie teilen sich eine Sitzung.
Wenn eine Verbindung abbricht, aktiviert sich automatische Wiederherstellung mit exponentiellem Backoff. Inaktive Sitzungen werden nach 5 Minuten bereinigt, und ein 30-sekündiges Linger-Timeout verhindert Verbindungsfluktuationen durch schnelle Verbindungs-/Trennzyklen. Ihre Benutzer sehen niemals Verbindungsfehler.
Live-Wertverfolgung
Beobachten Sie Wertänderungen in Echtzeit
Abonnieren Sie jede Komponente auf einem Sedona-Controller und sehen Sie deren Werte live aktualisiert. Das Watch-System gruppiert Abos nach Browser-Tab, sodass jede Seite genau die benötigten Daten erhält -- und räumt sich automatisch auf, wenn Sie den Tab schließen.
Events werden zur Effizienz batch-weise zusammengefasst und über dieselbe WebSocket-Verbindung übermittelt. Die Hintergrund-Bereinigung läuft alle 10 Sekunden, um verwaiste Watches von getrennten Clients zu erfassen. Wenn ein Tab 30 Sekunden lang nicht antwortet, werden seine Abos automatisch vom Gerät abgemeldet.
Mehrere Watches können sich auf dieselbe Komponente überschneiden -- das System verfolgt Referenzzähler und meldet nur vom Gerät ab, wenn der letzte Watcher abreist. Keine doppelten Abos, keine verwaisten Watches.
Dateiübertragung
Firmware hochladen, Konfigurationen herunterladen
Übertragen Sie Anwendungsdateien (SAX, SAB) zu und von Sedona-Controllern mit segmentierten, fortsetzbaren Übertragungen. Das Drei-Phasen-Protokoll -- öffnen, Segment, schließen -- bietet Fortschrittsanzeige und Fehlerwiederherstellung.
Pro-Gerät-Dateisperren verhindern gleichzeitige Übertragungen von Datenbeschädigungen. Jede Übertragung erhält eine eindeutige ID, und verwaiste Übertragungen werden nach 5 Minuten Inaktivität automatisch bereinigt. Laden Sie eine neue Anwendung hoch, laden Sie ein Backup herunter oder benennen Sie Dateien auf dem Gerät um -- alles über dieselbe API.
Tech-Stack
Architektur
Funktionen
- WebSocket-Server auf konfigurierbarem Port (Standard 7070) mit gleichzeitigen Browser-Verbindungen
- Vollständige SOX-Protokoll-Implementierung über DASP/UDP
- Session-Pooling -- max. 2 Sitzungen pro Sedona-Gerät (Hardware-Limit), gemeinsam genutzt über Clients
- Chunked File Transfer mit Fortschrittsanzeige für SAX/SAB-Uploads
- Watch/Subscription-System mit Batch-Event-Delivery für Live-Value-Überwachung
- Component Cache für schnelle Lesevorgänge ohne das Gerät bei jeder Anfrage zu belasten
- SkySpark Service mit Axon-Funktionsbibliothek für Status und Diagnose
Anforderungen
- SkySpark 3.0+ mit Fantom-Laufzeit
- Sedona-kompatible Controller im Netzwerk
- bassgCommon 3.0+ gemeinsame Bibliothek
Interesse an diesem Projekt?
Erkunde den Quellcode, trage bei oder nimm Kontakt auf.