npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@jesson-lewis/kukavarproxy

v0.0.4

Published

Read and write system variables of KUKA robots

Readme

node-red-contrib-kukavarproxy

A Node-RED node for communicating with KUKA robots to read or write variables via TCP protocol. This node supports batch variable operations, connection reuse, and detailed debugging logs, making it suitable for industrial automation scenarios.

Development Note

This node was developed with assistance from AI tools to enhance code quality, provide internationalization support, and optimize communication logic with KUKA robots. The core functionality was designed specifically for KUKAVarProxy protocol interactions while maintaining compatibility with standard Node-RED practices.

Features

  • Read/Write Variables: Read values from KUKA robot variables or write new values to them.
  • Batch Operations: Handle multiple variables in a single request (via array/object input).
  • Connection Management: Reuse TCP connections to reduce overhead and improve efficiency.
  • Debugging Support: Detailed logs with timestamps for easy troubleshooting.
  • Flexible Configuration: Use node settings or dynamic values from input messages.

Installation

Install via Node-RED's Palette Manager:

  1. Open Node-RED (usually at http://localhost:1880).
  2. Go to Manage Palette > Install.
  3. Search for @jesson-lewis/kukavarproxy and click Install.

Or install via npm:

cd ~/.node-red
npm i @jesson-lewis/kukavarproxy

Restart Node-RED after installation.

Node Configuration

Drag the kukavarproxy node from the palette to your flow and double-click it to configure:

| Field | Description | Required | |---------------------|-----------------------------------------------------------------------------|----------| | Name | Custom name for the node (optional). | No | | IP Address | IP address of the KUKA robot or proxy server. | Yes | | Port | TCP port for communication (default: typically 5460 or as per your setup). | Yes | | Variable Name | Default variable name to read/write (ignored if using message variables). | No | | Operation | Default operation: read (read variable) or write (write variable). | Yes | | Value | Default value for write operations (ignored if using message variables). | No | | Use Message Vars| If enabled, use variables from the input message (msg.varname). | No | | Debug | Enable detailed debug logs (recommended for troubleshooting). | No |

Usage Examples

1. Basic Read Operation

Read a single variable using node configuration:

  1. Set Operation to read.
  2. Enter the variable name (e.g., $OV_PRO) in Variable Name.
  3. Connect an input trigger (e.g., Inject node) to the kukavarproxy node.
  4. Connect a Debug node to the output to view the result.

Output Example:

{
  "payload": {
    "$OV_PRO": "100" 
  },
  "status": "success"
}

2. Batch Read Operation (Using Message Variables)

Read multiple variables by passing an array in msg.varname:

  1. Enable Use Message Vars in the node configuration.
  2. Use a Function node to set msg.varname as an array of variables:
    msg.varname = ["$OV_PRO", "$AXIS_ACT", "$POS_ACT", "OUT[2001]"];
    return msg;
  3. Connect the Function node to the kukavarproxy node.

Output Example:

{
  "payload": {
    "$OV_PRO": "100",
    "OUT[2001]":"TRUE" 
  },
  "status": "success"
}

3. Basic Write Operation

Write a value to a variable using node configuration:

  1. Set Operation to write.
  2. Enter the variable name (e.g., OUT[2001]) in Variable Name.
  3. Enter the value (e.g., FALSE) in Value.
  4. Connect an input trigger to the node.

Output Example:

{
  "payload": {
    "OUT[2001]": "FALSE" }
  },
  "status": "success"
}

4. Batch Write Operation (Using Message Variables)

Write multiple variables by passing an object in msg.varname:

  1. Enable Use Message Vars in the node configuration.
  2. Use a Function node to set msg.varname as an object (key: variable name, value: value):
    msg.varname = {
      "OUT[2001]": "TRUE",
      "$OV_PRO": "80"
    };
    return msg;
  3. Connect the Function node to the kukavarproxy node.

Output Example:

{
  "payload": {
    "OUT[2001]":  "TRUE" ,
    "$OV_PRO":  "80" 
  },
  "status": "success"
}

Error Handling

If an error occurs (e.g., connection timeout, invalid variable), the node will:

  • Set msg.status to partial_error (partial failure) or error (total failure).
  • Include an error field in msg.payload for the failed variable(s):
    {
      "payload": {
        "$OV_PRO": { "error": "Read timeout (1 second)" }
      },
      "status": "partial_error"
    }
  • Show a red status dot on the node and log details in the Node-RED console (if debug is enabled).

Troubleshooting

  • "msg.varname must be an array" error: Ensure msg.varname is a valid array when using batch read with Use Message Vars.
  • Connection failures: Verify the robot's IP address, port, and network connectivity.
  • Unexpected values: Check if the variable name matches the KUKA robot's syntax (case-sensitive).
  • Missing node: Restart Node-RED and ensure the node is installed correctly (see Installation).

License

GPL V3 License. See the LICENSE file for details.