Innehållsförteckning:
- Tillbehör
- Steg 1: REST JSON Http (s) Protocol
- Steg 2: Flöde
- Steg 3: Instrumentpanel
- Steg 4: Importera flöde (projekt, skript, etc.)
- Steg 5: Hur allt fungerar tillsammans
- Steg 6: HTTP POST och GET
- Steg 7: Knappnoder
- Steg 8: Funktionsnod
- Steg 9: JSON -nod och injicera nod
- Steg 10: Textnod och felsökningsnod
- Steg 11: Diagramnod
- Steg 12: Mätnod och länknoder
- Steg 13: Tack för att du läser Min instruerbara
Video: Hur man arbetar med JSON i Node-RED: 13 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Denna instruerbara lär dig hur du arbetar med JSON i nod-RÖD. Jag kommer att visa dig hur du styr nätverksuttag med överföring av json -filer via http get and post. Och du kan använda denna kunskap senare för att styra alla enheter som stöder JSON -protokoll.
För undervisningsändamål kommer jag att använda NETIO 4All nätverksuttag, men oroa dig inte, du behöver inte köpa någonting. NETIO har fantastiska 4All online -demo du kan använda.
Tillbehör
NETIO 4All nätverksansluten powerocket eller 4All online-demo:
Nod-RÖD
Steg 1: REST JSON Http (s) Protocol
Den här delen är lite teknisk, men snälla bära med mig. Om jag inte förklarade den här delen skulle du ha problem med att förstå värdena i json-filer som vi kommer att skicka i nod-RÖD.
Åtgärder som gäller för varje utgång (eluttag):
I alla M2M -protokoll använder NETIO -uttag samma åtgärder som kan tillämpas på enskilda utgångar. Till exempel kan en Toggle- eller Short Off -åtgärd skrivas till valfri utdata.
Aktionsvariabeln kan dock bara användas för att skriva värden, den kan inte användas för att läsa det aktuella utloppstillståndet.
Det här är åtgärder du kan tillämpa på varje utdata:
0 = Utgången avstängd (Av)
1 = Utgång påslagen (På)
2 = Utgången avstängd under en kort tid (kort av)
3 = Utgången påslagen under en kort tid (kort på)
4 = Utgång växlat från ett tillstånd till det andra (växling)
5 = Utgångsläge oförändrat (ingen ändring)
6 = ignoreras
Exempel - JSON -fil för att växla utmatningsnr. 1:
{
"Utgångar": [{
"ID": 1, "Åtgärd": 4
}]
}
ID - det här numret anger vilken utgång vi ska använda
Åtgärd - denna del är åtgärden som utgången kommer att göra (t.ex. 1 (Slå på utmatning))
Steg 2: Flöde
Och nu huvuddelen. Så här ser nod-RÖD miljö ut.
Vi har importerat URL -API -flöde (projektet du ser. Senare visar jag dig hur du importerar flöden och detta projekt) Detta projekt består av två delar:
- NETIO AN30 (JSON REST API) flöde
- Instrumentpanel (grafiskt gränssnitt där du kan styra ditt program)
Steg 3: Instrumentpanel
Så här ser instrumentpanelen i nod-RÖD ut för denna instruerbara. Du kan anpassa den om du vill passa din smak.
Instrumentpanelen för detta projekt är uppdelad i 4 delar:
- Enhetsstatus - visar enhetsinformation som modell, mac -adress eller firmwareversion.
- (POST) Kontrollutgång 1 - Innehåller 5 knappar som styr utgång 1. Varje knapp utför olika åtgärder
- (GET) O1 - O4 Output States - Den här delen visar det aktuella tillståndet för varje utmatning från din enhet.
- Enhetshantering - I den här delen kan du hitta alla typer av grafer och mätare som visar aktuella uppmätta värden från NETIO 4Aall -enheten
Steg 4: Importera flöde (projekt, skript, etc.)
I menyn (högra övre hörnet) väljer du Importera och sedan Urklipp.
Kopiera sedan texten nedan till det angivna fältet och klicka på Importera.
Installera saknade noder
Noderna laddas in i det valda flödet. Det är möjligt att ett felmeddelande visas med en lista över noder som importeras men inte är installerade i Node-RED än. I det här fallet måste de saknade noder installeras.
Om det saknas noder, välj Hantera palett i menyn, klicka på Installera och hitta och installera de noder du saknar.
Importera text:
[{"id": "56b9510c.98c6f", "type": "tab", "label": "NETIO AN30 (REST JSON)", "disabled": false, "info": ""}, {"id ":" 6a66b637.da1558 "," type ":" http request "," z ":" 56b9510c.98c6f "," name ":" HTTP Request (POST) "," method ":" POST "," ret ": "txt", "url": "https://netio-4All.netio-products.com:8080/netio.json", "tls": "", "x": 430, "y": 100, "wires":
Steg 5: Hur allt fungerar tillsammans
Flödet är i princip uppdelat i två delar: POST och GET.
POST: Skriver till O1
- Fem knappar som skapats i instrumentpanelen i flödet visas i instrumentpanelen.
- Efter att ha klickat på knappen Output 1 = ON i instrumentpanelen ställs nyttolasten in på filen netio.json som specificerar utdata och åtgärd (definierad för var och en av knapparna).
- HTTP -förfrågningsblocket (POST) skickar filen netio.json som en begäran till en IP -adress.
- Serverns svar (status) returneras som utdata.
- Msg.payload -blocket visar resultatet från HTTP -begäran (POST).
FÅ: Läser från O1 - O4
- Blocket 1 sekund upprepa aktiverar, med en period av en sekund, HTTP -förfrågan (GET) -blocket, som i sin tur skickar netio.json som en GET -begäran och returnerar en komplett JSON -fil med sockelstatus som mottagen från servern.
- JSON Parse -blocket omvandlar JSON -filen från HTTP Request (GET) -blocket till ett JSON -objekt så att det är möjligt att manipulera egenskaperna i JSON -filen.
- Funktionsblocket tar enskilda delar av JSON -objektet och omvandlar dem till egenskaper för ett msg -objekt för senare användning.
- Aktuellt diagramblock anger msg.payload till msg. TotalCurrent -egenskapen för msg -objektet, eftersom det efterföljande blocket Current Chart (Device) endast kan visa msg.payload -värdet.
- Olika utgångsnoder följer sedan för att visa utvalda egenskaper för msg -objektet, taget från JSON -objektet, i instrumentpanelen.
Msg -objektet och msg.payload
För en enkel och kortfattad förklaring, se här:
www.steves-internet-guide.com/node-red-mess…
Steg 6: HTTP POST och GET
HTTP -begäran (POST)
Denna nod skickar en netio.json -kommandofil som en HTTP -begäran (POST) för att styra NETIO 4All -enheten.
HTTP -begäran (GET)
Denna nod skickar en HTTP -begäran (GET) och returnerar statussvaret.
Den förfyllda adressen pekar på NETIO 4All online-demo, där du kan testa anslutningen utan att ha en NETIO-enhet vid ditt skrivbord.
netio-4all.netio-products.com
Det är möjligt att ange din egen IP -adress i dessa noder; IP -adressen måste dock ändras i både HTTP -begäranoderna, POST och GET.
Steg 7: Knappnoder
Genom att klicka på knappnoden genereras ett meddelande som innehåller en netio.json -fil (höger bild) som sedan skickas via http -postnoden till netio smart eluttag.
Steg 8: Funktionsnod
En funktionsnod är en speciell nod som gör det möjligt att skriva en anpassad JavaScript -funktion.
I denna instruerbara funktion väljer funktionen värden från den analyserade JSON -filen (nu ett JSON -objekt) och tilldelar dem till msg -objektets egenskaper.
Koden är uppdelad i fyra avsnitt:
- Tilldela värden från JSON -objektet till de enskilda egenskaperna för msg -objektet
-
Felhantering om nätuttaget inte stöder globala mätningar
Om nätverksuttaget inte stöder mätning av globala värden, visar Node-RED fel eftersom den här funktionen inte hittar respektive egenskap, t.ex. msg.payload. GlobalMeasure. Voltage, eftersom det inte skulle finnas i JSON -objektet. I detta fall är egenskapen för msg -objektet, t.ex. msg. Voltage, är inställt på 0 och felet fångas upp och hanteras.
- Tilldela värden för utdatatillstånd
- Ställa in färgerna på de visade utgångstillståndsvärdena enligt utgångslägena
Steg 9: JSON -nod och injicera nod
JSON -nod
JSON -nod analyserar JSON -filen och omvandlar den till ett JSON -objekt.
Som ett svar från servern på GET -begäran returnerar HTTP -förfrågningsnoden en JSON -fil som innehåller den aktuella statusen för NETIO 4x -enheten, men är bara en textfil, så för att kunna arbeta med data behöver JSON -filen att analyseras i ett JSON -objekt.
Injicera nod
Varje sekund aktiverar denna nod HTTP -förfrågningsnoden som skickar en GET -begäran.
Som ett resultat uppdateras värdena i instrumentpanelen med en period på en sekund
Steg 10: Textnod och felsökningsnod
Textnod
Visar ett textfält i instrumentpanelen. I denna instruktion visar textnoderna ström, spänning, modell, firmwareversion eller JSON -version.
Etiketten visas i instrumentpanelen och namnet är nodnamnet som visas i flödet i Noden-RÖD.
Felsök noden
Visar msg.payload.
Steg 11: Diagramnod
Denna nod plottar det aktuella diagrammet i instrumentpanelen enligt nyttolastvärdet.
Denna nod kan bara plotta diagram enligt nyttolastvärdet.
Av denna anledning används en funktionsnod för att ställa in msg.payload till det värde som måste visas.
msg.payload = msg. TotalCurrent;
Steg 12: Mätnod och länknoder
Mätnod
Denna nod lägger till en mätarwidget till instrumentpanelen.
I denna instruerbara visualiserar varje mätare en egenskap hos msg -objektet: spänning [V], ström [A], frekvens [Hz] och den övergripande sanna effektfaktorn (TPF).
Länk noder
Länka in och länka ut noder fungerar som en tunnel. Msg. Payload kommer in i länken i noden och går ut från länken ut -noden.
Jag använde det för att göra flödet lite tydligare och lättare att läsa.
Steg 13: Tack för att du läser Min instruerbara
Jag hoppas att du tyckte om min instruerbara och hoppas verkligen att du lärde dig något nytt.
Denna instruerbara är bara en förkortad version av olika guider jag gjorde
Den ursprungliga guiden är längre och mycket mer detaljerad och i allmänhet bättre strukturerad. Om du inte förstod något eller tror att jag missat eller inte förklarat tillräckligt med något, så kan du definitivt hitta det där.
Jag lovar att du inte blir besviken
Original:
Det finns också liknande guider om olika användningsområden för nod-RED, så om du är intresserad kan du utforska:
Arbetar med REST URL API i nod-RED
www.netio-products.com/en/application-notes/an29-node-red-example-of-url-api-communication-with-netio-4x
Arbetar med REST XML i nod-RED
www.netio-products.com/en/application-notes/an31-node-red-example-of-rest-xml-communication-with-netio-4x
Arbetar med TCP/Modbus i nod-RÖD
Kommer snart:)
Rekommenderad:
UK Ring Video Doorbell Pro som arbetar med mekanisk klocka: 6 steg (med bilder)
Storbritannien Ring Video Doorbell Pro som arbetar med mekanisk klocka: **************************************** **************** Observera att denna metod bara fungerar med växelström just nu. Jag uppdaterar om/när jag hittar en lösning för dörrklockor som använder likström Under tiden, om du har en likström leverans, du behöver inte
Arbetar med överstorlek 9 volt batteri tillverkat av gamla blysyraceller: 11 steg (med bilder)
Arbeta överstor 9 -voltsbatteri tillverkat av gamla blysyraceller: hände det dig någonsin, att du mumsade lite snacks och plötsligt insåg att du förbrukade dem, mycket mer än vad din dagliga kostkvot tillåter eller att du gick på lite shopping och eftersom av en viss beräkning har du överfylld några produkter
DragonBoard 410c - Hur man arbetar med låghastighetsutvidgningen: 8 steg
DragonBoard 410c - Hur fungerar låghastighetsutvidgningen: Denna handledning handlar om låghastighetsutvidgningen på DragonBoard 410c. Ingångar och utgångar (I/O) för låghastighetsutvidgning på DragonBoard 410c är: GPIO (inmatning/utgång för allmänt ändamål); MPP (Multi Purpose Pin); SPI (seriellt perifert gränssnitt); I2C (i
Hur man arbetar med Arduino och olika RGB -lysdioder: 3 steg
Hur man arbetar med Arduino och olika RGB -lysdioder: Arduino är en fantastisk liten enhet. Men en av de mest använda applikationerna för den här kraftfulla lilla enheten är ofta att blinka eller blinka en lysdiod. Denna handledning visar dig tre sätt att arbeta med RGB Leds och Arduino.1. Det första sättet är att använda en enkel
Smart bil som arbetar med fingrarnas rörelse: 7 steg (med bilder)
Smart bil som arbetar med fingerrörelsen: Det är mitt projekt smart bil, den fungerar inte med mobil eller vanlig fjärrkontroll. Den fungerar med en handske så fjärrkontrollen rör mig i mitt finger