ForgeFlow
fr

Flow

Qu’est-ce que Flow : automatisation visuelle et IoT avec les FlowStreams

Flow · flow@11.1 flowflowstreamautomationiotvisual

Flow (totaljs/flow, version 11.1 au moment de la rédaction) est l’application principale de la famille Total.js pour la programmation visuelle. Vous dessinez un diagramme dans le navigateur : chaque boîte est un composant, les lignes entre elles transportent des messages et le diagramme est un FlowStream. Flow conserve de nombreux FlowStreams, exécute chacun d’eux et vous donne l’éditeur, la supervision et une API pour les gérer.

C’est une application Total.js 5 sous licence MIT qui n’a besoin d’aucune base de données : tout vit dans deux dossiers de l’application (voir installation et premier démarrage).

Ce que vous obtenez

  • Un éditeur visuel dans le navigateur (la route /designer/) avec une bibliothèque de composants, le readme de chaque composant, une console, les variables du flux et un mode sombre.
  • De nombreux FlowStreams indépendants dans une même installation, chacun avec un nom, une icône, une couleur, un groupe, un auteur, une version et des notes. Par défaut, chaque flux s’exécute dans son propre processus Node.js (flowstream_worker: fork dans le fichier config) : un flux qui plante n’entraîne pas les autres, et Flow le redémarre.
  • Des composants sous forme de simples fichiers. Un composant est un fichier HTML avec une partie Node.js, son formulaire de réglages et son design (voir écrire un composant). Le catalogue officiel est le dépôt flowstreamcomponents.
  • Des entrées vers le monde extérieur : un flux peut publier des routes HTTP sous son propre proxypath, recevoir des appels sur /notify/{id}/ et communiquer par WebSocket.
  • Import et export d’un flux en un seul fichier JSON, pause, redémarrage, statistiques et sauvegarde de la base de données des flux.
  • Connexion avec un identifiant et un mot de passe générés, ou via OpenPlatform quand vous installez Flow comme l’une de ses apps, avec les permissions Create Flows et Remove Flows.
  • Extensions : des fichiers HTML que vous copiez dans un dossier pour étendre l’éditeur.

Où il s’inscrit

Flow est l’outil pour relier des choses sans écrire de serveur : lire un capteur, appeler une API chaque minute, transformer un message, le stocker, envoyer une alerte, répondre à une requête HTTP. Comme le moteur d’exécution est le FlowStream de Total.js 5, ce même moteur peut aussi être intégré à votre propre application ; Flow est l’application complète qui l’entoure.

La famille

Flow a des cousins dans d’autres dépôts de github.com/totaljs : lesscode, flowstreamdesigner, flowdesigneroffline, flowdesigner et d’autres. Ce sont des projets distincts ; cette section documente uniquement l’application flow et ses composants.

Suite

  1. Installation et premier démarrage
  2. Gérer les FlowStreams avec l’API
  3. Réglages et fichiers
  4. Écrire un composant
  5. Le dépôt des composants