A HWg STE2 család távoli környezetfelügyeleti eszközökből áll, amelyek LAN- és WiFi-interfésszel vannak felszerelve. A felhasználók változó számú külső szenzort vagy detektort csatlakoztathatnak, az eszköz pedig hozzáadható a Sensdesk technológiára épülő portálhoz. Ezzel szemben az NB-eszközök előre fizetett SIM-kártyával érkeznek, és csak portálon keresztül monitorozhatók. Ez a Node-RED platformpélda a Sensdesk.com portálról olvassa a szenzorértékeket (egy STE2 és NB-WLD eszközökkel, amelyek a portálhoz vannak csatlakoztatva), és az értékeket vagy grafikonokat egy weboldalon vagy a csatlakoztatott kijelzőn jeleníti meg.

Mi a Node-RED?

A Node-RED egy alacsony kódigényű (low-code) vizuális programozási fejlesztőeszköz, amely folyamatalapú, és hardverrendszerek, API-k és online szolgáltatások összekötésére szolgál.

Böngészőalapú folyamatszerkesztőt biztosít JavaScript-függvények létrehozásához, és lehetővé teszi az alkalmazások egyes elemeinek mentését vagy megosztását. A Node-RED futtatókörnyezete a Node.js-re épül, a folyamatokat JSON formátumban tárolja. Futtatható helyben, Raspberry Pi-n, Androidon, felhőben és számos más platformon (további információ: https://nodered.org).

A HWg-NR2 Node-RED projekt

  • Az adatokat a Sensdesk.com portálról kéri le;
  • A kommunikációhoz HTTP-t és XML API-t használ;
  • Node-RED-et használ;
  • Az adatokat webes irányítópulton (dashboard) jeleníti meg;
  • Az irányítópult 4, felhasználó által kiválasztott szenzort vagy digitális bemenetet tud megjeleníteni;
  • További szenzorokat vagy digitális bemeneteket kézzel adhat az irányítópulthoz;
  • A projekt kompatibilis a PC-vel, a Raspberry Pi-vel és a felhő platformokkal.
HWg-NR2: Node-RED és STE2 + NB WLD integrációs példa (Sensdesk.com portál)

HWg-NR2 irányítópult

HWg-NR2: Node-RED és STE2 + NB WLD integrációs példa (Sensdesk.com portál)

HWg-NR2 Node-RED folyam (Flow)

HWg-NR2: Node-RED és STE2 + NB WLD integrációs példa (Sensdesk.com portál)

Egyszerű telepítés

A HWg-NR2 példa használatához először le kell töltenie és telepítenie kell a Node-RED modult. További információért lásd: https://nodered.org/docs/getting-started/.

Miután a Node-RED fut a böngészőben, kattintson a jobb felső sarokban lévő hamburger menüre, lépjen az „import” menüpontra, és illessze be a HWg-NR2 példa JSON-ját (ne felejtse el a fájl kiterjesztését .txt-ről .json-ra cserélni), amely itt található: https://www.hw-group.com/files/support/10809-hwg-nr2-node-red-ste2-nb-wld-integration-example-sensdeskcom-portal/portalprojectsrc.txt majd kattintson az „Import” gombra.

HWg-NR2: Node-RED és STE2 + NB WLD integrációs példa (Sensdesk.com portál)

Ekkor meg kell jelenniük az új csomópontoknak (node-oknak).

HWg-NR2: Node-RED és STE2 + NB WLD integrációs példa (Sensdesk.com portál)

A projekt telepítése (deploy) előtt a CONFIG node-ban be kell állítania néhány paramétert. Keresse meg a node-ot, és kattintson rá duplán, hogy a képernyő jobb oldalán megjelenjen a több opciót tartalmazó felület.

HWg-NR2: Node-RED és STE2 + NB WLD integrációs példa (Sensdesk.com portál)

Cserélje ki a msg.url értékét a Sensdesk-fiókja values.xml lapján található csapat- vagy felhasználói linkre.

A következő 4 opció (g1_id, g2_id stb.) a felület 4 csoportjának felel meg. Mindegyik érték annak a szenzornak az azonosítója, amely az adott csoportban megjelenik. Módosítsa ennek a 4 opciónak az értékét, majd kattintson a „Done” gombra a jobb felső sarokban (az azonosítók a szenzorok/digitális bemenetek Sensdesk-azonosítóinak felelnek meg!).

Kattintson a jobb felső sarokban a „Deploy” gombra, majd nyomja meg a Ctrl + Shift + D billentyűkombinációt az irányítópultra lépéshez. Valami ilyesmit kell látnia:

HWg-NR2: Node-RED és STE2 + NB WLD integrációs példa (Sensdesk.com portál)

Részletes bemutatás

A folyam 2 szakaszra oszlik: GET XML és GROUPS (amely tovább oszlik: Group 1, Group 2, Group 3 és Group 4).

HWg-NR2: Node-RED és STE2 + NB WLD integrációs példa (Sensdesk.com portál)

1. szakasz: Get XML

Ez a rész lekéri az XML-fájlt, JSON-objektummá alakítja, és átadja a négy csoportszakasznak.

HWg-NR2: Node-RED és STE2 + NB WLD integrációs példa (Sensdesk.com portál)

Az Inject node

2 percenként elindítja a folyamatot (ebben az összefüggésben a folyam összekapcsolt node-ok sorozata).

A Change node („CONFIG”)

Beállítja a msg.url-t, és elmenti azokat a szenzorazonosítókat, amelyeknek az egyes csoportokban szerepeliük kell. Az adatok a „flow” hatókörbe (ebben az esetben a lap) kerülnek mentésre, vagyis ezen a folyamon belül bárhol (a lap bármely node-jából) elérhetők. Ezeket az adatokat a felhasználó adja meg.

Http Request node

Lekéri az XML-t a Sensdesk portálról. Az URL-t automatikusan a msg.url tulajdonságból veszi.

XML Parse node

Az XML-karakterláncot JSON-objektummá alakítja.

Function node („format data”)

Létrehoz egy tömböt (msg.sensors) a szenzorokból és digitális bemenetekből. Minden szenzor/digitális bemenet egy JavaScript-objektum, amelynek tulajdonságai közé tartozik a név, az azonosító és az állapot.

Link Out node

Kiküldi a msg objektumot a csoportoknak. A Link node-ok egyfajta alagútként működnek. A msg objektumot a Link Out node küldi ki, és a Link In node fogadja. A folyam olvashatóbbá tételére szolgál.

2. szakasz: Groups

HWg-NR2: Node-RED és STE2 + NB WLD integrációs példa (Sensdesk.com portál)

Link In node

Megkapja a msg objektumot a Link Out node-tól.

Function node („func 1”)

Kikeresi a megfelelő szenzor/digitális bemenet adatait (a CONFIG node-ban megadott azonosító alapján), és ellenőrzi, hogy az érték ésszerű-e.

Ha az érték -100 felett van, másolat készül, amelyet a flow.g1_dat-ba ment, a vonatkozó információkat pedig egyedi szenzor/di tulajdonságokká (pl. sensor.name) elemzi.

Ha az érték -100 alatt van (ami lecsatlakozott szenzort jelez), a bemenetet (msg.sensors) figyelmen kívül hagyja, és az adatokat a flow.g1_dat-ból tölti be, amíg a szenzor újra meg nem található, vagy az azonosító meg nem változik a CONFIG node-ban.

A node-nak 3 kimenete van: msg, sensor és di.

Msg kimenet és UI Control node („hide/show groups”)

A node felel a szenzor- vagy a di-csoport (group_1_sen vagy group_1_di) elrejtéséért/megjelenítéséért.

Sensor kimenet

Link node-pár segítségével csatlakozik az egyes UI-elemekhez (ezek az elemek csak akkor láthatók, ha a csoportazonosító megfelel egy szenzornak).

Text node („name”, „id” stb.)

Szöveget jelenít meg az irányítópulton. Ebben a példában a szenzor nevét, azonosítóját és állapotát.

Function node („Range”)

Elemzi a hozzá csatlakoztatott Gauge node min, max, value és name tulajdonságait.

Gauge node

A műszer (gauge) az irányítópulton megjeleníti a szenzor aktuális értékét.

Function node („func”)

Ha az azonosító megváltozott (ezt a „func 1” ellenőrzi), alaphelyzetbe állítja a következő Chart node-ot úgy, hogy üres tömböt küld értékként.

Chart node

Az irányítópulton diagramot jelenít meg az értékről. Az időtartam 1 hét, de a diagram beállítási menüjében módosítható (hosszú időtartamok nem ajánlottak a RAM túlterhelésének kockázata miatt).

Smooth node

Kiszámítja az elmúlt 2 érték matematikai átlagát (ez módosítható). Ez biztosítja az alkalmazás megbízhatóságát.

Di kimenet és Text node

Szöveget jelenít meg az irányítópulton. Ebben a példában a digitális bemenet nevét, azonosítóját és értékét (0 vagy 1), valamint a riasztási állapotot (0 vagy 1).

Megjegyzések és nyilatkozatok

A műszerek (gauge) min. és max. értéke

A felület műszereinek értékei a Safe Range értékekből számítódnak 10-es vagy 2-es kiterjesztéssel, vagyis ha az alsó Safe Range 30, akkor a műszer min. értéke 20 lesz. Ez az egyes csoportok függvényeiben módosítható.

HWg-NR2: Node-RED és STE2 + NB WLD integrációs példa (Sensdesk.com portál)

Új csoport hozzáadása az irányítópulthoz

Új csoport hozzáadása az irányítópulthoz kihívást jelenthet és időigényes, de megvalósítható.

1) Másolja be az egyik csoportot;

HWg-NR2: Node-RED és STE2 + NB WLD integrációs példa (Sensdesk.com portál)

2) A rend kedvéért módosítsa a számot a megjegyzésben és a függvényben (pl. func 5);

3) Az oldalsávban lépjen az irányítópult lapra, majd a LAN Sensors lapra, és hozzon létre 2 új csoportot. Kattintson az „edit” gombra, és nevezze át őket group_5_sen és group_5_di névre (vagy a megfelelő számra);

HWg-NR2: Node-RED és STE2 + NB WLD integrációs példa (Sensdesk.com portál)
HWg-NR2: Node-RED és STE2 + NB WLD integrációs példa (Sensdesk.com portál)

4) A „func n” node-ban cserélje ki az összes alábbi számot a megfelelőre (ha ötödik csoportot hoz létre, az összes számot 5-re kell cserélni);

HWg-NR2: Node-RED és STE2 + NB WLD integrációs példa (Sensdesk.com portál)
HWg-NR2: Node-RED és STE2 + NB WLD integrációs példa (Sensdesk.com portál)

5) Most jön a fárasztó rész: menjen végig az új csoport összes UI-node-ján, és módosítsa az irányítópult-csoportot a most létrehozott kettő egyikére (ne feledje, hogy van egy csoport a szenzoroknak – G5_sen – és egy a digitális bemeneteknek – G5_di);

HWg-NR2: Node-RED és STE2 + NB WLD integrációs példa (Sensdesk.com portál)

6) Gratulálunk, éppen létrehozott egy új csoportot az irányítópulthoz.

A csoportok átméretezése

A csoportok szélessége a szerkesztőfelületükön egyenként módosítható, hogy kisebb/nagyobb kijelzőhöz igazodjon.

Több adatpont a grafikonon

Ha azt szeretné, hogy a grafikonok adatpont-sűrűsége más legyen, módosíthatja a Smooth node action value (művelet értéke) beállítását. Az alapértelmezett érték 2 -> 4 percenként kerül új adatpont a grafikonra.

HWg-NR2: Node-RED és STE2 + NB WLD integrációs példa (Sensdesk.com portál)

Letölthető fájlok

Kérdése van?

Technikai kérdésekben és a megoldás kiválasztásában szívesen segítünk.