NodeRED – Propojení všeho se vším, od Arduina po Loxone

NodeRED – Propojení všeho se vším, od Arduina po Loxone

Jak jsem psal v předchozím článku, MQTT i NodeRed instaluji na Ubuntu linuxu. Jde ale rozběhat třeba i na Raspberry Pi  nebo Turrisu (OpenWRT).

Instalace NodeRED je relativně jednoduchá. Do ubuntu jsem musel nejprve doinstalovat aplikaci npm (což jsem zjistil, že je balíčkovací služba pro javascript) a následně pak pomocí npm aplikace nainstalovat NodeRED.

sudo apt-get install npm
sudo npm install -g --unsafe-perm node-red

Po samo-doinstalování obrovského množství dalších navazujícíh balíků měl začít fungovat příkaz `node-red`. Ale prdlajs. Takže další postup pak byl:

sudo apt-get install nodejs-legacy
node -v
##v4.2.6
sudo apt-get install npm
npm -v
##3.5.2
sudo npm install -g --unsafe-perm node-red node-red-admin

Dál bylo potřeba otevřít firewall port 1880, který node-red používá pro komunikaci

sudo ufw allow 1880
##Rules updated
##Rules updated (v6)

A pak už node-red konečně naběhl.

node-red
Welcome to Node-RED
===================
9 Dec 15:41:14 - [info] Node-RED version: v0.15.2
9 Dec 15:41:14 - [info] Node.js version: v4.2.6
9 Dec 15:41:14 - [info] Linux 4.4.0-53-generic x64 LE
9 Dec 15:41:14 - [info] Loading palette nodes
9 Dec 15:41:14 - [warn] ------------------------------------------------------
9 Dec 15:41:14 - [warn] [rpi-gpio] Info : Ignoring Raspberry Pi specific node
9 Dec 15:41:14 - [warn] ------------------------------------------------------
9 Dec 15:41:14 - [info] Settings file : /home/dev/.node-red/settings.js
9 Dec 15:41:14 - [info] User directory : /home/dev/.node-red
9 Dec 15:41:14 - [info] Flows file : /home/dev/.node-red/flows_home-server.json
9 Dec 15:41:14 - [info] Creating new flow file
9 Dec 15:41:14 - [info] Server now running at http://127.0.0.1:1880/
9 Dec 15:41:14 - [info] Starting flows
9 Dec 15:41:14 - [info] Started flows

Další krok je nastavení, aby se NodeRED spouštěl sám po startu. To už nebudu popisovat, protože bych jen kopíroval návod, podle kterého jsem postupoval. Ten jde najít v tomto super článku (bod 3 a dál).

Použití NodeRED

Tak jo, nainstalované to je, co teď s tím dál ;-). Vraťme se k naší ukázce z minulého článku o MQTT. V levym okně máme příkaz na poslání zprávy přes kanál(topic) hello/world. V pravém okně nahoře je pak příjemce této zprávy, abychom viděli, že vše funguje.

V pravo dole pak nasloucháme nové zprávě “bye/world”. Jak jde vidět z následujících screenshotů, při poslání zprávy na “hello/world” se tato zpráva ukáže i na “bye/world”. Jak to?

Protože NodeRED ;-). Jako první jsem pro otestování funkčnosti NodeRED a jeho napojení na MQTT udělal jednoduché přeposlání přijaté zprávy z jednoho kanálu na druhý.

A takhle to vypadá v NodeRED. Vlevo je MQTT consumer, nastavený tak, aby naslouchal topic hello/world

V pravo pak MQTT publisher, který přijatou zprávu pošle po kanálu (topicu) bye/world.

Dole pak mám ještě debug výstup, který zobrazuje přijaté zprávy.

A co loxone, jde to propojit?

No jasně! ;-). Pro testování jsem použil zatím jen REST Api loxone, ale NodeRED podporuje i websockets, navíc jsou pro Loxone už naprogramované přímo rozšíření pro NodeRED (viz dále).

