TheGrussalo/hekr-bridge-addon

GitHub: TheGrussalo/hekr-bridge-addon

一个 Home Assistant 插件,用于将已失去官方应用支持的 KKT KOLBE 抽油烟机通过 MQTT 桥接接入智能家居平台,并提供完整的 RGB 色彩控制。

Stars: 0 | Forks: 0

# 用于 Home Assistant 的 Hekr Bridge Add-ons 这是一个 Home Assistant Supervisor add-on,作为 **KKT KOLBE** 抽油烟机的桥接 (可能也适用于其他使用 Hekr/WISEN 协议的 Wi-Fi 设备),将其接入 Home Assistant, 通过 MQTT 进行通信——包括在支持的型号上提供完整的 RGB 色彩控制功能 (例如 **HERMES RGBW**),这是其基于的原始上游项目所未涵盖的。 KKT KOLBE 已停止维护 WISEN 应用,导致这些抽油烟机虽然仍可通过 Wi-Fi 连接,但却没有受支持的控制方式。此 add-on 在抽油烟机和(仍在运行的)Hekr 云端之间充当透明代理, 并通过 MQTT 自动发现功能将完整的控制权暴露给 Home Assistant。 基于 [markobel/kkt-kolbe-homeassistant](https://github.com/markobel/kkt-kolbe-homeassistant) 项目, 扩展了逆向工程得出的 RGB 色彩支持,并打包为标准的 Supervisor add-on。 ## 安装说明 1. 在 Home Assistant 中:**Settings → Add-ons → Add-on Store** 2. 点击 **⋮** 菜单(右上角) → **Repositories** 3. 添加此 URL:`https://github.com/YOUR_USERNAME/YOUR_REPO_NAME` 4. 在新添加的仓库部分下找到 **"KKT Kolbe Hekr Bridge"**,点击 **Install** ## 前置条件 在安装之前,你需要: - 特定于你抽油烟机的 **`devTid`** 和 **`ctrlKey`** — 请参阅下方的[查找你的设备标识符](#finding-your-device-identifiers) - 一台路由器,你可以在其中添加 **DNAT 规则**,将抽油烟机的云端流量(端口 83)重定向到你的 Home Assistant 主机 IP - 运行 **Mosquitto broker** add-on(或任何 MQTT broker),并确保 Home Assistant 可以访问它 ## 配置 安装后,转到 add-on 的 **Configuration** 标签页并填写: | 选项 | 必填 | 说明 | |---|---|---| | `hekr_dev_tid` | **是** | 设备的唯一标识,例如 `ESP_2M_XXXXXXXXXXXX` | | `hekr_ctrl_key` | **是** | 32 字符的十六进制密钥,设备唯一 | | `hekr_cloud_host` | 否 | 默认为 `hub.hekreu.me`(EU Hekr 云端)— 如果你的设备连接到其他地方,请修改此项 | | `mqtt_host` | 否 | 默认为 `localhost` — 此 add-on 使用主机网络,因此 Supervisor 内部的 `core-mosquitto` 主机名无法解析;请使用 `localhost` 或你的 HA 主机自身的局域网 IP | | `mqtt_user` / `mqtt_pass` | 取决于 broker | 如果你的 broker 允许匿名访问,请留空 | | `cmd_power` / `cmd_light` / `cmd_speed` / `cmd_color` | 否 | 协议命令 ID — 默认值 (2/3/4/7) 已确认在 KKT KOLBE HERMES RGBW 和 FREE 型号上可用。其他型号可能有所不同;请参阅下文的 REPL 映射方法。 | **此 add-on 需要主机网络权限**(为了直接监听端口 83), 因此它不会显示在标准的 "Network" 配置标签页下 — 这是正常现象。 ## 查找你的设备标识符 你需要抽油烟机的 `devTid`、`ctrlKey` 以及它连接到的云端主机地址。 抓取抽油烟机自身的流量(例如通过镜像端口或在你的路由器上运行 `tcpdump`): ``` tcpdump -i any -nn -s 0 -w hood.pcap 'host ' ``` 在抓包期间重启抽油烟机电源(或强制重新连接),然后检查 JSON payload: ``` tshark -r hood.pcap -Y 'tcp.len > 0' -T fields -e tcp.payload \ | while read p; do printf "%b\n" "$(echo "$p" | sed 's/\(..\)/\\x\1/g')"; done ``` 寻找包含 `devTid` 和 `ctrlKey` 的 `devLoginResp` 消息 —— 这两个 就是必需的配置值。目标端口为 83 的 IP 地址就是你的 `hekr_cloud_host`。 ## 将抽油烟机重定向到 bridge 一旦 add-on 运行起来,在你的路由器上使用 DNAT 规则,将抽油烟机发往云端的流量重定向到你的 Home Assistant 主机 IP,例如: ``` iptables -t nat -A PREROUTING -s -d \ -p tcp --dport 83 -j DNAT --to-destination :83 ``` 如果你的抽油烟机和 Home Assistant 主机位于**同一子网**,你还需要 一条 masquerade 规则来处理 NAT hairpinning: ``` iptables -t nat -A POSTROUTING -s -d \ -p tcp --dport 83 -j MASQUERADE ``` 强制重新连接(重启抽油烟机电源,或在路由器上清除其现有连接, 例如 `conntrack -D -s `),使其应用新的路由。 ## Home Assistant 中暴露的实体 | 实体 | 类型 | 说明 | |---|---|---| | Power | `switch` | 主开关(风扇 + 灯) | | Light | `switch` | 仅白光 | | Speed | `select` | 0–4 | | Fan | `fan` | 与 speed 相同,带有百分比控制 | | **RGB Light** | `light` | 完整的颜色选择器(HERMES RGBW 及类似型号) | | Connected | `binary_sensor` | 在线/离线状态 | | Raw state | `sensor` | 最后的原始十六进制数据帧(诊断信息) | | Sequence | `sensor` | 设备帧计数器(诊断信息) | ## 为其他型号映射命令 如果你的型号的 cmdIds 与默认值不同,你可以通过以下方式找到它们: 连接到 add-on 的日志/控制台,并在测试值时观察 `STATE CHG` 行 — 有关已确认的 帧格式(`48 [len] 02 [seq] [cmdId] [values...] [checksum]`),请参阅 `hekr_bridge.py` 中的注释。 ## 免责声明 非官方的社区项目。不隶属于 KKT KOLBE 或 Hekr。使用风险自负。 ## 开源许可 MIT
标签:Home Assistant, 中间人代理, 抽油烟机控制, 智能家居, 物联网, 请求拦截, 逆向工具