Obsah:
- Zásoby
- Krok 1: Protokol REST JSON Http (s)
- Krok 2: Tok
- Krok 3: Hlavní panel
- Krok 4: Import toku (projekt, skript, atd.)
- Krok 5: Jak to všechno funguje dohromady
- Krok 6: HTTP POST a ZÍSKEJTE
- Krok 7: Uzly tlačítek
- Krok 8: Funkční uzel
- Krok 9: Uzel JSON a Vložit uzel
- Krok 10: Textový uzel a ladicí uzel
- Krok 11: Uzel grafu
- Krok 12: Měřící uzel a propojovací uzly
- Krok 13: Děkujeme, že jste si přečetli můj návod
Video: Jak pracovat s JSON v Node-RED: 13 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Tento instruktážní program vás naučí pracovat s JSON v uzlu-ČERVENÉ. Ukážu vám, jak ovládat síťové zásuvky přes přenos souborů json přes http get a post. A tyto znalosti můžete později použít k ovládání jakéhokoli zařízení podporujícího protokol JSON.
Pro výukové účely budu používat síťovou zásuvku NETIO 4All, ale nebojte se, nemusíte nic kupovat. NETIO má úžasné online demo 4All, které můžete použít.
Zásoby
NETIO 4All síťová zásuvka nebo online demo 4All:
Uzel-ČERVENÝ
Krok 1: Protokol REST JSON Http (s)
Tato část je trochu technická, ale prosím, mějte se mnou. Pokud bych tuto část nevysvětlil, pak byste měli problémy s porozuměním hodnotám v souborech json, které budeme posílat v uzlu-ČERVENÉ.
Akce platné pro každý výstup (elektrická zásuvka):
Ve všech protokolech M2M používají zásuvky NETIO stejné akce, jaké lze použít na jednotlivé výstupy. Například na jakýkoli výstup lze zapsat akci Toggle nebo Short Off.
Proměnnou Action je však možné použít pouze pro zápis hodnot, nelze ji použít ke čtení aktuálního stavu výstupu.
Toto jsou akce, které můžete použít pro každý výstup:
0 = výstup vypnutý (vypnutý)
1 = výstup zapnutý (zapnutý)
2 = Výstup na krátkou dobu vypnutý (krátký vypnuto)
3 = Výstup zapnutý na krátkou dobu (krátký zapnutý)
4 = Výstup přepnut z jednoho stavu do druhého (přepnout)
5 = stav výstupu beze změny (beze změny)
6 = Ignorováno
Příklad - soubor JSON pro přepnutí výstupu č. 1:
{
"Výstupy": [{
"ID": 1, "Akce": 4
}]
}
ID - toto číslo udává, jaký výstup budeme používat
Akce - tato část je akce, kterou výstup provede (např. 1 (Zapnout výstup))
Krok 2: Tok
A teď hlavní část. Tak vypadá prostředí uzlu-ČERVENÉ.
Importovali jsme tok API URL (projekt, který vidíte. Později vám ukážu, jak importovat toky a tento projekt) Tento projekt se skládá ze dvou částí:
- Tok NETIO AN30 (JSON REST API)
- Dashboard (grafické rozhraní, pomocí kterého můžete ovládat svůj program)
Krok 3: Hlavní panel
Takhle vypadá dashboard v uzlu-ČERVENÉ pro tento instruktáž. Můžete si jej přizpůsobit, pokud chcete, aby vyhovoval vašemu vkusu.
Řídicí panel pro tento projekt je rozdělen na 4 části:
- Stav zařízení - zobrazuje informace o zařízení, jako je model, adresa mac nebo verze firmwaru.
- (POST) Ovládací výstup 1 - Obsahuje 5 tlačítek, která ovládají výstup 1. Každé tlačítko provádí jinou akci
- (GET) O1 - O4 Stavy výstupu - Tato část zobrazuje aktuální stav každého výstupu z vašeho zařízení.
- Správa zařízení - V této části najdete všechny druhy grafů a měřidel, které zobrazují aktuální naměřené hodnoty ze zařízení NETIO 4Aall
Krok 4: Import toku (projekt, skript, atd.)
V nabídce (pravý horní roh) vyberte Import a poté Schránka.
Poté zkopírujte níže uvedený text do uvedeného pole a klikněte na Importovat.
Instalace chybějících uzlů
Uzly se načtou do vybraného toku. Je možné, že se zobrazí chybová zpráva se seznamem uzlů, které se importují, ale ještě nejsou nainstalovány v Node-RED. V tomto případě je třeba nainstalovat chybějící uzly.
Pokud chybí uzly, vyberte v nabídce Spravovat paletu, klikněte na Instalovat a najděte a nainstalujte chybějící uzly.
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: Jak to všechno funguje dohromady
Tok je v zásadě rozdělen na dvě části: POST a GET.
POST: Zápis do O1
- Na panelu se zobrazí pět tlačítek vytvořených na panelu v toku.
- Po kliknutí na tlačítko Výstup 1 = ZAPNUTO na hlavním panelu se užitečné zatížení nastaví na soubor netio.json, který určuje výstup a akci (definovanou pro každé z tlačítek).
- Blok POST (HTTP Request) odešle soubor netio.json jako požadavek na IP adresu.
- Jako výstup je vrácena odpověď serveru (stav).
- Blok Msg.payload zobrazuje výsledek z požadavku HTTP (POST).
ZÍSKEJTE: Čtení z O1 - O4
- Blok 1sekundového opakování aktivuje s periodou jedné sekundy blok požadavku HTTP (GET), který zase odešle netio.json jako požadavek GET a vrátí kompletní soubor JSON se stavem soketu přijatým ze serveru.
- Blok JSON Parse transformuje soubor JSON z bloku HTTP Request (GET) na objekt JSON, takže je možné manipulovat s vlastnostmi v souboru JSON.
- Funkční blok přebírá jednotlivé části objektu JSON a transformuje je do vlastností objektu msg pro pozdější použití.
- Blok Aktuální graf nastavuje msg.payload na vlastnost msg. TotalCurrent objektu msg, protože následující blok Current Chart (Device) může zobrazovat pouze hodnotu msg.payload.
- Následují různé výstupní uzly, aby se na panelu zobrazily vybrané vlastnosti objektu msg převzaté z objektu JSON.
Objekt msg a msg.payload
Jednoduché a stručné vysvětlení naleznete zde:
www.steves-internet-guide.com/node-red-mess…
Krok 6: HTTP POST a ZÍSKEJTE
HTTP požadavek (POST)
Tento uzel odesílá příkazový soubor netio.json jako požadavek HTTP (POST) za účelem ovládání zařízení NETIO 4All.
HTTP požadavek (GET)
Tento uzel odešle požadavek HTTP (GET) a vrátí stavovou odpověď.
Předem vyplněná adresa ukazuje na online demo NETIO 4All, kde můžete otestovat připojení, aniž byste měli u stolu zařízení NETIO.
netio-4all.netio-products.com
V těchto uzlech je možné nastavit vlastní IP adresu; IP je však třeba změnit jak v uzlech požadavku HTTP, POST, tak i GET.
Krok 7: Uzly tlačítek
Kliknutím na uzel tlačítka se vygeneruje zpráva obsahující soubor netio.json (pravý obrázek), který je poté odeslán prostřednictvím uzlu post http do chytré zásuvky netio.
Krok 8: Funkční uzel
Funkční uzel je speciální uzel, který umožňuje psaní vlastní funkce JavaScriptu.
V tomto pokynu funkce vybere hodnoty z analyzovaného souboru JSON (nyní objekt JSON) a přiřadí je k vlastnostem objektu msg.
Kód je rozdělen do čtyř částí:
- Přiřazení hodnot z objektu JSON jednotlivým vlastnostem objektu msg
-
Zpracování chyb v případě, že síťová zásuvka nepodporuje globální měření
Pokud síťová zásuvka nepodporuje měření globálních hodnot, Node-RED zobrazí chyby, protože tato funkce nenalezne příslušnou vlastnost, např. msg.payload. GlobalMeasure. Voltage, protože by nebyl přítomen v objektu JSON. V tomto případě vlastnost objektu msg, např. msg. Voltage, je nastaveno na 0 a chyba je chycena zpracována.
- Přiřazení hodnot stavu výstupu
- Nastavení barev zobrazených hodnot stavů výstupu podle stavů výstupu
Krok 9: Uzel JSON a Vložit uzel
Uzel JSON
Uzel JSON analyzuje soubor JSON a transformuje jej na objekt JSON.
Jako odpověď ze serveru na požadavek GET uzel požadavku HTTP vrací soubor JSON obsahující aktuální stav zařízení NETIO 4x, ale je to jednoduše textový soubor, takže pro práci s daty potřebuje soubor JSON být analyzovány do objektu JSON.
Vložit uzel
Každou sekundu tento uzel aktivuje uzel požadavku HTTP, který odešle požadavek GET.
V důsledku toho se hodnoty na hlavním panelu aktualizují po dobu jedné sekundy
Krok 10: Textový uzel a ladicí uzel
Textový uzel
Zobrazí textové pole na řídicím panelu. V tomto pokynu textové uzly zobrazují aktuální, napětí, model, verzi firmwaru nebo verzi JSON.
Štítek se zobrazí na řídicím panelu a název je název uzlu zobrazený v toku v Node-RED.
Ladicí uzel
Zobrazí msg.payload.
Krok 11: Uzel grafu
Tento uzel vykreslí aktuální graf na řídicím panelu podle hodnoty užitečného zatížení.
Tento uzel může vykreslovat grafy pouze podle hodnoty užitečného zatížení.
Z tohoto důvodu se funkční uzel používá k nastavení msg.payload na hodnotu, kterou je třeba zobrazit.
msg.payload = msg. TotalCurrent;
Krok 12: Měřící uzel a propojovací uzly
Uzel měřidla
Tento uzel přidá na řídicí panel widget měřidla.
V tomto pokynu každý měřič vizualizuje jednu vlastnost objektu zprávy: napětí [V], proud [A], frekvenci [Hz] a celkový skutečný účiník (TPF).
Propojit uzly
Spojení a odpojení uzlů funguje jako tunel. Zpráva msg.payload dorazí do uzlu odkaz v uzlu a vyjde z uzlu mimo odkaz.
Použil jsem to, aby byl tok trochu jasnější a lépe čitelný.
Krok 13: Děkujeme, že jste si přečetli můj návod
Doufám, že se vám moje instruktáž líbila a doufám, že jste se dozvěděli něco nového.
Tento instruktabilní je pouze zkrácená verze různých průvodců, které jsem vytvořil
Původní průvodce je delší, mnohem detailněji orientovaný a obecně lépe strukturovaný. Pokud něčemu nerozumíte nebo si myslíte, že jsem něco zmeškal nebo dostatečně nevysvětlil, pak to tam určitě najdete.
Slibuji, že nebudete zklamáni
Originál:
Existují také podobní průvodci o různých způsobech použití uzlu-RED, takže pokud máte zájem, můžete prozkoumat:
Práce s API REST URL v uzlu-ČERVENÉ
www.netio-products.com/en/application-notes/an29-node-red-example-of-url-api-communication-with-netio-4x
Práce s REST XML v uzlu-ČERVENÉ
www.netio-products.com/en/application-notes/an31-node-red-example-of-rest-xml-communication-with-netio-4x
Práce s TCP/Modbus v uzlu-ČERVENÉ
Již brzy:)
Doporučuje:
Jak připojit Raspberry Pi ke cloudu pomocí Node.js: 7 kroků
Jak připojit Raspberry Pi ke cloudu pomocí Node.js: Tento tutoriál je užitečný pro každého, kdo chce připojit Raspberry Pi ke cloudu, zejména k platformě AskSensors IoT, pomocí Node.js. Nemáte Raspberry Pi? Pokud v současnosti Raspberry Pi nevlastníte, doporučím vám pořídit si Raspberry
Jak vytvořit zaváděcí jednotku Linux (a jak ji používat): 10 kroků
Jak vytvořit zaváděcí jednotku Linux (a jak ji používat): Toto je jednoduchý úvod, jak začít s Linuxem, konkrétně Ubuntu
[Docker Pi Series] Jak používat modul IoT Node (A) na Raspberry Pi: 18 kroků
[Docker Pi Series] Jak používat modul IoT Node (A) na Raspberry Pi: Co je modul IoT Node (A)? IoT Node (A) je jedním z modulů Docker Pi. IOT Node (A) = GPS/BDS + GSM + Lora.I2C přímo ovládá Lora, odesílá a přijímá data, ovládá modul GSM/GPS/BDS prostřednictvím SC16IS752, základní deska potřebuje pouze I2C suppo
Jak vytvořit web na Raspberry Pi s Node.js, Express a MongoDB Část 1: 6 kroků
Jak vytvořit web na Raspberry Pi s Node.js, Express a MongoDB … Část 1: Vítejte v ČÁSTI 1 mého tutoriálu o webové aplikaci node.js. Část 1 se bude zabývat potřebným softwarem používaným pro vývoj aplikací node.js, jak používat přesměrování portů, jak vytvořit aplikaci pomocí Express a jak spustit vaši aplikaci. Druhá část tohoto
Jak pracovat s Arduinem a různými RGB LED diodami: 3 kroky
Jak pracovat s Arduino a různými LED diodami: Arduino je úžasné malé zařízení. Jednou z nejpoužívanějších aplikací tohoto výkonného malého zařízení je často blikání nebo blikání LED. Tento tutoriál vám ukáže tři způsoby práce s RGB LED a Arduino. Prvním způsobem je použít jednoduchý