Skip to content
Node-red nodes for Hapcan Home Automation System
HTML JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



The node.js package that brings HAPCAN Home Automation Project support in node-red.

Nodes are using the Hapcan ethernet module to communicate between Hapcan bus and node-red.

Hardware requirements

  • Hapcan based infrastructure
  • Hapcan ethernet module

New in version 2.0

Added new Discover devices function which finds Hapcan devices in the bus. Once devices are found they are stored in a configuration node, so the discover function should be used only when Hapcan network is somehow changed. Devices list is then used in nodes for quick device selection - no need to set node and group anymore! But You can if You want.

There is also new frames receiving algorithm implemented, which should be shorter frames proof. This frames emitted by Hapcan programmer when connecting to the bus cause invalid frame errors and broke whole receiving mechanizm.


Using NODE-RED installer

Just open Manage palette from node-red dashboard menu, switch to Install tab and search for hapcan word. Only stable releases.

Using npm

Only stable releases

npm install node-red-contrib-hapcan

Using github

Latest available version - working in most cases.

git clone

What You get in the package?

Package contains multiple input and output nodes for different Hapcan modules. You don't need to know any Hapcan's messages to make it work. Each node uses special (hidden) gateway node to communicate with Hapcan system. UNIV3 and UNIV1 modules support included.

Currently available nodes:


Simply drag any Hapcan node and double click to open edit mode. First, You need to configure gateway. You need to do it only once. Any other node will use this gateway.


Each node has help provided, so You can read about parameters and its possibilities.

You can configure each input node to receive data from selected node, but You can also filter the messages if this node has many inputs (for example 14 buttons module).

Input nodes produces json object payload that contains simply to understand Hapcan message values that You can use in Your flow. There are also userField value available, so it is possible to output custom defined value on each input state.

Output nodes delivers default action, that You can choose for the selected Hapcan module (for example toggle action in relay output), so any payload received by this node will trigger the default action. You can also control Hapcan module by passing more detailed payload with topic set to control value. Details are available in the help panel for each node.

You can control the nodes by payload in many ways. For example, let's consider relay output. You can pass string value with "ON", "Off", "Toggle" text (case insensitive) to switch channel selected in node configuration. You can also pass number 0,1,2 (Hapcan module compatible values). You can also pass bool value of true or false, to enable or disable relay - in this case the possible actions are limited to ON and OFF. Finally, you can pass object (JSON) where You have full control over node - You can override default settings in configuration then.

Example of RGB output node configuration - it contains each control frame fields for simple use.

RGB output node

Thera are also Custom input and output nodes which allows You to send and receive any messages to and from the bus. You can name each data byte as You want. It also has a preset menu, with common Hapcan's messages frames, ready to be used.

Custom nodes

Discover devices function allows You to search the Hapcan bus for devices present, and then select them easily in any node configuration instead remember necessity for node and group number for each device.

Discover devices

You can’t perform that action at this time.