node-red-contrib-ta-cmi-coe 1.1.1

Node-RED nodes for TA CMI CoE (CAN over Ethernet)

npm install node-red-contrib-ta-cmi-coe

node-red-contrib-ta-cmi-coe

🇩🇪 README Deutsche Version

Platform Release Downloads CommitDate License Languages

Node-RED library for reading and writing values ​​to Technische Alternative CMI via CAN over Ethernet (CoE).

Functionality

  • CoE Input Node: Receives individual analog and digital values ​​from the CMI
  • CoE Output Node: Sends individual values ​​to the CMI/controller
  • CoE Monitor: Receives and monitors packets from all sources
  • Support for CoE versions 1 & 2
  • Automatic conversion of analog values ​​based on Unit ID
  • Support for TA-defined measurement parameters
  • Configuration of sending condition & interval

BuyMeCoffee


Installation

Via Node-RED Palette Manager (recommended)

  1. Open Node-RED
  2. Menu → Manage palette → Install
  3. Search for node-red-contrib-ta-cmi-coe
  4. Install the package

Manual Installation

cd ~/.node-red
npm install node-red-contrib-ta-cmi-coe

Local Development Environment

cd ~/.node-red
git clone https://github.com/mayflo/node-red-contrib-ta-cmi-coe.git
cd node-red-contrib-ta-cmi-coe
npm link
cd ~/.node-red
npm link node-red-contrib-ta-cmi-coe

Restart Node-RED.

Prerequisites

  • CMI from Technische Alternative with firmware 1.39.1 or higher
  • The CoE version used is configured on the CMI (Settings > CAN > CoE).
  • For receive: CoE outputs must be configured on the CMI (Settings > Outputs > CoE).
  • For transmit: CAN inputs must be configured on the controller.
  • To receive messages, the CMIs used require a fixed IP address.
  • Communication takes place via UDP ports, which must be opened on the Node-RED host (CoE V1 Port 5441 / CoE V2 Port 5442).

Supported Devices

The library was developed and tested for the UVR610, but it works with all devices connected via the CMI's CAN bus:

  • UVR16x2
  • UVR1611
  • UVR61-3
  • X2 Controller
  • Other CAN bus devices from Technische Alternative

Quick Start

1. Create a CMI Configuration Node

First, create a CMI configuration:

  • Open any node for editing
  • Click the plus sign next to "CMI Config" → "Add new node..."
  • IP Range: IP address range of the UDP port (0.0.0.0 = all interfaces, 127.0.0.1 (local network)
  • CMI Address: (Fixed) IP address of the CMI
  • CoE Version: CoE V1/V2 (see CMI Settings → CAN)

2. Configure the CMI

For receiving from the CMI (CoE Input):

On the CMI under Settings → Outputs → CoE:

  • Input: CAN bus input (e.g., CAN 1)
  • IP: IP address of Node-RED
  • Node: Node Number of the input node
  • Network Output: Number of the output (1-32)
  • Sending Conditions: Suppression of small & frequent changes, interval for repeated sending (as required)

For sending to the CMI (CoE Output):

On the controller: Configure the CAN input

  • Node: Value from the "Node Number" of the output node
  • Output Number: Number of the output (1-32)
  • Measured Unit: "Automatic" for Node-RED Unit

Node Types

CoE Input Node

Receives values ​​from the CMI.

Output Message:

{
    payload: 22.5,                    // The value
    topic: "coe/10/analog/1",         // Format: coe/{node}/{type}/{output}
    coe: {
        timestamp: 2026-01-08T        // Reception Time
        sourceIP: "192.168.1.100",    // IP of the CMI
        nodeNumber: 10,               // CAN Node Number
        dataType: "analog",           // Data Type
        blockNumber: 1,               // CoE Block Number (only V1)
        outputNumber: 1,              // Network Output
        state: 22.5,                  // Value or Digital State
        unit: 1,                      // Unit ID (z.B. 1 = °C)
        unitName: "Temperature °C",   // Unit name
        unitSymbol: "°C°",            // Unit symbol
    }
}

CoE Output Node

Sends individual values ​​to the CMI.

Input Message:

// Simple:
msg.payload = 22.5;

// With own unit:
msg.payload = 22.5;
msg.coe = { unit: 1 };  // Overrides config

Troubleshooting

Not receiving any data

  1. Check CMI CoE outputs: Check if IP address and port are correct
  2. Local IP: Try the maximum receive range with Local IP = 0.0.0.0 (all) (especially for Docker environments)
  3. Firewall: Check if ports 5441/UDP (CoE V1) or 5442/UDP (CoE V2) are open in the firewall
  4. Node Number: Check if it matches the CMI configuration
  5. Enable Debug: Activate "Receive All" and check the debug output

Sending not working

  1. Is the CMI reachable? Ping the CMI IP address
  2. CAN input on controller: Check if node number and output number are correct
  3. Timeout on controller? Use the "Send all outputs" interval

Multiple CMIs

  • Different node numbers must be used.

Incorrect values

  • Values ​​too large: CAN bus V1 is limited to ±32,767 (dimensionless)
  • Incorrect unit: Some units (working number, Euro) have limitations
  • Decimal places: Check if the correct unit ID is being used

Known limitations

  1. Max. value range: CAN bus version 1 is limited to ±32,767 (use V2 for a larger value range)
  2. No acknowledgment: CoE does not provide confirmation (fire-and-forget)
  3. The CMI functions as a gateway: Values ​​are transmitted from the CMI via CoE, but cannot be sent directly to the CMI. The values ​​are forwarded from the CMI to the CAN bus and read by the controllers.

Extended Usage

Custom Unit Conversion

// In Function Node before output:
const rawValue = msg.payload * 100;  // 2 decimal places
msg.payload = rawValue;
msg.coe = { unit: 0 };  // dimensionless
return msg;

License

Published under the Apache 2.0 License

  • ✅ Private and commercial use
  • ⚠️ No liability for damages resulting from use

Credits

Based on the protocol understanding and documentation of:

Support

Author

Author


Note: This library was developed in my free time. Support is provided as it becomes available. 😊

Node Info

Version: 1.1.1
Updated 1 day ago
License: Apache-2.0
Rating: 5.0 1

Categories

Actions

Rate:

Downloads

4 in the last week

Nodes

  • coe-input
  • coe-output
  • coe-monitor
  • cmiconfig

Keywords

  • node-red
  • technische-alternative
  • ta
  • cmi
  • coe
  • can-over-ethernet
  • uvr
  • heating
  • automation

Maintainers