Node-RED integration for Streamr

A view of the Node-RED interface showing Streamr’s classic Helsinki Tram Demo feed.

At Streamr Labs we are constantly looking for ways to further the adoption of the Streamr stack. As we are trying to solve real world problems around utilising decentralized technologies, we occasionally delve back to centralized world and find interesting cross-sections of tech.

Lately we have been prototyping how to wrap the Streamr Node.js client for Node-RED. We have created Streamr publish and subscribe nodes for Node-RED that utilise our existing Streamr javascript client for publishing and subscribing to our data API.

What is Node-RED and why create an integration?

Node-RED is a flow based programming tool for internet of things originally built by IBM. If you haven’t yet checked it out, take a look here. One might find similarities between our Editor and Node-RED’s editor, but they are fundamentally quite different. Without going too deep into these differences, we have modules on canvases and they have nodes on flows.

What excites us about Node-RED is the vast number of existing libraries and integrations already build for it. There are modules for everything including how to integrate home devices into automatic networks, to modules that integrate to third party AI and ML endpoints. And now there is a module to integrate to Streamr’s data API.

You can find our Streamr node for Node-RED from Streamr’s Github repository: https://github.com/streamr-dev/node-red-streamr-client-node
And also from: https://flows.nodered.org/node/node-red-contrib-streamr

An example flow which uses tram data from Helsinki (our classic Streamr demo) can be found here: https://flows.nodered.org/flow/b67885ec48a9a5ae213519c9a6c825c9

Helsinki tram data being pushed from Streamr and into a Node-RED interface

You can reach out to the community on our new community developer forum to let us know how to improve this integration and what else you’d like to see us integrate. In the meantime here is a short tutorial using the tram demo data to help you get started: