Sadržaj:

Kako raditi s JSON-om u Node-RED-u: 13 koraka
Kako raditi s JSON-om u Node-RED-u: 13 koraka

Video: Kako raditi s JSON-om u Node-RED-u: 13 koraka

Video: Kako raditi s JSON-om u Node-RED-u: 13 koraka
Video: Полный курс TypeScript за час | Тайпскрипт для начинающих 2024, Studeni
Anonim
Kako raditi s JSON-om u Node-RED-u
Kako raditi s JSON-om u Node-RED-u

Ova instrukcija će vas naučiti kako raditi s JSON-om u node-RED-u. Pokazat ću vam kako kontrolirati umrežene utičnice s prijenosom json datoteka putem http get i post. To znanje kasnije možete koristiti za kontrolu bilo kojeg uređaja koji podržava JSON protokol.

U nastavne svrhe koristit ću NETIO 4All mrežnu utičnicu za napajanje, ali ne brinite, ne morate ništa kupovati. NETIO ima nevjerojatan 4All online demo koji možete koristiti.

Pribor

NETIO 4Svi umreženi powersocket ili 4Svi mrežni demo:

Čvor-CRVENI

Korak 1: REST JSON Http (s) protokol

REST JSON Http (s) protokol
REST JSON Http (s) protokol

Ovaj dio je malo tehnički, ali molim vas podnesite me. Da nisam objasnio ovaj dio, imali biste problema s razumijevanjem vrijednosti u json datotekama koje ćemo slati u čvoru-RED.

Radnje koje se odnose na svaki izlaz (električna utičnica):

U svim M2M protokolima, utičnice za napajanje NETIO koriste iste radnje koje se mogu primijeniti na pojedinačne izlaze. Na primjer, radnja prebacivanja ili kratkog isključivanja može se zapisati na bilo koji izlaz.

Međutim, varijabla Action može se koristiti samo za pisanje vrijednosti, ne može se koristiti za čitanje trenutnog stanja utičnice.

Ovo su radnje koje možete primijeniti na svaki izlaz:

0 = Izlaz je isključen (isključeno)

1 = Izlaz uključen (Uključeno)

2 = Izlaz je kratko isključen (kratko isključeno)

3 = Izlaz je kratko uključen (kratko uključeno)

4 = Izlaz se prebacuje iz jednog stanja u drugo (prebacivanje)

5 = Izlazno stanje nepromijenjeno (bez promjena)

6 = Zanemareno

Primjer - JSON datoteka za prebacivanje izlaza br. 1:

{

"Izlazi": [{

"ID": 1, "Radnja": 4

}]

}

ID - ovaj broj označava koji ćemo izlaz koristiti

Radnja - ovaj dio je radnja koju će izlaz učiniti (npr. 1 (Uključi izlaz))

Korak 2: Protok

Teći
Teći

A sada glavni dio. Ovako izgleda node-RED okruženje.

Uvezli smo tok API -ja URL -a (projekt koji vidite. Kasnije ću vam pokazati kako se uvoze tokovi i ovaj projekt) Ovaj se projekt sastoji od dva dijela:

  1. NETIO AN30 (JSON REST API) tok
  2. Nadzorna ploča (grafičko sučelje pomoću kojeg možete upravljati svojim programom)

Korak 3: Nadzorna ploča

Nadzorna ploča
Nadzorna ploča

Ovako izgleda nadzorna ploča u node-RED-u za ovu instrukciju. Možete ga prilagoditi ako želite po svom ukusu.

Nadzorna ploča za ovaj projekt podijeljena je na 4 dijela:

  1. Status uređaja - prikazuje podatke o uređaju kao što su model, mac adresa ili verzija firmvera.
  2. (POST) Kontrolni izlaz 1 - Sadrži 5 gumba koji kontroliraju izlaz 1. Svaki gumb izvodi različite radnje
  3. (GET) O1 - O4 Output States - Ovaj dio prikazuje trenutno stanje svakog izlaza s vašeg uređaja.
  4. Upravljanje uređajima - U ovom dijelu možete pronaći sve vrste grafikona i mjerača koji prikazuju trenutne izmjerene vrijednosti s NETIO 4Svi uređaj

Korak 4: Uvozni tok (projekt, skripta itd.)

Uvozni tok (projekt, skripta itd.)
Uvozni tok (projekt, skripta itd.)

Na izborniku (gornji desni kut) odaberite Uvoz, a zatim međuspremnik.

Zatim kopirajte donji tekst u navedeno polje i kliknite Uvoz.

Instaliranje čvorova koji nedostaju

Čvorovi se učitavaju u odabrani tok. Moguće je da se prikaže poruka o pogrešci sa popisom čvorova koji se uvoze, ali još nisu instalirani u Node-RED. U tom slučaju čvorove koji nedostaju potrebno je instalirati.

