| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Orvibo Lan 是一个 Home Assistant 自定义集成。它通过 Orvibo 云端获取家庭、房间、设备和网关拓扑,并通过局域网内 MixPad 的 TCP 8088 接口控制 Zigbee 子设备。属性型 WiFi 门锁会额外建立云端 TCP 10002 长连接,持续接收门状态推送。
本地控制仅适用于可通过 MixPad 网关访问的 Zigbee 子设备。WiFi、BLE、红外、摄像头和其他直连设备不在当前 LAN 控制范围内。
集成首次加载依赖云端拓扑,当前不支持在从未成功获取拓扑的环境中完全离线启动。账号、密码、Token 和会话密钥均不应写入日志或诊断资料。
发布资产固定为 orvibo_lan.zip,HACS 从 ZIP 根目录安装集成文件。
将 custom_components/orvibo_lan/ 复制到 Home Assistant 配置目录下的 custom_components/orvibo_lan/,然后重启 Home Assistant 并添加集成。
| 参数 | 必填 | 说明 |
|---|---|---|
| 账号 | 是 | Orvibo 账号,通常为手机号 |
| 密码 | 是 | Orvibo 账号密码 |
| 家庭 | 多家庭时 | 单家庭会自动选择,多家庭需要在配置流程中选择 |
| 设备 | 是 | 从当前家庭中选择需要接入 Home Assistant 的设备 |
| 独立 LAN 凭据 | 否 | 仅在 MixPad 本地授权账号与云端家庭账号不一致时使用 |
配置完成后,集成会获取设备拓扑、解析所属网关、建立局域网连接,并按设备能力创建实体。配置选项发生变化后,配置项会重新加载以更新实体集合。
家庭所有者发生转移时,云端账号和 MixPad 保存的 TCP 8088 授权账号可能暂时不一致。如果日志持续出现 Gateway login rejected ... (status=12),可在集成的“配置”选项中启用“使用独立的 MixPad LAN 凭据”,填写 MixPad 当前认可的账号。该账号只用于局域网 Login 和控制 payload,云端拓扑与状态仍使用主配置中的账号。关闭此选项会删除 LAN 凭据覆盖并恢复使用云端账号。
源码中的设备能力以 custom_components/orvibo_lan/profiles.py 和 device_profiles.py 为准。文档中的“支持”表示已有实体和协议实现,不等同于所有同类型型号都经过实机验证。
| Home Assistant 平台 | deviceType | 能力 |
|---|---|---|
| light | 0、1、38、102、501、502、503 | 开关、亮度、色温,具体能力由类型和子类型决定 |
| cover | 34、35 | 开、关、停止、位置 |
| climate | 36、81 | 电源、模式、目标温度、风速 |
| fan | 81、516 | 电源和档位/百分比映射;516 仍需更多实机样本 |
| sensor | 22、23、25、26、27、46、54、56、107、300、522 | 温湿度、电量及设备暴露的数值属性 |
| binary_sensor | 25、26、27、46、54、56 | 告警、人体、烟雾、门磁、水浸、紧急状态 |
| 属性型只读实体 | 状态中包含 battery_power 或 door_status | 电量或门状态 |
以下设备当前不提供本地控制:
Home Assistant
|-- HTTPS --> Orvibo 云端
| |-- 家庭、房间、设备、状态和网关 IP
| `-- TCP 10002 --> WiFi 门锁 cmd=42 状态推送
|
|-- UDP 10000 --> 已知 MixPad 地址发现
|
`-- TCP 8088 --> MixPad
|-- Hello / Login / Heartbeat
|-- cmd=15 控制
`-- cmd=42 状态推送 --> Home Assistant 实体
云端负责拓扑和属性型只读状态,TCP 10002 长连接负责 WiFi 门锁的实时属性事件,局域网连接负责 Zigbee 子设备控制与实时状态。LAN 实体的可用性取决于所属网关连接;属性型只读实体的可用性取决于云端协调器。短暂云端故障不会直接使仍可通过 LAN 控制的设备离线。
协议字段和设备命令详见 DEVICE_PROTOCOL_REFERENCE.md。新增设备所需资料见 DEVICE_EXTENSION_GUIDE.md。
TCP 8088 是 MixPad 提供的局域网控制端口,不是 Home Assistant 的监听端口。开放 HA 8123 不会自动开放 8088,但路由器端口转发、DMZ、UPnP/NAT-PMP 或宽松的 IPv6 入站规则可能让 MixPad 暴露到公网。
推荐将 MixPad 放入独立 IoT VLAN,并使用最小访问规则:
允许:Home Assistant IP -> MixPad IP TCP 8088
拒绝:其他 LAN/访客/IoT 客户端 -> MixPad IP TCP 8088
拒绝:WAN -> MixPad TCP 8088
需要自动发现时,再单独允许 Home Assistant 使用 UDP 10000;否则应阻断跨 VLAN 广播。Orvibo 账号应使用不与其他服务共用的强密码,Home Assistant .storage、备份、日志和抓包应作为机密资料保存。
厂商局域网协议使用固定初始密钥、AES-ECB 和 CRC32,不提供 TLS 设备证书或加密消息认证。项目会校验网关 UID、严格限制状态推送并脱敏日志,但这些措施不能替代网络隔离,也不能根治厂商协议的监听和重放风险。当前集成不提供门锁解锁控制,不对未实现的固件命令作安全承诺。详细事项见 安全策略。
开发环境使用 Python 3.11 或更高版本:
python -m venv .venv
python -m pip install --upgrade "pip>=25.1,<26"
python -m pip install --group dev
ruff check custom_components tests
mypy custom_components/orvibo_lan
pytest --cov=custom_components.orvibo_lan --cov-report=term-missingWindows PowerShell 激活虚拟环境时使用 .venv\Scripts\Activate.ps1。完整开发约束和发布流程分别见 CONTRIBUTING.md 与 RELEASING.md。
感谢 https://github.com/mozzie1121/orvibo-lan-control.git 提供的参考。
MIT
| Back | FazBrowse Home | New Git URL |