[RELEASE] UniFi Access Hubitat Middleware (UAHM)

Hi everyone,

I built a lightweight middleware in Go, designed to run in Docker, to bridge UniFi Access with Hubitat. My goal was to provide visibility and control of UniFi door locks directly from Hubitat, including real-time status updates and the ability to lock/unlock doors using standard virtual devices.

:wrench: Key Features:

  • Real-time, webhook-based communication (no polling on the Hubitat side)
  • Virtual Lock, Contact Sensor, and Switch support per door
  • Multiple door support
  • Minimal setup in Hubitat using Maker API and Virtual Devices
  • Secure communication using an authorization token

This middleware listens for events from both UniFi Access and Hubitat, maps each UAC door to a set of Hubitat virtual devices, and keeps everything in sync.

GitHub Repo & Setup Guide:
:point_right: https://github.com/K-MTG/unifi-access-hubitat-middleware

If you're using UniFi Access and want to integrate it with your Hubitat system, I’d love for you to give this a try! Feedback, issues, or suggestions are very welcome.

2 Likes

Deployed a minor update:

  • Added comments for additional webhook events that may eventually replace polling.
  • Ignored access.door.unlock webhook events initiated by this app, reducing unnecessary API calls to Hubitat.
  • Introduced a 200 ms delay after receiving an access.door.unlock event from UAC to ensure the door is actually unlocked before notifying Hubitat. This prevents rare cases where Hubitat would immediately trigger a lock event back to UAC.

Update Deployed

  • Updated to Go 1.25.4
  • Hubitat lock device is now optional
1 Like