Turinys:

Kaip dirbti su JSON „Node-RED“: 13 žingsnių
Kaip dirbti su JSON „Node-RED“: 13 žingsnių
Anonim
Kaip dirbti su JSON „Node-RED“
Kaip dirbti su JSON „Node-RED“

Ši instrukcija išmokys jus dirbti su JSON mazge-RED. Aš jums parodysiu, kaip valdyti tinklo maitinimo lizdus perkeliant json failus per http get and post. Ir vėliau šias žinias galite naudoti norėdami valdyti bet kurį įrenginį, palaikantį JSON protokolą.

Mokymo tikslais naudosiu NETIO 4All tinklo maitinimo lizdą, bet nesijaudinkite, jums nieko nereikia pirkti. „NETIO“turi nuostabią „4All“demonstraciją internete, kurią galite naudoti.

Prekės

„NETIO 4All“tinklo maitinimo lizdas arba „4All“demonstracija internete:

Mazgas-RAUDONAS

1 veiksmas: REST JSON Http (s) Protocol

REST JSON Http (s) Protocol
REST JSON Http (s) Protocol

Ši dalis yra šiek tiek techninė, bet prašau palaikyti mane. Jei nepaaiškinčiau šios dalies, jums kiltų problemų suprasti „json“failų, kuriuos mes siunčiame mazgu-RED, reikšmes.

Veiksmai, taikomi kiekvienam išėjimui (elektros lizdas):

Visuose M2M protokoluose NETIO maitinimo lizdai naudoja tuos pačius veiksmus, kuriuos galima taikyti atskiriems išėjimams. Pavyzdžiui, veiksmas „Perjungti“arba „Trumpas išjungimas“gali būti įrašytas į bet kurią išvestį.

Tačiau kintamąjį „Action“galima naudoti tik vertėms rašyti, jis negali būti naudojamas dabartinei išėjimo būsenai skaityti.

Tai yra veiksmai, kuriuos galite taikyti kiekvienam išėjimui:

0 = išėjimas išjungtas (išjungtas)

1 = išėjimas įjungtas (įjungtas)

2 = išėjimas išjungtas trumpam laikui (trumpas išjungimas)

3 = išėjimas trumpam įjungtas (trumpas įjungtas)

4 = išėjimas perjungtas iš vienos būsenos į kitą (perjungti)

5 = išvesties būsena nepakitusi (nesikeičia)

6 = nepaisoma

Pavyzdys - JSON failas perjungti išvestį Nr. 1:

{

"Išėjimai": [{

„ID“: 1, „Veiksmas“: 4

}]

}

ID - šis skaičius nurodo, kurią išvestį naudosime

Veiksmas - ši dalis yra veiksmas, kurį atliks išvestis (pvz., 1 (įjungti išvestį))

2 žingsnis: srautas

Srautas
Srautas

O dabar pagrindinė dalis. Taip atrodo mazgų raudona aplinka.

Importavome URL API srautą (matomas projektas. Vėliau parodysiu, kaip importuoti srautus ir šį projektą) Šis projektas susideda iš dviejų dalių:

  1. NETIO AN30 (JSON REST API) srautas
  2. Prietaisų skydelis (grafinė sąsaja, kuria galite valdyti savo programą)

3 žingsnis: prietaisų skydelis

Prietaisų skydelis
Prietaisų skydelis

Taip atrodo šios instrukcijos prietaisų skydelis raudoname mazge. Galite pritaikyti, jei norite, kad atitiktų jūsų skonį.

Šio projekto prietaisų skydelis yra padalintas į 4 dalis:

  1. Įrenginio būsena - rodo įrenginio informaciją, pvz., Modelį, „Mac“adresą arba programinės įrangos versiją.
  2. (POST) 1 valdymo išvestis - yra 5 mygtukai, valdantys 1 išvestį. Kiekvienas mygtukas atlieka skirtingus veiksmus
  3. (GET) O1 - O4 išvesties būsenos - šioje dalyje rodoma dabartinė kiekvieno jūsų įrenginio išvesties būsena.
  4. Įrenginio valdymas - šioje dalyje galite rasti visų rūšių diagramų ir matuoklių, kuriuose rodomos dabartinės NETIO 4Visos įrenginio išmatuotos vertės

4 veiksmas: importo srautas (projektas, scenarijus ir kt.)

Importavimo srautas (projektas, scenarijus ir kt.)
Importavimo srautas (projektas, scenarijus ir kt.)

Meniu (dešiniajame viršutiniame kampe) pasirinkite Importuoti, tada - mainų sritį.

Tada nukopijuokite žemiau esantį tekstą į nurodytą lauką ir spustelėkite Importuoti.