Ako čvorovi nedostaju, u izborniku odaberite Upravljanje paletom, kliknite Instaliraj i pronađite i instalirajte čvorove koji vam nedostaju.

Uvezi tekst:

[{"id": "56b9510c.98c6f", "type": "tab", "label": "NETIO AN30 (REST JSON)", "disabled": false, "info": ""}, {"id ":" 6a66b637.da1558 "," type ":" http request "," z ":" 56b9510c.98c6f "," name ":" HTTP zahtjev (POST) "," method ":" POST "," ret ": "txt", "url": "https://netio-4All.netio-products.com:8080/netio.json", "tls": "", "x": 430, "y": 100, "žice":

Korak 5: Kako sve to zajedno funkcionira

Kako sve to zajedno funkcionira
Kako sve to zajedno funkcionira

Tok je u osnovi podijeljen na dva dijela: POST i GET.

POST: Pisanje na O1

  • Pet gumba stvorenih na nadzornoj ploči u toku prikazano je na nadzornoj ploči.
  • Nakon što pritisnete gumb Output 1 = ON na nadzornoj ploči, korisni teret se postavlja na datoteku netio.json koja navodi izlaz i radnju (definiranu za svaki od gumba).
  • Blok HTTP zahtjev (POST) šalje datoteku netio.json kao zahtjev na IP adresu.
  • Odgovor poslužitelja (status) vraćen je kao izlaz.
  • Blok Msg.payload prikazuje rezultat iz HTTP zahtjeva (POST).

GET: Čitanje iz O1 - O4

  • Blok ponavljanja od 1 sekunde aktivira, s razdobljem od jedne sekunde, blok HTTP zahtjeva (GET), koji zauzvrat šalje netio.json kao zahtjev za GET i vraća kompletnu datoteku JSON sa statusom utičnice onako kako je primljena od poslužitelja.
  • Blok JSON Parse pretvara JSON datoteku iz bloka HTTP zahtjeva (GET) u JSON objekt tako da je moguće manipulirati svojstvima u datoteci JSON.
  • Funkcijski blok uzima pojedinačne dijelove JSON objekta i pretvara ih u svojstva objekta poruke za kasniju upotrebu.
  • Blok Current Chart postavlja msg.payload na svojstvo msg. TotalCurrent objekta msg, jer sljedeći blok Current Chart (Device) može prikazati samo vrijednost msg.payload.
  • Zatim slijede različiti izlazni čvorovi kako bi se prikazala odabrana svojstva objekta poruke, preuzeta iz objekta JSON, na nadzornoj ploči.

Objekt poruke i učitavanje poruke

Jednostavno i sažeto objašnjenje potražite ovdje:

www.steves-internet-guide.com/node-red-mess…

Korak 6: HTTP POST i GET

HTTP POST i GET
HTTP POST i GET
HTTP POST i GET
HTTP POST i GET

HTTP zahtjev (POST)

Ovaj čvor šalje naredbenu datoteku netio.json kao HTTP zahtjev (POST) kako bi kontrolirao NETIO 4All uređaj.

HTTP zahtjev (GET)

Ovaj čvor šalje HTTP zahtjev (GET) i vraća statusni odgovor.

Unaprijed ispunjena adresa upućuje na online demonstraciju NETIO 4All, gdje možete testirati vezu bez NETIO uređaja za radnim stolom.

netio-4all.netio-products.com

U tim čvorovima moguće je postaviti vlastitu IP adresu; međutim, IP je potrebno promijeniti u oba čvora HTTP zahtjeva, POST -u kao i GET -u.

Korak 7: Čvorovi gumba

Čvorovi gumba
Čvorovi gumba
Čvorovi gumba
Čvorovi gumba

Klikom na čvor gumba generira se poruka koja sadrži datoteku netio.json (desna slika) koja se zatim šalje putem http post čvora do netio pametne utičnice za napajanje.

Korak 8: Funkcijski čvor

Čvor funkcije
Čvor funkcije
Čvor funkcije
Čvor funkcije

Čvor funkcije poseban je čvor koji omogućuje pisanje prilagođene JavaScript funkcije.

U ovom uputstvu funkcija odabire vrijednosti iz raščlanjene JSON datoteke (sada JSON objekt) i dodjeljuje ih svojstvima objekta msg.

Kod je podijeljen u četiri odjeljka:

  1. Dodjeljivanje vrijednosti iz objekta JSON pojedinačnim svojstvima objekta poruke
  2. Rukovanje pogreškama u slučaju da mrežna utičnica ne podržava globalna mjerenja

    Ako mrežna utičnica ne podržava mjerenje globalnih vrijednosti, Node-RED bi prikazao pogreške jer ova funkcija ne bi pronašla odgovarajuće svojstvo, npr. msg.payload. GlobalMeasure. Voltage, jer ne bi bio prisutan u JSON objektu. U ovom slučaju svojstvo objekta poruke, npr. msg. Napon je postavljen na 0 i greška se hvata u koštac.

  3. Dodjeljivanje vrijednosti izlaznog stanja
  4. Postavljanje boja prikazanih vrijednosti izlaznog stanja prema izlaznim stanjima

Korak 9: JSON čvor i čvor za ubrizgavanje

JSON čvor i čvor za ubrizgavanje
JSON čvor i čvor za ubrizgavanje
JSON čvor i čvor za ubrizgavanje
JSON čvor i čvor za ubrizgavanje

Čvor JSON

Čvor JSON raščlanjuje JSON datoteku i pretvara je u JSON objekt.

Kao odgovor poslužitelja na GET zahtjev, čvor HTTP Zahtjev vraća JSON datoteku koja sadrži trenutni status NETIO 4x uređaja, ali je jednostavno tekstualna datoteka, pa je za rad s podacima JSON datoteka potrebna za raščlanjivanje u JSON objekt.

Čvor za ubrizgavanje

Svake sekunde ovaj čvor aktivira čvor HTTP zahtjeva koji šalje GET zahtjev.

Zbog toga se vrijednosti na nadzornoj ploči ažuriraju s razdobljem od jedne sekunde

Korak 10: Čvor teksta i čvor za otklanjanje pogrešaka

Čvor teksta i čvor za otklanjanje pogrešaka
Čvor teksta i čvor za otklanjanje pogrešaka
Čvor teksta i čvor za otklanjanje pogrešaka
Čvor teksta i čvor za otklanjanje pogrešaka

Čvor teksta

Prikazuje tekstualno polje na nadzornoj ploči. U ovom uputstvu tekstualni čvorovi prikazuju trenutnu, naponsku, modelnu, inačicu firmvera ili JSON verziju.

Oznaka se prikazuje na nadzornoj ploči, a naziv je naziv čvora prikazan u toku u čvoru-CRVENO.

Čvor za otklanjanje pogrešaka

Prikazuje učitavanje poruke.

Korak 11: Čvor grafikona

Čvor grafikona
Čvor grafikona
Čvor grafikona
Čvor grafikona

Ovaj čvor iscrtava trenutni grafikon na nadzornoj ploči prema vrijednosti korisnog opterećenja.

Ovaj čvor može iscrtavati grafikone samo prema vrijednosti korisnog opterećenja.

Iz tog razloga čvor funkcije koristi se za postavljanje msg.payload na vrijednost koju je potrebno prikazati.

msg.payload = msg. TotalCurrent;

Korak 12: Čvor mjerila i čvorovi veza

Čvor mjerenja i čvorovi veza
Čvor mjerenja i čvorovi veza
Čvor mjerila i čvorovi veza
Čvor mjerila i čvorovi veza

Čvor mjerila

Ovaj čvor dodaje widget mjerača na nadzornu ploču.

U ovoj uputi svaki mjerač vizualizira jedno svojstvo objekta poruke: napon [V], struju [A], frekvenciju [Hz] i ukupni pravi faktor snage (TPF).

Vezni čvorovi

Čvorovi za povezivanje i povezivanje rade poput tunela. Poruka za plaćanje dolazi u vezu u čvoru i izlazi iz čvora za izlaz veze.

Koristio sam ga da učinim tok malo jasnijim i lakšim za čitanje.

Korak 13: Hvala vam što ste pročitali Moju instrukciju

Nadam se da ste uživali u mojim instrukcijama i nadam se da ste naučili nešto novo.

Ova instrukcija je samo skraćena verzija različitog vodiča koji sam napravio

Izvorni je vodič duži i mnogo detaljnije orijentiran i općenito bolje strukturiran. Ako nešto niste razumjeli ili mislite da sam nešto propustio ili nedovoljno objasnio, onda to definitivno možete pronaći.

Obećavam da nećete biti razočarani

Izvornik:

Također postoje slični vodiči o raznim upotrebama čvora RED, pa ako ste zainteresirani, slobodno istražite:

Rad s REST URL API-jem u čvoru-RED

www.netio-products.com/en/application-notes/an29-node-red-example-of-url-api-communication-with-netio-4x

Rad s REST XML-om u čvoru-RED

www.netio-products.com/en/application-notes/an31-node-red-example-of-rest-xml-communication-with-netio-4x

Rad s TCP/Modbusom u čvoru-CRVENOM

Dolazi vrlo brzo:)

Preporučeni: