小米Home Assistant来了!手把手教你搭建「智能家居」终极平台

科技   2025-01-13 18:04   北京  
点击上方名片关注我们👆

前段时间小米官方在亲自下场,在Ghub发布了官方的Home Assistant(后面简称HA)米家集成项目。
🤔也就是说小米开源了智能家居平台(HA的官方插件),Home Assistant作为一款开源软件的同时,也是智能家居的终极解决方案,它可以聚合各个品牌的智能设备,进行定制化管理。
小米这次的开源,相当于让渡了米家生态的控制权给用户~格局大、格局打开,这下真是“你可以没有小米手机,但你不能没有米家”了...
不会使用别慌!我们「什么值得买App」的作者「羊刀仙、Walter_0x00」今天就正好跟大家聊聊Docker如何部署HA、如何安装小米官方插件并使用...


什么是Home Assistant?

维基百科定义:Home Assistant 是一款免费的开源家庭自动化软件,旨在成为物联网 (IoT) 生态系统独立集成平台和智能家居设备的中央控制系统,专注于本地控制和隐私。它可以通过基于 Web 的用户界面、使用 Android 和 iOS 的配套应用程序,或通过支持的虚拟助手(如 Google Assistant 或 Amazon Alexa)及其自己的“Assist”(内置本地语音助手)通过语音命令进行访问。它将作为家庭自动化的中央控制系统(通常称为智能家居中心)。

官网:https://www.home-assistant.io/

开源代码托管:https://github.com/home-assistant/

Home Assistant 官网

什么是智能家居:指建筑自动化的家庭,而家庭自动化(home automation或domotics)则指实现智能家庭的过程。家庭自动化系统可以监控和/或控制灯光、窗户、温湿度等家庭设置,还可能可以控制家庭出入和触发警报器以保护家庭。通俗讲进家自动开灯,手机上可以远程控制灯光、电气设备,监控室内温度并自动执行开空调等操作。

智能家居同类型产品:国内厂家也很多小米(米家)、华为智选(HiLink)、苹果(HomeKit)、百度、涂鸦等,国外厂家也有谷歌、亚马逊等。

优缺点:Home Assistant以下简称(HA)根据定义来看它是物联网 (IoT) 生态系统独立集成平台和智能家居设备的中央控制系统。一共两个特点、集成、中控(本地化)。集成主要体现在集成,根据官网认证的集成数为2758, 集成 - 家庭助理 (home-assistant.io)。HA拥有良好的社区平台和众多大神对集成的开发,该平台集成依然在快速增长。集成还有一个好处那就是可以通过集成程序连接其它平台,例如米家平台。如下图:

Home Assistant 集成界面

优点:

  • 多平台集成:可以通过集成连接其它平台,同一协调控制各平台设备。

  • 本地化:可以在外部网络中断的情况下控制家庭设备。(注意:部分集成需要通过网络平台进行连接,外部网络中断时或无法连接到集成平台时无法进行控制)

  • 多种通讯支持:如蓝牙、Thread、Zigbee 和 Z-Wave等都支持。

  • 多协议支持:如物联网专用协议MQTT、API接口、http请求等。开源:开源不仅表现在对集成的开发层面、还表现在该平台为开源平台,由Python开发并部署的平台,可以通过下载源码-修改-打包方式定制你的HA。集成开发国内论坛、官网、github等都有写集成的大佬。

  • 智能设备限制较少:通常表现在某些平台一些智能设备较贵,性价比不高,有些智能设备比较便宜,性价比高但是质量不是很好。这样就可以跳出某个品牌限制等。

缺点:

  • 获取和调试:该系统国外开源软件,安装过程中和安装插件时因为众所都知的原因,会存在一定的困难。

  • 需要一定的计算机水平:HA平台在安装和调试过程中可能需要基础的linux命令、python基础、yaml、docker。当然某宝、某鱼上也有现成的安装好的由大神改装的HA硬件设备。

  • 兼容性问题:一些集成插件因为识别或者官方限制问题导致部分功能不正常或者无法正常使用。

  • 语音唤醒不完善:目前为止HA平台语音识别能力及智能化程度不及国产智能音响(如:小爱同学、小度、天猫精灵等)。



Docker部署HA&安装小米官方插件全过程

小米的官方插件比起社区版,具备以下优势:

✅ 首先官方插件支持集中登陆多个小米账户,并且没有地区限制。

✅ 社区插件基本通过轮询来获取设备状态,性能不佳的同时延迟较高。官方的集成插件则通过小米云官方的API来控制设备状态(通过订阅),效果更好。

