RWS

Digimat® RWS (Remote Web Server) est une solution globale de supervision GTB WEB développée par nos ingénieurs qui permet de gérer un parc d'installations depuis un explorateur Internet.

La nouvelle version (RWS2) propose une solution pure HTML5, fonctionnant sur tous les explorateurs modernes, sans plugin. L'interface utilisateur est étudiée pour fonctionner sur postes de travail (Windows, OSX, Linux) ainsi que sur tablettes (iOS, Android). Sur tablette, nous conseillons vivement l'usage d'un iPad Pro pour permettre une meilleure lisibilité.

Cloud

RWS utilise l'infrastructure cloud Digimat® DCF comme moteur : on raccorde dans un premier temps les différentes installations GTB sur le réseau Digimat DCF qui se charge alors de fournir un accès standardisé et dématérialisé à l'ensemble des ressources. Le serveur RWS héberge de son côté toute la mécanique de génération des images graphiques (synoptiques) en utilisant les informations données par la couche DCF en temps réel.

Plusieurs serveurs RWS peuvent être déployés en fonction de la charge ou de la segmentation réseau souhaitée. RWS réutilise directement l'ensemble de l'imagerie générée par les outils logiciels Digimat® "traditionnels" lors de la mise en oeuvre GTB du site.

Synchronisation automatique

La synchronisation des serveurs RWS avec les outils de conception GTB est automatique. L'utilisateur dispose donc en permanence d'un système à jour, où qu'il se trouve. Le classeur de révision numérique (schémas électriques, notes de mise en service, etc) est inclus dans le cycle de mise à jour. Le réseau DCF se charge du transport et de l'acheminement des fichiers binaires : on évite ainsi toutes les problématiques liées aux firewalls.

Authentification

Digimat® DCF demande l'établissement de sessions authentifiées pour permettre le transport des messages d'information. Digimat® RWS doit donc systématiquement pouvoir prouver l'identité de ses utilisateurs. Par sécurité, RWS utilise exclusivement des connexions chiffrées SSL avec le browser de l'utilisateur. L'ouverture de session est renforcée par un code à jeton unique changeant toutes les 60s :

cela permet de s'assurer qu'un mot de passe volé ne puisse pas être réutilisé. En cas de perte du jeton, l'accès peut être verrouillé immédiatement côté serveur. Les codes d'authentification peuvent également être transmis par SMS ou sur la plateforme Pushover. Toutes les connexions réalisées au moyen des API sont également soumises à ce même principe sécuritaire (HOTP remplace alors TOTP).

IT Restrictions

Nous connaissons la problématique sécuritaire des responsables IT. DCF+RWS est une plateforme modulaire qui peut être déployée sur une infrastructure à liberté réduite, sans accès "externe" (cloud local). Vos experts IT sont alors mis en relation directe avec nos ingénieurs systèmes pour trouver la solution adéquate.

Exploiter le mode Web

Avec RWS, la supervision WEB n'est pas qu'une simple réplique des outils de supervision "traditionnels", type Digimat® Remote. Les logiciels de supervision dédiés restent très adaptés pour les fonctions avancées (fine tuning, optimisations, mise au point) : ce sont des outils plutôt destinés aux concepteurs+intégrateurs.

Par contre, pour les tâches de suivi ou d'exploitation, l'environnement WEB permet d'apporter de nouveaux avantages : accès possible où que l'on se trouve, supervision globale réellement multi-site et multi-utilisateur, suppression du coût des licences dédiées par poste, fonctions de travail collaboratif en équipe rendues possibles grâce à l'infrastructure cloud, mise à jour transparente automatique des outils de travail, archivage centralisé des dossiers de révision numériques.

Demo

Assez parlé ! Vous pouvez regarder ici l'enregistrement d'une session RWS live. Nous sommes à votre disposition pour tout renseignement complémentaire.

API

Pour les spécialistes

Avec les API proposées (Application Program Interfaces), les plateformes Digimat® DCF et RWS permettent le développement d'extensions 3rd party, prouvant le caractère "100% ouvert" de nos systèmes. Nous proposons essentiellement 3 types d'API distincts.

A. DCF AppStudio

