uhppoted (juː hɒp ɪt eɪd)
uhppoted
implements a set of cross-platform building blocks for access control systems based on the
UHPPOTE UT0311-L0x TCP/IP Wiegand access control boards. Currently available components include:
- controller API
- CLI for scripting and system administration
- REST service for integration with HTTP servers and mobile clients
- MQTT endpoint for integration with IOT systems e.g.
- AWS S3 integration for file managed access control lists
- Google Sheets integration for spreadsheet managed access control lists
- Integration with the Wild Apricot member management system
- uhppoted-app-db SQL DB integration for access control lists managed in a database
- Node-RED low code environment integration
- uhppoted-nodejs NodeJS package
- uhppoted-python Python package
- Home Assistant custom component
The components supplement the manufacturer supplied application which is 'Windows-only' and provides limited support for integration with other systems.
Hardware:
- uhppoted-breakout, a customisable/hackable replacement CPU board
- uhppoted-wiegand, a prototype RaspberryPi Pico/PicoW Wiegand reader/emulator
Note:
FYA, after much discussion it has been decided that uhppoted is pronounced u-hop-id-ay-d (juː hɒp ɪt eɪd).
Supported operating systems:
- Linux
- MacOS
- Windows
- ARM and ARM7 (e.g. RaspberryPi)
The primary development language for this repository is Go, but code generated native bindings for the following languages also exist:
uhppoted-dll implements a shared-lib/DLL for interop with languages other than Go. The implementation includes bindings to:
- C
- C++
- C#
- Python
- Clozure Common Lisp
- ioBroker - kBrausew/ioBroker.wiegand-tcpip
- Andre Becker has written a short guide to getting up and running with uhppoted-mqtt and OpenHAB using Docker.
As per this issue [Question] Compatible Hardware, UHPPOTE appears to be a specific branding (or distributor) for the access control boards manufactured by Shenzhen Wiegand Industrial Co., Ltd.
The software in this repository has been tested and is known to work with these specific boards:
Source | Item |
---|---|
Amazon | UHPPOTE Professional Wiegand 26-40 Bit TCP IP Network Access Control Board with Software For 4 Door 4 Reader |
AliExpress | TCP/IP RFID ACCESS CONTROL SYSTEM Wiegand 26 |
Version | Notes |
---|---|
6.56 | Minimum firmware version (cf. carbonsphere/UHPPOTE |
6.62 | Lowest firmware version in use |
8.92 | Latest tested firmware version |
Notes:
- Firmware v6.62 sends anomalous listen events with
0x19
as the start of message identifier. This appears to have been fixed in later firmware versions but patches to support these events are included in:
Almost any reader with a Wiegand-26 interface should probably work (there have been reports of offbrand readers that don't) but the readers below are in active use:
Reader | Notes |
---|---|
HID ProxPoint Plus 6500 | Old stock and/or refurbished readers are often available on ebay |
IKeys barcode and QR code scanner | Ref. Put Card - Date with Time |
Newland FM430L barcode and QR code scanner | Ref. Put Card - Date with Time |
v0.8.9 - 2024-09-06
- Added TCP transport support throughout.
- Added uhppoted-breakout project.
- Updated uhppoted-dll to support Windows LTSC.
- Added support for default card start/end dates to uhppoted-httpd.
- Updated to Go 1.23.
Module | Description |
---|---|
uhppote-core | core library, implements the UP interface to UT0311-L0x controllers |
uhppoted-lib | common utility function library |
uhppote-simulator | UT0311-L04 simulator for development use |
uhppote-cli | command line interface |
uhppoted-rest | daemon/service with REST API for remote access to UT0311-L0x controllers |
uhppoted-mqtt | daemon/service with MQTT endpoint for remote access to UT0311-L0x controllers |
uhppoted-app-s3 | cron'able utility to download/upload access control lists from/to AWS S3 |
uhppoted-app-sheets | cron'able utility to download/upload access control lists from/to Google Sheets |
uhppoted-app-db | cron'able utility to download/upload access control lists from/to a SQL DB |
uhppoted-app-wild-apricot | cron'able utility to manage access control lists from Wild Apricot |
uhppoted-app-home-assistant | Home Assistant custom component |
node-red-contrib-uhppoted | NodeJS nodes for Node-RED low code environment |
uhppoted-nodejs | Standalone NodeJS module |
uhppoted-python | Standalone Python package for PyPI |
uhppoted-dll | shared-lib/DLL for cross-language interop |
uhppoted-codegen | Model based code generator for native language bindings |
uhppoted-tunnel | UDP tunnel for remote access |
Module | Description |
---|---|
uhppoted-app-db | cron'able utility to download/upload access control lists from/to a SQL DB |
uhppoted-app-s3 | cron'able utility to download/upload access control lists from/to AWS S3 |
uhppoted-app-sheets | cron'able utility to download/upload access control lists from/to Google Sheets |
uhppoted-app-wild-apricot | cron'able utility to manage access control lists from/t Wild Apricot |
uhppoted-app-home-assistant | Home Assistant custom component |
node-red-contrib-uhppoted | NodeJS nodes for Node-RED low code environment |
kBrausew/ioBroker.wiegand-tcpip | ioBroker |
Module | Description |
---|---|
uhppote-cli | Command line interface |
uhppoted-httpd | HTML browser interface |
Module | Description |
---|---|
uhppoted-wiegand | Prototype RP2040 Wiegand reader/emulator |
uhppoted-breakout | Customisable replacement CPU board |
Binaries for Linux, Windows, MacOS and Raspbian/ARM7 are distributed in the tarball for each release. To install the binaries, download and extract the tarball to a directory of your choice.
The NodeRED, NodeJS and Python packages are installable from the public repositories:
uhppoted is the parent project for the individual components which are referenced as git submodules - to clone the entire source tree:
git clone --recurse-submodules https://github.com/uhppoted/uhppoted.git
The supplied Makefile
has targets to build binaries for all the supported operating systems:
make build
or
make release
To pull upstream changes for all submodules:
git submodule update --remote
If you like the project and you really want to 🙂:
- carbonsphere/UHPPOTE
PHP
- carbonsphere/DoorControl
PHP
- andrewvaughan/uhppote-rfid
Python
- tachoknight/uhppote-tools:
Go
- jjhuff/uhppote-go:
Go
- pawl/Chinese-RFID-Access-Control-Library
- Dallas Makerspace:Reverse Engineering RFID Reader
- wemakerspace/wiegand-daemon
- wemakerspace/weigeng-js
- realashleybailey/DoorControl
- kBrausew/ioBroker.wiegand-tcpip
- TCP/IP Wiegand Access Controller (Zutrittskontrolle)
- YouTube: UHPPOTE 2 door basic set-up
- wouterdebie/uhppote-rs