Obsah:

Ako pracovať s JSON v Node-RED: 13 krokov
Ako pracovať s JSON v Node-RED: 13 krokov

Video: Ako pracovať s JSON v Node-RED: 13 krokov

Video: Ako pracovať s JSON v Node-RED: 13 krokov
Video: Полный курс Redux Toolkit + RTK Query для начинающих | Редакс за 2 часа! 2024, November
Anonim
Ako pracovať s JSON v Node-RED
Ako pracovať s JSON v Node-RED

Tento návod vás naučí pracovať s JSON v node-RED. Ukážem vám, ako ovládať sieťové zásuvky pomocou prenosu súborov json prostredníctvom http get a post. A tieto znalosti môžete neskôr použiť na ovládanie akéhokoľvek zariadenia podporujúceho protokol JSON.

Na účely výučby budem používať sieťovú zásuvku NETIO 4All, ale nebojte sa, nemusíte nič kupovať. NETIO má úžasné online demo 4All, ktoré môžete použiť.

Zásoby

NETIO 4All sieťová zásuvka alebo 4All online demo:

Uzol-ČERVENÝ

Krok 1: Protokol REST JSON Http (s)

Protokol REST JSON Http
Protokol REST JSON Http

Táto časť je trochu technická, ale prosím, vydržte so mnou. Ak by som túto časť nevysvetlil, potom by ste mali problémy s porozumením hodnôt v súboroch json, ktoré budeme odosielať v uzle RED.

Akcie platné pre každý výstup (elektrická zásuvka):

Vo všetkých protokoloch M2M používajú zásuvky NETIO rovnaké akcie, aké je možné použiť na jednotlivé výstupy. Do akéhokoľvek výstupu je možné zapísať napríklad akciu Prepnúť alebo Skrátiť.

Premennú Action je však možné použiť iba na zápis hodnôt, nemožno ju použiť na čítanie aktuálneho stavu výstupu.

Toto sú akcie, ktoré môžete použiť na každý výstup:

0 = výstup vypnutý (vypnutý)

1 = výstup zapnutý (zapnutý)

2 = Výstup je krátkodobo vypnutý (krátko vypnutý)

3 = Výstup je zapnutý na krátku dobu (krátky zapnutý)

4 = Výstup prepnutý z jedného stavu do druhého (prepínač)

5 = stav výstupu nezmenený (žiadna zmena)

6 = Ignorované

Príklad - súbor JSON na prepnutie výstupu č. 1:

{

"Výstupy": [{

"ID": 1, „Akcia“: 4

}]

}

ID - toto číslo udáva, ktorý výstup budeme používať

Akcia - táto časť je akcia, ktorú výstup vykoná (napr. 1 (Zapnúť výstup))

Krok 2: Tok

Prietok
Prietok

A teraz hlavná časť. Takto vyzerá prostredie uzol-ČERVENÉ.

Importovali sme tok rozhrania API URL (projekt, ktorý vidíte. Neskôr vám ukážem, ako importovať toky a tento projekt) Tento projekt pozostáva z dvoch častí:

  1. Tok NETIO AN30 (JSON REST API)
  2. Hlavný panel (grafické rozhranie, pomocou ktorého môžete ovládať svoj program)

Krok 3: Hlavný panel

Prístrojová doska
Prístrojová doska

Takto vyzerá informačný panel v uzle-ČERVENOM pre tento pokyn. Môžete si ho prispôsobiť, ak chcete, aby vyhovoval vášmu vkusu.

Palubná doska tohto projektu je rozdelená na 4 časti:

  1. Stav zariadenia - zobrazuje informácie o zariadení, ako je model, adresa mac alebo verzia firmvéru.
  2. (POST) Ovládací výstup 1 - obsahuje 5 tlačidiel, ktorými sa ovláda výstup 1. Každé tlačidlo vykonáva inú akciu
  3. (GET) O1 - O4 Výstupné stavy - Táto časť zobrazuje aktuálny stav každého výstupu z vášho zariadenia.
  4. Správa zariadenia - V tejto časti nájdete všetky druhy grafov a meradiel, ktoré zobrazujú aktuálne namerané hodnoty zo zariadenia NETIO 4Aall

Krok 4: Tok importu (projekt, skript, atď.)

Tok importu (projekt, skript, atď.)
Tok importu (projekt, skript, atď.)

V ponuke (pravý horný roh) vyberte Importovať a potom Schránku.

