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 😉
Become a patron at Patreon!
0 0 votes
Hodnocení články
Subscribe
Notify of
guest

47 Komentáře
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
dusan
Guest
dusan
7 years ago

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

msk
msk
7 years ago

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

Dawe
Guest
Dawe
7 years ago
Reply to  L

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”

Dawe
Guest
Dawe
7 years ago
Reply to  L

To je zajímavé.

Já to ještě zkusím večer doma, jestli i tam mi to bude fungovat.

Dawe
Guest
Dawe
7 years ago
Reply to  L

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.

Dusan
Guest
Dusan
7 years ago
Reply to  L

😀

Dawe
Guest
Dawe
7 years ago

Takze pres seriove cislo extensionu a pozice vstupu, tak to taky vyzkousim, to me zajima.

Dawe
Guest
Dawe
7 years ago
Reply to  L

Ok, jak se vratim z terenu, tak to zkusim. 😉

Dawe
Guest
Dawe
7 years ago
Reply to  Dawe

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.

David
Guest
David
7 years ago
Reply to  L

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

David
Guest
David
7 years ago
Reply to  L

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.

michalverner
6 years ago

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.

trackback

[…] už Vám běhá NodeRED (třeba v NASu, RaspPI,…). Pokud ještě nemáte, mrkněte na moje články o NodeRED a Mosquitto, kde je instalace a použití […]

msk
msk
6 years ago

Vratil som sa po nejakej dobe k tomuto clanku a idei spravit nad node-red nahradu loxone a podla mna je to cista utopia. Dodnes som totiz nenasiel sposob, ako jednoducho duplikovat funkcionalitu co i len to uplne najjednoduchsieho flow v loxone. Napr. “Teplota > 22 AND Pohyb -> rozsviet svetlo”. V loxone potrebujem 3 ciary. V node-red potrebujem 3 ciary A riesit topic, programovat (pretoze som nenasiel uplne obycajny AND s dvomi vstupmi, takze custom funkcia, zapamatat si stav niekde v kontexte a vyhodnocovat ho priebezne) a riesit tisic picovin okolo toho. Vlastne fakt neviem k comu je to node-red dobre, ja vidim vyuzitie len ako bridge z jedneho signalizacneho sveta (napr. mqtt) do druheho (napr. loxone udp). Ziadna zakladna logika, nic.
Vyvedie ma niekto z omylu a ukaze mi ako to robit spravne?

msk
msk
6 years ago
Reply to  L

Nevypada, pretoze to neriesi fundamentalny zaklad node-red -> topic. Ale preskumam to, diky.

msk
msk
6 years ago
Reply to  msk

Preskumal som a pokym nebude mat jeden node viac vstupov (indexovatelnych), nepojde to nikdy takto pouzit. Coz je strasna skoda, pretoze inak mi to pripada ako vcelku schopny produkt.

msk
msk
6 years ago
Reply to  L

Ano, oni iteruju nad neznamym poctom anonymnych vstupov, to sa pri primitivnych operaciach AND OR da, pretoze tam ta nezaujima ktory vstup ma ktoru hodnotu. Ale u takeho porovnania A>B to nepojde inak ako tak, ze tej sprave priradis topic, aby si to rozlisil a uz si zase v prdeli, pretoze viazes property predosleho node na nasledovny a je to hnusne hackovanie.
Sledoval som nejaku dobu diskusiu o multiple inputs v node-red, oni to implementovat nechcu pretoze je to proti nejakym ich patternom, ktore asi moc nechapem (resp. to chcem pouzit trosku inak – ako nahradu loxone). Vcelku by ma zaujimalo, ako to ma doma rozhodene Martin D., pretoze nad tym ma svetla a kus bytu. Podla mna to musel byt totalny porod.

msk
Guest
msk
6 years ago
Reply to  L

Ano, preto som o node-red prestal definitivne uvazovat. Existuje alternativa, vola sa to total.js flow, vyvija to slovak, ale tiez to nema viac vstupov. Skusim mu napisat, ci by sa s tym nedalo daco robit.

KaZaN
5 years ago

Trochu OT, ale nechci kvuli možná zbytečnýmu dotazu zakladat thread. Zkoušeli jste někdo rozchodit na Loxberry Docker? Úspěšně?

ptr.dvorak
5 years ago

Vcera mi prisel mail, ze NodeRED umi nove bezet na UniPi. Vim, ze to tu neni uplne oblibena platforma, ale ta moznost mit NodeRED primo na PLC mi prijde zajimava:
https://www.unipi.technology/cs/content/default/detail/234

ptr.dvorak
5 years ago
Reply to  L

No prave o to podle me jde, ze tim primo ovladas i vstupy a vystupy na PLCcku. Nevim vic, nez co maji v navodu na netu, ale nevypada to slozite: https://kb.unipi.technology/en:sw:03-3rd-party:nodered:installation-axon

msk
msk
5 years ago
Reply to  L

No az na to ze nodered je s tym ich idiotskym postojom k mnozstvu vstupov/vystupov per logicky objekt vlastne totalne nepouzitelny na akekolvek riadenie cohokolvek.

budulinek
5 years ago
Reply to  L

“vypada to, ze maji vlastni. to neni spatny.”

Nene. Mají vlastní, je to špatný….

Tady je můj obsáhlejší koment:
https://forum.unipi.technology/topic/863/clumsy-complicated

Tom
Guest
Tom
4 years ago

Dobré dopoledne,
nemáteprosím odkaz, kde najdu příkazy v té větě HTTP?
Jde mi o to, že nechci jen posílat impulsy pro rozsvícení světla a podobně.

Mám do nodered natažené inormce z rekuperace přes modbus contrib a tyto informace potřebuji předat na virtuální vstupy do loxonu.

Díky

TP

Tom
Guest
Tom
4 years ago

Na lidičky co se v tom orientují více než já (na všechny tu) 🙂 NodeRED jsem objevil teprve před pár týdny a v neděli jsem měl konečně čas si s nim chvilku hrát. Rozvěcování světel a spouštění vstupů určitě najde využití, primárně jsem ale hledal způsob jak by rekuperace předávala informace ze svých čidel do loxonu a jak by loxone mohl rozhodovat například o režimu v jakém rekuperace poběží.
Moje představa je vysoká vlhkost v koupelně v koupelně aktivuje na 5 minut boost režim rekuperace.

Aktuálně má NodeRED informaci o tom jaký je běžící režim na rekuperaci, jakou teplotu má vzduch přivaděný do místností, atd.

Tyto informace potřebuji nějak předat loxonu v nodeRED a pak přijde druhá fáze.

Loxone rozhodne co má rekuperace udělat.

Díky

Tom
Guest
Tom
4 years ago
Reply to  L

Zvládám předat z NodeRED příkaz rozsviť světlo.
Mou snahou je ae nepředat jen nějaký příkaz ale přenést numerickou hodnotu, string nebo array na nějaký vstup v loxone.

TP

47
0
Would love your thoughts, please comment.x
()
x