通过ESXi安装Home Assistant OS

通过ESXi安装Home Assistant OS/Install Home Assistant OS on ESXi

因为米家APP本身的功能实在太少了而且有很大的局限性,因此想把支持米家的设备都接入到Home Assistant中。

大概了解了一下,当下比较可靠且好用的方案是用Xiaomi Miot Auto来集成米家设备。根据其文档描述,需要先给Home Assistant安装HACS(社区商店),然后才能从HACS中安装。

因此本次的目标是:通过ESXi安装Home Assistant OS,然后安装HACS扩展,最后通过
Xiaomi Miot Auto集成米家。

Home Assistant的官方文档中提供了多种安装方式,网上随手一搜比较常见的是docker安装,不过根据官方功能对比,其他安装方式在功能上多少都有点局限性。而Home Assistant OS作为官方封装的操作系统,自然是推荐的安装方式,并且功能完全解锁的。刚好家里搭了ESXi虚拟化平台,选择OS方式安装再合适不过。

ESXi所在的机器是一台畅网J4125 i226 ,拥有32G内存,最终分配了4G内存用于HA OS。
各个软件的版本号如下:

VMware ESXi 7.0.3
Home Assistant 13.2

最终花了一路下来还是踩了不少坑,不过基本上是网络相关的问题。

安装Home Assistant OS

下载文件

首先需要下载 Home Assistant的虚拟机文件,这里用的版本是Home Assistant 13.2,下载其中的haos_ova-13.2.vmdk.zip,然后解压出haos_ova-13.2.vmdk备用。

创建目录并上传文件

进入EXSi管理后台,然后打开存储中的数据存储浏览器,创建一个目录,目录名与后续虚拟机的名称一致,我这里用的是HomeAssistant-13.2。然后将前面解压出来的haos_ova-13.2.vmdk上传到这个目录中。

创建虚拟机

我这里的方式是通过创建新的虚拟机,然后通过挂载现有硬盘也就是前面的vmdk文件来完成安装。其实应该也是可以用从OVF或OVA文件部署虚拟机,目前(2024.11.24)官方文档中通过ESXi安装似乎就是给了个OVA文件。不过我习惯用vmdk来做,就没去试OVA。

所以第一步选择创建新虚拟机,然后下一页到输入名称,名称和之前的目录名一致:HomeAssistant-13.2。下面的选项没啥影响,随便选个差不多的完事。

创建新虚拟机

在下一页进行配置的设置。

官方推荐的最小配置是:

2GB 内存
32GB 存储空间
2个CPU核心数

我这里设置CPU核数为2,内存分配4GB

因为我们是通过添加现有硬盘来安装的,因此默认的那个硬盘可以移除掉,没必要再额外创建一个多余的硬盘。

然后光驱这种没用到的也可以移除掉,当然不移除也没啥影响。

然后添加一个现有硬盘,选择vmdk文件,并将该硬盘的控制器位置SCSI控制器0改为IDE控制器0

在同一步骤的上方,点击VM选项,找个引导选项,将固件改为EFI

修改为EFI

然后完成后,打开电源等待启动完毕即可。进入控制台,会加载出Home Assistant的logo以及访问URL等信息,至此安装完毕

配置和使用

安装Home Assistant其实很简单,并没有遇到什么问题。但是接下来有挺多坑。

Home Assistant中会用到Github以及Docker进行服务和插件之类的下载,由于网络的原因,基本上不可能直接使用。

在安装完毕之后,需要进行初始化。访问URL会进入一个初始化界面,需要初始化的时间大概10-20分钟左右,但是大概率会卡在docker相关的操作,导致无法完成初始化。
所以第一步想到的就是:SSH到服务器上进行某些配置的修改

但是在安装完毕后,并没有看到系统账号密码相关的信息,直接去SSH 22端口也会发现并不能连接。因此只能先通过ESXi的控制台访问。

打开控制台,默认进入到一个有Home Assistant Logo的界面,这个界面其实并不是通常意义上系统的Shell,而是Home Assistant command line,一个用来操作Home Assistant的命令行工具。此时输入ls之类的linux命令是没用的。

翻阅了一些资料,发现想要从Home Assistant Cli 切换为Shell,我们只需要输入login命令,不需要输入账号密码,此时就能进入shell,然后就能使用熟悉的ls等命令了。

