INHOUDSOPGAWE:

Hoe om te werk met JSON in Node-RED: 13 stappe
Hoe om te werk met JSON in Node-RED: 13 stappe

Video: Hoe om te werk met JSON in Node-RED: 13 stappe

Video: Hoe om te werk met JSON in Node-RED: 13 stappe
Video: Полный курс Redux Toolkit + RTK Query для начинающих | Редакс за 2 часа! 2024, Julie
Anonim
Hoe om te werk met JSON in Node-RED
Hoe om te werk met JSON in Node-RED

Hierdie instruksies sal u leer hoe om met JSON in node-RED te werk. Ek sal u wys hoe u netwerkkontakte in die netwerk kan beheer met die oordrag van json -lêers via http get and post. En u kan hierdie kennis later gebruik om enige toestel wat JSON -protokol ondersteun, te beheer.

Vir onderrig gebruik ek NETIO 4Alle netaansluiting, maar moenie bekommerd wees nie, jy hoef niks te koop nie. NETIO het 'n ongelooflike 4 -aanlyn -demo wat u kan gebruik.

Voorrade

NETIO 4Alle Powered Sockets of 4All aanlyn demo:

Node-ROOI

Stap 1: REST JSON Http (s) -protokol

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

Hierdie gedeelte is 'n bietjie tegnies, maar hou my asb. As ek hierdie deel nie verduidelik nie, sou u probleme ondervind met die verstaan van die waardes in json-lêers wat ons in node-RED sal stuur.

Handelinge van toepassing op elke uitset (elektriese aansluiting):

In alle M2M -protokolle gebruik NETIO -stopcontacte dieselfde aksies wat op individuele uitsette toegepas kan word. Byvoorbeeld, 'n Wissel- of Afkort -aksie kan op enige uitset geskryf word.

Die Aksie -veranderlike kan egter slegs gebruik word om waardes te skryf; dit kan nie gebruik word om die huidige uitlaattoestand te lees nie.

Dit is aksies wat u op elke uitset kan toepas:

0 = Uitgang afgeskakel (af)

1 = Uitgang aangeskakel (aan)

2 = Uitset vir 'n kort tydjie afgeskakel (kort af)

3 = Uitset vir 'n kort tyd aangeskakel (kort aan)

4 = Uitset van een toestand na die ander oorgeskakel (wissel)

5 = Uitgangstoestand onveranderd (geen verandering)

6 = Ignoreer

Voorbeeld - JSON -lêer om die uitsetnr. 1:

{

"Uitsette": [{

"ID": 1, "Aksie": 4

}]

}

ID - hierdie nommer dui aan watter uitset ons gaan gebruik

Aksie - hierdie deel is die aksie wat die uitset sal uitvoer (bv. 1 (Skakel uitset aan))

Stap 2: vloei

Vloei
Vloei

En nou die belangrikste deel. So lyk die node-ROOI-omgewing.

Ons het URL API -vloei ingevoer (die projek wat u sien. Later sal ek u wys hoe om strome en hierdie projek in te voer) Hierdie projek bestaan uit twee dele:

  1. NETIO AN30 (JSON REST API) vloei
  2. Dashboard (grafiese koppelvlak waarmee u u program kan bestuur)

Stap 3: Dashboard

Kontroleskerm
Kontroleskerm

So lyk die paneelbord in node-ROOI vir hierdie instruksies. U kan dit aanpas as u wil.

Die paneelbord vir hierdie projek is verdeel in 4 dele:

  1. Toestelstatus - toon toestelinligting, soos model, mac -adres of firmware -weergawe.
  2. (POST) Beheeruitgang 1 - Bevat 5 knoppies wat uitvoer 1 beheer. Elke knoppie voer verskillende aksies uit
  3. (GET) O1 - O4 Uitgangstoestande - Hierdie deel toon die huidige toestand van elke uitset van u toestel.
  4. Toestelbestuur - In hierdie deel vind u allerhande grafieke en meters wat die huidige meetwaardes van NETIO 4Aall -toestelle vertoon

Stap 4: Invoervloei (projek, script, ens.)

Invoerstroom (projek, script, ens.)
Invoerstroom (projek, script, ens.)

Kies Invoer en dan Klembord in die spyskaart (regter boonste hoek).

