Ligne 1 : |
Ligne 1 : |
| {{Rasp-Node-Red-NAV}} | | {{Rasp-Node-Red-NAV}} |
| | | |
| + | == Intro == |
| Voici une petite vue des nœuds déjà disponibles dans l'installation de base. | | Voici une petite vue des nœuds déjà disponibles dans l'installation de base. |
| | | |
| [[Fichier:Rasp-Node-Red-Basic-Nodes-00.jpg]] | | [[Fichier:Rasp-Node-Red-Basic-Nodes-00.jpg]] |
| | | |
− | = Les noeuds Input = | + | Sur une installation Raspberry-Pi, l'ensemble des noeuds dévolu au stockage sont plus limités que sur une machine normale. |
| + | |
| + | [[Fichier:Rasp-Node-Red-Basic-Nodes-01.png]] |
| + | |
| + | |
| + | == Les noeuds d'entrée == |
| + | Vous les trouverez dans la collection de noeud "Input". |
| + | |
| Il y a 7 noeuds d'entrée de base dans l'installation par défaut. Ces noeuds couvrent les mécanismes de communication de base utilisé principalement par les applications IoT. Cela s'étale des protocoles Internet fondamentaux tels que UDP et TCP jusqu'à un niveau plus élevé tels que HTTP et les mécanismes MQTT de publication/souscription (''publish/subscribe''). | | Il y a 7 noeuds d'entrée de base dans l'installation par défaut. Ces noeuds couvrent les mécanismes de communication de base utilisé principalement par les applications IoT. Cela s'étale des protocoles Internet fondamentaux tels que UDP et TCP jusqu'à un niveau plus élevé tels que HTTP et les mécanismes MQTT de publication/souscription (''publish/subscribe''). |
| | | |
Ligne 14 : |
Ligne 22 : |
| |- style="font-size: 90%" | | |- style="font-size: 90%" |
| | align="left" | inject | | | align="left" | inject |
− | | align="left" | Injects a timestamp or user-configured text into a message. Can be configured to inject manually, at a set interval, or at specific times (using Cron). | + | | align="left" | Injectez un timestamp (nombre de millisecondes écoulées depuis 1970) ou un texte utilisateur dans un message. Peut-être configuré pour injecter le texte manuellement, a intervalle régulier ou horaires spécifiques (en utilisant Cron). |
| |- style="font-size: 90%" | | |- style="font-size: 90%" |
| | align="left" | catch | | | align="left" | catch |
− | | align="left" | Catches errors thrown by nodes on the same tab. If a node throws an error whilst handling a message, the flow will typically halt. This node can be used to catch those errors returning a message with an error property detailing the error and the source node and type. | + | | align="left" | Capture les erreurs générée par les noeuds dans le même volet (la même feuille). Si un noeud lance une erreur pendant le traitement d'un message alors le flux s'arrête (fonctionnement typique). Ce noeud peut être utilisé pour capture ces erreurs retournant un message avec une propriété détaillant l'erreur, le type et le noeud ayant provoqué l'erreur. |
| |- style="font-size: 90%" | | |- style="font-size: 90%" |
| | align="left" | mqtt | | | align="left" | mqtt |
− | | align="left" | Subscribes to an MQTT broker and listens on a topic, returns any data published on the topic as a new message. Supports Quality of Service levels and last data retention. | + | | align="left" | Faire une souscription sur un broker MQTT et "écoutant" un sujet particulier (''topic''), retourne toutes les données publiées sur le sujet (''topic'') comme un nouveau message. Supporte les niveaux de "Quality of Service" et rétention de la dernière donnée. |
| |- style="font-size: 90%" | | |- style="font-size: 90%" |
| | align="left" | http | | | align="left" | http |
− | | align="left" | Receives HTTP requests, allowing Node-RED to act as a basic web server. HTTP body is delivered as an output message along with any response. Message can contain standard URL-encoded data or JSON. | + | | align="left" | Réceptionne des requêtes HTTP permettant à Node-RED d'agir comme un serveur web rudimentaire. Le corps de la requête HTTP est délivrée comme message de sortie (ainsi qu'avec la réponse correspondante). Le message peut contenir une URL standard ou JSON. |
| |- style="font-size: 90%" | | |- style="font-size: 90%" |
| | align="left" | websocket | | | align="left" | websocket |
− | | align="left" | Provides an endpoint for a browser to establish a websocket connection with Node-RED. Offers a duplex connection for browser/server combinations. | + | | align="left" | Offre un point contact (endpoint) permettant d'établir une connexion websocket avec Node-RED. Offre une connexion duplex pour établir un canal de communication de type navigateur/serveur. |
| |- style="font-size: 90%" | | |- style="font-size: 90%" |
| | align="left" | tcp | | | align="left" | tcp |
− | | align="left" | Used to accept incoming TCP requests on a specified port or to connect to a remote TCP port. Generates messages containing the TCP data as a single – or stream of – buffer, string or base64 encoded. | + | | align="left" | Utiliser pour accepter les requêtes TCP entrante sur le port spécifié (ou pour se connecter sur un port TCP distant). Génère des messages contenant les données TCP comme un simple – ou un flux/stream de – buffer, string ou string encodée en base64. |
| |- style="font-size: 90%" | | |- style="font-size: 90%" |
| | align="left" | udp | | | align="left" | udp |
− | | align="left" | Used to accept incoming UDP packets (or multicast packets) on a specified port. Generates messages containing the UDP data as a BUFFER, string or base64 encoded string. | + | | align="left" | Utilisé pour accepter les paquet UDP entrant (ou paquets multicast) sur le port spécifié. Génère un message contenant un les données UDP sous forme de BUFFER, string ou string encodée en base64. |
| |- style="font-size: 90%" | | |- style="font-size: 90%" |
| | align="left" | serial in | | | align="left" | serial in |
− | | align="left" | Reads from a serial port on the local device. Can be configured to read buffers, a specific time period or wait for line breaks. | + | | align="left" | Lit les données provenant d'un port série. Peut être configuré pour lire des buffers, durant une période de temps spécifique ou attendre un "''line breaks''". |
| + | |} |
| + | |
| + | == Les noeuds de sortie == |
| + | Vous les trouverez dans la collection de noeud "Output". |
| + | |
| + | Les noeuds de sorties (''output'' en anglais) sont les pendants des noeuds d'entrée. Les noeuds de sortie offrent des moyens d'envoyer des données sur le même ensemble de protocoles (ex: mqtt, http, udp, etc). |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | | align="center" | Nom de Noeud |
| + | | align="center" | Description |
| + | |- style="font-size: 90%" |
| + | | align="left" | debug |
| + | | align="left" | Offre une façon simple de voir des message qui sont affichés dans le volet "debug" (de débogage). Peut être configuré pour afficher le seul msg.payload ou l'objet msg en entier. |
| + | |- style="font-size: 90%" |
| + | | align="left" | mqtt |
| + | | align="left" | Souscrit un broker MQTT et poste des données (msg.payload) qu'il reçoit en message entrant vers un sujet/topic MQTT. Supporte les niveaux de "Quality de Service" et la rétention de la dernière donnée. |
| + | |- style="font-size: 90%" |
| + | | align="left" | http |
| + | | align="left" | Renvoi une réponse à une requête HTTP reçue sur le noeud d'entrée HTTP. Le corps de la réponse (''body'') est déterminé par msg.payload et peut définir le code du header et du statut. |
| + | |- style="font-size: 90%" |
| + | | align="left" | websocket |
| + | | align="left" | Renvoi msg.payload sur le Websocket configuré. Si msg._session est définit alors renvoi l'information vers le client d'origine sinon fait un boardcast vers tous les clients connectés. |
| + | |- style="font-size: 90%" |
| + | | align="left" | tcp |
| + | | align="left" | Répond sur le port TCP configuré. Peut également être utilisé pour envoyer des données sur un port spécifique. |
| + | |- style="font-size: 90%" |
| + | | align="left" | udp |
| + | | align="left" | Envoyer un message UDP vers l'hôte et le port configuré (adresse ip address). Supporte le broadcast. Comme la plupart des noeuds, configuré par l'intermédiaire de l'interface utilisateur ou propriétés du message. |
| + | |- style="font-size: 90%" |
| + | | align="left" | serial out |
| + | | align="left" | Envoi sur le port série configuré. Peut être configuré pour envoyer un retour à la ligne optionnel après les messages (''message payload''). |
| + | |} |
| + | |
| + | == Les noeuds de fonction == |
| + | Vous les trouverez dans la collection de noeuds "Function". |
| + | |
| + | La catégorie "fonction" contient une une série de noeud supportant des fonctions de traitement. Cela va d'un simple noeud délai (''delay''), à un noeud d'aiguillage (''switch''), à noeud de fonction programmable qui peut être adapté à presque tous les besoins de programmation. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | | align="center" | Nom de Noeud |
| + | | align="center" | Description |
| + | |- style="font-size: 90%" |
| + | | align="left" | function |
| + | | align="left" | Noeud générique pour programmation de fonction. En utilisant du JavaScript standard, le noeud peut être personnalisé pour réaliser des tâches de traitement complexe sur les messages d'entrées et générant un ou plusieurs messages en sortie. |
| + | |- style="font-size: 90%" |
| + | | align="left" | template |
| + | | align="left" | Configuré avec un modèle/template (en utilisant le format moustache) de complexité arbitraire. Ce noeud accepte un message d'entrée contenant des paires nom:valeur a insérer dans le modèle/template . C'est très pratique pour construire des messages, HTML, fichier config, etc. |
| + | |- style="font-size: 90%" |
| + | | align="left" | delay |
| + | | align="left" | Un noeud générique pour retarder un message d'un temps donné (ou temps aléatoire). Peut également être configuré pour ralentir le flux des messages (ex: 10 ms par sec). |
| + | |- style="font-size: 90%" |
| + | | align="left" | trigger |
| + | | align="left" | Créer deux messages de sortie séparé par intervalle de temps configurable lorsqu'un message d'entrée est reçu. Peut également être utilisé comme une horloge "watchdog". |
| + | |- style="font-size: 90%" |
| + | | align="left" | comment |
| + | | align="left" | Un simple commentaire visuel configuré avec un titre et un corps. |
| + | |- style="font-size: 90%" |
| + | | align="left" | http request |
| + | | align="left" | Permet de construire et envoyer une requête HTTP vers une URL spécifique. La méthode (PUT, GET, etc), "headers" et "payload" son tous configurable via l'interface ou par programmation. |
| + | |- style="font-size: 90%" |
| + | | align="left" | tcp request |
| + | | align="left" | Un noeud pour effectuer une simple requête TCP. Il envoi le contenu msg.payload vers le port tcp et attend la réponse. Peut être configuré pour attendre la réponse (les données), attendre après un caractère spécifique ou termine immédiatement son exécution. |
| + | |- style="font-size: 90%" |
| + | | align="left" | switch |
| + | | align="left" | Ce noeud aiguille (fait un routage) des messages sur base des propriétés du message. Les propriétés sont configurées en utilisant l'interface utilisateur et une variété de tests logiques (>, <, >= etc) appliqués aux propriétés du message. |
| + | |- style="font-size: 90%" |
| + | | align="left" | change |
| + | | align="left" | Le noeud "change" peut être utilisé pour fixer, changer ou effacer (set, change, delete) les propriétés du message entrant. Une série de règles complexes autorise des modifications avancées incluant des recherches et remplacement dans le msg.payload |
| + | |- style="font-size: 90%" |
| + | | align="left" | range |
| + | | align="left" | Noeud permettant d'échantillonner une valeur numérique en entrée pour la mapper vers une nouvelle sortie. Utilisé pour convertir ou borner les valeur (ex: la température). Non défini (''Undefined'') pour les données non numérique. |
| + | |} |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | | align="center" | Nom de Noeud |
| + | | align="center" | Description |
| + | |- style="font-size: 90%" |
| + | |- style="font-size: 90%" |
| + | | align="left" | csv |
| + | | align="left" | Ce noeud fait un parsing de "msg.payload" et essaye de le convertis vers/depuis CSV. S'il reçoit une string CSV, il sort un objet JavaScript et s'il reçoit un objet JavaScript, il sort une string CSV. |
| + | |- style="font-size: 90%" |
| + | | align="left" | html |
| + | | align="left" | Extrait les éléments d'un document html dans msg.payload en utilisant un sélecteur configurable (syntaxe de sélection CSS). Principalement utilisé pour parser un contenu HTML et retourner un tableau d'élément correspondant au filtre. |
| + | |- style="font-size: 90%" |
| + | | align="left" | json |
| + | | align="left" | Ce noeud converti les informations depuis/vers un objet JSON. S'il reçoit un objet Javascript, il sort un contenu JSON. Et s'il reçoit un contenu JSON, il sort un objet JavaScript. |
| + | |- style="font-size: 90%" |
| + | | align="left" | xml |
| + | | align="left" | Ce noeud converti les informations depuis/vers un format XML. S'il reçoit un objet JavaScript, il sort une string XML. S'il reçoit une string XML, il sort un objet JavaScript. |
| + | |- style="font-size: 90%" |
| + | | align="left" | rbe |
| + | | align="left" | Noeud "Report By Exception". Génère un message seulement lorsque le message sur son entrée est différent de l'entrée précédente (string ou nombre) ou si l'entrée est modifiée d'une quantité configurable (mode "''deadband''", uniquement pour les valeurs numériques). |
| + | |} |
| + | |
| + | == Les noeuds sociaux == |
| + | Vous les trouverez dans la collection de noeuds "Social". |
| + | |
| + | Les noeuds "media sociaux" supporte les interactions avec les email et avec Twitter. Ces noeuds permettent d'envoyer ou recevoir des email, ou d'envoyer et recevoir des tweets. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | | align="center" | Nom de Noeud |
| + | | align="center" | Description |
| + | |- style="font-size: 90%" |
| + | | align="left" | email in |
| + | | align="left" | Peut être pour se connecter répétitivement sur un serveur IMAP et retourner les nouveaux emails lorsqu'ils arrivent. Initialiser le sujet avec msg.topic et le corps du mail avec soit msg.payload ou msg.html s'il s'agit d'un email en HTML. |
| + | |- style="font-size: 90%" |
| + | | align="left" | twitter in |
| + | | align="left" | Retourne les Tweets comme des messages. Peut être utilisé pour faire des recherches publiques ou sur des fils utilisateur contenant un terme de recherche configuré OU tous les tweets d'un utilisateur spécifique OU les messages reçu par un utilisateur authentifié. |
| + | |- style="font-size: 90%" |
| + | | align="left" | email out |
| + | | align="left" | Envoi les messages entrants (dans le noeuds) comme un email via le serveur IMAP configuré. Le sujet et le destinataire sont configurable. Convertira des données binaires en fichier attaché. |
| + | |- style="font-size: 90%" |
| + | | align="left" | twitter out |
| + | | align="left" | Tweets le msg.payload sur le compte configuré. Peut envoyé des messages directs et enverra des données binaires comme une image. |
| + | |} |
| + | |
| + | == Noeud de stockage == |
| + | Vous les trouverez dans la collection de noeuds "Storage". |
| + | |
| + | Etant donné que nous utilisons une version pour Raspberry-Pi, le contenu de la section "stockage" est plus restreint que sur une installation normale. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | | align="center" | Nom de Noeud |
| + | | align="center" | Description |
| + | |- style="font-size: 90%" |
| + | | align="left" | tail |
| + | | align="left" | Effectue une opération "Tails" (ex: surveille les choses ajouté) au fichier configuré dans le noeud. (UNIQUEMENT Linux/Mac ONLY).<br />Ce noeud ne fonctionne pas sous Windows car il s'appuie sur la commande {{fname|tail -F}}. |
| + | |- style="font-size: 90%" |
| + | | align="left" | file in |
| + | | align="left" | Lit le fichier et envoi son contenu dans msg.payload et le nom de fichier dans msg.filename.<br />Le nom de fichier peut être configuré dans le noeud. S'il est laissé blanc, msg.filename doit être fixé par le message entrant |
| + | |- style="font-size: 90%" |
| + | | align="left" | file |
| + | | align="left" | Ecrit le contenu de msg.payload dans le fichier spécifié, ex: créer un fichier de log. Le nom du fichier peut être configuré dans le noeud. Si laissé blanc, msg.filename sera fixé par le message entrant. Le contenu est ajouté en fin de fichier par défaut, il est possible de modifier cette fonctionnalité pour écraser le fichier à chaque fois; par exemple, pour générer une page web "statique"ou un rapport |
| + | |} |
| + | |
| + | == Noeud d'analyse == |
| + | Les noeuds d'analyse effecture des analyses standard sur les messages entrants. Seul le noeud "sentiment" est disponible dans l'installation par défaut. Le noeud sentiment peut être utilisé pour essayer de déterminer le sentiment en fonction des mots contenu dans le message entrant, par exemple, un email ou tweet. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | | align="center" | Nom de Noeud |
| + | | align="center" | Description |
| + | |- style="font-size: 90%" |
| + | | align="left" | sentiment |
| + | | align="left" | Le noeud sentiment analyse le contenu de msg.payload et établit le niveau de sentiment du message sur base des mots qu'il contient. Il ajoute un objet msg.sentiment qui contient le résultat du "AFINN-111 sentiment score" dans la propriété ''msg.sentiment.score'' . Ce score évolue entre -5 et +5. A noter que ce test se base probablement sur un dictionnaire anglophone. |
| + | |} |
| + | |
| + | == Noeud avancés == |
| + | Il existe également des noeuds offrant des fonctionnalités avancées. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | | align="center" | Nom de Noeud |
| + | | align="center" | Description |
| + | |- style="font-size: 90%" |
| + | | align="left" | watch |
| + | | align="left" | Surveille un répertoire ou fichier pour changement. Vous pouvez mentionner une liste de répertoire et/ou fichiers (séparé par des virgule). Vous aurez besoin de placer des guillemets “…” autour des noms de fichier contenant des espaces. Sous Windows, vous devez utiliser des doubles \\ dans les noms de répertoire.<br />Le nom du fichier (nom complet) du fichier modifié est chargé dans msg.payload, tandis qu'une version "''transformée en string''" de la liste est retourné dans msg.topic.<br />msg.file contient le nom du fichier (nom cours) du fichier qui a changé. msg.type contient le type de changement , habituellement file ou directory (''fichier ou répertoire'') et msg.size contient la taille du fichier en octets/bytes. |
| + | |- style="font-size: 90%" |
| + | | align="left" | feedparse |
| + | | align="left" | Ce noeud surveille les nouvelles entrées d'un fil RSS/atom et délivre les nouvelles entrées en tant que message. Il peut être configuré pour faire des relevés à intervale fix. |
| + | |- style="font-size: 90%" |
| + | | align="left" | exec |
| + | | align="left" | Fait un appel à une commande système et fournit 3 sortie: stdout, stderr et le code de retour (''return code''). Utilise exec() par défaut, ce qui appelle la commande et bloque le processus en attendant la fin d'exécution du processus. Ensuite les résultats sont renvoyés en une fois, avec les erreurs. |
| |} | | |} |
| | | |
| + | == Les noeuds Raspberry-Pi == |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | | align="center" | Nom de Noeud |
| + | | align="center" | Description |
| + | |- style="font-size: 90%" |
| + | | align="left" | rpi_gpio in |
| + | | align="left" | Noeud d'entrée Raspberry Pi. Génère un 1 ou 0 dans msg.payload en fonction de l'état de broche d'entrée. Vous pourriez activer la résistance pullup ou pulldown sur l'entrée.<br />Le msg.topic est fixé sur pi/{the pin number}<br />Nécessite que la bibliothèque Python RPi.GPIO version 0.5.8 (ou plus récent) pour fonctionner.<br />Note: Nous utilisons les numéro de broche physique du connecteur P1 puisqu'elles sont plus facile à localiser. |
| + | |- style="font-size: 90%" |
| + | | align="left" | rpi_gpio out |
| + | | align="left" | Noeud de sortie Raspberry Pi. Attend une valeur 0 ou 1 dans msg.payload (ou ''true'' ou ''false''). Fixera la broche sélectionnée au niveau logique "haut" ou "bas" en fonction de la valeur communiquée. La valeur initiale de la broche au moment du déploiement sera fixé à 0 ou 1. Pour une broche en mode PWM attend une valeur entre 0 et 100.<br />Nécessite que la bibliothèque Python RPi.GPIO version 0.5.8 (ou plus récent) pour fonctionner. |
| + | |- style="font-size: 90%" |
| + | | align="left" | rpi_mouse |
| + | | align="left" | Noeud "souris Raspberry Pi". Génère un 1 ou 0 dans msg.payload lorsque le bouton de la souris est pressé et relâché. Fixe la valeur de msg.button sur la valeur: 1 = gauche/left, 2 = droite/right, 4 = milieu/middle, il est donc possible de déduire quel bouton (ou combinaison de bouton) ont été pressé. |
| + | |} |
| | | |
| + | |
| {{Rasp-Node-Red-TRAILER}} | | {{Rasp-Node-Red-TRAILER}} |