Skip to content
/ uhppoted Public
forked from uhppoted/uhppoted

Cross-platform components for building access control systems based on the UHPPOTE UT0311 TCP/IP access controller boards

License

Notifications You must be signed in to change notification settings

Uzzi/uhppoted

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

build

uhppoted

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:

  • device API
  • external application 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
  • Node-RED low code environment integration
  • NodeJS

The components supplement the manufacturer supplied application which is 'Windows-only' and provides limited support for integration with other systems.

Operating systems

Supported operating systems:

  • Linux
  • MacOS
  • Windows
  • ARM7 (e.g. RaspberryPi)

This project is a fork of the original Go CLI project which had outgrown its initial scope and was relocated to uhppoted to simplify future development.

shared-lib/dylib/DLL

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

3rd party integrations

Compatible Hardware

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

Firmware versions

Version Notes
6.56 Minimum firmware version (cf. carbonsphere/UHPPOTE
6.62 Lowest firmware version in use
8.92 Latest tested firmware version

Notes:

  1. 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:

Readers

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

Releases

  • v0.7.3: Adds uhppoted-dll shared-lib to components
  • v0.7.2: Replaces event rollover with forever incrementing indices to match observed behaviour
  • v0.7.1: Adds support for controller task list management
  • v0.7.0: Adds support for time profiles. Includes bundled release of uhppoted-nodejs NodeJS module
  • v0.6.12: Reworked concurrency and additional configuration
  • v0.6.10: Initial release for uhppoted-app-wild-apricot
  • v0.6.8: Adds handling for v6.62 firmware listen events to node-red-contrib-uhppoted
  • v0.6.7: Implements record-special-events to enable/disable door events
  • v0.6.5: node-red-contrib-uhppoted module for use with NodeRED low code environment
  • v0.6.4: uhppoted-app-sheets Google Sheets integration module
  • v0.6.3: Added access control list commands to uhppoted-mqtt
  • v0.6.2: Added access control list commands to uhppoted-rest
  • v0.6.1: Added access control list commands to uhppote-cli
  • v0.6.0: uhppoted-app-s3 AWS S3 integration module
  • v0.5.1: Initial release following restructuring into standalone Go modules and git submodules
  • v0.5.0: Add MQTT endpoint for remote access to UT0311-L0x controllers
  • v0.4.2: Reworked GetDevice REST API to use directed broadcast and added get-device to CLI
  • v0.4.1: Get/set door control state functionality added to simulator, CLI and REST API
  • v0.4.0: REST API service
  • v0.3.1: Functional simulator with minimal command API
  • v0.2.0: Load access control list from TSV file
  • v0.1.0: Bare-bones but functional CLI

Modules

Module Description
uhppote-core core library, implements the UP interface to UT0311-L0x controllers
uhppoted-api common API for external applications
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-wild-apricot cron'able utility to manage access control lists from Wild Apricot
node-red-contrib-uhppoted NodeJS nodes for Node-RED low code environment
uhppoted-nodejs Standalone NodeJS module
uhppoted-dll shared-lib/DLL for cross-language interop
uhppoted-tunnel UDP tunnel for remote access

Integrations

Module Description
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
node-red-contrib-uhppoted NodeJS nodes for Node-RED low code environment
uhppoted-nodejs Core API implementation as a NodeJS library
kBrausew/ioBroker.wiegand-tcpip ioBroker

UI

Module Description
uhppote-cli Command line interface

Installation

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 and NodeJS packages are installable from the public repositories:

Building from source

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

Dependencies

Dependency Description
com.github/uhppoted/uhppote-core Device level API implementation
com.github/uhppoted/uhppoted-api External API implementation
com.github/uhppoted/uhppote-cli CLI user application
com.github/uhppoted/uhppoted-rest REST API
com.github/uhppoted/uhppoted-mqtt MQTT endpoint
com.github/uhppoted/uhppoted-app-s3 cron'able access control management using AWS S3
com.github/uhppoted/uhppoted-app-sheets cron'able access control management using Google Sheets
com.github/uhppoted/uhppoted-app-wild-apricot cron'able access control management using Wild Apricot
com.github/uhppoted/uhppote-simulator Device simulator for development use
node-red-contrib-uhppoted NodeJS nodes for Node-RED low code environment
uhppoted-dll Shared library/DLL for cross-language support
golang.org/x/sys/windows Support for Windows services
golang.org/x/lint/golint Additional lint check for release builds
github.com/eclipse/paho.mqtt.golang Eclipse Paho MQTT client
github.com/gorilla/websocket paho.mqtt.golang dependency
github.com/aws/aws-sdk-go AWS SDK
google.golang.org/api Google SDK
golang.org/x/net google.golang.org/api dependency
golang.org/x/oauth2 google.golang.org/api dependency
golang.org/x/tools google.golang.org/api dependency
golang.org/x/xerrors google.golang.org/api dependency
github.com/golang/protobuf google.golang.org/api dependency
google.golang.org/appengine google.golang.org/api dependency

References and Related Projects

  1. carbonsphere/UHPPOTE PHP
  2. carbonsphere/DoorControl PHP
  3. andrewvaughan/uhppote-rfid Python
  4. tachoknight/uhppote-tools: Go
  5. jjhuff/uhppote-go: Go
  6. pawl/Chinese-RFID-Access-Control-Library
  7. Dallas Makerspace:Reverse Engineering RFID Reader
  8. wemakerspace/wiegand-daemon
  9. wemakerspace/weigeng-js
  10. realashleybailey/DoorControl
  11. kBrausew/ioBroker.wiegand-tcpip
  12. TCP/IP Wiegand Access Controller (Zutrittskontrolle)
  13. YouTube: UHPPOTE 2 door basic set-up

About

Cross-platform components for building access control systems based on the UHPPOTE UT0311 TCP/IP access controller boards

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • CSS 57.1%
  • JavaScript 16.6%
  • HTML 13.9%
  • SCSS 7.1%
  • Makefile 2.3%
  • Go 1.5%
  • Other 1.5%