Kopieer dan die onderstaande teks na die aangeduide veld en klik op Invoer.

Installeer ontbrekende nodusse

Die nodusse word in die geselekteerde vloei gelaai. Dit is moontlik dat 'n foutboodskap vertoon word met 'n lys nodusse wat ingevoer word, maar nog nie in Node-RED geïnstalleer is nie. In hierdie geval moet die ontbrekende nodusse geïnstalleer word.

As daar nodusse ontbreek, kies die palet Beheer in die menu, klik op Installeer en vind en installeer die nodusse wat u ontbreek.

Voer teks in:

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

Stap 5: Hoe dit alles saamwerk

Hoe dit alles saamwerk
Hoe dit alles saamwerk

Die vloei is basies in twee dele verdeel: POST en GET.

POS: Skryf na O1

  • Vyf knoppies wat in die Dashboard in die stroom geskep is, word in die Dashboard vertoon.
  • Nadat u op die knoppie Uitvoer 1 = AAN in die dashboard geklik het, word die laaivrag ingestel op die netio.json -lêer wat die uitset en die aksie spesifiseer (gedefinieer vir elk van die knoppies).
  • Die HTTP -versoek (POST) -blok stuur die netio.json -lêer as 'n versoek na 'n IP -adres.
  • Die bedienerreaksie (status) word as die uitset teruggestuur.
  • Die Msg.payload -blok vertoon die resultaat van HTTP -versoek (POST).

KRY: Lees van O1 - O4

  • Die 1 Second Repeat -blok aktiveer, met 'n tydperk van een sekonde, die HTTP Request (GET) -blok, wat op sy beurt netio.json as 'n GET -versoek stuur en 'n volledige JSON -lêer met die socket -status terugstuur soos dit van die bediener ontvang is.
  • Die JSON Parse -blok transformeer die JSON -lêer van die HTTP Request (GET) -blok na 'n JSON -voorwerp sodat dit moontlik is om die eienskappe in die JSON -lêer te manipuleer.
  • Die funksieblok neem individuele dele van die JSON -voorwerp en omskep dit in eienskappe van 'n msg -voorwerp vir latere gebruik.
  • Die Current Chart -blok stel msg.payload in op die msg. TotalCurrent -eienskap van die msg -object, omdat die daaropvolgende Current Chart (Device) -blok slegs die msg.payload -waarde kan vertoon.
  • Verskeie uitvoerknope volg dan om geselekteerde eienskappe van die msg -voorwerp, soos dit uit die JSON -voorwerp geneem is, in die dashboard te vertoon.

Die msg -voorwerp en msg.payload

Vir 'n eenvoudige en bondige verduideliking, sien hier:

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

Stap 6: HTTP POST en kry

HTTP POST en kry
HTTP POST en kry
HTTP POST en kry
HTTP POST en kry

HTTP -versoek (POST)

Hierdie knoop stuur 'n netio.json -opdraglêer as 'n HTTP -versoek (POST) om die NETIO 4All -toestel te beheer.

HTTP -versoek (GET)

Hierdie knoop stuur 'n HTTP -versoek (GET) en gee die statusreaksie terug.

Die vooraf gevulde adres wys op die NETIO 4All aanlyn demonstrasie, waar u die verbinding kan toets sonder om 'n NETIO-toestel by u lessenaar te hê.

netio-4all.netio-products.com

Dit is moontlik om u eie IP -adres in hierdie nodusse in te stel; die IP moet egter verander word in beide die HTTP -versoekknope, POST sowel as GET.

Stap 7: Knoppieknope

Knoppie knope
Knoppie knope
Knoppie knope
Knoppie knope

As u op die knoppieknoppie klik, word 'n boodskap gegenereer wat 'n netio.json -lêer bevat (prentjie regs) wat dan via http -posknooppunt na die netio smart power socket gestuur word.

Stap 8: Funksieknoop

Funksie Node
Funksie Node
Funksie Node
Funksie Node

'N Funksieknoop is 'n spesiale knoop waarmee u 'n pasgemaakte JavaScript -funksie kan skryf.