Trūkstamų mazgų diegimas

Mazgai įkeliami į pasirinktą srautą. Gali būti, kad rodomas klaidos pranešimas su importuojamų, bet dar neįdiegtų „Node-RED“mazgų sąrašu. Tokiu atveju reikia įdiegti trūkstamus mazgus.

Jei trūksta mazgų, meniu pasirinkite Tvarkyti paletę, spustelėkite Įdiegti ir suraskite bei įdiekite trūkstamus mazgus.

Importuoti 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 Request (POST) "," method ":" POST "," ret ": "txt", "url": "https://netio-4All.netio-products.com:8080/netio.json", "tls": "", "x": 430, "y": 100, "laidai":

5 žingsnis: kaip viskas veikia kartu

Kaip viskas veikia kartu
Kaip viskas veikia kartu

Srautas iš esmės yra padalintas į dvi dalis: POST ir GET.

POST: Rašymas į O1

  • Prietaisų skydelyje rodomi penki mygtukai, sukurti srauto informacijos suvestinėje.
  • Prietaisų skydelyje spustelėjus mygtuką Output 1 = ON, naudingoji apkrova nustatoma į failą netio.json, nurodantį išvestį ir veiksmą (apibrėžtą kiekvienam mygtukui).
  • HTTP užklausos (POST) blokas siunčia failą netio.json kaip užklausą į IP adresą.
  • Serverio atsakymas (būsena) grąžinamas kaip išvestis.
  • Msg.payload blokas rodo HTTP užklausos (POST) rezultatą.

GET: Skaitymas iš O1 - O4

  • 1 sekundės pakartojimo blokas suaktyvina vienos sekundės laikotarpį HTTP užklausos (GET) bloką, kuris savo ruožtu siunčia netio.json kaip GET užklausą ir grąžina visą JSON failą su lizdo būsena, gauta iš serverio.
  • „JSON Parse“blokas paverčia JSON failą iš HTTP užklausos (GET) bloko į JSON objektą, kad būtų galima manipuliuoti JSON failo ypatybėmis.
  • Funkcijų blokas paima atskiras JSON objekto dalis ir paverčia jas žinutės objekto savybėmis, kad vėliau jas būtų galima naudoti.
  • Blokas Dabartinė diagrama nustato „msg.payload“į „msg“objekto ypatybę „msg. TotalCurrent“, nes vėlesnis dabartinės diagramos (įrenginio) blokas gali rodyti tik „msg.payload“vertę.
  • Tada pateikiami įvairūs išvesties mazgai, kad prietaisų skydelyje būtų rodomos pasirinktos „msg“objekto savybės, paimtos iš JSON objekto.

„Msg“objektas ir „msg.payload“

Paprastą ir glaustą paaiškinimą rasite čia:

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

6 veiksmas: HTTP POST ir GET

HTTP POST ir GET
HTTP POST ir GET
HTTP POST ir GET
HTTP POST ir GET

HTTP užklausa (POST)

Šis mazgas siunčia komandų failą netio.json kaip HTTP užklausą (POST), kad galėtų valdyti „NETIO 4All“įrenginį.

HTTP užklausa (GET)

Šis mazgas siunčia HTTP užklausą (GET) ir grąžina būsenos atsakymą.

Iš anksto užpildytas adresas nurodo NETIO 4All internetinę demonstraciją, kurioje galite išbandyti ryšį, neturėdami prie stalo NETIO įrenginio.

netio-4all.netio-products.com

Šiuose mazguose galima nustatyti savo IP adresą; tačiau IP reikia pakeisti tiek HTTP užklausos mazguose, tiek POST, tiek GET.

7 žingsnis: mygtukų mazgai

Mygtuko mazgai
Mygtuko mazgai
Mygtuko mazgai
Mygtuko mazgai

Spustelėjus mygtuko mazgą, sugeneruojamas pranešimas, kuriame yra failas netio.json (paveikslėlis dešinėje), kuris po to siunčiamas per http pašto mazgą į „netio smart power“lizdą.

8 žingsnis: Funkcijos mazgas

Funkcijos mazgas
Funkcijos mazgas
Funkcijos mazgas
Funkcijos mazgas

Funkcijų mazgas yra specialus mazgas, leidžiantis rašyti pasirinktinę „JavaScript“funkciją.

Šioje instrukcijoje funkcija parenka reikšmes iš išanalizuoto JSON failo (dabar JSON objekto) ir priskiria jas msg objekto savybėms.

