Skip to content

智能家居

小米官方整合开源Home Assistant:智能家居新体验

mi-home-assistant

1. 简要介绍

大家好!今天我们来聊聊一个让智能家居爱好者兴奋不已的项目:小米官方 Home Assistant 集成 (ha_xiaomi_home)。这个项目由小米官方开发并维护,旨在为 Home Assistant 用户提供更流畅、更可靠的 Xiaomi IoT 设备控制体验。

在过去,虽然市面上也有一些第三方的小米设备集成,但它们或多或少存在一些问题,比如设备状态响应延迟等。现在,有了官方支持,我们可以期待更好的性能和更强的安全性.

Home Assistant 是一个开源的家庭自动化平台,以其强大的兼容性和灵活性著称,深受 DIY 爱好者喜爱。现在,小米这个智能家居领域的巨头也加入了 Home Assistant 的生态,无疑是一件令人期待的事情.

主要功能:

  • 官方支持: 由小米官方开发和维护,提供更好的稳定性和兼容性.
  • Home Assistant 集成: 允许用户在 Home Assistant 中控制和管理小米智能设备.
  • 增强的用户体验: 旨在提供更快的设备状态响应,解决第三方集成存在的延迟问题.
  • 广泛的设备支持: 支持大多数小米 IoT 设备,但蓝牙、红外和虚拟设备除外.
  • 多账户和区域支持: 支持多个小米账户,并且可以将不同区域的设备添加到同一 Home Assistant 区域.

2. 核心功能

  • 多种安装方式: 支持多种安装方式,包括 Git 克隆、HACS 和手动安装. 官方推荐使用 Git 克隆,因为它方便进行版本管理和更新.
    • Git 克隆安装:cd config; git clone https://github.com/XiaoMi/ha_xiaomi_home.git; cd ha_xiaomi_home; ./install.sh /config.
  • OAuth 2.0 登录: 采用 OAuth 2.0 登录方式,不直接在 Home Assistant 中存储用户密码,提高了安全性.
  • 云控制和本地控制: 主要通过小米云进行控制。对于支持本地控制的设备,可以通过小米网关或局域网进行控制.
    • 云控制:通过小米云服务器进行通信和控制.
    • 本地控制:通过小米中央网关或局域网 (LAN) 直接在本地网络中进行通信,但本地控制并非在所有地区都可用.
      • 中央网关:仅在中国大陆地区可用.
      • 局域网控制:适用于所有地区,但仅限 IP 设备,且为实验性功能,不推荐使用.
  • 设备消息订阅机制: 使用消息订阅机制,当设备属性变化或事件发生时,会实时推送消息到 Home Assistant,减少了对云端的轮询压力.
  • MIoT-Spec-V2 映射: 使用小米 IoT 协议 MIoT-Spec-V2 将设备、服务、属性、事件和动作映射到 Home Assistant 的实体 (entity) 中,确保设备功能正常运行.

3. 使用技巧

  • 多账户管理: 在完成一个小米账户的登录和配置后,可以通过 “添加 HUB” 来添加其他小米账户.
  • 区域选择: 导入小米设备时,请务必选择正确的区域,因为不同区域的数据是隔离的.
  • 调试模式: 启用动作 (action) 的调试模式可以手动发送带有参数的动作命令.
  • 实体转换规则更新: 如果您修改了 specv2entity.pyspec_filter.jsonmulti_lang.json 文件,您需要在集成的配置页面中更新实体转换规则,以使更改生效.
  • 自定义过滤: 使用 spec_filter.json 文件来过滤不需要转换到 Home Assistant 的 MIoT-Spec-V2 实例.
  • 本地化: multi_lang.json 文件用于提供设备名称和其他文本元素的本地化翻译,并且优先级高于云端翻译.

4. 应用案例

  • 智能照明控制: 通过 Home Assistant 控制小米智能灯泡的亮度、颜色和开关状态。
  • 智能安防: 结合小米智能摄像头和传感器,实现家庭安防自动化,例如当检测到异常移动时发送警报。
  • 环境监测: 使用小米温湿度传感器,实时监测室内环境,并根据温度自动调节空调或暖气。
  • 自动化场景: 利用 Home Assistant 的自动化功能,设置各种场景,例如 “回家模式”、“离家模式” 等,实现智能家居的自动化控制。

5. 安全顾虑

虽然小米官方集成使用了 OAuth 2.0 登录方式,提高了安全性,但仍然存在一些安全风险:

  • 明文存储用户数据: 用户的设备信息、证书和令牌等敏感信息会以明文形式存储在 Home Assistant 的配置文件中. 这意味着如果配置文件泄露,他人可能会访问您的 Xiaomi 设备.
  • 保护配置文件: 您需要确保您的 Home Assistant 配置文件妥善保管,防止泄露.
  • 撤销授权: 如果怀疑 OAuth 令牌泄露,可以通过小米 Home App 撤销登录授权.

因此,务必妥善保管您的 Home Assistant 配置文件,防止泄露!

6. 常见问题

  • 哪些设备不支持?
    • 目前不支持蓝牙设备、红外设备和虚拟设备.
  • 如何添加多个小米账户?
    • 在已配置的小米 Home 集成页面中,点击 "添加 HUB" 可以添加其他小米账户.
  • 本地控制在所有地区都可用吗?
    • 本地控制通过中央网关仅在中国大陆可用,而局域网控制适用于所有地区,但仅限 IP 设备,且不推荐使用.
  • 为什么官方推荐 Git 克隆安装?
    • Git 克隆方便进行版本切换和更新,更易于管理.
  • 如何更新集成?
    • 可以通过 Git 克隆切换到指定版本,或者使用 HACS 进行更新.
  • 如何使用自定义配置?
    • 可以编辑 spec_filter.jsonmulti_lang.json 文件来进行过滤和翻译,并更新实体转换规则