Skip to main content
Background Image
  1. HomeLab/
  2. HomeAssistant/

2. HomeAssistant打通米家设备和HomeKit

·2141 words·5 mins
Stackr Sigmn
Author
Stackr Sigmn
极客玩家,喜爱折腾硬核的电子玩物,曾是互联网民工。
Table of Contents

上一篇安装好了HA和HACS,接下来就是打通智能家居生态的时候。

安装 Xiaomi Home & Apple HomeKit
#

简单说可以归为以下几个步骤:

  1. 先在HACS安装Xiaomi Home官方插件
  2. reboot HA
  3. 在配置与服务添加集成Xiaomi Home,按照指引登录小米账号
  4. 在配置与服务添加集成HomeKit Bridge
  5. 使用iPhone/iPad在HA的通知里扫码添加HomeKit Bridge

值得说明的是第4步,新建HomeKit Bridge的时候,一次只需要选择一个域就行,这样才方便管理。博主只有米家的插座和灯具,所以可以新建两个HomeKit网桥,都是先啥都不用填直接提交。然后点击设置图标,包含模式选择include, 要包含的域只勾选switch,随后手动添加实体,这里只要所有能直接控制开关的就行,不需要添加其他的,否则你将在HomeKit里看到一大堆乱七八糟的东西。另一个网桥也差不多,域选择light。

这样,就设置好了两个HomeKit网桥。可以点击修改的图标,给两个网桥分别命名switch和light以作区分。

HomeKit Bridge里的域非常多,博主在网络上找了一份具体的中文解释可以参考:

  • alarm_control_panel(安全系统):所有安全系统。
  • automation/input_boolean/remote/scene/script/vacuum(开关):所有开关。
  • input_select/select(开关):用按钮表示每个选项的电源插座。
  • binary_sensor(传感器):支持 co2、门、车库门、气体、湿度、运动、占用、开放、烟雾和窗户设备类。其他一切默认为占用设备类。
  • camera(摄像头):所有摄像头设备。目前不支持 HomeKit Secure Video。
  • climate(温度调节器):所有气候设备。
  • cover (device_class: garage or gate)(车库门或门):支持打开和关闭的所有覆盖物。
  • cover (support set_cover_position)(窗帘):支持 set_cover_position 的所有覆盖物。
  • cover (support open_cover and close_cover through value mapping)(窗帘):通过值映射支持 open_cover 和 close_cover 的所有覆盖物。
  • cover (support open_cover, stop_cover and close_cover through value mapping)(窗帘):通过值映射支持 open_cover, stop_cover 和 close_cover 的所有覆盖物。
  • device_tracker/person(传感器):支持占用设备类。
  • fan(风扇):支持开/关、方向和摆动。
  • fan(风扇):通过值映射支持速度和 speed_list 的所有风扇。
  • humidifier(加湿器/除湿器):所有加湿器和除湿器设备。
  • light(灯光):支持开/关、亮度和 rgb_color。
  • lock(锁):支持锁定/解锁。
  • media_player(媒体播放器):表示为一系列开关,根据实体的 supported_features 和 entity_config 中指定的模式列表控制开/关、播放/暂停、播放/停止或静音。
  • media_player(电视媒体播放器):所有 device_class 为 tv 的媒体播放器。在 HomeKit 中表示为电视和遥控器配件,根据实体的 supported_features 控制开/关、播放/暂停、选择源或增加/减小音量。
  • sensor(传感器):所有单位为°C或°F,设备类别为温度的传感器。
  • sensor - 温度传感器,设备类别为温度,单位为°C或°F。
  • sensor - 湿度传感器,设备类别为湿度,单位为%。
  • sensor - 空气质量传感器,包括 gas/pm10/pm25,或设备类别为 gas/pm10/pm25/nitrogen_dioxide/volatile_organic_compounds 的传感器。VOC 映射使用世界卫生组织发布的欧洲室内空气质量指南。
  • sensor - 一氧化碳传感器,设备类别为 co。
  • sensor - 二氧化碳传感器,实体 ID 中包含 co2,或设备类别为 co2 的传感器。
  • sensor - 光线传感器,单位为 lm 或 lx,或设备类别为照度的传感器。
  • switch - 开关,默认情况下表示为开关,但可以通过 entity_config 中的类型进行更改。
  • water_heater - 热水器设备。
  • device_automation - 支持触发器的设备。

配置HomeKit
#

接下载执行第5步,建好网桥后左下角的通知里就会有HomeKit Bridge发出的二维码,使用你的iPhone/iPad扫码按照指引添加到你的家庭与房间里,为了方便使用还能将智能家居的控制添加到控制中心。测试一下,不出意外就能直接通过HomeKit控制你的米家智能家居了,实测断开互联网连接也能生效,这证明了的确是本地化控制而不经过云端。也正因此,操作延迟有了明显的降低,就是那种…显著少了可感知的后摇,懂我意思吧。

断开WLAN,使用蜂窝数据试一下。额,没有生效。这是因为HA是本地化的控制,HA、IoT设备和控制设备必须处于同一个局域网才能生效。

远程操控HA
#

那岂不是在外面就只能通过米家APP来控制IoT设备了呢?其实也有办法,那就是异地组网。博主实测使用wireguard连接到家里的局域网,在HomeKit并不能成功发送控制指令,但别忘了,HA本身也是可以控制IoT设备的。也就是说,我们只要打开HA的登录网页,就能实现远程控制家里的智能家居了,这也算是曲线救国了。HA也有一个APP,博主安装后发现其实本质就是个浏览器,只是这个APP能记住你的登录信息,下次就不用再登录了。

如果你嫌异地组网需要手动连太麻烦,博主这里还有个大杀器:公网IPv6。你可以通过固定HA的IPv6地址或采用DDNS的方式访问HA,如果还将IPv6地址绑定了域名那就更方便了。不过这种方式相比异地组网还存在一个问题,那就是http是明文传输的,这不免让人对数据安全产生担忧。解决办法自然就是给HA配置证书,然后就能通过https访问了。好吧,那样折腾起来更麻烦就是了。╮(╯▽╰)╭


参考