Potom skopírujte text nižšie do uvedeného poľa a kliknite na položku Importovať.

Inštalácia chýbajúcich uzlov

Uzly sa načítajú do vybraného toku. Je možné, že sa zobrazí chybové hlásenie so zoznamom uzlov, ktoré sa importujú, ale ešte nie sú nainštalované v Node-RED. V tomto prípade je potrebné nainštalovať chýbajúce uzly.

Ak chýbajú uzly, v ponuke vyberte Spravovať paletu, kliknite na Inštalovať a vyhľadajte a nainštalujte uzly, ktoré vám chýbajú.

Import textu:

[{"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, "drôty":

Krok 5: Ako to všetko funguje spoločne

Ako to všetko funguje spoločne
Ako to všetko funguje spoločne

Tok je v zásade rozdelený na dve časti: POST a GET.

POST: Písanie na O1

  • Na ovládacom paneli sa zobrazí päť tlačidiel vytvorených na Paneli v toku.
  • Po kliknutí na tlačidlo Výstup 1 = ZAPNUTÉ na hlavnom paneli sa užitočné zaťaženie nastaví na súbor netio.json, ktorý určuje výstup a akciu (definované pre každé z tlačidiel).
  • Blok POST (HTTP Request) odosiela súbor netio.json ako požiadavku na IP adresu.
  • Odpoveď servera (stav) sa vráti ako výstup.
  • Blok Msg.payload zobrazuje výsledok z HTTP Request (POST).

ZÍSKAJTE: Čítanie z O1 - O4

  • Blok 1 sekundového opakovania aktivuje na jednu sekundu blok požiadavky HTTP (GET), ktorý zase odošle netio.json ako požiadavku GET a vráti kompletný súbor JSON so stavom soketu prijatým zo servera.
  • Blok JSON Parse transformuje súbor JSON z bloku HTTP Request (GET) na objekt JSON, aby bolo možné manipulovať s vlastnosťami v súbore JSON.
  • Funkčný blok preberá jednotlivé časti objektu JSON a transformuje ich na vlastnosti objektu msg na neskoršie použitie.
  • Blok aktuálneho grafu nastavuje msg.payload na vlastnosť msg. TotalCurrent objektu msg, pretože nasledujúci blok aktuálneho grafu (zariadenie) môže zobrazovať iba hodnotu msg.payload.
  • Nasledujú rôzne výstupné uzly, aby sa na ovládacom paneli zobrazili vybrané vlastnosti objektu msg prevzaté z objektu JSON.

Objekt msg a msg.payload

Jednoduché a výstižné vysvetlenie nájdete tu:

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

Krok 6: HTTP POST a ZÍSKAJTE

HTTP POST a ZÍSKAJTE
HTTP POST a ZÍSKAJTE
HTTP POST a ZÍSKAJTE
HTTP POST a ZÍSKAJTE

HTTP požiadavka (POST)

Tento uzol odosiela príkazový súbor netio.json ako požiadavku HTTP (POST) na ovládanie zariadenia NETIO 4All.

HTTP požiadavka (GET)

Tento uzol odošle požiadavku HTTP (GET) a vráti stavovú odpoveď.

Adresa naplnená vopred ukazuje na online demo NETIO 4All, kde si môžete otestovať pripojenie bez toho, aby ste mali na stole zariadenie NETIO.

netio-4all.netio-products.com

V týchto uzloch je možné nastaviť vlastnú IP adresu; IP však treba zmeniť v uzloch HTTP Request, POST aj GET.

Krok 7: Uzly tlačidiel

Uzly tlačidiel
Uzly tlačidiel
Uzly tlačidiel
Uzly tlačidiel

Kliknutím na uzol tlačidla sa vygeneruje správa obsahujúca súbor netio.json (pravý obrázok), ktorý sa potom odošle prostredníctvom uzla http post do inteligentnej zásuvky netio.

Krok 8: Uzol funkcie

Uzol funkcie
Uzol funkcie
Uzol funkcie
Uzol funkcie

Funkčný uzol je špeciálny uzol, ktorý umožňuje napísať vlastnú funkciu JavaScript.

V tomto návode funkcia vyberie hodnoty z analyzovaného súboru JSON (teraz objekt JSON) a priradí ich k vlastnostiam objektu msg.

Kód je rozdelený do štyroch sekcií:

  1. Priradenie hodnôt z objektu JSON jednotlivým vlastnostiam objektu msg
  2. Riešenie chýb v prípade, že sieťová zásuvka nepodporuje globálne merania

    Ak sieťová zásuvka nepodporuje meranie globálnych hodnôt, Node-RED by zobrazoval chyby, pretože táto funkcia by nenašla príslušnú vlastnosť, napr. msg.payload. GlobalMeasure. Voltage, pretože by nebol prítomný v objekte JSON. V tomto prípade je vlastnosť objektu msg, napr. msg. Voltage, je nastavené na 0 a chyba je zachytená a spracovaná.

  3. Priradenie hodnôt stavu výstupu
  4. Nastavenie farieb zobrazených hodnôt výstupného stavu podľa výstupných stavov

Krok 9: Uzol JSON a injekčný uzol

Uzol JSON a vstrekovací uzol
Uzol JSON a vstrekovací uzol
Uzol JSON a vstrekovací uzol
Uzol JSON a vstrekovací uzol

Uzol JSON

Uzol JSON analyzuje súbor JSON a transformuje ho na objekt JSON.

Ako odpoveď servera na požiadavku GET uzol HTTP Request vráti súbor JSON obsahujúci aktuálny stav zariadenia NETIO 4x, ale je to iba textový súbor, takže na prácu s údajmi potrebuje súbor JSON na analýzu do objektu JSON.

Injekčný uzol

Tento uzol každú sekundu aktivuje uzol požiadavky HTTP, ktorý odošle požiadavku GET.

Výsledkom je, že hodnoty na informačnom paneli sa aktualizujú v priebehu jednej sekundy

Krok 10: Textový uzol a ladiaci uzol

Textový uzol a ladiaci uzol
Textový uzol a ladiaci uzol
Textový uzol a ladiaci uzol
Textový uzol a ladiaci uzol

Textový uzol

Zobrazí textové pole na hlavnom paneli. V tomto návode textové uzly zobrazujú prúd, napätie, model, verziu firmvéru alebo verziu JSON.

Štítok sa zobrazí na hlavnom paneli a názov je názov uzla zobrazený v toku v uzle ČERVENÉ.

Ladiaci uzol

Zobrazuje msg.payload.

Krok 11: Uzol grafu

Uzol grafu
Uzol grafu
Uzol grafu
Uzol grafu

Tento uzol vykresľuje aktuálny graf na hlavnom paneli podľa hodnoty užitočného zaťaženia.

Tento uzol môže vykresľovať grafy iba podľa hodnoty užitočného zaťaženia.

Z tohto dôvodu sa uzol funkcie používa na nastavenie msg.payload na hodnotu, ktorú je potrebné zobraziť.

msg.payload = msg. TotalCurrent;

Krok 12: Merací uzol a prepojovacie uzly

Merací uzol a uzly prepojenia
Merací uzol a uzly prepojenia
Merací uzol a uzly prepojenia
Merací uzol a uzly prepojenia

Merací uzol

Tento uzol pridáva na informačný panel miniaplikáciu.

V tomto návode každý merač vizualizuje jednu vlastnosť objektu správy: napätie [V], prúd [A], frekvenciu [Hz] a celkový skutočný účinník (TPF).

Spojovacie uzly

Pripojenie a odpojenie uzlov funguje ako tunel. Správa msg.payload príde do uzla prepojenia a odíde z uzla prepojenia.

Použil som to, aby bol tok o niečo prehľadnejší a čitateľnejší.

Krok 13: Ďakujem, že ste si prečítali môj návod

Dúfam, že sa vám páčil môj návod a dúfame, že ste sa dozvedeli niečo nové.

Tento návod je iba skrátenou verziou iného sprievodcu, ktorý som vytvoril

Pôvodný sprievodca je dlhší, oveľa podrobnejšie zameraný a vo všeobecnosti lepšie štruktúrovaný. Ak niečomu nerozumiete alebo si myslíte, že som niečo zmeškal alebo dostatočne nevysvetlil, určite to tam nájdete.

Sľubujem, že nebudete sklamaní

Originál:

K dispozícii sú tiež podobné príručky o rôznych použitiach uzla-RED, takže ak vás to zaujíma, neváhajte a preskúmajte:

Práca s API REST URL v uzle-ČERVENOM

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

Práca s REST XML v uzle-ČERVENOM

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

Práca s TCP/Modbus v uzle-ČERVENOM

Už čoskoro:)

Odporúča: