English Version | 中文版
homekit-bridge专门为嵌入式设备设计,可以将非HomeKit的设备快速地接入到HomeKit。它提供了以下功能:
- 配置你想要连接到HomeKit的设备
- 编写插件来生成HomeKit桥接配件(Bridged Accessory)
homekit-bridge在HomeKitADK的基础上实现,主要的C代码位于ADK的应用层。
HomeKitADK不仅实现了HomeKit协议(HAP),还将平台相关的接口抽象到了平台适配层(PAL),使得应用代码在不同平台上表现一致。
为了更好的扩展性以及降低开发难度,homekit-bridge引入了动态语言Lua,将C模块封装成Lua模块,使用Lua来编写上层应用代码。homekit-bridge还做了以下的优化,使得Lua能够在资源紧凑的设备上运行:
- 通过
luac
将文本代码转换成字节码 - 将多个Lua脚本生成目录树,嵌入到C代码中
- 使得Lua虚拟机支持直接从ROM中读取代码,而不是拷贝到RAM中读取
米家 - miio
产品名称 | 型号 |
---|---|
小米空调伴侣2代 | lumi.acpartner.mcn02 |
小米米家智能插座Wi-Fi版 | chuangmi.plug.m3 |
米家智能插座2 蓝牙网关版 | chuangmi.plug.212a01 |
智米直流变频落地扇2S | zhimi.fan.za4 |
小米直流变频落地扇1X | dmaker.fan.p5 |
小米直流变频塔扇 | dmaker.fan.p9 |
米家智能除湿机 22L | dmaker.derh.22l |
目前针对以下平台做了适配:
- Linux (Ubuntu/Raspberry Pi OS)
- ESP-IDF (ESP32/ESP32-S2/ESP32-C3/ESP32-S3)
在克隆完代码后需要执行以下命令来初始化子模块代码:
git submodule update --init
sudo apt install cmake ninja-build clang libavahi-compat-libdnssd-dev libssl-dev python3-pip
sudo pip3 install cpplint
mkdir build
cd build
cmake -G Ninja .. && ninja
sudo ninja install
默认运行homekit-bridge:
homekit-bridge
以下选项可以在运行homekit-bridge的时候指定:
选项 | 描述 |
---|---|
-d , --dir |
设置工作目录 |
-e , --entry |
设置入口脚本的名称 |
-h , --help |
显示帮助并退出 |
配置文件config.json
默认位于/usr/local/lib/homekit-bridge
,可以在运行homekit-bridge之前修改它。如果你指定了工作目录,homekit-bridge将会到指定目录中寻找config.json
。
根据ESP-IDF官方文档快速入门准备环境。
目前经过测试的ESP-IDF版本为v4.4,通过以下命令切换到该版本:
git fetch --tag
git checkout v4.4
git submodule update
你可以在ESP32或者ESP32-S2上使用homekit-bridge,使用以下命令来编译、烧录和运行:
cd /path/to/homekit-bridge/platform/esp
export ESPPORT=/dev/ttyUSB0 # 设置开发板的串口
idf.py set-target [esp32|esp32s2|esp32c3|esp32s3]
idf.py flash
idf.py monitor
使用 join
命令来连接Wi-Fi:
join "<ssid>" "<password>"
TODO
Apache-2.0 © 2021-2022 Zebin Wu and homekit-bridge contributors.