Digimat® DCF AppStudio est un environnement de développement+débogage permettant de concevoir des applications écrites en .NET/C# en disposant d'un accès natif complet à l'ensemble des primitives DCF. Les applications DCF AppStudio, une fois mises au point, sont déployées dans des noeuds DCF (sorte de service ou daemon DCF).

Une technique du type sandboxing permet de limiter le risque de dysfonctionnement d'un noeud DCF si l'application est "buggée". DCF se charge de relancer automatiquement les applications en cas de crash.

Nous utilisons typiquement AppStudio pour la mise au point d'applications du type monitoring+suivi énergétique. AppStudio est principalement conçu pour les développeurs expérimentés désirant exploiter confortablement tout le potentiel DCF.

B. DCF RWS API

RWS expose via HTTPS les différentes primitives DCF. Il est donc possible de créer des services 3rd party en exploitant uniquement ce webservice. Nous avons d'abord conçu Digimat® DCF RWS API pour permettre l'implémentation de notre solution de supervision WEB RWS. Il aurait été dommage de ne pas pouvoir réexploiter librement cette opportunité.

Comme tout API de type HTTP, l'usage de wrapper est en général de rigueur, de manière à ne pas devoir générer soi même les requêtes HTTPS. A titre d'exemple, nous fournissons un wrapper Python. Le module Python digimat.rws est publiquement disponible sur PyPi, aisément installable via pip

pip install digimat.rws

L'exemple suivant montre comment on peut lire le compteur d'énergie M-Bus dont l'id universel Digimat DCF est "r_82_1_mui_134_0"

# load digimat rws module 
from digimat.rws import rws

# create a rws client object
myrws=rws.RWS(OTPAuthInformations)

Les formalités administratives étant remplies, passons à l'action. Nous avons désormais accès à tout l'univers DCF via notre objet "myrws" :

# get our value
compteur=myrws.item('r_82_1_mui_134_0').value

En fait, l'exemple ci-dessus peut encore être simplifié. Python permet en effet de générer dynamiquement le code d'un objet. Autant en profiter. Voici donc comment on peut lire la valeur actuelle de notre compteur en une seule ligne :

compteur=myrws.r_82_1_mui_134_0.value

Oui, c'est tout. Peut-on sincèrement imaginer plus simple ? 100% ouvert, une promesse que tout le monde fait. Rare sont cependant ceux qui peuvent le prouver.

Pour rappel, une ressource DCF est une donnée au sens large : une sonde, l'image d'une caméra, un fichier binaire, un synoptique, une trace graphique, etc. Il est donc possible de demander à DCF le rendering d'un synoptique donné en image PNG

# get a snapshooter object
s=myrws.snapshooter()

# render a synoptic (with live data)
s.shoot('82/centrale_thermique/groupes_chaleur_force')

# and save it to a file
s.save('~/Desktop/synoptic.png')

L'API offre beaucoup d'autres possibilités. Nous avons de nombreux exemples à vous présenter !

C. DCF FieldDevice

Avec Digimat® DCF FieldDevice, il est possible d'implémenter un service DCF natif de manière totalement déportée.

La définition des E/S est réalisée au niveau DCF avec l'outil de configuration DCF Builder (interface). Par contre l'implémentation de la tâche (fonctionalité DCF) est réalisée dans un service autonomne (FieldDevice, ou FD), connecté à l'infratructure DCF via l'API DCF FieldDevice (webservice dédié, hébergé via RWS). Les communications entre le FD et DCF sont exclusivement montantes et de type HTTPS, ce qui permet de délocaliser le service où l'on souhaite, tout en traversant les différents firewalls rencontrés.

On implémente ainsi aisément une interface déportée M-Bus pour la lecture de compteurs d'énergie situé dans un bâtiment sans aucun système GTB. On réalise très rapidement un service de capture de caméras IP lorsqu'une détection de mouvement se produit, etc.

Nous fournissons un modèle d'implémentation du protocole DCF FieldDevice au travers d'un module Python digimat.fielddevice publiquement disponible sur PyPi. Ce module peut être utilisé pour créer ses propres extensions natives DCF, pourquoi pas sur un Raspberry Pi, par exemple ?