Cuprins:
- Provizii
- Pasul 1: REST protocol JSON Http (s)
- Pasul 2: Flux
- Pasul 3: Tablou de bord
- Pasul 4: Importați fluxul (proiect, script, etc.)
- Pasul 5: Cum funcționează toate împreună
- Pasul 6: HTTP POST și GET
- Pasul 7: Noduri de butoane
- Pasul 8: Nodul funcției
- Pasul 9: nodul JSON și nodul de injectare
- Pasul 10: Nod de text și Nod de depanare
- Pasul 11: nodul graficului
- Pasul 12: noduri de măsurare și noduri de legătură
- Pasul 13: Vă mulțumesc că ați citit instructabilul meu
Video: Cum să lucrați cu JSON în Node-RED: 13 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Acest instructable vă va învăța cum să lucrați cu JSON în nod-RED. Vă voi arăta cum să controlați prizele de alimentare în rețea cu transferul fișierelor json prin http get și post. Și puteți utiliza aceste cunoștințe mai târziu pentru a controla orice dispozitiv care acceptă protocolul JSON.
În scopuri didactice, voi folosi soclul de rețea NETIO 4All, dar nu vă faceți griji, nu trebuie să cumpărați nimic. NETIO are o demonstrație uimitoare de 4All pe care o puteți folosi.
Provizii
NETIO 4Toate priza de rețea sau demo online 4All:
Nod-ROȘU
Pasul 1: REST protocol JSON Http (s)
Această parte este puțin tehnică, dar vă rog să vă purtați cu mine. Dacă nu aș explica această parte, atunci veți avea probleme în înțelegerea valorilor din fișierele json pe care le vom trimite în nod-RED.
Acțiuni aplicabile fiecărei ieșiri (priză electrică):
În toate protocoalele M2M, prizele de alimentare NETIO utilizează aceleași acțiuni care pot fi aplicate ieșirilor individuale. De exemplu, o acțiune Toggle sau Short Off poate fi scrisă în orice ieșire.
Cu toate acestea, variabila Action poate fi utilizată numai pentru scrierea valorilor, nu poate fi utilizată pentru a citi starea curentă de ieșire.
Acestea sunt acțiuni pe care le puteți aplica fiecărei ieșiri:
0 = Ieșire dezactivată (Off)
1 = Ieșire activată (Activată)
2 = Ieșire oprită pentru o perioadă scurtă de timp (scurt Off)
3 = Ieșire activată pentru scurt timp (scurt Pornit)
4 = Ieșire comutată de la o stare la alta (comutare)
5 = Starea de ieșire neschimbată (fără modificări)
6 = Ignorat
Exemplu - fișier JSON pentru a comuta nr. 1:
{
„Rezultate”: [{
„ID”: 1, „Acțiune”: 4
}]
}
ID - acest număr indică ce ieșire vom folosi
Acțiune - această parte, este acțiunea pe care o va face ieșirea (de ex. 1 (Activați ieșirea))
Pasul 2: Flux
Și acum partea principală. Așa arată mediul node-RED.
Am importat fluxul API URL (proiectul pe care îl vedeți. Mai târziu vă voi arăta cum să importați fluxurile și acest proiect) Acest proiect constă din două părți:
- Flux NETIO AN30 (API JSON REST)
- Tablou de bord (interfață grafică prin care puteți opera programul)
Pasul 3: Tablou de bord
Așa arată tabloul de bord din nod-ROȘU pentru acest instructable. Îl puteți personaliza dacă doriți să vă potriviți gustul.
Tabloul de bord al acestui proiect este împărțit în 4 părți:
- Stare dispozitiv - afișează informații despre dispozitiv, cum ar fi modelul, adresa Mac sau versiunea de firmware.
- (POST) Control Output 1 - Conține 5 butoane care controlează ieșirea 1. Fiecare buton execută acțiuni diferite
- (GET) O1 - O4 Stări de ieșire - Această parte prezintă starea curentă a fiecărei ieșiri de pe dispozitiv.
- Managementul dispozitivelor - În această parte puteți găsi tot felul de grafice și indicatoare care arată valorile curente măsurate de pe dispozitivul NETIO 4Aall
Pasul 4: Importați fluxul (proiect, script, etc.)
În meniu (colțul din dreapta sus) selectați Import și apoi Clipboard.
Apoi, copiați textul de mai jos în câmpul indicat și faceți clic pe Import.
Instalarea nodurilor lipsă
Nodurile sunt încărcate în fluxul selectat. Este posibil ca un mesaj de eroare să fie afișat cu o listă de noduri care sunt importate, dar care nu sunt încă instalate în Node-RED. În acest caz, nodurile lipsă trebuie instalate.
Dacă lipsesc noduri, selectați Gestionare paletă din meniu, faceți clic pe Instalare și găsiți și instalați nodurile care vă lipsesc.
Importați textul:
[{"id": "56b9510c.98c6f", "type": "tab", "label": "NETIO AN30 (REST JSON)", "disabled": false, "info": ""}, {"id ":" 6a66b637.da1558 "," tip ":" cerere http "," z ":" 56b9510c.98c6f "," nume ":" Cerere HTTP (POST) "," metodă ":" POST "," ret ": "txt", "url": "https://netio-4All.netio-products.com:8080/netio.json", "tls": "", "x": 430, "y": 100, "fire":
Pasul 5: Cum funcționează toate împreună
Fluxul este practic împărțit în două părți: POST și GET.
POST: Scrierea pe O1
- Cinci butoane create în tabloul de bord din flux sunt afișate în tabloul de bord.
- După ce faceți clic pe butonul Ieșire 1 = PORNIT din tabloul de bord, sarcina utilă este setată la fișierul netio.json care specifică ieșirea și acțiunea (definită pentru fiecare dintre butoane).
- Blocul HTTP Request (POST) trimite fișierul netio.json ca cerere la o adresă IP.
- Răspunsul serverului (starea) este returnat ca ieșire.
- Blocul Msg.payload afișează rezultatul din cererea HTTP (POST).
OBȚINE: Citirea din O1 - O4
- Blocul Repetare 1 secundă activează, cu o perioadă de o secundă, blocul HTTP Request (GET), care la rândul său trimite netio.json ca o solicitare GET și returnează un fișier JSON complet cu starea socketului, așa cum a fost primit de la server.
- Blocul JSON Parse transformă fișierul JSON din blocul HTTP Request (GET) într-un obiect JSON astfel încât să fie posibilă manipularea proprietăților din fișierul JSON.
- Blocul funcțional ia părți individuale ale obiectului JSON și le transformă în proprietăți ale unui obiect msg pentru utilizare ulterioară.
- Blocul Chart curent setează msg.payload la proprietatea msg. TotalCurrent a obiectului msg, deoarece blocul Chart curent (dispozitiv) ulterior poate afișa doar valoarea msg.payload.
- Apoi urmează diferite noduri de ieșire pentru a afișa proprietățile selectate ale obiectului msg, preluate din obiectul JSON, în Tabloul de bord.
Obiectul msg și msg.payload
Pentru o explicație simplă și concisă, consultați aici:
www.steves-internet-guide.com/node-red-mess…
Pasul 6: HTTP POST și GET
Cerere HTTP (POST)
Acest nod trimite un fișier de comandă netio.json ca o cerere HTTP (POST) pentru a controla dispozitivul NETIO 4All.
Solicitare HTTP (GET)
Acest nod trimite o solicitare HTTP (GET) și returnează răspunsul de stare.
Adresa completată indică demo-ul online NETIO 4All, unde puteți testa conexiunea fără a avea un dispozitiv NETIO la birou.
netio-4all.netio-products.com
Este posibil să vă setați propria adresă IP în aceste noduri; cu toate acestea, adresa IP trebuie modificată atât în nodurile HTTP Request, POST, cât și în GET.
Pasul 7: Noduri de butoane
Dacă faceți clic pe butonul nodului, se generează un mesaj care conține un fișier netio.json (imaginea din dreapta), care este apoi trimis prin nodul post http către priza de alimentare inteligentă netio.
Pasul 8: Nodul funcției
Un nod funcțional este un nod special care permite scrierea unei funcții JavaScript personalizate.
În acest instructable, funcția alege valorile din fișierul JSON analizat (acum un obiect JSON) și le atribuie proprietăților obiectului msg.
Codul este împărțit în patru secțiuni:
- Atribuirea valorilor de la obiectul JSON la proprietățile individuale ale obiectului msg
-
Tratarea erorilor în cazul în care priza de rețea nu acceptă măsurători globale
Dacă priza de rețea nu acceptă măsurarea valorilor globale, Node-RED ar afișa erori deoarece această funcție nu ar găsi proprietatea respectivă, de ex. msg.payload. GlobalMeasure. Voltage, deoarece nu ar fi prezent în obiectul JSON. În acest caz, proprietatea obiectului msg, de ex. msg. Voltage, este setat la 0 și eroarea este surprinsă.
- Atribuirea valorilor stării de ieșire
- Setarea culorilor valorilor afișate ale stării de ieșire în funcție de stările de ieșire
Pasul 9: nodul JSON și nodul de injectare
Nod JSON
Nodul JSON analizează fișierul JSON și îl transformă într-un obiect JSON.
Ca răspuns de la server la cererea GET, nodul Cerere HTTP returnează un fișier JSON care conține starea curentă a dispozitivului NETIO 4x, dar este pur și simplu un fișier text, astfel încât, pentru a lucra cu datele, fișierul JSON are nevoie pentru a fi analizat într-un obiect JSON.
Injectează nodul
În fiecare secundă, acest nod activează nodul Cerere HTTP care trimite o cerere GET.
Ca urmare, valorile din tabloul de bord sunt actualizate cu o perioadă de o secundă
Pasul 10: Nod de text și Nod de depanare
Nod de text
Afișează un câmp de text în tabloul de bord. În acest instructabil, nodurile text afișează curentul, tensiunea, modelul, versiunea de firmware sau versiunea JSON.
Eticheta este afișată în tabloul de bord, iar numele este numele nodului afișat în fluxul din nodul-RED.
Nod de depanare
Afișează msg.payload.
Pasul 11: nodul graficului
Acest nod trasează graficul curent în tabloul de bord în funcție de valoarea sarcinii utile.
Acest nod poate trasa numai diagrame în funcție de valoarea sarcinii utile.
Din acest motiv, un nod funcțional este utilizat pentru a seta msg.payload la valoarea care trebuie afișată.
msg.payload = msg. TotalCurrent;
Pasul 12: noduri de măsurare și noduri de legătură
Nodul gabaritului
Acest nod adaugă un widget de calibru în tabloul de bord.
În acest instructable, fiecare ecartament vizualizează o proprietate a obiectului msg: tensiunea [V], curentul [A], frecvența [Hz] și factorul de putere adevărat global (TPF).
Linkuri noduri
Conectarea și conectarea nodurilor funcționează ca un tunel. Msg.payload ajunge în linkul din nod și iese din nodul link-ului.
L-am folosit pentru a face fluxul puțin mai clar și mai ușor de citit.
Pasul 13: Vă mulțumesc că ați citit instructabilul meu
Sper că ți-a plăcut instructivul meu și sper că ai învățat cu adevărat ceva nou.
Această instrucțiune este doar o versiune scurtată a ghidului diferit pe care l-am făcut
Ghidul original este mai lung și mult mai orientat spre detalii și, în general, mai bine structurat. Dacă nu ați înțeles ceva sau credeți că am ratat sau nu am explicat suficient ceva, atunci îl puteți găsi cu siguranță acolo.
Promit că nu vei fi dezamăgit
Original:
De asemenea, există ghiduri similare despre diferite utilizări ale nodului-RED, așa că, dacă sunteți interesat, nu ezitați să explorați:
Lucrul cu API-ul URL REST în nod-RED
www.netio-products.com/en/application-notes/an29-node-red-example-of-url-api-communication-with-netio-4x
Lucrul cu REST XML în nod-RED
www.netio-products.com/en/application-notes/an31-node-red-example-of-rest-xml-communication-with-netio-4x
Lucrul cu TCP / Modbus în nod-RED
În curând:)
Recomandat:
Lucrați de la casă Recorder de timp folosind un Raspberry Pi: 7 pași
Lucrați de la casă Recorder de timp folosind un Raspberry Pi: În ultimul an, am avut ocazia să lucrez de acasă. Pentru care a trebuit să țin cont de orele pe care le lucrez. Începând folosind o foaie de calcul Excel și introducând manual orele „clock-in” și „clock-out”, am constatat în curând că acest lucru este qu
Cum să implementați o aplicație Node.js pe Heroku: 3 pași
Cum să implementez o aplicație Node.js pe Heroku: Iată cum mi-am implementat aplicația NodeJS pe Heroku folosind un cont gratuit. Doar faceți clic pe linkuri pentru a descărca software-urile necesare: Software folosit: VSCode (sau orice editor de text la alegere) HerokuCLIGit
Cum să conectați Raspberry Pi la cloud folosind Node.js: 7 pași
Cum să conectați Raspberry Pi la cloud folosind Node.js: acest tutorial este util pentru oricine dorește să conecteze un Raspberry Pi la cloud, în special la platforma IoT AskSensors, utilizând Node.js. Nu aveți un Raspberry Pi? Dacă în prezent nu dețineți un Raspberry Pi, vă recomand să obțineți un Raspberry
Vulpea Crimson: Creșterea gradului de conștientizare pentru a face o pauză în timp ce lucrați: 8 pași (cu imagini)
Vulpea Crimson: Creșterea gradului de conștientizare pentru a face o pauză în timp ce lucram: Pentru un curs pe care l-am urmat la KTH în Suedia, ni s-a atribuit să creăm un artefact care să poată schimba forma. Am creat un artefact în formă de vulpe, care ar trebui să vă reamintească să faceți o pauză de la serviciu sau de la studiu. Conceptul general este că vulpea va afișa
Cum să lucrați cu Arduino și diferite LED-uri RGB: 3 pași
Cum să lucrați cu Arduino și diferite RGB-uri RGB: Arduino este un dispozitiv mic uimitor. Dar una dintre cele mai utilizate aplicații pentru acest mic dispozitiv puternic este adesea să clipească sau să clipească un LED. Acest tutorial vă va arăta trei moduri de a lucra cu LED-uri RGB și Arduino. Prima modalitate este de a folosi un simplu