📖 Kb | 📎 Development | 🔖 Node-RED, Communications, Protocols, MQTT, Websockets, TCP, UDP

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.

📖 Kb | 📎 Development | 🔖 JavaScript, ECMAscript

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

📖 Kb | 📎 Development | 🔖 Node-RED, FAQ

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.

📖 Kb | 📎 Development | 🔖 Node-RED, FAQ

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.

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.

📖 Kb | 📎 Development | 🔖 Node-RED, FAQ

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.

📖 Kb | 📎 Development | 🔖 Node-RED

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.

📖 Kb | 📎 Development | 🔖 Node-RED, FAQ

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.

📖 Kb | 📎 Development | 🔖 Node-RED

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.

📖 Kb | 📎 Development | 🔖 Node-RED, Node.JS, JavaScript

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.

📖 Kb | 📎 Development | 🔖 Node-RED, npm, Node.JS, JavaScript, Debugging

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.

📖 Kb | 📎 Development | 🔖 Node-RED, Node.JS, JavaScript, Debugging, Performance

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.

📖 Kb | 📎 Development | 🔖 Node-RED

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.

📖 Kb | 📎 Development | 🔖 JavaScript, ECMAscript

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.

📖 Kb | 📎 Development | 🔖 JavaScript, ECMAscript, node.js, nodejs

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.