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 irányítópult

HWg-NR2 Node-RED folyam (Flow)

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.

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

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.

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:

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).

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

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

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ó.

Ú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;

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);


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);


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);

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.

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.