一、Docker安装

采用 docker 的方式安装 Home Assistant
1.安装环境
  • 以 root 身份运行以下命令su -安装依赖
apt install \
apparmor \
jq \
wget \
curl \
udisks2 \
libglib2.0-bin \
network-manager \
dbus \
lsb-release \
systemd-journal-remote -y
  • /etc/apt/sources.list 文件默认的源替换为镜像
deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb https://mirrors.aliyun.com/debian-security/ bullseye-security main
deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main
deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
设置git全局镜像加速
sudo apt install git

#设置的命令会将镜像代理的前缀写入 ~/.gitconfig
git config --global url."https://ghproxy.com/https://github.com".insteadOf "https://github.com" 
  • 更新系统索引、更新软件包
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
2.安装 Docker CE
# 使用阿里镜像源下载并安装Docker
sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
3.安装完成之后重启reboot
4.启动docker,并且将 Docker 设置为自动启动,并依次输入以下命令调优。
#1.启动docker
sudo systemctl start docker
#2.开机启动docker
sudo systemctl enable docker
#3.启动 Docker 守护程序
sudo systemctl start docker

#4.将当前用户加入 docker 组
sudo usermod -aG docker $USER
#5.查看用户组docker中有没有当前用户
sudo cat /etc/group | grep docker

二、Home assistant安装

下载os-agent

#查看 cpu类型
uname -m

#下载相应 cpu 架构的包
wget https://github.com/home-assistant/os-agent/releases/download/1.5.1/os-agent_1.5.1_linux_x86_64.deb

#安装
sudo dpkg -i os-agent_1.5.1_linux_x86_64.deb

运行安装脚本

#下载安装脚本

wget https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb

#安装
sudo dpkg -i homeassistant-supervised.deb
  • 会弹出弹窗选择 qemux86-64,开始安装 home assistant,会下载 docker 镜像,此步骤需要一段时间。

  • 但是,这个时候http://<IP>:8123无法进入Home Assisistant Supervised的管理页面,你需要重启一次服务器

sudo reboot
#1.重新检查是否换源成功
docker info

#2.docker镜像加速,在 nano /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件),加速镜像地址可在此找 https://gist.github.com/y0ngb1n/7e8f16af3242c7815e7ca2f0833d3ea6
{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
    "https://docker.m.daocloud.io",
    "https://dockerproxy.com"
  ]
}

#3.重新启动服务
sudo systemctl daemon-reload
sudo systemctl restart docker
  • HomeAssistant Supervised 安装完成后,可以查看运行的docker容器(如果并没有Homeassistant容器;那么等10min~20min再试试,期间保持服务器运行,Homeassistant会组建初始化完成):
docker ps -a
  • 这时候出现了7个容器,并且其中有NAMES为homeassistant这个容器,且进入http://<IP>:4357,可以查看Supervised的状态
此时再访问http://<IP>:8123提示Preparing Home Assistant,如果一直卡在准备界面就等,一天不行就两天。

查看容器配置

  • 进入HomeAssistant容器配置目录,一般容器里/config被挂载到宿主机的/usr/share/hassio/homeassistant

  • 为配置方便,可以把config文件夹软连接至home目录:

sudo ln -s /usr/share/hassio/homeassistant $HOME/homeassistant_config
  • 这样可以更方便地更改HomeAssistant的配置文件。如果服务器不可达,可以尝试安装Samba服务器插件。不过我本身主机配置过samba,就不通过SMB插件管理配置文件了。

整个HASS系统在/usr/share/hassio,通过Supervisor备份配置时,便会打包/usr/share/hassio。需要系统迁移时,可以将/usr/share/hassio拷贝至目的主机,然后使用HomeAssistant Supervised的安装脚本安装。

三、HACS插件商城

米家设备可以直接安装GitHub hass-xiaomi-miot 插件,也不一定非要通过HACS

商城有很多很多插件,Home Assistant接入米家设备也是通过插件的形式操作的,插件安装基本都是直接使用插件方的命令即可。
# 进入容器内部执行
docker exec -it homeassistant bash
# 执行hacs安装命令
wget -O - https://hacs.vip/get | HUB_DOMAIN=ghproxy.com/github.com bash -
# 如果脚本遇到网络问题无法安装wget -O - https://hacs.vip/get | bash -,直接下载 https://github.com/hacs/integration/releases/latest/download/hacs.zip
# 然后把hacs.zip解压到容器的/config/custom_components/hacs目录,手动重启容器

#要退出容器命令行直接输入 exit

