Skip to content

Gestion des flux de données

Dans un terminal, lancer Node-RED avec la commande suivante :

node-red

Dans un navigateur, entrer l'adresse http://127.0.0.1:1880 pour vous connecter à l'instance locale de Node-RED.

Node-RED : application web open source pour gérer les flux de données. Pipelines graphiques pour gérer nos données, filtrer, afficher, bancariser. Peut nécessiter quelques lignes de javascript (possible aussi en python, mais c'est moins ergonomique).

Palette (menu de droite)

Dans Commun, on peut glisser déposer les éléments, et les connecter. Puis en haut à droite, Déployer. Par défaut, le noeud inject ajoute un horodatage. On peut aller voir le debug (insecte en haut à droite), puis on clique sur la coche à côté de l'horodatage.

On peut modifier le format de l'horodatage en double cliquant dessus, puis en sélectionnant YYYY-MM-DD... dans msg.payload. On déploie à nouveau, et on voit que le message d'horodatage est modifié.

alt text

Propagation de bloc en bloc des messages (msg). Dans la payload, on a les éléments d'intérêt du msg. On peut modifier la payload en cliquant sur la petite horloge dans l'onglet de modification du noeud. On peut décocher le débug si on ne veut pas des messages dans tous les sens.

Test MQTT en local

Dans Réseau, on prend les blocs mqtt in et mqtt out. On connecte le message d'inject au mqtt out, et le mqtt in au débug. On configure un broker local avec l'adresse localhost. Il faut un sujet/topic dans le mqtt out, et on s'abonne avec le mqtt_in à ce topic (attention à bien copier-coller les topics). On envoie un message avec mqtt_out, et on le reçoit avec mqtt_in. Il faut cliquer sur la coche bleue à côté du inject pour envoyer le message.

Test MQTT sur le serveur toulousain

Connexion

host :`neocampus.univ-tlse3.fr
port: 10882

alt text

Sécurité

login : loraDecoder_eCOnect
pass : myEconect@22

alt text

Sujet

_lora/eCOnect/#

Puis Déployer !

alt text

On peut ajouter un débug pour voir les trames qu'on réceptionne du MQTT toulousain. On veut isoler les trames envoyées par certains noeuds. On peut filtrer sur la devadress ou le devEUI, ou appargs

alt text

Ajouter un noeud fonction et modifier le message reçu.

1
2
3
4
5
if (msg.payload['data'] != "" && msg.payload['appargs'] == "ozcar-critech") { // vérifier qu'il y a bien qqc dans la trame
    msg.payload = msg.payload['text'] // On récupère ce qu'il y a dans l'objet 'text' en clair à la fin de la trame
    // msg.payload.text équivalent
    return msg;
    }

On peut décoder la chaine de caractère avec un noeud json.

Récupération des données en CSV

Noeud stockage qu'on connect au json. On insère un noeud csv entre les 2 pour formatter les données.

alt text

Affichage

Pas de noeud par défaut pour le faire, mais on peut enrichir la palette dans le menu en haut à droite => gérer la palette, puis dans Installer, chercher node-red-contrib-ui_j et l'installer. Ça va ajouter des noeuds dans la palette.

On met une fonction en sortie du json pour avoir un seul logger, et une seule valeur. On envoie ça vers un noeud gauge ou chart. Dans ces noeuds, il faut créer un noeud de configuration (on peut tout garder par défaut au départ).