Indholdsfortegnelse:

Sådan arbejder du med JSON i Node-RED: 13 trin
Sådan arbejder du med JSON i Node-RED: 13 trin

Video: Sådan arbejder du med JSON i Node-RED: 13 trin

Video: Sådan arbejder du med JSON i Node-RED: 13 trin
Video: Полный курс по Next js - Изучи Nextjs за 2 часа! | React SSR +таймкоды 2024, Juli
Anonim
Sådan arbejder du med JSON i Node-RED
Sådan arbejder du med JSON i Node-RED

Denne instruktive vil lære dig, hvordan du arbejder med JSON i node-RED. Jeg vil vise dig, hvordan du styrer netværksstikkontakter med overførsel af json -filer via http get and post. Og du kan bruge denne viden senere til at styre enhver enhed, der understøtter JSON -protokol.

Til undervisningsformål vil jeg bruge NETIO 4All netværksstik, men bare rolig, du behøver ikke købe noget. NETIO har fantastisk 4Al online demo, du kan bruge.

Forbrugsvarer

NETIO 4Alle netværksdrev eller 4Alle online demo:

Node-RØD

Trin 1: REST JSON Http (s) -protokol

REST JSON Http (s) Protokol
REST JSON Http (s) Protokol

Denne del er lidt teknisk, men vær venlig at bære mig. Hvis jeg ikke forklarede denne del, ville du have problemer med at forstå værdierne i json-filer, vi sender i node-RED.

Handlinger, der gælder for hver udgang (stikkontakt):

I alle M2M -protokoller bruger NETIO -stikkontakter de samme handlinger, som kan anvendes på individuelle udgange. For eksempel kan en Toggle eller Short off handling skrives til ethvert output.

Handlingsvariablen kan dog kun bruges til at skrive værdier, den kan ikke bruges til at aflæse den aktuelle udløbstilstand.

Dette er handlinger, du kan anvende på hvert output:

0 = Output slået fra (Fra)

1 = Output slået til (tændt)

2 = Output slukket i kort tid (kort slukket)

3 = Output tændt i kort tid (kort On)

4 = Output skiftet fra en tilstand til den anden (skifte)

5 = Outputtilstand uændret (ingen ændring)

6 = ignoreret

Eksempel - JSON -fil for at skifte output -nr. 1:

{

"Outputs": [{

"ID": 1, "Handling": 4

}]

}

ID - dette tal angiver, hvilket output vi vil bruge

Handling - denne del er den handling, output vil foretage (f.eks. 1 (Slå output til))

Trin 2: Flow

Flyde
Flyde

Og nu hoveddelen. Sådan ser node-RED-miljøet ud.

Vi har importeret URL API -flow (Det projekt, du ser. Senere viser jeg dig, hvordan du importerer strømme og dette projekt) Dette projekt består af to dele:

  1. NETIO AN30 (JSON REST API) flow
  2. Dashboard (grafisk interface, som du kan betjene dit program med)

Trin 3: Dashboard

Dashboard
Dashboard

Sådan ser instrumentbrættet i node-RØDT for denne instruerbare ud. Du kan tilpasse det, hvis du vil passe til din smag.

Instrumentbrættet til dette projekt er opdelt i 4 dele:

  1. Enhedsstatus - viser enhedsoplysninger, f.eks. Model, mac -adresse eller firmwareversion.
  2. (POST) Control Output 1 - Indeholder 5 knapper, der styrer output 1. Hver knap udfører forskellige handlinger
  3. (GET) O1 - O4 Output States - Denne del viser den aktuelle tilstand for hvert output fra din enhed.
  4. Enhedshåndtering - I denne del kan du finde alle slags grafer og målere, der viser aktuelle målte værdier fra NETIO 4Aall -enheden

Trin 4: Importér flow (projekt, script, osv.)

Importer flow (projekt, script osv.)
Importer flow (projekt, script osv.)

I menuen (højre øverste hjørne) vælg Import og derefter Udklipsholder.

Kopier derefter teksten herunder til det angivne felt, og klik på Importer.

Installation af manglende noder

Knuderne indlæses i det valgte flow. Det er muligt, at der vises en fejlmeddelelse med en liste over noder, der importeres, men ikke er installeret i Node-RED endnu. I dette tilfælde skal de manglende noder installeres.

Hvis der mangler noder, skal du vælge Administrer paletten i menuen, klikke på Installer og finde og installere de noder, du mangler.

Importer tekst:

[{"id": "56b9510c.98c6f", "type": "fane", "label": "NETIO AN30 (REST JSON)", "deaktiveret": falsk, "info": ""}, {"id ":" 6a66b637.da1558 "," type ":" http -forespørgsel "," z ":" 56b9510c.98c6f "," name ":" HTTP -anmodning (POST) "," metode ":" POST "," ret ": "txt", "url": "https://netio-4All.netio-products.com:8080/netio.json", "tls": "", "x": 430, "y": 100, "wires":

Trin 5: Hvordan det hele fungerer sammen

Hvordan det hele fungerer sammen
Hvordan det hele fungerer sammen

Flowet er dybest set opdelt i to dele: POST og GET.

POST: Skrivning til O1

  • Fem knapper, der er oprettet i Dashboard i Flow, vises i Dashboard.
  • Efter at have klikket på knappen Output 1 = ON i instrumentbrættet, indstilles nyttelasten til netio.json -filen, der angiver output og handling (defineret for hver af knapperne).
  • HTTP -anmodningsblokken (POST) sender netio.json -filen som en anmodning til en IP -adresse.
  • Serverresponsen (status) returneres som output.
  • Msg.payload -blokken viser resultatet fra HTTP -anmodning (POST).

FÅ: Læsning fra O1 - O4

  • 1 -sekunders gentagelsesblokken aktiverer med en periode på et sekund HTTP Request (GET) -blokken, som igen sender netio.json som en GET -anmodning og returnerer en komplet JSON -fil med socketstatus som modtaget fra serveren.
  • JSON Parse -blokken transformerer JSON -filen fra HTTP Request (GET) -blokken til et JSON -objekt, så det er muligt at manipulere egenskaberne i JSON -filen.
  • Funktionsblokken tager individuelle dele af JSON -objektet og omdanner dem til egenskaber for et msg -objekt til senere brug.
  • Den aktuelle diagramblok sætter msg.payload til msg. TotalCurrent -egenskaben for msg -objektet, fordi den efterfølgende Current Chart (Device) -blok kun kan vise msg.payload -værdien.
  • Forskellige outputnoder følger derefter for at vise udvalgte egenskaber for msg -objektet, taget fra JSON -objektet, i instrumentbrættet.

Msg -objektet og msg.payload

For en enkel og kortfattet forklaring, se her:

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

Trin 6: HTTP POST og GET

HTTP POST og GET
HTTP POST og GET
HTTP POST og GET
HTTP POST og GET

HTTP -anmodning (POST)

Denne knude sender en netio.json -kommandofil som en HTTP -forespørgsel (POST) for at styre NETIO 4All -enheden.

HTTP -anmodning (GET)

Denne knude sender en HTTP -forespørgsel (GET) og returnerer statusresponsen.

Den udfyldte adresse peger på NETIO 4All online demo, hvor du kan teste forbindelsen uden at have en NETIO-enhed ved dit skrivebord.

netio-4all.netio-products.com

Det er muligt at indstille din egen IP -adresse i disse noder; IP -en skal dog ændres i både HTTP -anmodningsknudepunkterne, POST samt GET.

Trin 7: Knapnoder

Knapnoder
Knapnoder
Knapnoder
Knapnoder

Ved at klikke på knapnoden genereres en meddelelse, der indeholder en netio.json -fil (højre billede), som derefter sendes via http -postknude til netio smart strømstik.

Trin 8: Funktionsknude

Funktionsknude
Funktionsknude
Funktionsknude
Funktionsknude

En funktionsnode er en særlig knude, der gør det muligt at skrive en tilpasset JavaScript -funktion.

I denne instruktør vælger funktionen værdier fra den analyserede JSON -fil (nu et JSON -objekt) og tildeler dem egenskaberne for msg -objektet.

Koden er opdelt i fire sektioner:

  1. Tildeling af værdier fra JSON -objektet til msg -objektets individuelle egenskaber
  2. Fejlhåndtering, hvis netværksstikket ikke understøtter globale målinger

    Hvis netværksstikket ikke understøtter måling af globale værdier, viser Node-RED fejl, fordi denne funktion ikke finder den respektive ejendom, f.eks. msg.payload. GlobalMeasure. Voltage, da det ikke ville være til stede i JSON -objektet. I dette tilfælde er egenskaben for msg -objektet, f.eks. msg. Voltage, er indstillet til 0, og fejlen fanges og håndteres.

  3. Tildeling af outputtilstandsværdier
  4. Indstilling af farverne på de viste output -tilstandsværdier i henhold til output -tilstande

Trin 9: JSON Node og Inject Node

JSON Node og Inject Node
JSON Node og Inject Node
JSON Node og Inject Node
JSON Node og Inject Node

JSON -knudepunkt

JSON -node analyserer JSON -filen og omdanner den til et JSON -objekt.

Som et svar fra serveren til GET -anmodningen returnerer HTTP -anmodningsknudepunktet en JSON -fil, der indeholder den aktuelle status for NETIO 4x -enheden, men er simpelthen en tekstfil, så for at arbejde med dataene har JSON -filen brug for skal analyseres i et JSON -objekt.

Indsprøjt knude

Hvert sekund aktiverer denne node HTTP -anmodningsknudepunktet, der sender en GET -anmodning.

Som følge heraf opdateres værdierne i instrumentbrættet med en periode på et sekund

Trin 10: Tekstnode og fejlfindingsknude

Tekstnode og fejlfindingsknude
Tekstnode og fejlfindingsknude
Tekstnode og fejlfindingsknude
Tekstnode og fejlfindingsknude

Tekstnode

Viser et tekstfelt i instrumentbrættet. I denne instruks viser tekstnoderne strøm, spænding, model, firmwareversion eller JSON -version.

Etiketten vises i instrumentbrættet, og navnet er nodenavnet, der vises i flowet i Node-RØD.

Fejlfindingsknudepunkt

Viser msg. Payload.

Trin 11: Diagramnode

Diagramknude
Diagramknude
Diagramknude
Diagramknude

Denne knude tegner det aktuelle diagram i instrumentbrættet i henhold til nyttelastværdien.

Denne knude kan kun plotte diagrammer i henhold til nyttelastværdien.

Af denne grund bruges en funktionsnode til at indstille msg. Payload til den værdi, der skal vises.

msg.payload = msg. TotalCurrent;

Trin 12: Gauge Node og Link Nodes

Gauge Node og Link Nodes
Gauge Node og Link Nodes
Gauge Node og Link Nodes
Gauge Node og Link Nodes

Måleknude

Denne knude tilføjer en måle -widget til instrumentbrættet.

I denne instruks visualiserer hver måler en egenskab ved msg -objektet: spænding [V], strøm [A], frekvens [Hz] og den samlede True Power Factor (TPF).

Link noder

Link ind og link ud noder fungerer som en tunnel. Msg.payload ankommer til linket i node og går ud af link -out -node.

Jeg brugte det til at gøre strømmen lidt klarere og lettere at læse.

Trin 13: Tak fordi du læste min instruerbare

Jeg håber, at du nød min instruktive og forhåbentlig har lært noget nyt.

Denne instruerbare er kun forkortet version af forskellige vejledninger, jeg lavede

Den originale guide er længere og meget mere detaljeorienteret og generelt bedre struktureret. Hvis du ikke forstod noget eller tror, at jeg savnede eller ikke forklarede nok noget, så kan du helt sikkert finde det der.

Jeg lover, at du ikke bliver skuffet

Original:

Der er også lignende vejledninger om forskellige anvendelser af knude-RØD, så hvis du er interesseret, er du velkommen til at udforske:

Arbejder med REST URL API i node-RED

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

Arbejde med REST XML i node-RED

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

Arbejder med TCP/Modbus i node-RØD

Kommer meget snart:)

Anbefalede: