开始用 Home Assistant
入夏天热,我有鼻炎对干燥冷空气敏感,晚上需要自动开关空调。之前买了很多米家产品,最近研究起了 Home Assistant(简称 HA)。谈谈我近一个月的使用过程和体验。

HA 还是米家?
我最初买的大多是米家系列产品,后来陆陆续续也买了其他品牌的配件,再加上我有一些比较复杂的自动化需求,米家的功能逐渐无法满足我了。HA 则有这些优点:
- 自动化能力强大。触发类型、环境条件参数都是很丰富的。
- 提供脚本和场景功能。脚本可以看作一系列设备控制动作的组合,场景可以看作一系列设备状态、自动化激活状态的组合,例如回家场景包括空调制冷状态25度、窗帘打开状态。自动化则包含了触发、判断和执行动作的组合,执行动作也可以调用脚本、启停场景,实现三者的联动、构成了更强大的家具自动化。
- 跨厂商兼容性。HA 的「集成」非常强大,可以理解为插件,不仅支持集成米家、涂鸦等第三方智能家居平台,也支持 Onvif 等开放协议。
安装
我主要通过 docker 容器安装 HA,并通过内网穿透、反向代理的方式进行远程访问。
集成
「集成」是 HA 中的插件管理器,用来将外部平台的数据、设备、服务接入 HA。在 HA 中一般通过 HACS(Home Assistant Community Store) 来查询、浏览和安装社区提供的各种集成。目前我在用的有:
- Xiaomi Miot Auto:基于 miot 标准实现的集成插件,用于接入兼容 miot 的设备,具体表现为支持米家 App 中的设备。
- MiWiFi:用于小米路由器。
- Ubiquiti EdgeOS Routers:用于 Ubnt EdgeRouter X 路由器。
- Tuya:用于接入涂鸦智能平台中的设备。
- Transmission:用于生成种子面板,监控活跃情况、上传下载情况。
miot
miot 是小米的物联网平台,同时相对规范地定义了米家智能家居设备的参数、控制方式。miot 设备有的支持云端更新,有的还支持本地更新,前者需要米家账号且经过米家服务器,后者则可以在只有局域网的环境下保持联通。你可以在 Xiaomi Miot Spec 里查看设备类型,标注miot-local 的就是支持本地更新的。
通讯:蓝牙 or zigbee
讨论蓝牙和 zigbee,实际上是在讨论「设备网关」与智能家居设备的通讯方式。「设备网关」很重要,有的通用网关可以直接接入 HA,有的则先接入米家等第三方平台,再经 miot 这类集成接入 HA。
「设备网关」与智能家居设备的通讯方式实际上不仅仅只有蓝牙、zigbee,还包括 WiFi。为了管理多种通讯协议的智能家居设备,多模设备网关应运而生。需要注意的是,市面上的网关有的要求联网运行,有的支持离线运行,要仔细分辨自己的需求。
蓝牙和 zigbee 的主要区别在耗电量、数据上报率等方面,有些文章做了介绍。WiFi 虽然万能,但受限于网络基础设施状况,设备数量大的时候也会影响家用网络。目前在市场化利益考量下,米家设备通讯方式主要是 WiFi 和蓝牙。开放社区和市场则普遍支持 zigbee。
集成:Homekit Bridge
Homekit Bridge 是一款集成,可以将 HA 中的设备转换成 Homekit 能识别的设备,最终表现是你可以在 iOS 「家庭」App 中使用。设备接入的方式主要有两种,一种是桥接(bridge),可以一次性接入一系列设备,另一种是配件(accessories),用于接入单个设备。
我体验了一段时间,发现非官方设备的管理方式非常混乱,最终停用了。
- 米家很多设备都带有指示灯、开关,例如摄像头的指示灯、智能开关的指示灯,最终被 Homekit Bridge 识别成独立灯光设备、独立开关设备,并没有与摄像头或智能开关设备主体绑定,你会在 App 中看到很多设备,非常混乱。
- 如果你没有 Apple TV 或 HomePod 作为家庭中枢,那么就只能在局域网环境使用家庭 App,无法远程查看和控制。
设备:空调伴侣 or 通用红外遥控
这是个比较有意思的话题,两种产品我都购买了,也都能找到办法控制空调。
- 通用红外遥控。这是号角鲸出品的遥控器(涂鸦生态),里面有很多码库能匹配我房间的空调。问题出在,当将设备通过涂鸦开发者账号接入 HA 后不会生成可控制的实体,操纵空调主要依靠涂鸦智能 App 和小爱同学语音(对,它支持用小爱操控)。于是,我在 HA 中利用小爱语音指令服务,将开关空调、调整温度编写成脚本,再编写自动化。由于小爱同学经常有延迟、丢指令的情况,编排脚本时最好加上等待时间。
- 空调伴侣。Aqara 空调伴侣 P3,附带了一个温湿度传感器,还挺贵的。买来接入米家 App 是有点坎坷,但匹配遥控码之后我就明白了,原来它通过联合温湿度传感器,模拟出了比较完整的空调,包括感知/记忆当前空调开关状态、温度、面板灯光状态等,App 端好用程度大幅提升。在接入 HA 之后还会生成空调设备实体,可以控制工作模式、风速、摆风,写脚本的时候也能直接使用实体了,而不需要调用小爱同学语音指令(当然也支持小爱)。这个设备同时还是一个 zigbee 网关,不过是云端更新方式,主要依靠 App 管理子设备,要想通过 HA 管理这个网关,会很麻烦。