Nyní nám ale pro jednoduchý test stačí RestAPI. Upravíme diagram tak, aby po přijetí jakékoli zprávy v topicu hello/world se nám rozsvítilo (nebo zhaslo) světlo v pracovně. To je cool ne? 😉

Samotné nastavení HTTP požadavku vypadá nějak takto. Nic složitého, jen se zavolá HTTP GET na adrese /dev/sps/io/WebApiTest/PulseDown.

Co se týká URL adresy, tak Loxone dokumentace stojí za starou bačkoru. Podle návodu by měla být adresa /prikaz/control/hodnota, coz ale /dev/sps/io/INPUT/PRIKAZ rozhodne není.

Touto url říkáme, že chceme na virtuální vstup “WebApiTest” poslat Impuls Down-Up. V Loxonu tak musíme tento virtuální vstup vytvořit a propojit se světlem.

A to je všechno. Nyní, kdykoli se objeví zpráva, světlo se přepne. Naprostá paráda. Nevím jak vy ostatní, ale já jsem nadšen. Těch možností, k čemu se to využít, je totiž neomezeně. Díky kombinaci NodeRED+Loxone tak jde do Loxonu dostat spoustu nových dat, od Arduino senzorů, dat z externích databází až po informace z Twitteru, Email nebo cokoli jiného vás jen napadne.

Co dál

NodeRED má obrovskou komunitu a kromě základních bloků (Nodes) má parádní knihovn dalších rozšíření – http://flows.nodered.org/. Jsou tam například i bloky na komunikaci s Modbus, KNX nebo Loxone.

Nyní to chce pořádně vyzkoušet a pohrát si s tím víc. V základu mám ověřeno, že vše funguje. Nyní zkusím zprovoznit nad Arduinem nějaký ten senzor a přes MQTT-NodeRed ho posílat do Loxonu. A uvidíme, jak to bude šlapat. Co jsem zatím testoval, tak problémy žádné, ale běží mi to jen chvilku.

Pokud ale vše pojede opravdu jak má a bude to 100% stabilní, vidím v tom obrovský potenciál. Navíc v případě, že by Loxone pokračoval se svými gestapáckými manýry a ještě více uzavíral jeho systém, tak se takto dá udělat kompletní rozšíření a defakto z architektury “Loxone je ten hlavní” udělat “NodeRED je ten hlavní” a Loxone mít jen jako podružný systém.

Použité linky

forumlink
Link na diskuzní fórum o Loxonu a Arduinu

Pomohl Vám náš blog? Chcete nás podpořit? I málo udělá radost 😉

