上一篇安装好了HA和HACS,接下来就是打通智能家居生态的时候。
安装 Xiaomi Home & Apple HomeKit #
简单说可以归为以下几个步骤:
- 先在HACS安装Xiaomi Home官方插件
- reboot HA
- 在配置与服务添加集成Xiaomi Home,按照指引登录小米账号
- 在配置与服务添加集成HomeKit Bridge
- 使用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访问了。好吧,那样折腾起来更麻烦就是了。╮(╯▽╰)╭
参考