✅ 官方插件可以轻松配置小米蓝牙网关且支持本地控制,如果配置了小米中枢网关,则可以不经过云端直接通过中枢网关处理设备消息,提高速度与稳定性。

不过官方插件对HA的版本有一定要求:

Core ≥ 2024.11.0Operating System ≥ 13.0


部署Home Assistant

各家NAS的部署方式都大同小异,大家可做参考,欢迎评论区留言讨论。

首先在你的设备中创建一个文件夹用于存放数据文件。建议在常用的Docker目录下,我的威联通NAS设备为:/share/Container/ha/config。

官方的docker run部署命令如下:

docker run -d  

--name homeassistant  

--privileged  

--restart=unless-stopped  

-e TZ=MY_TIME_ZONE  

-v /PATH_TO_YOUR_CONFIG:/config  

-v /run/dbus:/run/dbus:ro  

--network=host  

ghcr.io/home-assistant/home-assistant:stable

将上面的命令转为Docker Compose格式打开Docker管理工具,创建新的项目,将以下配置修改后粘贴进框内并点击创建。


version: '3.8' 

services:  

homeassistant:    

image: ghcr.io/home-assistant/home-assistant:stable    

container_name: homeassistant    

privileged: true    

restart: unless-stopped     

environment:

     - TZ=Asia/Shanghai # 替换为你的时区,例如 Asia/Shanghai    volumes:

     - /share/Container/ha/config:/config       # 冒号左侧替换为你的配置路径

     - /run/dbus:/run/dbus:ro            # 挂载 dbus,确保主机的相关服务可用

   network_mode: host # host模式下默认端口为8123

部署完毕后,在网页端输入NAS_IP:8123即可访问HA。

照着引导创建新的用户。

设置完毕后,在主界面点击左侧栏的【设置】-【关于】,可以查看当前HA的版本信息,可以看到符合要求。


安装小米官方插件

我们回到NAS的web管理界面,如下图所示,在容器目录中选择刚部署的homeassistant,点击【执行】打开执行控制台,选择第一个/bin/bash,并点击窗口中间的【执行】。

在控制台中依此执行以下命令:

# 稳妥起见,执行一步一回车 

git clone https://github.com/XiaoMi/ha_xiaomi_home.git 

cd ha_xiaomi_home ./install.sh /config

执行完毕后,会提示我们重启镜像,那我们重新启动即可。


配置使用小米插件

网页进入HA的控制台,点击左侧【设置】,选择右侧的【设备与服务】。

点击右下角的【添加集成】,搜索框内输入xiaomi,添加第二个Xiaomi Home即可。

登陆地区这个按各位的实际情况而定。

点击蓝色的文字,会跳转到小米账户登陆界面。

点击【确认授权】。

MAC用户建议使用Chrome浏览器...否则可能会卡授权。授权完毕后,会进入一个错误界面,我们把homeassistant.local替换成正确的即可(设备的IP)。

接下来继续设置,关于控制模式:

自动:如果已具备中枢网关,会自动使用;云端:完全依赖小米云

显示配置成功。

在设备中点击具体设备,我发现了确实厉害:小米的智能多模网关2可以直接关联出来,以前的社区插件配置这玩意简直麻烦的不得了。

因为图文不好做演示,以小米音箱为例,我是可以通过这些开关来实现唤醒、播放电台、播放音乐等操作的,反应速度也相当快。同样的,各类温湿度计、传感器、开关、电灯等各种蓝牙版的开关也都能正常使用,实现此类功能。


Linux主机命令操作全流程

适用于各类Linux主机以及VPS,个人建议乌班图或Debian。

# 部署HA

sudo -i 

mkdir /root/docker/data/ha 

cd /root/docker/data/ha 

vim docker-compose.yml # 上文的代码修改后粘贴进yml文件 

docker compose up -d 


# 进入容器内安装小米插件,稳妥起见,执行一步一回车 

sudo docker exec -t homeassistant bash 

git clone https://github.com/XiaoMi/ha_xiaomi_home.git 

cd ha_xiaomi_home 

./install.sh /config 

# 输入exit并回车 或 Ctrl+D 快捷键即可退出镜像 

docker restart homeassistant # 重启镜像



写在最后

家里用全屋智能的小伙伴肯定绕不过米家,毕竟“不能接入米家=不能进我家。”

而稍微更极客一点的,应该都知道homeassistant,可以控制基本上市面上所有的智能家居设备,特别是不支持接入米家的设备,以达到“尽管不能接入米家还是想要进入我家的目的”,你,学废了吗~

欢迎来「评论区」一起聊聊,也可以点击“阅读原文”去了解更多哦~


-阅读更多-



关注我们,设为星标👇

什么值得买
千万用户热爱的科学消费指南
 最新文章