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, Novembar
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 čvoru-RED. Pokazat ću vam kako kontrolirati mrežne 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 svrhe poučavanja koristit ću NETIO 4 Sve mrežne utičnice, ali ne brinite, ne morate ništa kupovati. NETIO ima zadivljujući 4All online demo koji možete koristiti.

Supplies

NETIO 4Sve mrežne utičnice za napajanje ili 4Sve internetske demonstracije:

Č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 da me prihvatite. 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 izlaznog stanja.

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 uključen na kratko (kratko uključeno)

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

5 = Stanje izlaza nepromijenjeno (bez promjena)

6 = Zanemareno

Primjer - JSON datoteka za prebacivanje izlaza br. 1:

{

"Izlazi": [{

"ID": 1, "Akcija": 4

}]

}

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

Radnja - ovaj dio je radnja koju će izlaz izvršiti (npr. 1 (Uključi izlaz))

Korak 2: Protok

Flow
Flow

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

Uvezli smo tok API -ja URL -a (projekat koji vidite. Kasnije ću vam pokazati kako se uvoze tokovi i ovaj projekat) Ovaj projekat se sastoji iz 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

Kontrolna tabla
Kontrolna tabla

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

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

  1. Status uređaja - prikazuje informacije o uređaju kao što su model, mac adresa ili verzija firmvera.
  2. (POST) Kontrolni izlaz 1 - Sadrži 5 tipki koje kontroliraju izlaz 1. Svako dugme izvršava 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 sa NETIO 4All uređaja

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

Tok uvoza (projekt, skripta itd.)
Tok uvoza (projekt, skripta itd.)

U 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 greš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 meniju 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, "wires":

Korak 5: Kako sve to funkcionira zajedno

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 specificira 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) se vraća kao izlaz.
  • Blok Msg.payload prikazuje rezultat iz HTTP zahtjeva (POST).

GET: Čitanje iz O1 - O4

  • Blok ponavljanja od 1 sekunde aktivira, s periodom od jedne sekunde, blok HTTP zahtjeva (GET), koji zauzvrat šalje netio.json kao GET zahtjev i vraća kompletnu JSON datoteku 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 JSON datoteci.
  • 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 prikazali odabrana svojstva objekta poruke, preuzeta iz objekta JSON, na nadzornoj ploči.

Objekt poruke i učitavanje poruke

Za jednostavno i sažeto objašnjenje, pogledajte 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 NETIO 4All online demonstraciju, gdje možete testirati vezu bez NETIO uređaja za radnim stolom.

netio-4all.netio-products.com

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

Korak 7: Čvorovi dugmadi

Čvorovi dugmadi
Čvorovi dugmadi
Čvorovi dugmadi
Čvorovi dugmadi

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

Funkcijski čvor
Funkcijski čvor
Funkcijski čvor
Funkcijski čvor

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

U ovom uputstvu funkcija bira 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 JSON objekta pojedinačnim svojstvima objekta poruke
  2. Rukovanje greš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 greš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, postavljen je na 0 i greška se hvata u rad.

  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

JSON čvor

JSON čvor analizira JSON datoteku i pretvara je u JSON objekt.

Kao odgovor poslužitelja na GET zahtjev, čvor HTTP zahtjeva 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.

Inject node

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 grešaka

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

Tekstualni čvor

Prikazuje tekstualno polje na nadzornoj ploči. U ovom uputstvu tekstualni čvorovi prikazuju trenutnu, napon, model, verziju firmvera ili JSON verziju.

Label se prikazuje na nadzornoj ploči, a Name je naziv čvora prikazano u toku u Node-RED.

Debug čvor

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 mjerenja i čvorovi veze

Čvor mjerenja i čvorovi veze
Čvor mjerenja i čvorovi veze
Čvor mjerenja i čvorovi veze
Čvor mjerenja i čvorovi veze

Čvor mjerila

Ovaj čvor dodaje kontrolnu ploču na nadzornu ploču.

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

Čvorovi veza

Čvorovi za povezivanje i povezivanje rade poput tunela. Poruka za plaćanje stiže 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.

Ovo uputstvo je samo skraćena verzija drugog vodiča koji sam napravio

Originalni vodič je 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

Original:

Također postoje slični vodiči o različitim 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/Modbus u čvoru-RED

Dolazi vrlo brzo:)

Preporučuje se: