Innholdsfortegnelse:
- Rekvisita
- Trinn 1: REST JSON Http (s) -protokoll
- Trinn 2: Flyt
- Trinn 3: Dashboard
- Trinn 4: Importer flyt (prosjekt, skript, osv.)
- Trinn 5: Hvordan alt fungerer sammen
- Trinn 6: HTTP POST og GET
- Trinn 7: Knappnoder
- Trinn 8: Funksjonsnode
- Trinn 9: JSON Node og injiser node
- Trinn 10: Tekstnode og feilsøkingsnode
- Trinn 11: Kartnode
- Trinn 12: Gauge Node og Link Nodes
- Trinn 13: Takk for at du leser My Instructable
Video: Hvordan arbeide med JSON i Node-RED: 13 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
Denne instruksen vil lære deg hvordan du jobber med JSON i node-RED. Jeg vil vise deg hvordan du kontrollerer nettverkskontakter med overføring av json -filer via http get and post. Og du kan bruke denne kunnskapen senere til å kontrollere alle enheter som støtter JSON -protokollen.
For undervisningsformål bruker jeg NETIO 4All nettverkskontakt, men ikke bekymre deg, du trenger ikke kjøpe noe. NETIO har fantastisk 4Al online demonstrasjon du kan bruke.
Rekvisita
NETIO 4 Alle nettverkskrefter eller 4Al online demonstrasjon:
Node-RØD
Trinn 1: REST JSON Http (s) -protokoll
Denne delen er litt teknisk, men vær så snill å ta med meg. Hvis jeg ikke forklarte denne delen, ville du ha problemer med å forstå verdiene i json-filer vi sender i node-RED.
Handlinger som gjelder for hver utgang (stikkontakt):
I alle M2M -protokoller bruker NETIO -stikkontakter de samme handlingene som kan brukes på individuelle utganger. For eksempel kan en Toggle- eller Short Off -handling skrives til hvilken som helst utgang.
Handlingsvariabelen kan imidlertid bare brukes til å skrive verdier, den kan ikke brukes til å lese gjeldende utløpstilstand.
Dette er handlinger du kan bruke på hver utgang:
0 = Utgang slått av (Av)
1 = Utgang slått på (På)
2 = Utgang slått av for en kort stund (kort av)
3 = Utgang slått på kort tid (kort På)
4 = Utgang byttet fra en tilstand til den andre (veksle)
5 = Utgangstilstand uendret (ingen endring)
6 = ignorert
Eksempel - JSON -fil for å bytte utgangsnummer. 1:
{
"Utganger": [{
"ID": 1, "Handling": 4
}]
}
ID - dette tallet angir hvilken utgang vi skal bruke
Handling - denne delen er handlingen utgangen vil utføre (f.eks. 1 (Slå på utgang))
Trinn 2: Flyt
Og nå hoveddelen. Slik ser node-RED-miljøet ut.
Vi har importert URL API -flyt (Prosjektet du ser. Senere viser jeg deg hvordan du importerer flyter og dette prosjektet) Dette prosjektet består av to deler:
- NETIO AN30 (JSON REST API) -flyt
- Dashboard (grafisk grensesnitt som du kan bruke programmet til)
Trinn 3: Dashboard
Slik ser dashbordet i node-RED for denne instruerbare ut. Du kan tilpasse den hvis du vil passe til din smak.
Dashbordet for dette prosjektet er delt inn i 4 deler:
- Enhetsstatus - viser enhetsinformasjon som modell, mac -adresse eller fastvareversjon.
- (POST) Kontrollutgang 1 - Inneholder 5 knapper som styrer utgang 1. Hver knapp utfører forskjellige handlinger
- (GET) O1 - O4 Utgangsstater - Denne delen viser gjeldende tilstand for hver utgang fra enheten.
- Enhetsbehandling - I denne delen kan du finne alle slags grafer og målere som viser gjeldende målte verdier fra NETIO 4Aall -enheten
Trinn 4: Importer flyt (prosjekt, skript, osv.)
I menyen (øverst til høyre) velger du Importer og deretter Utklippstavle.
Kopier deretter teksten nedenfor til det angitte feltet og klikk på Importer.
Installere manglende noder
Nodene lastes inn i den valgte strømmen. Det er mulig at det vises en feilmelding med en liste over noder som importeres, men som ikke er installert i Node-RED ennå. I dette tilfellet må de manglende nodene installeres.
Hvis det mangler noder, velger du Behandle palett i menyen, klikker på Installer og finner og installerer nodene du mangler.
Importer tekst:
[{"id": "56b9510c.98c6f", "type": "tab", "label": "NETIO AN30 (REST JSON)", "deaktivert": false, "info": ""}, {"id ":" 6a66b637.da1558 "," type ":" http -forespørsel "," z ":" 56b9510c.98c6f "," name ":" HTTP -forespørsel (POST) "," method ":" POST "," ret ": "txt", "url": "https://netio-4All.netio-products.com:8080/netio.json", "tls": "", "x": 430, "y": 100, "ledninger":
Trinn 5: Hvordan alt fungerer sammen
Flyten er i utgangspunktet delt inn i to deler: POST og GET.
POST: Skriver til O1
- Fem knapper som er opprettet i instrumentbordet i flyt, vises på oversikten.
- Etter å ha klikket på Output 1 = ON -knappen i dashbordet, settes nyttelasten til netio.json -filen som spesifiserer utdata og handling (definert for hver av knappene).
- HTTP -forespørselsblokken (POST) sender netio.json -filen som en forespørsel til en IP -adresse.
- Serverresponsen (status) returneres som utdata.
- Msg.payload -blokken viser resultatet fra HTTP -forespørsel (POST).
FÅ: Lesing fra O1 - O4
- 1 Second Repeat -blokken aktiverer, med en periode på ett sekund, HTTP Request (GET) -blokken, som igjen sender netio.json som en GET -forespørsel og returnerer en komplett JSON -fil med socketstatusen som mottatt fra serveren.
- JSON Parse -blokken transformerer JSON -filen fra HTTP -forespørselsblokken (GET) til et JSON -objekt, slik at det er mulig å manipulere egenskapene i JSON -filen.
- Funksjonsblokken tar individuelle deler av JSON -objektet og forvandler dem til egenskaper for et msg -objekt for senere bruk.
- Gjeldende diagramblokk angir msg.payload til msg. TotalCurrent -egenskapen til msg -objektet, fordi den påfølgende Current Chart (Device) -blokken bare kan vise msg.payload -verdien.
- Ulike utgangsnoder følger deretter for å vise utvalgte egenskaper for msg -objektet, tatt fra JSON -objektet, i dashbordet.
Msg -objektet og msg.payload
For en enkel og kortfattet forklaring, se her:
www.steves-internet-guide.com/node-red-mess…
Trinn 6: HTTP POST og GET
HTTP -forespørsel (POST)
Denne noden sender en netio.json -kommandofil som en HTTP -forespørsel (POST) for å kontrollere NETIO 4All -enheten.
HTTP -forespørsel (GET)
Denne noden sender en HTTP -forespørsel (GET) og returnerer statusresponsen.
Den forhåndsfylte adressen peker til NETIO 4All online demo, der du kan teste tilkoblingen uten å ha en NETIO-enhet ved skrivebordet.
netio-4all.netio-products.com
Det er mulig å angi din egen IP -adresse i disse nodene; IP -en må imidlertid endres i både HTTP -forespørselsnodene, POST og GET.
Trinn 7: Knappnoder
Ved å klikke på knappenoden genereres en melding som inneholder en netio.json -fil (høyre bilde) som deretter sendes via http -postnoden til netio smart strømuttak.
Trinn 8: Funksjonsnode
En funksjonsnode er en spesiell node som gjør det mulig å skrive en tilpasset JavaScript -funksjon.
I denne instruksen plukker funksjonen verdier fra den analyserte JSON -filen (nå et JSON -objekt) og tilordner dem til egenskapene til msg -objektet.
Koden er delt inn i fire seksjoner:
- Tilordne verdier fra JSON -objektet til de individuelle egenskapene til msg -objektet
-
Feilhåndtering i tilfelle strømuttaket i nettverket ikke støtter globale målinger
Hvis stikkontakten i nettverket ikke støtter måling av globale verdier, vil Node-RED vise feil fordi denne funksjonen ikke finner den respektive egenskapen, f.eks. msg.payload. GlobalMeasure. Voltage, siden den ikke ville være tilstede i JSON -objektet. I dette tilfellet er egenskapen til msg -objektet, f.eks. msg. Voltage, er satt til 0 og feilen blir fanget opp og håndtert.
- Tilordne verdier for utgangstilstand
- Angi fargene på de viste utgangstilstandsverdiene i henhold til utgangstilstandene
Trinn 9: JSON Node og injiser node
JSON -node
JSON -noden analyserer JSON -filen og forvandler den til et JSON -objekt.
Som et svar fra serveren på GET -forespørselen, returnerer HTTP -forespørselsnoden en JSON -fil som inneholder gjeldende status for NETIO 4x -enheten, men er ganske enkelt en tekstfil, så for å jobbe med dataene trenger JSON -filen for å bli analysert i et JSON -objekt.
Injiser node
Hvert sekund aktiverer denne noden HTTP -forespørselsnoden som sender en GET -forespørsel.
Som et resultat oppdateres verdiene i oversikten med en periode på ett sekund
Trinn 10: Tekstnode og feilsøkingsnode
Tekstnode
Viser et tekstfelt i oversikten. I denne instruksen viser tekstnodene gjeldende, spenning, modell, fastvareversjon eller JSON -versjon.
Etiketten vises på oversikten, og navnet er nodenavnet som vises i flyten i Noden-RØD.
Feilsøkingsnode
Viser meldingsbelastningen.
Trinn 11: Kartnode
Denne noden plotter det nåværende diagrammet i dashbordet i henhold til nyttelastverdien.
Denne noden kan bare plotte diagrammer i henhold til nyttelastverdien.
Av denne grunn brukes en funksjonsnode for å angi msg. Payload til verdien som må vises.
msg.payload = msg. TotalCurrent;
Trinn 12: Gauge Node og Link Nodes
Måleknute
Denne noden legger til en måle -widget til oversikten.
I denne instruksen visualiserer hver måler en egenskap for msg -objektet: spenning [V], strøm [A], frekvens [Hz] og den samlede virkningsfaktoren (TPF).
Linknoder
Koble inn og koble ut noder fungerer som en tunnel. Meldingsbetalingen kommer inn i lenken i noden og går ut av koblingen ut -noden.
Jeg brukte den til å gjøre flyten litt tydeligere og lettere å lese.
Trinn 13: Takk for at du leser My Instructable
Jeg håper du likte det instruerbare og forhåpentligvis lærte noe nytt.
Denne instruerbare er bare en forkortet versjon av forskjellige guider jeg har laget
Den originale guiden er lengre og mye mer detaljorientert og generelt bedre strukturert. Hvis du ikke forsto noe eller tror jeg savnet eller ikke forklarte nok noe, så kan du definitivt finne det der.
Jeg lover at du ikke blir skuffet
Original:
Det finnes også lignende guider om ulike bruksområder for nod-RED, så hvis du er interessert, kan du utforske:
Jobber med REST URL API i node-RED
www.netio-products.com/en/application-notes/an29-node-red-example-of-url-api-communication-with-netio-4x
Jobber med REST XML i node-RED
www.netio-products.com/en/application-notes/an31-node-red-example-of-rest-xml-communication-with-netio-4x
Jobber med TCP/Modbus i node-RED
Kommer snart:)
Anbefalt:
Arbeide med LCD (Arduino): 4 trinn
Arbeide med LCD (Arduino): Hei, I dag skal jeg vise hvordan du arbeider med en enkel LCD ved hjelp av Arduino Uno. For dette skal jeg bruke TinkerCAD som er ganske enkelt å bruke for å teste enkle prosjekter som dette. Hvis du vil vite hvordan du bruker TinkerCAD, kan du sjekke
Arbeide med LED ved hjelp av Arduino UNO i TinkerCAD -kretser: 7 trinn
Arbeide med LED ved hjelp av Arduino UNO i TinkerCAD -kretser: Dette prosjektet demonstrerer arbeid med LED og Arduino i TinkerCAD -kretser
Arbeide med to lysdioder ved hjelp av Arduino UNO i TinkerCAD -kretser: 8 trinn
Arbeide med to lysdioder Bruke Arduino UNO i TinkerCAD -kretser: Dette prosjektet viser arbeid med to lysdioder og Arduino i TinkerCAD -kretser
Hvordan arbeide med Arduino og forskjellige RGB -lysdioder: 3 trinn
Hvordan arbeide med Arduino og forskjellige RGB -lysdioder: Arduino er en fantastisk liten enhet. Men en av de mest brukte programmene for denne kraftige lille enheten er ofte å blinke eller blinke en LED. Denne opplæringen viser deg tre måter å jobbe med RGB Leds og Arduino.1. Den første måten er å bruke en enkel
Arbeide med flere datamaskiner (for studenter): 6 trinn
Arbeide med flere datamaskiner (for studenter): Å jobbe med flere datamaskiner kan være veldig vanskelig. Du vet aldri hvilke filer som er på hvilken datamaskin, du kan få problemer med flere versjoner av den samme filen, og som et resultat kan du miste filene dine sammen eller i det minste ha din