Skip to content

Test nodes for Node-RED for learning and experimenting, best practice, lots of hints and notes

License

Notifications You must be signed in to change notification settings

TotallyInformation/node-red-contrib-jktesting

Repository files navigation

node-red-contrib-jktesting

An EXPERIMENTAL Node-RED testing/learning set of nodes.

Designed as an experimental learning and testing tool for trying out different things when designing Node-RED nodes.

You can also use it as a template for writing your own nodes.

This node has several purposes:

  1. Learn the order of execution and events for learning how to program you own nodes.
  2. Show some best practices and standards for code when developing your own nodes.
  3. Act as a template I or you can use for your own nodes.

Node Creation Workflow

The workflow I use to create new nodes is:

  1. Create a new repo on GitHub - don't yet tag it with node-red until you are ready to go public
  2. Clone the repo to my source files folder on the dev machine
  3. Manually create a soft-link from the new folder into ~/.node-red/node_modules (I don't use npm link as that does strange things like creating a global link)
  4. Create the package.json, README.md, LICENCE, CHANGELOG.md, .gitignore files in my source folder. Create a sub-folder called "nodes" and create the html and js files in there.
  5. In the source folder, do npm install if you need to install any dependencies
  6. Restart Node-RED.

Design

Physical file/folder location summary

Folders and files for resources on the device running Node-RED are:

Known Issues

To Do

Changes

See the Change Log for details.

Pre-requisites

See the package.json file for details.

Requires at least Node.JS v6 and Node-RED v0.16

Install

Run the following command in your Node-RED user directory (typically ~/.node-red):

npm install node-red-contrib-jktesting

Run Node-RED and add an instance of the test node.

There is also a simple example in the library.

Nodes

JK Simple Test (jktest)

Node Instance Settings

Each instance of the test node has the following settings available.

Name
A short description shown in the admin interface
Topic
A topic name to use if the incoming msg does not contain one.
Server
An example of using a configuration node.

Inputs

payload `string | buffer`
The payload of the message to publish.
topic (optional) `string`
The MQTT topic to publish to.

Outputs

  • Standard output

    _msgcounter integer
    The number of messages recieved by the node instance since either the last reset of Node-RED or the last deployment of the node instance.
    payload string | buffer
    A copy of any inbound payload.
    topic string
    A copy of any inbound topic if present. Otherwise, the topic from the node's settings.
    config object
    A copy of the name and server from the configuration.

Discussions and suggestions

Use the Node-RED google group for general discussion about this node. Or use the GitHub issues log for raising issues or contributing suggestions and enhancements.

Contributing

If you would like to contribute to this node, you can contact Totally Information via GitHub or raise a request in the GitHub issues log.

Developers/Contributors