Node-RED module that implements an API for interacting with a UHPPOTE TCP/IP Wiegand access controller board. The API supports device and card management as well as handling for events.
-
node‑red
version 2.2.3+ -
node.js
version 14.18.3+ -
ip.js
version 1.1.5+
For the latest updates see the CHANGELOG.md
To install the stable version use the Menu - Manage palette
option and search for node-red-contrib-uhppoted
,
or run the following command in your Node-RED user directory (e.g. ~/.node-red
on MacOS and Linux):
npm install node-red-contrib-uhppoted
Restart your Node-RED instance and you should have the uhppoted
nodes available in the palette.
If you want to try the development version from the node‑red‑contrib‑uhppoted github repository:
cd ~/.node-red/node_modules
git clone https://github.com/uhppoted/node-red-contrib-uhppoted.git
cd node-red-contrib-uhppoted
npm install
Please note that updating from node-red-contrib-uhppoted
v0.x to v1.x is a breaking change. node-red-contrib-uhppoted
v1.0
fixed node name conflicts with other NodeRED modules and unfortunately changing node names throughout requires a breaking change.
Please see:
- Issue #11: config node name conflict for the original cause
- Discussion: prefixing all nodes with uhppoted- to avoid naming conflicts for any comments and further discussion.
- HOWTO: Migrating a NodeRED flow from v0.9.x to v1.0.x
Node | Description |
---|---|
get‑devices |
Fetches a list of access controllers on the local LAN |
get‑device |
Retrieves the information for a single access controller |
set‑ip |
Sets the controller IP address, net mask and gateway address |
get‑status |
Retrieves the current controller status |
get‑time |
Retrieves the current controller date and time |
set‑time |
Sets the controller date and time |
get‑door‑control |
Retrieves the control configuration for a controller door |
set‑door‑control |
Sets the control configuration for a controller door |
open‑door |
Remotely opens a controller door |
get‑card |
Retrieves a card record from a controller |
get‑card-by-index |
Retrieves a card record from a controller by record number |
put‑card |
Adds or updates a card record on a controller |
delete‑card |
Deletes a card record from a controller |
delete‑all‑cards |
Deletes all card records stored on a controller |
get-time-profile |
Retrieve a time profile from a controller |
set-time-profile |
Defines a time profile on a controller |
clear-time-profiles |
Deletes all time profiles defined on a controller |
clear-task-list |
Clears a controller task list |
add-task |
Adds a new task to a controller's task list |
refresh-task-list |
Refreshes a controller task list |
record-special-events |
Enables or disables door events |
get‑event‑index |
Retrieves the current event index from a controller |
set‑event‑index |
Sets the current event index on a controller |
get‑event |
Retrieves a single event from a controller |
set-pc-control |
Delegates access control to an offboard application |
set-interlock |
Sets the controller door interlock mode |
activate-keypads |
Activates/deactivates the reader access keypads |
set-door-passcodes |
Sets the supervisor keypad passcodes for a door |
restore-default-parameters |
Resets a controller to the manufacturer default configuration |
listen |
Establishes a listening connection for controller events |
All nodes take a message with JSON object payload as input and send a message with a JSON object payload as output.
The nodes can (optionally) accept a configuration that overrides the default settings:
Description | Default | |
---|---|---|
timeout |
Request execution timeout (in milliseconds) | 5000 |
bind |
UDP address to bind to for requests |
0.0.0.0 |
broadcast |
UDP address for broadcast requests |
255.255.255.255 |
listen |
UDP address:port on which to listen for events | 0.0.0.0:60000 |
controllers |
List of controller specific IPv4 address:port overrides for systems where a controller is either not located on the same LAN (i.e. cannot receive or respond to UDP broadcasts) or where directed UDP messages are preferred. | (none) |
debug |
Enables logging of request/response messages to the console | false |
The node‑red‑contrib‑uhppoted github repository includes a set of basic examples that demonstrate the usage of each node, as well as a more complex dashboard project that combines the nodes to create a dashboard:
Node | Description |
---|---|
1‑get‑devices |
Example flow for the get‑devices node |
2‑get‑device |
Example flow for the get‑device node |
3‑set-ip |
Example flow for the set‑ip node |
4‑event-listener |
Example flow for the listen . get-listener and set‑listener nodes |
5‑get-status |
Example flow for the get‑status node |
6‑time |
Example flow for the get‑time and set‑time nodes |
7‑doors |
Example flow for the get‑door‑control , set‑door‑control , open‑door and activate-keypads nodes |
8‑cards |
Example flow for the get‑cards , get‑card , get‑card‑by‑index , put‑card , delete‑card and delete‑cards nodes |
9-time-profiles |
Example flow for the get-time-profile , set‑time-profile and clear-time-profiles nodes |
10-tasklist |
Example flow for the clear-task-list , add-task and refresh-task-list nodes |
11-events |
Example flow for the record-special-events , get‑event‑index , set‑event‑index and get‑event nodes |
12-set-pc-control |
Example flow for the set-pc-control node |
13-set-interlock |
Example flow for the set-interlock node |
The dashboard example requires the following additional components to be installed into the palette:
Please create an issue in the node‑red‑contrib‑uhppoted github repository.