Node-RED

Node-RED (NR) is een applicatie waarmee je zonder (veel) programmeerervaring toch krachtige automatiseringen kan maken vanuit je browser, met een eenvoudige grafische interface. Daarnaast heeft het volledige ondersteuning voor Javascript ingebouwd, zodat je in zogenaamde 'function nodes' eigen krachtige logica kan programmeren indien gewenst.

Node-RED is ontworpen voor internet of things (IoT)-toepassingen en is met name populair op het gebied van home automation / domotica, vandaar dat dit topic in het forum 'Duurzame Energie & Domotica' staat. Mocht je echter Node-RED-vragen over andere onderwerpen hebben, dan is dat geen enkel probleem in dit topic.
Je kan Node-RED ook standalone gebruiken in combinatie met een 'dashboard' module.
Node-RED in combinatie met home automation applicaties
Node-RED wordt veel gebruikt in combinatie met applicaties als Home Assistant, Domoticz en OpenHAB. Deze applicaties geven dan veranderingen in de status van je apparaten door aan Node-RED, die alle automatiserings-logica voor je afhandelt en daarna weer aan deze applicaties vraagt om acties uit te gaan voeren, bijvoorbeeld je lampen inschakelen.Hoewel deze applicaties zelf ook ingebouwde mogelijkheden hebben voor het maken van automatiseringen, is dit niet voor iedereen eenvoudig te begrijpen. Zo krijgt niet iedereen de YAML-taal van Home Assistant, of de LUA-taal van Domoticz snel onder de knie. Domoticz heeft wel het eenvoudigere 'Blockly', maar dit is minder krachtig. Node-RED lijkt wel een beetje op Blockly, maar is prettiger in gebruik en biedt bovendien meer dan 1000 extensions die 'modules' worden genoemd.
Voorbeeld

Je moet dit als volgt interpreteren: een sequence (van aan elkaar gekoppelde nodes) wordt geactiveerd, bijvoorbeeld op een bepaald tijdstip, of omdat er een andere trigger is (bijvoorbeeld omdat er iemand thuiskomt, er een deur open gaat, er beweging wordt gedetecteerd, de tv wordt aangezet etc). Er gaat dan een berichtje (msg) met een bepaalde waarde (payload) door de sequence heen. Bij elke node kan je het proces laten stoppen, splitsen, of een andere richting opsturen afhankelijk van de waarde. En daarmee kan je verschillend gedrag laten uitvoeren.
Introductievideos
En nog een (deels over Home Assistant maar ook met veel basis-info over Node-RED)
(voor Home Assistant gebruikers: je kan beter de modernere module 'home-assistant-websocket' installeren)
Elkaar helpen
Als je hulp nodig hebt, dan kan je een screenshot posten, maar het kan ook handig zijn om je 'code' (die Node-RED genereert en die je zeker niet moet kunnen lezen) te delen. Hiervoor selecteer je de relevante nodes in Node-RED, klik je op het hamburgermenu rechtsbovenaan en kies je voor 'Export -> Copy to clipboard'. Die code plak je in je bericht in dit topic in een [code]-blok. En dan ziet het er zo uit:code:
1
| [{"id":"562f35b0.edf0f4","type":"inject","z":"746750be.ec2a","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":450,"y":500,"wires":[["e50fb59d.71ff2"]]},{"id":"e50fb59d.71ff2","type":"debug","z":"746750be.ec2a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":620,"y":500,"wires":[]}] |
Omgekeerd kan je dit soort code ook importeren in Node-RED via datzelfde menu -> 'Import -> Clipboard' waarna het weer als grafische elementen op het scherm verschijnt.
Handige links
Node-RED websiteNode-RED twitter account
Demo
Creaties van anderen
Node-RED handleidingen
[ Voor 31% gewijzigd door DeadMetal op 07-11-2020 08:58 ]