Table des matières:
- Fournitures
- Étape 1: protocole REST JSON
- Étape 2: Flux
- Étape 3: Tableau de bord
- Étape 4: Importer le flux (projet, script, etc.)
- Étape 5: Comment tout fonctionne ensemble
- Étape 6: HTTP POST et GET
- Étape 7: Nœuds de bouton
- Étape 8: Nœud de fonction
- Étape 9: nœud JSON et nœud d'injection
- Étape 10: Nœud de texte et nœud de débogage
- Étape 11: Nœud de graphique
- Étape 12: Nœud de jauge et nœuds de liaison
- Étape 13: Merci d'avoir lu mon Instructable
Vidéo: Comment travailler avec JSON dans Node-RED : 13 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Cette instructable vous apprendra comment travailler avec JSON dans node-RED. Je vais vous montrer comment contrôler les prises de courant en réseau avec le transfert de fichiers json via http get et post. Et vous pouvez utiliser ces connaissances plus tard pour contrôler tout appareil prenant en charge le protocole JSON.
À des fins d'enseignement, j'utiliserai la prise de courant réseau NETIO 4All, mais ne vous inquiétez pas, vous n'avez rien à acheter. NETIO propose une incroyable démo en ligne 4All que vous pouvez utiliser.
Fournitures
Powersocket en réseau NETIO 4All ou démo en ligne 4All:
Noeud-ROUGE
Étape 1: protocole REST JSON
Cette partie est un peu technique mais s'il vous plaît soyez indulgent avec moi. Si je n'expliquais pas cette partie, vous auriez des problèmes à comprendre les valeurs des fichiers json que nous enverrons dans node-RED.
Actions applicables à chaque sortie (prise électrique):
Dans tous les protocoles M2M, les prises de courant NETIO utilisent les mêmes actions qui peuvent être appliquées aux sorties individuelles. Par exemple, une action Toggle ou Short Off peut être écrite sur n'importe quelle sortie.
Cependant, la variable Action ne peut être utilisée que pour écrire des valeurs, elle ne peut pas être utilisée pour lire l'état actuel de la prise.
Voici les actions que vous pouvez appliquer à chaque sortie:
0 = Sortie désactivée (Off)
1 = Sortie activée (On)
2 = Sortie désactivée brièvement (short Off)
3 = Sortie activée brièvement (short On)
4 = Sortie commutée d'un état à l'autre (toggle)
5 = état de sortie inchangé (pas de changement)
6 = Ignoré
Exemple - Fichier JSON pour basculer le numéro de sortie. 1:
{
"Les sorties": [{
"Identifiant": 1, "Action": 4
}]
}
ID - ce numéro indique quelle sortie nous utiliserons
Action - cette partie est l'action que la sortie fera (par exemple 1 (Activer la sortie))
Étape 2: Flux
Et maintenant l'essentiel. Voici à quoi ressemble l'environnement node-RED.
Nous avons importé le flux d'API d'URL (Le projet que vous voyez. Plus tard, je vous montrerai comment importer des flux et ce projet) Ce projet se compose de deux parties:
- Flux NETIO AN30 (API REST JSON)
- Tableau de bord (interface graphique par laquelle vous pouvez utiliser votre programme)
Étape 3: Tableau de bord
Voici à quoi ressemble le tableau de bord dans node-RED pour cette instructable. Vous pouvez le personnaliser si vous le souhaitez selon vos goûts.
Le tableau de bord de ce projet est divisé en 4 parties:
- État de l'appareil - affiche des informations sur l'appareil telles que le modèle, l'adresse mac ou la version du micrologiciel.
- (POST) Sortie de contrôle 1 - Contient 5 boutons qui contrôlent la sortie 1. Chaque bouton exécute une action différente
- (GET) O1 - O4 Output States - Cette partie affiche l'état actuel de chaque sortie de votre appareil.
- Gestion des appareils - Dans cette partie, vous pouvez trouver toutes sortes de graphiques et de jauges qui affichent les valeurs mesurées actuelles de l'appareil NETIO 4Aall
Étape 4: Importer le flux (projet, script, etc.)
Dans le menu (coin supérieur droit), sélectionnez Importer puis Presse-papiers.
Ensuite, copiez le texte ci-dessous dans le champ indiqué et cliquez sur Importer.
Installation des nœuds manquants
Les nœuds sont chargés dans le flux sélectionné. Il est possible qu'un message d'erreur s'affiche avec une liste de nœuds en cours d'importation mais qui ne sont pas encore installés dans Node-RED. Dans ce cas, les nœuds manquants doivent être installés.
S'il manque des nœuds, sélectionnez Gérer la palette dans le menu, cliquez sur Installer et recherchez et installez les nœuds qui vous manquent.
Importer du texte:
[{"id":"56b9510c.98c6f", "type":"tab", "label":"NETIO AN30 (REST JSON)", "disabled":false, "info":""}, {"id ":"6a66b637.da1558", "type":"demande HTTP", "z":"56b9510c.98c6f", "name":"Requête HTTP (POST)", "method":"POST", "ret":"txt", "url":"https://netio-4All.netio-products.com:8080/netio.json", "tls":"", "x":430, "y":100, "wires":
Étape 5: Comment tout fonctionne ensemble
Le flux est fondamentalement divisé en deux parties: POST et GET.
POST: écriture à O1
- Cinq boutons créés dans le tableau de bord dans le flux sont affichés dans le tableau de bord.
- Après avoir cliqué sur le bouton Sortie 1 = ON dans le tableau de bord, la charge utile est définie sur le fichier netio.json qui spécifie la sortie et l'action (définie pour chacun des boutons).
- Le bloc HTTP Request (POST) envoie le fichier netio.json en tant que requête à une adresse IP.
- La réponse du serveur (état) est renvoyée en tant que sortie.
- Le bloc Msg.payload affiche le résultat de la requête HTTP (POST).
OBTENIR: lecture de O1 à O4
- Le bloc 1 Second Repeat active, avec une période d'une seconde, le bloc HTTP Request (GET), qui à son tour envoie netio.json en tant que requête GET et renvoie un fichier JSON complet avec l'état du socket tel qu'il a été reçu du serveur.
- Le bloc JSON Parse transforme le fichier JSON du bloc HTTP Request (GET) en un objet JSON afin qu'il soit possible de manipuler les propriétés dans le fichier JSON.
- Le bloc Function prend des parties individuelles de l'objet JSON et les transforme en propriétés d'un objet msg pour une utilisation ultérieure.
- Le bloc Current Chart définit msg.payload sur la propriété msg. TotalCurrent de l'objet msg, car le bloc Current Chart (Device) suivant ne peut afficher que la valeur msg.payload.
- Divers nœuds de sortie suivent ensuite afin d'afficher les propriétés sélectionnées de l'objet msg, telles qu'elles sont extraites de l'objet JSON, dans le tableau de bord.
L'objet msg et msg.payload
Pour une explication simple et concise, voir ici:
www.steves-internet-guide.com/node-red-mess…
Étape 6: HTTP POST et GET
Requête HTTP (POST)
Ce nœud envoie un fichier de commande netio.json en tant que requête HTTP (POST) afin de contrôler le périphérique NETIO 4All.
Requête HTTP (GET)
Ce nœud envoie une requête HTTP (GET) et renvoie la réponse d'état.
L'adresse pré-remplie pointe vers la démo en ligne NETIO 4All, où vous pouvez tester la connexion sans avoir un appareil NETIO à votre bureau.
netio-4all.netio-products.com
Il est possible de définir votre propre adresse IP dans ces nœuds; cependant, l'adresse IP doit être modifiée dans les deux nœuds de requête HTTP, POST et GET.
Étape 7: Nœuds de bouton
Cliquer sur le nœud du bouton génère un message contenant un fichier netio.json (image de droite) qui est ensuite envoyé via le nœud http post à la prise d'alimentation intelligente netio.
Étape 8: Nœud de fonction
Un nœud de fonction est un nœud spécial qui permet d'écrire une fonction JavaScript personnalisée.
Dans cette instructable, la fonction sélectionne des valeurs dans le fichier JSON analysé (maintenant un objet JSON) et les affecte aux propriétés de l'objet msg.
Le code est divisé en quatre sections:
- Attribution de valeurs de l'objet JSON aux propriétés individuelles de l'objet msg
-
Traitement des erreurs dans le cas où la prise de courant en réseau ne prend pas en charge les mesures globales
Si la prise de courant en réseau ne prend pas en charge la mesure des valeurs globales, Node-RED afficherait des erreurs car cette fonction ne trouverait pas la propriété respective, par ex. msg.payload. GlobalMeasure. Voltage, car il ne serait pas présent dans l'objet JSON. Dans ce cas, la propriété de l'objet msg, par ex. msg. Voltage, est défini sur 0 et l'erreur est détectée et traitée.
- Affectation des valeurs d'état de sortie
- Réglage des couleurs des valeurs d'état de sortie affichées en fonction des états de sortie
Étape 9: nœud JSON et nœud d'injection
Nœud JSON
Le nœud JSON analyse le fichier JSON et le transforme en un objet JSON.
En réponse du serveur à la requête GET, le nœud de requête HTTP renvoie un fichier JSON contenant l'état actuel du périphérique NETIO 4x, mais il s'agit simplement d'un fichier texte, donc pour travailler avec les données, le fichier JSON a besoin à analyser dans un objet JSON.
Nœud d'injection
Chaque seconde, ce nœud active le nœud de requête HTTP qui envoie une requête GET.
En conséquence, les valeurs dans le tableau de bord sont mises à jour avec une période d'une seconde
Étape 10: Nœud de texte et nœud de débogage
Nœud de texte
Affiche un champ de texte dans le tableau de bord. Dans cette instructable, les nœuds de texte affichent le courant, la tension, le modèle, la version du firmware ou la version JSON.
L'étiquette est affichée dans le tableau de bord et le nom est le nom du nœud affiché dans le flux dans le nœud-RED.
Nœud de débogage
Affiche le msg.payload.
Étape 11: Nœud de graphique
Ce nœud trace le graphique actuel dans le tableau de bord en fonction de la valeur de la charge utile.
Ce nœud ne peut tracer des graphiques qu'en fonction de la valeur de la charge utile.
Pour cette raison, un nœud de fonction est utilisé pour définir msg.payload sur la valeur qui doit être affichée.
msg.payload = msg. TotalCurrent;
Étape 12: Nœud de jauge et nœuds de liaison
Noeud de jauge
Ce nœud ajoute un widget de jauge au tableau de bord.
Dans cette instructable, chaque jauge visualise une propriété de l'objet msg: tension [V], courant [A], fréquence [Hz] et le vrai facteur de puissance global (TPF).
Nœuds de liaison
Les nœuds d'entrée et de sortie fonctionnent comme un tunnel. Le msg.payload arrive dans le nœud de liaison et sort du nœud de sortie de liaison.
Je l'ai utilisé pour rendre le flux un peu plus clair et plus facile à lire.
Étape 13: Merci d'avoir lu mon Instructable
J'espère que vous avez apprécié mon instructable et j'espère que vous avez appris quelque chose de nouveau.
Cette instructable n'est qu'une version abrégée du guide différent que j'ai fait
Le guide original est plus long et beaucoup plus détaillé et généralement mieux structuré. Si vous n'avez pas compris quelque chose ou pensez que j'ai raté ou pas assez expliqué quelque chose, alors vous pouvez certainement le trouver là-bas.
je vous promets que vous ne serez pas déçu
Original:
Il existe également des guides similaires sur les différentes utilisations de node-RED, donc si vous êtes intéressé, n'hésitez pas à explorer:
Travailler avec l'API d'URL REST dans node-RED
www.netio-products.com/en/application-notes/an29-node-red-example-of-url-api-communication-with-netio-4x
Travailler avec REST XML dans node-RED
www.netio-products.com/en/application-notes/an31-node-red-example-of-rest-xml-communication-with-netio-4x
Travailler avec TCP/Modbus dans node-RED
A très bientôt:)
Conseillé:
Travailler avec LCD (Arduino): 4 étapes
Travailler avec un écran LCD (Arduino): Bonjour, aujourd'hui, je vais montrer comment travailler avec un simple écran LCD à l'aide d'Arduino Uno. Pour cela, je vais utiliser TinkerCAD qui est assez facile à utiliser pour tester des projets simples comme celui-ci. Si vous voulez savoir comment utiliser TinkerCAD, vous pouvez vérifier la
Travailler avec des LED à l'aide d'Arduino UNO dans les circuits TinkerCAD : 7 étapes
Travailler avec des LED à l'aide d'Arduino UNO dans des circuits TinkerCAD : ce projet montre comment travailler avec des LED et Arduino dans des circuits TinkerCAD
Travailler avec deux LED à l'aide d'Arduino UNO dans les circuits TinkerCAD : 8 étapes
Travailler avec deux LED à l'aide d'Arduino UNO dans des circuits TinkerCAD : ce projet montre comment travailler avec deux LED et Arduino dans des circuits TinkerCAD
Comment travailler avec Arduino et différentes LED RVB : 3 étapes
Comment travailler avec Arduino et différentes LED RVB : Arduino est un petit appareil incroyable. Mais l'une des applications les plus utilisées pour ce petit appareil puissant est souvent de faire clignoter ou de faire clignoter une LED. Ce tutoriel vous montrera trois façons de travailler avec les LED RVB et Arduino.1. La première consiste à utiliser un simple
Écoutez vos morceaux pour travailler dans des niveaux de bruit élevés. : 16 étapes
Écoutez vos airs pour travailler dans des niveaux de bruit élevés. : C'est ma première fissure à ce sujet si nu avec moi. Problème : au travail, nous n'avons pas le droit de porter des écouteurs et vu qu'il existe une règle de protection auditive à 100%, c'est ainsi que je bats le système. Nous avons le droit aux radios mais nous sommes dans un bâtiment en acier et ra