用 UniFi Access 控制 HomeKit 门锁
我的 UniFi 全家桶就差 UniFi Access 了,怎么能不搞一个呢?

可我家用的是 August Gen4 门锁,没法安装磁吸锁,于是我想用 Arduino 通过 HomeKit 来开锁。

这里使用 Wio Terminal 来实现与 HomeBridge 的联动,详见这篇文章 (http://krunk.cn/post/2021/wio-terminal-控制多个-homekit-设备)
所以这里只需要在这个程序的基础上监听 GPIO 的变化就行了,将 5V 与 GPIO 22 接到 UA-Hub 的 lock-dry 端子 (Dry 连接会在开锁期间把 comm 与 no 接通,并且不上电) ,如果对应的 IO 口变成了 HIGH 那么就发送按键指令到 HomeKit 来开锁(别忘了加一个电阻)
安装
所需的配件
- Wio Terminal
- Unifi Access (UA-Hub, UA-Pro/UA-Lite)
- GPIO 排线
- 一个电阻(用按键电路能正常工作的阻值即可,具体大小似乎不重要)
- POE 转 USB (可选,目的是让 Arduino 与 UA-Hub 同时供电,可以在断电时一起通过 UPS 维持可用状态)
Wio Terminal 配置
关于 HomeBridge 的设置详见这篇文章,这里就不详细展开了
// WiFi SSID (部分5Ghz AP可能无法连接)
const char* ssid = "KIOT-Terminal";
// WiFi 密码
const char* password = "KIOT-UYDFGW6IdaW";
// HomeBridge地址 不要后斜杠以及ssl
// 如需使用ssl还需要配置公钥
const char* server_ip = "http://10.0.0.86";
以下内容假设这几步已经完成
- 配置服务器端 HomeBridge 以及插件
- 配置 Arduino 端 WIFI 密码以及 HB 的 IP 地址
从下面的链接下载固件,修改 Wi-Fi 信息和 HB 的 IP 地址,再刷入 Wio Terminal。两套固件的设置通用,可以直接复制之前控制 HomeKit 的固件配置。
按照下图连线


HomeBridge 配置
在 HB 配置的 accessories 中添加一个使用 44100 端口的按键,如果需要其他端口,可以在 Arduino 源码中搜索 44100 然后替换为其他的
"accessories": [
{
"accessory": "KIOTSwitch",
"name": "Unifi Access Lock",
"port": 44100
}
]
测试
将从 Arduino 上的两根线相触,如果屏幕显示 Access Granted,那么恭喜你设置成功了,如果显示 Unlock Failed,则代表与 HB 的连接出现问题,有可能是 HB 端口未开启,如果屏幕没有任何提示,那就是 GPIO 没有检测到变化了
HomeKit 配置
将 Unifi Access Lock 按键的 按一下 设置为解锁 HomeKit 锁


GitHub: https://github.com/KrunkZhou/Unifi-Access-HomeKit-Lock/
写于 2021/10/06 · Krunk Zhou
一起聊聊