Alle kan kode med Node-RED

Image for post
Image for post

ADVARSEL: Tonen i denne blogpost kan næsten ikke undgå at blive lidt lummer, for jeg er ellevild med Node-RED. ❤️

Jeg har en ambition for Danmark:

I dagens Danmark kan måske 1–2% af befolkningen sætte sig ned og lave programmer til at løse de mest monotone dele af deres arbejdsopgaver.

Jeg tror på, at man vil kunne øge denne andel til måske 15–30% uden at skulle vente en generation eller to, men ved at lave og tilbyde let tilgængelige værktøjer.

Disse værktøjer vil være robotter, sensorer og aktuatorer i den fysiske verden kombineret med software med grader af intelligens fra simpel logik til komplekse machine learning “hjerner”.

Jeg tror at Node-RED kan være et centralt værktøj i realiseringen af denne ambition.

Men… hvad er det der Node-RED som har gjort dig så vild i varmen, Uffe?

Jeg er glad for at du spørger, Uffe.

Hvad er Node-RED?

Node-RED er en open-source platform udviklet af til at lave visuel flow-programmering af Internet of Things (IoT) systemer. blev opfundet først i 1970'erne, så det er absolut ikke en ny opfindelse.

Node-RED er bygget på Node.js og deraf fornavnet.

I Node-RED editoren laver man flows og sub-flows. Flows består typisk af en input-trigger, nogle mellemliggende beslutninger eller processeringer og noget output.

Man binder alle disse noder (der var den igen) sammen med virtuelle ledninger på skærmen og skaber derved flows.

En trigger kan være noget så simpelt som en knap, en timer, eller et (dvs. en URL der kaldes fra browser eller en service på nettet) eller ændringer i et twitter-feed eller en besked på en , en ændring af en , eller ….

Hvis du har 5 minutter, så se , en af skaberne af Node-RED, vise et par eksempler:

Hvad skal der til?

Node-RED kan køre på små og store systemer, alt fra over computere til og supercomputer.

Alt afhængig af hvor det kører, kan man udvide Node-RED med . De fleste af de mange pakker, der findes, kan køre hvor som helst, men nogle af dem giver mulighed for at interagere direkte med det miljø, hvor Node-RED kører.

F.eks. findes der til Raspberry Pi, hvor man fra Node-RED kan læse og skrive direkte til benene i på Raspberry Pi’en og derved direkte styre eller måle på elektronik — og dermed verden!

Hvis man kører Node-RED på IBMs , kan man direkte tilgå funktioner på IBM Watson supercomputeren, f.eks. , og oversættelse, , , (som sandsynligvis ), og . Ret vildt!

OK Uffe, men nu er du nødt til at blive lidt mere konkret. Kan du komme med nogle eksempler på hvad man KAN man med Node-RED?

Ja for dælen, det kan du tro…

Pillefyret … igen

Jeg har hooket op til Node-RED og får nu events ind ca. hvert 5. minut med målinger af, hvor mange træpiller der er tilbage, og hvor varmt vandet der kommer ud af fyret er.

For hver måling vil jeg gerne kunne se den vist på et “speedometer” (gauge) og på en graf over tid.

Node-RED dashboard til Uffes pillefyr
Node-RED dashboard til Uffes pillefyr

Det har jeg gjort med , der giver nem mulighed for at lave en web-baseret brugergrænseflade i Node-RED.

Node-RED flow fra Uffes pillefyr
Node-RED flow fra Uffes pillefyr

DET var nemt, ik?

I stedet for, at jeg skal holde øje med grafen hele tiden, kunne det være fedt hvis jeg kunne få en push-besked på min telefon, når pillestanden falder under et bestemt niveau.

Node-RED flow fra Uffes pillefyr incl. push-besked
Node-RED flow fra Uffes pillefyr incl. push-besked

Det lavede jeg ved at trække en Switch node ind og skrive “> 55” i den. Jeg har nemlig fundet frem til, at hvis jeg får besked om, at der snart mangler træpiller, når der er 55 cm fra ned til træpillerne, har jeg ca. 24 timer til at tage mig sammen til at få hældt 80–100kg træpiller på.

Min Switch node har to udgange: en der bliver aktiveret, når der er målt mere end 55 cm, og en der får besked, når der er kortere. På den første har jeg trukket en ind. Den sender en push-besked til på min telefon. Den anden Switch-udgang skriver bare teksten ud i en log-fil.

Jeg vil også gerne gemme målingerne, så jeg har trukket en node ind også. Easy-peasy.

Philips Hue

Det første stykke med IoT mange mennesker får indenfor døren derhjemme er pærer fra eller lignende, hvor man fra en app kan tænde og slukke, skrue op og ned og bestemme farven på sit lys.

Der er (selvfølgelig) nogen, der har lavet en , der giver adgang til at styre ens Hue pærer. Det kunne være en tidsstyring, baseret på hvornår , eller baseret på ens kalender.

Jeg har lavet en web-UI til mine Hues, som ret sikkert bliver tilpasset med tiden.

Node-RED flow til styring af Philips Hue
Node-RED flow til styring af Philips Hue

Bil speedometer

Jeg er ret glad for min Volvo, men må indrømme, at jeg drømmer om at skifte den ud med en Tesla en gang. For at komme lidt tættere på, byggede jeg en CarPuter af en RaspberryPi, en , en USB GPS-modtager og .

Den kører selvfølgelig Node-RED, og jeg viser hastigheden og højden over havet (fordi jeg kan) i to gauges på en Dashboard side. (Undskyld billedkvaliteten, men jeg lover det er taget på privat vej).

Node-RED dahboard i Uffes CarPuter med Raspberry Pi og Touch-skærm og GPS
Node-RED dahboard i Uffes CarPuter med Raspberry Pi og Touch-skærm og GPS

CarPuteren kan en masse mere, men det skriver jeg om en anden dag. 🤖

Future Finance Hackathon

Da jeg for nogle uger siden deltog i hos Spar Nord Bank (og vores team vandt 2. pladsen YAY!), byggede vi løsningen med og omkring Node-RED.

Der viste vi bl.a. hvordan man kan bygge Node-RED ind i netbanken, så bankkunder og bankrådgiverne i samarbejde kan programmere flows der hjælper kunderne med deres økonomi.

Her er et eksempel på et flow, der hver d. 20. i måneden checker om man har minimum 3000kr på sin lønkonto, og hvis ikke får kunden en venlig push-besked og en besked på en Slack kanal.

Node-RED flow integreret i SparNords netbank, med AdvisoRED (mockup)
Node-RED flow integreret i SparNords netbank, med AdvisoRED (mockup)

DET system kommer jeg også helt sikkert til at skrive meget mere om. 🇩🇰

Kan Node-RED alt?

Node-RED er ikke perfekt, men det er i mine øjne et fantastisk godt værktøj der har brede anvendelsesmuligheder og har potentialet til at rykke os et godt stykke nærmere på en befolkning, der kan programmere sig ud af hverdagsproblemer.

Jeg ser en ENORM værdi i, at man lynhurtigt kan lave prototyper af selv rimeligt komplekse integrationer, funktioner og systemer med Node-RED, og derved hurtigt kan få sine tossede afprøvet og sit liv forbedret.

Tag et kig på eller hvis jeg skal give en demonstration over en kop kaffe.


Originally published at .

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store