极速版HACS和原版HACS(wget -O - https://get.hacs.xyz | bash -)相比,对国内网络环境更加友好,能够大大提升下载速度! custom_components 就是插件目录

耐心等待安装过程。在最下方看到“安装成功”及“请重启Home Assistant”字样后,就说明成功了。
在左侧的Home Assistant导航栏中,点击左下方的“配置”,然后点击“系统”。
进入系统页面后,点击右上角的“重启”按钮。
展开高级选项,点击“重启系统”。
确认重启,然后耐心等待。
左下角会实时通知重启进度。看到“Home Assistant已启动”就说明重启成功了。
接下来,我们再进入HA配置页面,点击“设备与服务”。
然后点击右下角的“添加集成”。
在跳出来的搜索框中,输入“HACS”四个字母,然后点击下方的HACS图标。
将四项声明全部勾选,然后点击“提交”。
在提交完成后,很多小伙伴可能会遇到下面这种情况:“无法使用GitHub进行身份验证……”。这是很正常的,解决问题的办法就是换个浏览器,或者是重启下电脑,或者清空浏览器缓存再试试。比如我第一次使用Chrome浏览器就报错了,但是换成Edge就没有问题。
如果一切顺利的话,就会看到下面的“等待设备激活”页面。在这里,我们需要先点击github的链接。
如果有GitHub账号,我们可以直接登录。没有GitHub账号的话,请点击下方的“Create an account”注册后再登录。
登录后,将上一步中的激活代码填入,然后点击“Continue”。
当看到“Congratulations,you’re all set!”后,就可以关闭当前页面了。回到Home Assistant页面,正常情况下,应该可以看到“成功!”的提示,点击“完成”即可。如下:
但是!很多小伙伴在进行到这一步的时候,由于网络问题,很可能会无法弹出上面这个成功提示。如果遇到了这种情况,仍然保留在“等待设备激活”页面的话,可以尝试将浏览器缓存彻底清空后再重新添加HACS集成,一般都可以解决。在HACS安装完成之后,我们就可以在侧边栏看到它了。

四、hass-xiaomi-miot配置

方法1: HACS

  • 首次安装 HACS > 集成 > ➕ 浏览并下载存储库 > Xiaomi Miot Auto > 下载此存储库

  • 升级插件 HACS > 集成 > Xiaomi Miot Auto > 更新 / 重新下载

方法2: 通过SSH或Terminal & SSH加载项执行一键安装命令

# 进入容器内部执行
docker exec -it homeassistant bash

# 安装插件
wget -q -O - https://raw.githubusercontent.com/al-one/hass-xiaomi-miot/master/install.sh | ARCHIVE_TAG=latest bash -
# 如果遇到下载缓慢或下载失败可以执行下面的命令
wget -q -O - https://ghproxy.com/raw.githubusercontent.com/al-one/hass-xiaomi-miot/master/install.sh | HUB_DOMAIN=ghproxy.com/github.com ARCHIVE_TAG=latest bash -

#要退出容器命令行直接输入 exit

Xiaomi Miot Auto:将米家的设备接入HA,且可以接入蓝牙网关下的设备,能自动判断设备是本地还是远程连接(除了支持Wi-Fi的,都是远程)

BLE Monitor:在不使用Miot集成的情况下,直接将蓝牙Mesh设备通过BLE直连至服务器。(但是板载蓝牙的距离和数据取回时间都很糟糕)

搜索xiaomi,选择 xiaomi-miot-auto,选择账号集成模式,输入小米账号(手机号)密码,选择自动模式,接着基本就是下一步下一步了,点点点就好。
到这里,我们已经可以通过homeassistant来控制米家接入的所有设备了。

五、Apple Homekit 配置

配置 - 集成 - 管理集成 - 添加集成 - Homekit
同样的下一步下一步即可,完成之后会自动跳出通知消息。
点开之后就是 iPhone “家庭” App可以添加进去的设备二维码。
跟着苹果提示,把设备都添加到“家庭”中就完事了。

手机断开WIFI,后想远程控制Homekit需要一个中枢,可以是iPad、Apple TV、HomePod

六、主题

Home Assistant Mushroom主题
Home Assistant Mushroom主题
设置主题之前,需要修改 homeassistant 目录下的 configuration.yaml 文件,然后重启 homeassistant (docker 安装方式为 /usr/share/hassio/homeassistant/configuration.yaml)
# Loads default set of integrations. Do not remove.
default_config:

# Text to speech
tts:
  - platform: google_translate

# 添加下面两行配置,第二行最前面是两个空格
frontend:
  themes: !include_dir_merge_named themes

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
themes/ios-themes/ios-themes.yaml
Mushroom 卡片:piitaya/lovelace-mushroom在 HACS 内的前端选项,搜索 Mushroom 即可

七、安装图形化系统管理工具 cockpit(可选)

apt-get install cockpit cockpit-storaged cockpit-storaged
systemctl start cockpit
systemctl enable cockpit.socket
Cockpit安装成功后,您可以使用Web浏览器在以下位置访问它。https://ip-address:9090
默认没有安装管理docker 的插件,想用 cockpit 管理 docekr,需要安装 cockpit docker 插件。
wget https://github.com/mrevjd/cockpit-docker/releases/download/v2.0.3/cockpit-docker.tar.gz
ssh进入/usr/share/cockpit 目录
cd /usr/share/cockpit
解压软件包
tar xf cockpit-docker.tar.gz -C .