Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@flowfuse/nr-project-nodes

FlowFuse1.8kApache-2.00.7.4

A collection of Node-RED nodes for easy communication between Node-RED instances running in the FlowFuse platform

node-red

readme

FlowFuse Project Nodes

A collection of Node-RED nodes for easy communication between Node-RED instances running in the FlowFuse platform.

These nodes act in a similar way to the core Node-RED Link nodes - but can be used to send and receive messages between different Node-RED instances and devices.

Whilst these nodes are published under the Apache-2.0 license, they can only be used with an instance of the FlowFuse platform with an active EE license applied. If you try to install these nodes in an Non FlowFuse EE platform you will see the following error in your Node-RED log: Error: Project Link nodes cannot be loaded outside of FlowFuse EE environment This can be safely ignored.

Prerequisites

  • FlowFuse 0.8+ running with an active EE license and its integrated MQTT Broker
  • FlowFuse 1.14+ for communicating with application assigned devices

Alternatively, you can sign up to FlowFuse Cloud now to try these nodes out.

Nodes

There are three nodes in this collection:

  • Project In - listens for messages being broadcast by other Node-RED instances, or for messages being sent just to this instance
  • Project Out - sends messages to other Node-RED instances
  • Project Call - sends messages to other Node-RED instances and waits for a response

The nodes send the whole msg object. Due to the way the nodes encode messages, there are some data types that do not get sent. For example, the msg.req/msg.res properties used by the core HTTP nodes will not be sent. Instead, they are temporarily removed from the message and re-attached when the message is received back.

Each node is configured with a topic on which it either sends or receives messages on. This is similar in concept to MQTT topics - although the nodes do not currently support using MQTT wildcards in their topics.

The Project Out nodes can either broadcast messages on a topic to anyone listening, or they can send messages on a topic to a specific other project.

The Project In nodes do the opposite - they can either listen for messages being broadcast, or for messages sent directly to them.

The Project Call node can be used to send a message to another Project In node and then wait for a response, with a built-in timeout if it doesn't arrive. The response is sent back using a Project Out node configured to respond to the call node.

changelog

0.7.4

  • Bump flowfuse/github-actions-workflows from 0.34.0 to 0.36.0 (#111) @dependabot
  • Bump cookie, node-red and express (#110) @dependabot
  • Bump flowfuse/github-actions-workflows from 0.30.0 to 0.34.0 (#109) @dependabot
  • Bump flowfuse/github-actions-workflows from 0.29.0 to 0.30.0 (#107) @dependabot
  • Bump express and node-red (#106) @dependabot
  • Randomise reconnect period (#104) @Steve-Mcl
  • Bump flowfuse/github-actions-workflows from 0.28.0 to 0.29.0 (#105) @dependabot

0.7.3

  • Ensure all pub/sub MQTT operations use QoS 2 (#99) @Steve-Mcl
  • Bump flowfuse/github-actions-workflows from 0.1.0 to 0.28.0 (#97) @dependabot

0.7.2

  • Bump axios from 1.7.2 to 1.7.4 (#93) @dependabot

0.7.1

  • Bump tibdex/github-app-token from 1 to 2 (#77) @dependabot
  • Update release-publish.yml to NodeJS v18 (#88) @hardillb
  • Bump ws and node-red (#87) @dependabot
  • Bump JS-DevTools/npm-publish from 2 to 3 (#76) @dependabot

0.7.0

  • Proxy support (#81) @Steve-Mcl
  • Update build.yml to run tests and other node versions (#83) @Steve-Mcl
  • Bump actions/setup-node from 1 to 4 (#79) @dependabot
  • Bump actions/checkout from 1 to 4 (#75) @dependabot
  • Enable dependabot for github actions (#73) @ppawlowski

0.6.4

  • Add 'node-red' keyword (#71) @knolleary

0.6.3

  • Add a 2 minute session expiry on the mqtt connection (#69) @knolleary

0.6.2

  • Fix Project Nodes multiple MQTT connections issue (#66) @Steve-Mcl
  • Display "feature not available" if feature flag is false (#63) @Steve-Mcl
  • Better determination of device owner (#65) @Steve-Mcl
  • Update npm-publish action version to v2 (#61) @ppawlowski

0.6.1

  • Disable direct message option for application owned devices (#59) @Steve-Mcl

0.6.0

  • Add support for communicating with app assigned devices (#55) @Steve-Mcl
  • FIX: Remove node-red container rebuild dispatcher (#54) @ppawlowski

0.5.0

  • Pin reusable workflows to v0.1.0 (#53) @ppawlowski
  • Update npm package name (#52) @knolleary
  • Update ff references in package.json (#50) @knolleary
  • Change repo references in workflows after github org rename (#49) @ppawlowski
  • Publish nightly package to npmjs (#48) @ppawlowski

0.4.0

  • Fix undefined (reading 'name') error when msg is from a http-in node (#43) @Steve-Mcl
  • Bump word-wrap from 1.2.3 to 1.2.5 (#39) @app/dependabot
  • Pin reusable workflow to commit SHA (#46) @ppawlowski
  • Disable scheduled package build (#45) @ppawlowski
  • Add nr-launcher package build dispatcher (#41) @ppawlowski
  • Add node-red container build dispatch in the node package build pipeline (#40) @ppawlowski
  • FIX: Publish package on schedule (#38) @ppawlowski
  • FIX: Allow publish only when changes are pushed to main branch (#37) @ppawlowski
  • Introduce build and publish workflow (#36) @ppawlowski
  • Chore: Set root flag in eslint (#35) @Pezmc
  • Add package-lock.json (#33) @Pezmc

0.3.0

  • Use shared subscriptions where appropriate for HA support (#29) @knolleary

0.2.2

  • Fix frequent disconnections - Ensure keepalive is set (#25) @Steve-Mcl

0.2.1

  • Update docs to reflect 'project' to 'instances' naming changes (#23) @knolleary

0.2.0

  • Add device ID, name and type to msg.projectLink (#20) @Steve-Mcl
  • Ensure ws URLs with ipv6 address can connect MQTT (#19) @Steve-Mcl
  • Update estlint (#16) @knolleary