Kodas yra padalintas į keturias dalis:

  1. Vertių priskyrimas iš JSON objekto atskiroms msg objekto savybėms
  2. Klaidų tvarkymas, jei tinklo maitinimo lizdas nepalaiko visuotinių matavimų

    Jei tinklo maitinimo lizdas nepalaiko visuotinių verčių matavimo, „Node-RED“rodytų klaidas, nes ši funkcija nerastų atitinkamos savybės, pvz. msg.payload. GlobalMeasure. Voltage, nes jo nebūtų JSON objekte. Tokiu atveju msg objekto savybė, pvz. msg. Įtampa, nustatyta į 0 ir klaida užfiksuota tvarkoma.

  3. Išvesties būsenos verčių priskyrimas
  4. Rodomų išvesties būsenos verčių spalvų nustatymas pagal išvesties būsenas

9 veiksmas: JSON mazgas ir įpurškimo mazgas

JSON mazgas ir įpurškimo mazgas
JSON mazgas ir įpurškimo mazgas
JSON mazgas ir įpurškimo mazgas
JSON mazgas ir įpurškimo mazgas

JSON mazgas

JSON mazgas analizuoja JSON failą ir paverčia jį JSON objektu.

Kaip atsakas iš serverio į GET užklausą, HTTP užklausos mazgas grąžina JSON failą, kuriame yra dabartinė NETIO 4x įrenginio būsena, tačiau yra tiesiog tekstinis failas, todėl norint dirbti su duomenimis, reikia JSON failo būti išanalizuotas į JSON objektą.

Injekcijos mazgas

Kas sekundę šis mazgas suaktyvina HTTP užklausos mazgą, kuris siunčia GET užklausą.

Dėl to prietaisų skydelyje esančios vertės atnaujinamos vieną sekundę

10 veiksmas: teksto mazgas ir derinimo mazgas

Teksto mazgas ir derinimo mazgas
Teksto mazgas ir derinimo mazgas
Teksto mazgas ir derinimo mazgas
Teksto mazgas ir derinimo mazgas

Teksto mazgas

Prietaisų skydelyje rodomas teksto laukas. Šioje instrukcijoje teksto mazgai rodo dabartinę, įtampą, modelį, programinės įrangos versiją arba JSON versiją.

Etiketė rodoma prietaisų skydelyje, o pavadinimas yra mazgo pavadinimas, rodomas sraute mazge-RED.

Derinimo mazgas

Rodo pranešimą „msg.payload“.

11 veiksmas: diagramos mazgas

Diagramos mazgas
Diagramos mazgas
Diagramos mazgas
Diagramos mazgas

Šis mazgas brėžia dabartinę diagramą prietaisų skydelyje pagal naudingosios apkrovos vertę.

Šis mazgas gali braižyti diagramas tik pagal naudingosios apkrovos vertę.

Dėl šios priežasties funkcijų mazgas naudojamas nustatyti msg.payload vertę, kurią reikia rodyti.

msg.payload = msg. TotalCurrent;

12 veiksmas: matuoklio mazgas ir nuorodos mazgai

Matavimo mazgas ir nuorodų mazgai
Matavimo mazgas ir nuorodų mazgai
Matavimo mazgas ir nuorodų mazgai
Matavimo mazgas ir nuorodų mazgai

Matavimo mazgas

Šis mazgas prideda matuoklio valdiklį prie prietaisų skydelio.

Šioje instrukcijoje kiekvienas matuoklis vizualizuoja vieną žinutės objekto savybę: įtampą [V], terapiją [A], dažnį [Hz] ir bendrą tikrosios galios koeficientą (TPF).

Susieti mazgus

Susieti ir atsieti mazgus veikia kaip tunelis. „Msg.payload“patenka į mazgo nuorodą ir išeina iš susiejimo mazgo.

Aš jį naudoju, kad srautas būtų šiek tiek aiškesnis ir lengviau skaitomas.

13 žingsnis: Dėkojame, kad perskaitėte mano instrukciją

Tikiuosi, kad jums patiko mano pamokoma pamoka ir viltingai sužinojau kažką naujo.

Ši pamoka yra tik sutrumpinta mano sukurto vadovo versija

Originalus vadovas yra ilgesnis, kur kas labiau orientuotas į detales ir paprastai yra geriau struktūruotas. Jei kažko nesupratote arba manote, kad kažką praleidau ar nepakankamai paaiškinau, tai tikrai rasite ten.

Pažadu, kad nenusivilsite

Originalus:

Taip pat yra panašių vadovų apie įvairius „Node-RED“naudojimo būdus, taigi, jei jus domina, nedvejodami ištirkite:

Darbas su REST URL API mazge-RED

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

Darbas su REST XML mazge-RED

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

Darbas su TCP/Modbus mazge-RED

Jau greitai:)

Rekomenduojamas: