All Projects → uhppoted → uhppoted

uhppoted / uhppoted

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

Programming Languages

CSS
56736 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
SCSS
7915 projects
Makefile
30231 projects
go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to uhppoted

Caddy Authz
Caddy-authz is a middleware for Caddy that blocks or allows requests based on access control policies.
Stars: ✭ 221 (+1063.16%)
Mutual labels:  access-control
accessdenied
Access Denied: Artikel oder Kategoriezugriff im Frontend sperren (offline + kein Zugriff)
Stars: ✭ 35 (+84.21%)
Mutual labels:  access-control
casbin-pg-adapter
A go-pg adapter for casbin
Stars: ✭ 23 (+21.05%)
Mutual labels:  access-control
role-based-access-control
Role-based authorization || Role-based access-control in React.js
Stars: ✭ 111 (+484.21%)
Mutual labels:  access-control
fiware-pep-proxy
Support for proxy functions within OAuth2-based authentication schemas. Also implements PEP functions within an XACML-based access control schema.
Stars: ✭ 26 (+36.84%)
Mutual labels:  access-control
caddy-security
🔐 Authentication, Authorization, and Accounting (AAA) App and Plugin for Caddy v2. 💎 Implements Form-Based, Basic, Local, LDAP, OpenID Connect, OAuth 2.0 (Github, Google, Facebook, Okta, etc.), SAML Authentication. MFA/2FA with App Authenticators and Yubico. 💎 Authorization with JWT/PASETO tokens. 🔐
Stars: ✭ 696 (+3563.16%)
Mutual labels:  access-control
Casbin Authz Plugin
Docker Authorization Plugin based on Casbin
Stars: ✭ 204 (+973.68%)
Mutual labels:  access-control
nebula
A distributed block-based data storage and compute engine
Stars: ✭ 127 (+568.42%)
Mutual labels:  access-control
nova-permissions
Add Permissions based authorization for your Nova installation via User-based Roles and Permissions. Roles are defined in the database whereas Permissions are defined in the code base.
Stars: ✭ 115 (+505.26%)
Mutual labels:  access-control
rfid-access-control
Multi-level privilege access control system using RFID tags and passwords. Built with arduino based clients and a django server.
Stars: ✭ 12 (-36.84%)
Mutual labels:  access-control
osdp-python
A Python control panel implementation of the Open Supervised Device Protocol (OSDP)
Stars: ✭ 28 (+47.37%)
Mutual labels:  access-control
ngx-access
Add access control to your components using hierarchical configuration with logical expressions.
Stars: ✭ 21 (+10.53%)
Mutual labels:  access-control
lua-casbin
An authorization library that supports access control models like ACL, RBAC, ABAC in Lua (OpenResty)
Stars: ✭ 43 (+126.32%)
Mutual labels:  access-control
Chi Authz
chi-authz is an authorization middleware for Chi
Stars: ✭ 248 (+1205.26%)
Mutual labels:  access-control
SpringSecurityInEasySteps
Learn Spring Security step by step
Stars: ✭ 13 (-31.58%)
Mutual labels:  access-control
Beego Authz
Beego's RBAC & ABAC Authorization middleware based on Casbin
Stars: ✭ 208 (+994.74%)
Mutual labels:  access-control
rbac-tool
Rapid7 | insightCloudSec | Kubernetes RBAC Power Toys - Visualize, Analyze, Generate & Query
Stars: ✭ 546 (+2773.68%)
Mutual labels:  access-control
sqlalchemy-adapter
SQLAlchemy Adapter for PyCasbin
Stars: ✭ 53 (+178.95%)
Mutual labels:  access-control
objection-authorize
isomorphic, "magical" authorization integration with Objection.js 🎉
Stars: ✭ 71 (+273.68%)
Mutual labels:  access-control
dart-casbin
An authorization library that supports access control models like ACL, RBAC, ABAC in Dart/Flutter
Stars: ✭ 30 (+57.89%)
Mutual labels:  access-control

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.8.1: Adds human readable fields to events for MQTT and REST implementations. Minor bug fixes and usability fixes.
  • v0.8.0: Adds uhppoted-httpd and uhppoted-tunnel components
  • 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-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-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
  14. wouterdebie/Rust library
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].