因为我本身有个旁路网关,因此进入Shell后,我首先想到的是修改网卡的配置,修改成指定的静态IP,然后设置成旁路由的网关和DNS。但是最终发现这么做并没什么用,虽然能让初始化正常进行,但是后续的下载插件无法正常请求。并且修改网络配置在后续初始化完成后,进入系统的设置-系统-网络中有GUI可以设置,因此完全没必要做这一步

不过还是记录一下相关的操作:

  1. 显示所有的连接

    nmcli connection
  2. 修改某一连接,我这里的是`Supervisor enp2s1

    nmcli con edit "Supervisor enp2s1"
  3. 查看IPV4信息

    print ipv4
  4. 修改IPV4的IP/DNS/GATEWAY

    # 设置想要的静态IP 比如192.168.80.100
    set ipv4.addresses 192.168.80.100/24 
    # 设置DNS
    set ipv4.dns DNS的IP
    # 设置网关
    set ipv4.gateway 网关的IP
    # 保存设置
    save
    # 退出
    q

在我配置完网关等信息后,发现下载插件会报Docker请求相关的错误。于是决定还是通过修改/etc/docker/daemon.json文件来加速访问。结果发现在Home Assistant OS下,该文件是只读的,无法直接进行修改。

{
  "storage-driver": "overlay2",
  "log-driver": "journald",
  "experimental": true,
  "iptables": true,
  "log-opts": {
    "tag": "{{.Name}}"
  },
  "data-root": "/mnt/data/docker",
  "deprecated-key-path": "/mnt/overlay/etc/docker/key.json",
  "bip": "172.30.232.1/23"
}

找了半天,并没有发现官方的解决方案能修改。最后在一个俄罗斯博客中发现了解决方案,大意是可以在/etc/udev/rules.d中建立两个文件,一个是规则文件00-docker-mirrors-workaround.rules,用于在开机的时候通过配置的规则覆盖默认的daemon.json。另一个是自定义的docker-daemon.json,用来覆盖默认的文件。

00-docker-mirrors-workaround.rules的内容是:

ENV{ID_FS_LABEL}="hassos-overlay", ACTION=="change", RUN+="/usr/bin/systemd-mount --no-block -o bind /etc/udev/rules.d/docker-daemon.json /etc/docker/daemon.json"

docker-daemon.json的内容根据自己的情况,在所有的基础上添加或修改所需要的配置。我这里的配置是私有的,就不贴出来了,无非就是加registry-mirrors或者proxies

因为没法直接上传,而直接手写又很容易错。所以我是在外面修改完毕了,起了一个本地的Web服务,然后通过curl命令下载。然后重启系统即可,第一次重启后执行cat /etc/docker/daemon.json发现内容并没有变化,然后再次重启后才被覆盖。此时就可以在后台中的设置-加载项中正常添加插件了。我觉得很有必要先添加的两个插件:

  1. Samba share,开启SMB功能,方便访问文件。在配置页可以配置账号密码,建议和后台的一致,方便管理。然后启动即可。访问路径\\HA的IP地址即可
  2. Terminal & SSH,提供了一个Web 终端界面进行SSH。

安装HACS

HACS是The Home Assistant Community Store 的缩写,也就是Home Assistant的社区商店,提供了一个额外的页面来安装管理更多的插件/集成。

此次我安装HACS的目的就是为了集成米家,需要的集成叫Xiaomi Miot Auto

安装HACS有两种方式,可以通过 HACS文档 中的下载HACS插件来下载HACS。也可以到Github仓库中的Release中手动下载安装。

最终实际上都是在HA系统的config目录下,创建一个custom_components目录,然后在这个目录中,再创建一个hacs目录,将HACS的压缩文件中的内容解压到其中,然后重启即可。

安装Xiaomi Miot Auto

在安装完HACS并重启后,Home Assistant后台的左侧栏会多一个HACS的图标,在其中搜索xiaomi然后找到Xiaomi Miot Auto并下载即可。也可以参照文档进行手动安装

参考

  1. https://community.home-assistant.io/t/hass-io-on-vmware-esxi-6-7-step-by-step/151419
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