node-red-contrib-ezo

1.4.0 • Public • Published

node-red-contrib-ezo

This Node-Red is designed to communicate with Atlas Scientific Ezo modules over I2C.

Install

Either use the Manage Palette option in the Node-RED Editor menu, or run the following command in your Node-RED user directory - typically ~/.node-red

npm install --unsafe-perm node-red-contrib-ezo

Usage

Designed to accept all standard commands from the Atlas Scientific documentation.

Input

All commands can be sent as a single string in msg.payload, those which have a command and input value separated by a comma can be broken into msg.command and msg.payload properties. Commands can differ from one Ezo module to another, please refer to Atlas Scientific's website for documentation. Below are a few examples of commands structured in an acceptable manner.

Since v1.3.0 msg.address can be set dynamically on input. Since v1.4.0 msg.bus can be set dynamically on input.

msg = { payload: 'L,0' };  // turns led off

msg = { command: 'L', payload: 1 };  // turns led on

msg = { command: 'L', payload: false };  // turns led off

msg = { command: 'L', payload: '1' };  // turns led on

msg = { payload: 'Status' };  // returns status

msg = { command: 'R'};  // reads probe

msg = { command: 'R', address: 105, bus: 1 }  // reads probe at address 105 and bus 1

Ouptut

Some commands such as 'Sleep', 'Factory', and 'I2C,n' do not provide a response so will not generate an output message. Most commands will generate a response containing the original command and a value, however some Ezo modules can generate multiple values in which the msg.payload will contain an array. If the output value can be parsed to a number it will be, otherwise it will be a string. Since v1.1.1 extra properties in input pass through to output.

msg = {
    topic: String,
    command: String,
    payload: String / Number / Array,
}

Examples of commands and responses:

Ezo Board: Temperature
Command: Status
Raw Response: 1?STATUS,P,3.28

Node Output:

msg = {
    topic: 'tempurature',
    command: 'STATUS',
    payload: [
        'P',
        '3.28',
    ],
};

--- OR ---

Ezo Board: pH
Command: R
Raw Response: 19.831

Node Output:

msg = {
    topic: 'ph',
    command: 'R',
    payload: 9.831,
};

Errors

Since v1.1.0 errors are catchable by the CATCH node. If an error occurs, a message will not be sent. Common errors include the following:

'Invalid payload!' - Error: Command must be under 32 characters.
'Syntax Error!' - Error: Ezo board did not recognize the command.
'No data to send.' - Warning: Command sent to the Ezo board was empty.

Important Note

This node uses the I2C-bus package from @fivdi. You can find his work on github: https://github.com/fivdi/i2c-bus

Package Sidebar

Install

npm i node-red-contrib-ezo

Weekly Downloads

7

Version

1.4.0

License

MIT

Unpacked Size

18.3 kB

Total Files

6

Last publish

Collaborators

  • maddytp