In hierdie instruksies kies die funksie waardes uit die ontleede JSON -lêer (nou 'n JSON -voorwerp) en ken dit toe aan die eienskappe van die msg -voorwerp.

Die kode is verdeel in vier afdelings:

  1. Toewysing van waardes van die JSON -voorwerp aan die individuele eienskappe van die msg -voorwerp
  2. Fouthantering as die netaansluiting nie wêreldwye metings ondersteun nie

    As die netaansluiting nie die meting van globale waardes ondersteun nie, sal Node-RED foute vertoon omdat hierdie funksie nie die onderskeie eiendom sal vind nie, bv. msg.payload. GlobalMeasure. Voltage, aangesien dit nie in die JSON -voorwerp sou voorkom nie. In hierdie geval is die eienskap van die msg -voorwerp, bv. msg. Voltage, is ingestel op 0 en die fout word ondervind.

  3. Toewysing van uitsetstaatwaardes
  4. Stel die kleure van die vertoonde uitgangstoestandwaardes in volgens die uitsetstoestande

Stap 9: JSON -knoop en spuitknoop

JSON Node en Inject Node
JSON Node en Inject Node
JSON Node en Inject Node
JSON Node en Inject Node

JSON -knoop

JSON -knoop ontleed die JSON -lêer en omskep dit in 'n JSON -voorwerp.

As antwoord van die bediener op die GET -versoek, stuur die HTTP -versoekknooppunt 'n JSON -lêer met die huidige status van die NETIO 4x -toestel, maar dit is bloot 'n tekslêer, sodat die JSON -lêer nodig is om met die data te werk om in 'n JSON -voorwerp ontleed te word.

Spuit node

Elke sekonde aktiveer hierdie knoop die HTTP -versoekknooppunt wat 'n GET -versoek stuur.

As gevolg hiervan word die waardes in die dashboard opgedateer met 'n tydperk van een sekonde

Stap 10: Teksnode en ontfoutingsknoop

Teks Node en Debug Node
Teks Node en Debug Node
Teks Node en Debug Node
Teks Node en Debug Node

Teksnode

Wys 'n teksveld in die paneelbord. In hierdie instruksies vertoon die teksknope die stroom, spanning, model, firmware -weergawe of JSON -weergawe.

Die etiket word in die dashboard vertoon, en die naam is die naam van die node wat in die stroom in die Node-ROOI vertoon word.

Ontfout node

Toon die msg.payload.

Stap 11: Grafieknode

Grafieknode
Grafieknode
Grafieknode
Grafieknode

Hierdie knoop teken die huidige grafiek in die dashboard aan volgens die waarde van die vrag.

Hierdie knoop kan slegs kaarte plotte volgens die waarde van die vrag.

Om hierdie rede word 'n funksie -node gebruik om msg.payload in te stel op die waarde wat vertoon moet word.

msg.payload = msg. TotalCurrent;

Stap 12: Meetknooppunt en skakelknope

Meterknoop en skakelknope
Meterknoop en skakelknope
Meterknoop en skakelknope
Meterknoop en skakelknope

Meterknoop

Hierdie knoop voeg 'n meter -widget by die dashboard.

In hierdie instruksies visualiseer elke meter een eienskap van die msg -voorwerp: spanning [V], stroom [A], frekwensie [Hz] en die algehele True Power Factor (TPF).

Koppelknope

Koppel in- en skakelknope werk soos 'n tonnel. Die msg.payload kom in die skakel in die knoop en gaan uit die skakel uit.

Ek het dit gebruik om die vloei 'n bietjie duideliker en makliker te lees.

Stap 13: Dankie dat u my instruksies gelees het

Ek hoop jy het my opdrag geniet en hopelik iets nuuts geleer.

Hierdie instruksies is slegs 'n verkorte weergawe van die verskillende gids wat ek gemaak het

Die oorspronklike gids is langer en baie meer detailgeoriënteerd en oor die algemeen beter gestruktureerd. As u iets nie verstaan nie of dink ek het iets gemis of nie genoeg verduidelik nie, dan kan u dit beslis daar vind.

Ek belowe dat u nie teleurgesteld sal wees nie

Oorspronklik:

Daar is ook soortgelyke gidse oor die verskillende gebruike van node-ROOI, so as u belangstel, kan u dit verken:

Werk met REST URL API in node-RED

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

Werk met REST XML in node-RED

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

Werk met TCP/Modbus in node-RED

Kom binnekort:)

Aanbeveel: