Add real UHPPOTE access driver via official uhppoted lib
Researched Node options for the UHPPOTE controller and chose the official
`uhppoted` npm package (MIT, actively maintained, single trivial dep). Its API
covers the full design: openDoor, getStatus, the event-log set (getEvent,
getEventIndex, setEventIndex, recordSpecialEvents), and setListener/listen.
Rejected alternatives: raw-dgram DIY, node-red-contrib-uhppoted, Go sidecar.
- packages/devices: add uhppoted@0.9.0; new `uhppote` access driver implementing
AccessControlDevice (pulseOpen -> openDoor intent-only; healthCheck/getDoorStatus
-> getStatus). Registered in the catalog alongside zkteco/esp32-relay.
- Local ambient types (uhppoted ships none); CJS interop via default-import +
destructure under NodeNext.
- Config fields: controller serial (required), optional host/protocol (udp|tcp),
doors, timeout.
Security/safety unchanged: unauthenticated UDP -> isolated VLAN assumed; relay
is intent-only ("a barrier is not a door").
wiki: record the library choice on uhppote-controller + log entry.
Verified: builds; `uhppote` shows in the catalog with correct fields;
instantiates and degrades to "offline" gracefully without hardware (on-VLAN
test pending).
This commit is contained in:
+12
@@ -28,3 +28,15 @@ snapshot-on-event), printer. Added a `CameraDevice` interface; new `lane_devices
|
||||
+ `setup_state` tables (migration 0001); admin-only setup endpoints. Stub drivers
|
||||
for now (no real vendor protocols yet). Verified catalog + assign + validation +
|
||||
auth end to end.
|
||||
|
||||
## [2026-06-15] decision | UHPPOTE library chosen + real driver
|
||||
Researched Node options for the UHPPOTE controller. Chose the official
|
||||
**`uhppoted`** npm package (MIT, actively maintained, full API incl. openDoor,
|
||||
get-event(s)/event-index, set-listener, restore-default — covers the whole
|
||||
[[event-log-ingestion]] design). Rejected: raw-dgram DIY (reinvents the lib),
|
||||
node-red-contrib-uhppoted (wrong model), Go REST sidecar (extra runtime). Added
|
||||
it to @parking/devices and implemented a real `uhppote` [[uhppote-controller]]
|
||||
access driver (pulseOpen→openDoor, healthCheck→getStatus), registered in the
|
||||
catalog. CJS interop: default-import + destructure. Verified it builds, appears
|
||||
in the catalog, and degrades to "offline" gracefully without hardware. Real
|
||||
on-VLAN test still pending.
|
||||
|
||||
Reference in New Issue
Block a user