22 thoughts on “NodeRED – Propojení všeho se vším, od Arduina po Loxone

  1. Z tej “dokumentacie” jednotlivych url pre Loxone tiez rastiem. Dolamal by som im za to ruky, skoro som chcipol nez som to vsetko nasiel …

    1. a pochopil si, proc je tam ten /dev/sps/io ? A funguje to pak aspon vzdy, nebo obcas se pristupuje jinak? A posledni dotaz, jdou tim ovladat i jine vstupy nez virtualni? Protoze oni pisou ze ano, ale mne to nefungovalo

  2. Ja som to len zbezne skusal, zatial som s tym nijak neintegroval. Co si pamatam, slo ovladat len virtualny vstup, s existujucim mi to neslo (resp. som mozno nemal spravnu adresu vdaka ich “dokumentacii”).

      1. já jsem si to teďka zkoušel a mě to funguje i na digitální vstup přes stejný příkaz

        poslal jsem si příkaz:
        http://adresasa miniserveru/dev/sps/io/test_tl/pulse

        a přes digitální vstup jsem zapínal/vypínal blok “tlačítko”

            1. Tak ja uz vim. Ono to funguje jen na vstupech na miniserveru, ne na extensionech.

              Takze na extension bude zrejme nejaka jina magicka URL. Zkusim jim napsat na podporu.

              1. Přesně nad tím jsem teď přemýšlel, jestli to není tím 🙂

                Ja když něco hledám, tak se dívám na anglické stránky Loxone, ale v tomto případě, tam nic navíc nebylo.

                1. Jojo, akorat misto anglickych jsou lepsi ty nemecke, protoze tam je toho vzdycky nejvic. Akroat to musim prohanet translatorem 😉

                  Jinak volal jsem jim a tvrdi, ze se to ma pouzivat v teto podobe server/dev/sps/io/01D8DF9F.I7/pulse , kdy ten kod je to, co je u objektu jako “pripojeni”. Jenze to mi nejede taky

    1. Jojo, “SN extension”.”Oznaceni vstupu”. Pry to takto bezne pouzivaji, ale mne to nejede. Ze pry se mi na to podiva pres TeamViewer, ale ted uz nemam moc cas. Schvalne to zkuste, jestli Vam to pujde.

      Jinak kdyz se da pryc to SN, tak se takto da sahat zase na vstupy na miniserveru a to funguje (/dev/sps/io/I1/Pulse).

        1. Tak testováno:
          http://adresa miniserveru:port/dev/sps/io/01D8E86C.I1/pulse

          a u mě je to funkční, zkoušel jsem i další vstupy a ty jsou taky funkční.

          Jediné co mám jiné než u Vás, že mám připojený jen 1 extension.

          1. Tak sem mel na kompu vcera pripojeny Loxone support a opravdu to je u mne nejake divne. Nektere extensiony funguji a jine ne. Typek byl dost prekvapeny a prej to zjisti u Rakusaku

            1. Tak to je fakt hodně zajímavé.

              Zajímalo by mě kdyby to ještě někdo vyzkoušel, kdo má doma víc extensionů. Jestli je to to samé.

              Já na testování mám jen pár různých extensionů.

              1. Dneska sem mel do domu pripojene rakusaky, protoze v cechach nikdo nevedel. Dokonce mi nejprve rikali, ze je to funkce, kterou pouzivaji (a sami mi poradili ten trik s seriovym cislem), pak zacli rikat, ze je to funkce, ktera vubec nema existovat a ma se pouzivat jen virtualni vstupy (coz osobne i chapu, prijde mi to lepsi nez mackat natvrdo nejaky vstup).

                Nakonec rakusak zacal proklikavat Loxone config a po 20ti minutach nasel u kazdeho vstupu nastaveni, ktery uzivatel jej muze aktivovat z internetu (takze tam na to primo maji nastaveni, ale jinak ta funkce neexistuje 😉 ).

                Kdyz se vybere konkretni vstup na miniserveru/extensione, tak je tam “Povoleni uzivatele z lokalni site” a “Povoleni uzivatele internet”. A z nejakeho duvodu sem tam u nekterych mel skupinu adminstratori a u jinych skupinu LOXONE, do ktere ale administrator nespada (taky zajimave). Takze stacilo prehodit a zaclo to fungovat

                1. Tak hlavně, že se na to přišlo. 😉

                  Já se na to dívam a já mám z default nastavení použito “všichni”.

                  Já jsem si myslel, že ta funkce se vztahuje jen na vizualizaci, ale tak je fakt, že je to asi na všechny možnosti přístupu na Loxone.

  3. Konecne jsem se dostal k tomu se na to podivat. Dorazilo Raspberry PI, krabicka na DIN listu, tak jsem to tam nabouchal a parada.

    Hral jsem si se zesikem, konecne uz se mi do Loxonu vraci i hodnoty zpet 🙂 Supr, ze se v tom fakt da prgat v rozumnym (ne Pico C) jazyku 🙂

    Akorat me teda vubec nenapadlo pouzivat primo ty vstupy jak jste psali. Vsechno integracni si podle me zaslouzi vlastni virtualni vstup, idealne UDP. Zatim mam dva na zesik a uz se tesim az se pustim do Roomby 🙂 Mam tu nejaky stiznosti, ze kdyz se prijde domu, tak by mela prestat uklizet a pelasit na dock.

Leave a Reply

Your email address will not be published. Required fields are marked *