Contents
前言
我大概是从小米刚刚推出智能家居的时候就开始玩了,应该算是最早玩智能家居的一批人,出什么买什么(家里灯的常规开关都给我换成可远程控制的了,只不过不到3年就坏得差不多了。。。),所以家里一大堆小米的智能和自动化:
然后又是开始搭建苹果生态:
虽然小米的智能可以直接在米家里添加进siri:
但是不太方便,加上我现在已经全面转向siri了,也不想喊小爱同学了,如何打通米家设备和苹果生态呢?这时候想起了Home Assistant(HA),以前一直没啥动力研究下,这下终于找到理由来折腾一下了。
部署Home Assistant
安装形式选择
Home Assistant提供四种不同的安装形式(HA OS、HA container、HA Supervised、HA Core),官方建议使HA OS。
有经验的用户还可根据自己的具体需求选择其他方法,例如,在虚拟环境(如 Proxmox)中运行HA,或在现有操作系统(如 Windows、macOS、Linux)之上运行HA。
注:虽然这些安装形式可以为高级用户提供一些灵活性,但也可能有一些重大限制。例如,可能无法使用附加组件和其他重要的家庭助理功能:
我因为有现成的PVE环境,所以采用的是在PVE上部署HA OS,大家可以根据自己的实际环境选择最适合自己的方式。
创建Home Assistant OS的虚拟机
下载适合PVE上安装的最新版本的Home Assistant OS qcow2文件,链接如下:
https://github.com/home-assistant/operating-system/releases。
我下载时的最新版是12.2.rc1,解压缩以后将qcow2文件上传到pve的/root目录下。
注:我这个时候是xz-utils刚爆出后门时间的时候,注意xz版本不要是5.6.0和5.6.1。
在PVE上新建一个虚拟机,记住其VM id号(此处以我PVE上的108为例)。
详细新建虚拟机的过程参见我另一篇文章:OpenWrt软路由系列 PVE部署OpenWrt(23.05.2)详细教程,唯一不同的是,创建完成后需要在硬件中修改BIOS类型为OVMF(UEFI):
将下载的qcow2硬盘导入虚拟机中:
qm importdisk 108 /root/haos_ova-12.2.rc1.qcow2 local-lvm
添加导入的磁盘:
修改虚拟机的引导顺序:
启用虚拟机:
启动完成:
上图红框中显示的IP既为Home Assistant OS的IP地址,端口为8123。
初始化Home Assistant
使用http://homeassistant.local:8123
登录Home Assistant OS。
首次访问的时候Home Assistant OS会进行准备工作:
注1:这一步最好是需要科学或者魔法的加持,如果按正常国内的网络环境,不知道要等多久,反正我是被卡在.675很长时间后,生气了,让HAOS的IP地址直接科学,才跳过了675往下走并且不到10分钟就初始化完成。
注2:如果部署HAOS的网络环境有IPv6公网地址,又有科学的话,建议不要给HAOS分配IPv6地址,现阶段,IPv6地址和一些科学方式兼容性不是很好。如果要使用IPv6,建议在DNS解析中禁用AAAA记录。
准备工作完成后进入欢迎页面:
创建用户名密码:
然后Home Assistant会发现同一网段的兼容设备:
点击完成后进入了正式的界面:
重点功能实现
原有的小米设备批量配置进Home Assistant
一个一个的配置明显不现实,所以需要通过集成功能将已有的同一平台的产品批量引入HA,下面就以小米设备为例演示如何通过"Xiaomi Miot Auto"插件来将我家里的小米设备批量引入HA。由于HA OS的默认集成里没有"Xiaomi Miot Auto"(其实自带了另一个插件"Xiaomi Miio",但是在配置过程中登录小米云平台的时候一直报错,据说是因为访问HA的主机和HA不在同一个局域网。这是有可能的,因为我HA主机是科学了的,我访问HA的主机没科学,不过我也懒得研究,直接换成Xiaomi Miot Auto),所以我们需要通过以下方式先安装"Xiaomi Miot Auto"。
进入"配置"-"加载项":
在右下方点击红框中的"加载项商店":
安装红框中的"Terminal&SSH":
安装完成之后,进入并点击右下方红框中的"打开 WEB UI":
安装HACS(Home Assistant Community Store):
命令如下:
wget -O - https://get.hacs.vip | DOMAIN=xiaomi_miot bash -
注:其实在其他方式部署的HA里,这命令就是安装HACS(就是一个第三方应用商店)的,安装完成以后HA页面左下菜单应该出现一个HACS的选项,类似如下:
但是不知道为啥我装了就啥反应没有,就是多了一个"Xiaomi Miot Auto"的集成,难道和我安装的是HA OS版本有关(或者HACS的一些功能被集成进了最新版本的加载项商店里)?搞不懂,这个大家可以自己研究一下,我就懒得花精力了。
重启Home Assistant:
然后回到"设备与服务",点击右下角的"添加集成":
会发现多了"Xiaomi Miot Auto":
点击进入后出现如下界面,我是选择了的账号集成,这样会将我小米账号内的所有设备一起关联:
设备连接模式保持"自动模式"就好:
提交之后会报错,出现如下界面:
其实我用"Xiaomi Miio"插件也有上面类似的报错,不过就没有"点击这里"继续的选项,选择"点击这里"继续之后,出现如下界面,直接点击"Yes":
下面的界面选择接入小米设备的范围,相当于黑白名单,Exclude如果留空就是接入全部设备:
可以看到我小米账号下的小米设备都被自动创建了配置:
这个时候再回到概览里,可以看到我所有的小米设备了:
在"开发者工具"菜单中,有关于YAML的相关选项:
这里的YAML其实是指的HA里一个关键的配置文件:"configuration.yaml",很多自定义功能都要通过直接编辑它并添加内容来实现,其默认路径是在:
/root/config/configuration.yaml
可以通过我们前面安装的"Terminal&SSH",在cli界面里用以下命令直接编辑:
vim /root/config/configuration.yaml
不过,这种方式稍微麻烦了一点,毕竟要用到vim,一些朋友也不一定熟悉,所以我这一节用另外一种更简单、更符合大家习惯的方式来实现,那就是加载项"Samba share",它可以把/root目录直接以共享文件夹的方式站想出来。仍旧是在"加载项商店":
点击安装"Samba share":
安装完成进入后,先进行配置:
然后启动该服务:
如果是win系统,直接在"运行里"用//HAOS IP地址进行访问,输入前面配置的用户名密码之后,即可用资源管理器访问:
上图中,addons用于手动安装插件,config下就是"configuration.yaml"所在地,可以直接使用win上的文本编辑器直接编辑"configuration.yaml"。
将小米设备接入homekit
一般而言,我们更多的是将其他平台的设备通过集成功能加入HA,但是,有时候也有反向需求,比如,将加入HA的小米设备通过homekit加入苹果的家庭app,相信这个需求很多果粉都有,毕竟相比直接支持homekit的智能设备,小米的设备要便宜很多。。这个时候,其实就是把HA当一个桥接设备来使用,添加步骤如下:
选择"HomeKit Bridge":
注:上图中的"HomeKit Bridge"是将HA的设备加入Homekit,而"HomeKit设备"是将苹果HomeKit里的设备加入HA,作用是完全不同的,大家不用选错了。
然后选择要包含的域,其实就是选择要将HA上的哪些设备添加进Homekit:
这个还是有必要的,像我家里小米设备那么多(48个设备,157个实体),全部导入homekit有点着不住。。我就在默认值的基础上勾上了二进制传感器(我错了,勾了二进制传感器,后面在家庭app里添加死我了。。建议大家开始的时候还是不要勾选,有需要可以加入后再修改选项来实现):
然后在HA的通知里可以看到多了很多HomeKit的配对:
打开在Iphone上的"家庭"app,点击右上方的+号,选择第一项"添加或扫描配件":
依次扫描添加通知里的需要扫取二维码的设备,最后一个是HomeKit Bridge,添加以后小米设备的信息就过来了(把我添加成死血。。),最后家庭app的内容如下:
而在"设备与服务"中的已配置里也多了"HomeKit Brideg":
里面的内容如下(前面的域选项也可以在下图中的"HASS Bridge"的选项里进行修改):
其他功能
如果大家要添加自动化场景,就在"自动化与场景"中进行添加:
例如,我要创建一个自动化,每当我打开我的马兰士功放,电视墙的灯就打开:
功能太强大了,大家自己慢慢研究吧。
Home Assistant OS还能通过"加载项"商店支持其他功能:
大家根据自己部署HA OS的硬件性能和自己的需求灵活选择即可,我自己不太喜欢这种大杂烩用法,设备我都推崇"专一"使用,如果需要大杂烩,就用虚拟化方案来进行精细化的"专一"。
后话
HA里支持非常多的智能设备品牌,如果大家对智能家居的打造有兴趣,HA非常值得研究,如果要求比较高,也可以用专门的闲置硬件来打造专用的设备,这个就看大家的需求了。
改完uefi引导后,提示uefi interactive shell v2.2,无法启动,我的系统是pve 8.2.2
我的pve是7.9.x,8.2.2还有这种问题?我去网上搜了“pve 8 uefi interactive shell v2.2”的关键字貌似没看到类似的消息,感觉不是pve 8特有的问题,只能再找找操作流程中是否有什么没注意到的点了。
找遍全网基本就几个方案:1.关闭安全引导,这对另一个ros系统管用,ha还是不行 2.官网给的修改启动项啥的也还是没用,最后找了个别人做好的镜像,不知道我这是不是个例
我很多时候也不得不承认是自己脸丑~