Development
Node-RED communications protocols
Node-RED has an excellent choice of communications protocols available to it. This article looks at the main options and their strengths and weaknesses. It also gives suggestions as to when you may wish to use them.
How to reliably detect the object type of a JavaScript variable?
The nature of JavaScript means that everything is treated as an object (sort of). It can be remarkably hard to reliably detect what type of object something is and there isn’t a single function in JavaScript that can be used in all cases. So how do we do it? Here are some options
FAQ 4: How do I see the Node-RED log?
Just as there are several possible ways to run Node-RED, there are several ways to access the log.
FAQ 3: What different ways are there to install Node-RED and which is best?
There are several possible ways to install Node-RED, this post provides an overview and some thoughts about when you might want to use which approach.
📖 Posts | 📎 Information Management, Data, Development, Software | 🔖 Databases, Dates, DBA, Debugging, Development, Software, Solutions Architecture, Standards, Timestamps
Rules for working with dates and times
Dates and times are incredibly complex. They can be different in different countries, languages. They are often inconsistent and have weird edge-cases. These are some basic rules I apply when working with dates and times.
FAQ 2: How can I run multiple instances of Node-RED on the same server device?
There are all sorts of reasons to want to run more than a single instance of Node-RED and several ways to do it.
A Glossary of Node-RED terms
For those not used to it, the terminology used in Node-RED can occasionally be confusing. Due in part to the overloading of some terms. So I’ve come up with this glossary to help keep myself from getting confused.
FAQ 1: Should I use a function node or a flow of core nodes?
There are usually many ways to achieve something in Node-RED. A common question is whether or when to use a function node or a collection of core nodes to achieve an outcome.
Using JSONata to transform msg data
JSONata is a syntax designed by IBM to help reformat and restructure JSON data in a similar vein to the way that XLST is used to transform XML data.
Creating a notification in the Admin UI
Node-RED’s admin UI has a built-in notification (toast) pop-up message feature. This article explains how to use it when creating custom nodes as it isn’t currently well documented.
Cleaning up npm package install problems
Node-RED uses npm to manage package installations such as its nodes. Sometimes, you can get into a situation where you start getting lots of npm installation or removal issues and it feels like you are going round in circles trying to fix things. If so, time to call it a day and to get drastic! Here, I try to explain an easy way to fix things quickly and completely without side effects.
Analysing the Performance of Node-RED
Node-RED is a powerful platform for prototyping and rapid development but it is complex. It has a lot of moving parts and it can be hard to know what might be causing performance bottlenecks. This article tries to give some hints and tips about analysing those bottlenecks and how to resolve them.
A more comfortable way to edit the code for creating custom nodes
Node-RED allows us to create custom nodes to extend the features. While this is a great feature, actually writing the code can be tricky. In part because the code for the admin configuration panel is contained in an html file containing 3 script entries that are Node-RED specific. This post shows you a relatively easy way to split that into 3 files and combine them with a build step using an npm cross-platform script.
How to take control of JavaScript console output
All browsers have the console object that lets you output to the developer console log. But in production, you don’t want this output, only in development. So here is the easiest way I’ve found to take control.
What JavaScript versions are there and how do they map to Node.JS versions?
There are now far too many versions of JavaScript. Worse, there are several ways to refer to a JavaScript version. Then we have Node.JS which has its own versioning. This post tries to summarise it all.