当家里有了米家的智能灯具之后,除了按键控制、app控制和人在感应控制,免不了就想把语音控制也弄起来,但是遗憾的是,不同的智能家居体系互不相通,米家智能、Google Home、Apple Home各成体系,互不开放,如果买的不是一个体系内的,就很互相控制。而我家的灯具和开关就是米家的,而音箱则是几年前买的Google Nest mini2,在主卧和餐厅各放了一个,除了问天气这种没用的功能之外,最常用的就是吃饭时坐下来后通过Hey Google让它播放spotify上面的歌了,所以当我想要用Google音箱来控制米家的灯具的时候,有意思的部分就来了。首先,Google home里是可以对接米家的,但是,能看到的只是米家的几个摄像头,蓝牙智能开关、人在感应器这些设备都无法发现。最简单的路线已经堵死了,不得不逼我开始折腾。
主角出场:Home Assistant!原来,在各家智能家居厂商各自的体系之外,还有一个客观、中立、开源、免费的第三方平台,叫Home Assistant,可以通过它来作为跨厂商的调用平台。正好家里有闲置着吃灰的Synology NAS,可以直接折腾起来。
Home Assistant(简称HA)是一个功能强大的开源智能家居平台,旨在本地化运行以实现高隐私安全。它能够跨品牌、跨协议(如Zigbee、Wi-Fi、Bluetooth)接入数千种智能设备,通过统一的界面进行集中控制与复杂自动化设置。HA用户可以利用树莓派、NAS或旧电脑等硬件部署,打破设备生态壁垒。
第一步是NAS上部署HA。Docker是真香啊,一键拉取镜像启动,直接搞定;在GPT的支持下,又专门给申请了一个安全证书,把HA登录页面通过nas上的反向代理和端口映射,开放到了外网,这样随时随地都可以访问到家里的HA后台服务网站了。
第二步是让HA识别出米家的设备。这一步需要在HA上先安装一个叫HACS(Home Assistant Community Store)的插件,有点类似于开源应用市场,就像在小米电视盒子上装了个当贝市场,有了这个之后就可以通过HACS浏览和下载其他插件了。这个市场里有各种各样智能家居品牌的插件,比如说大金、LG等,这些家电本来只是能通过自己家的app来控制或者通知,现在全部都可以接入到HA里面了。这里对接米家的插件,原先最有名的是一个第三方的叫做hass-xiaomi-miot,但近两年小米官方Home Assistant 米家集成也下了场,提供了Xiaomi Home的HACS插件,从小米账号登录安全角度,我还是选择了官方插件。装完之后,米家里的设备就全部在HA里面出现了,顿时满屏的设备和参数就看到了,专业感十足:

到这里还只是能从HA上控制米家灯具,但是还得打通HA-Google Home这条链路,所以还需要第三步:让Google Home能控制这些设备。这里ChatGPT也走了些弯路,本来它让我又在docker上安装了一个matter bridge服务,然后想把灯具在HA上虚拟为一个matter设备,然后让Google Home来发现添加,但这里面它出现幻觉了,在我怎么按照指令操作都找不到它说的设置方式之后,它告诉我,这条路其实并不通,我靠……
Matter Bridge方案不行之后,它又给了两个方案,一个是Google Assistant Integration,一个是Nabu Casa,后者是一个收费订阅的SaaS服务自然被我pass,前者免费但更加Hard Core了,需要先注册一个Google Cloud Developer,好的,注册就注册。为了避免再被ChatGPT坑,接下来的动作我转移到了Gemini来支持我。注册之后,要新建一个project,然后在里面增加一个Cloud-to-Cloud integration,有意思的是,这里还必须要提供一个140x140px的图标,后来我才知道这里相当于就是让我扮演了类似LG的一个厂商开发者的角色,把我要控制的灯具封装成了一个Google Home能认出来的设备,然后再到Google Home里面选择通过第三方认证链接添加设备,这里的第三方各大品牌的列表里,赫然就能找到我刚新建的这个Project,从而终于把我的米家灯具添加到了Googe Home。
到这里,基本上语音控制就没问题了,Hey Google,Turn on/off bed light之类的,就可以实现语音让Google开关米家灯具,代价是因为走的公网,反应稍有延迟,但是目的实现了,用Gemini给我的总结来说,我完成的其实是一个典型的 IoT 云对接架构: 米家设备 (Miot) -> 局域网网关 -> Home Assistant (中枢) -> 群晖反向代理 (HTTPS 隧道) -> Google Cloud (OAuth 握手) -> Google Nest (语音终端)。
最终,整体连续折腾时间约5小时,花了我一整个星期天的下午,连娃的舞蹈班接送都没管,但能通过自己的这一顿折腾打通壁垒,实现需求,这个研究折腾的过程所获得的满足感,和最后搞定这件事情带来的成就感本身早已经超过了目的了。这5个小时,我是沉浸在一种心流的感觉里面的,非常的投入和享受,而这种感觉已经很久没有体验过了。后来,在把家里能接入的家居如石头的扫地机、LG的厨卫家电都接入到Home Assistant之后,可玩性进一步提升,比如我又加了一条规则:因为洗衣机离主卧远,在LG的洗衣机每次洗完之后,触发主卧的Google音箱播放语音提醒及时晾衣服,哈哈。期待接下来更好玩的折腾。














