Sandstar Web Socket
Communication bidirectionnelle en temps réel navigateur-appareil
Connectez votre navigateur directement aux contrôleurs de bâtiment -- pas de plugins, pas d'applets Java, pas de problèmes de middleware.
Sandstar Web Socket apporte une communication en temps réel et bidirectionnelle entre les applications web et les contrôleurs d'automatisation de bâtiment basés sur Sedona. Ouvrez un onglet de navigateur, connectez-vous à un appareil et commencez à lire les valeurs des capteurs, à écrire les consignes et à surveiller les changements -- tout en temps réel.
Construit en tant qu'extension native de SkySpark, il s'intègre directement dans votre infrastructure existante. Pas de serveurs supplémentaires à maintenir, pas de processus séparés à surveiller. Installez simplement le pod et vos applications web peuvent parler aux appareils Sedona instantanément.
Pourquoi cela existe
Traditionnellement, connecter un navigateur web à un contrôleur Sedona nécessitait un microservice Kotlin/Java séparé agissant comme traducteur. Cela signifiait gérer un autre processus, traiter les bizarreries de l'interface FFI Java et déboguer dans deux environnements d'exécution. Sandstar Web Socket élimine tout cela avec une unique implémentation Fantom native qui s'exécute à l'intérieur de SkySpark lui-même.
À qui c'est destiné
- Intégrateurs d'automatisation de bâtiment qui ont besoin d'outils basés sur le web pour les appareils Sedona
- Développeurs SkySpark créant des interfaces web personnalisées pour l'interaction avec les appareils
- Administrateurs système qui veulent moins de composants mobiles dans leur pile d'automatisation
Tableau de bord de connexion
Chaque appareil, d'un coup d'œil
Voyez chaque contrôleur connecté, chaque session de navigateur active et chaque message circulant dans le système -- en direct. Le point de terminaison de statut vous donne des diagnostics instantanés sans toucher à un fichier journal.
Les comptes de connexion, les états de session par appareil, la santé de la socket DASP et les statistiques du gestionnaire de watch sont tous disponibles à /live/soxstatus. Intégrez-le à votre pile de surveillance ou consultez-le depuis un navigateur.
Flux de données en temps réel
Navigateur vers appareil en un saut
Votre navigateur ouvre une WebSocket sur le port 7070. Le serveur traduit les messages JSON en commandes du protocole SOX et les envoie via DASP/UDP au contrôleur Sedona. Les réponses reviennent par le même chemin -- pas de polling, pas de délais.
Plusieurs onglets de navigateur partagent automatiquement la même session d'appareil. Le routeur de messages gère 17 types de commandes SOX -- lectures, écritures, abonnements, transferts de fichiers, gestion des composants, et bien plus -- tout via une seule connexion WebSocket.
Gestion de session
Pooling intelligent, zéro erreur de connexion
Les contrôleurs Sedona supportent un maximum de 2 connexions simultanées. Au lieu de lutter contre cette limite, le pool de sessions partage une seule connexion par appareil à tous les clients navigateur. Ouvrez cinq onglets vers le même contrôleur -- ils partagent tous une session.
Si une connexion échoue, la récupération automatique se déclenche avec un backoff exponentiel. Les sessions inactives sont nettoyées après 5 minutes, et un timeout de linger de 30 secondes prévient le thrashing de connexion des cycles rapides de connexion/déconnexion. Vos utilisateurs ne verront jamais d'erreurs de connexion.
Surveillance de valeurs en direct
Surveillez les changements de valeurs en temps réel
Abonnez-vous à n'importe quel composant sur un contrôleur Sedona et voyez ses valeurs mises à jour en direct. Le système watch groupe les abonnements par onglet de navigateur, de sorte que chaque page obtient exactement les données dont elle a besoin -- et se nettoie automatiquement quand vous fermez l'onglet.
Les événements sont mis en lot pour l'efficacité et livrés via la même connexion WebSocket. Le nettoyage en arrière-plan s'exécute toutes les 10 secondes pour détecter les watches obsolètes des clients déconnectés. Si un onglet cesse de ping pendant 30 secondes, ses abonnements sont automatiquement désabonnés de l'appareil.
Plusieurs watches peuvent se chevaucher sur le même composant -- le système suit les comptes de référence et ne se désabonne de l'appareil que lorsque le dernier observateur se retire. Pas d'abonnements en double, pas de watches orphelins.
Transfert de fichier
Téléchargez le firmware, téléchargez les configs
Transférez les fichiers d'application (SAX, SAB) vers et depuis les contrôleurs Sedona avec des transferts par chunks reprennables. Le protocole à trois phases -- ouvrir, chunk, fermer -- vous donne le suivi de progression et la récupération d'erreur intégrés.
Les verrous de fichiers par appareil empêchent les transferts simultanés de corrompre les données. Chaque transfert obtient un identifiant unique, et les transferts abandonnés sont automatiquement nettoyés après 5 minutes d'inactivité. Téléchargez une nouvelle application, téléchargez une sauvegarde, ou renommez les fichiers sur l'appareil -- tout via la même API.
Pile technologique
Architecture
Capacités
- Serveur WebSocket sur port configurable (par défaut 7070) avec connexions navigateurs simultanées
- Implémentation complète du protocole SOX sur DASP/UDP
- Pooling de session -- max 2 sessions par appareil Sedona (limite matérielle), partagées entre les clients
- Transfert de fichiers par chunks avec suivi de progression pour les uploads SAX/SAB
- Système Watch/Subscription avec livraison d'événements par lots pour la surveillance en direct des valeurs
- Cache de composants pour les lectures rapides sans frapper l'appareil à chaque requête
- Service SkySpark avec bibliothèque de fonctions Axon pour les diagnostics et l'état
Exigences
- SkySpark 3.0+ avec runtime Fantom
- Contrôleurs compatibles Sedona sur le réseau
- bassgCommon 3.0+ bibliothèque partagée
Intéressé par ce projet ?
Explorez le code source, contribuez ou prenez contact.