树莓派0W和4B两种方法安装HASSIO教程

关于用什么设备好

树莓派0W是能装的,就是…安装很慢,装完每次服务重启也很慢。
4B重启一下服务大概12秒,0W…呃…5分钟吧…


关于用什么系统好

HASSOS非常方便,烧录完加几个配置文件允许就行了,丢着就行。最快15分钟,最慢1个小时。

但是HASSOS基于alpine-linux,和一般的linux好像不太一样(我不是很懂啊我不太用linux的),所以装其他东西比较麻烦…几层系统的嵌套结构弄得我也有点懵。

所以不想折腾就方法一直接HASSOS吧,想自己动手的就方法二DOCKER+HASSIO(其实方法一也是docker但是我不太能搞懂里面的结构)


前提准备

下载工具:官方烧录工具
(SDFormatter+Image Writer也行,但这个工具集成了这俩的功能还快)
先对SD卡执行一遍Erase格式化


方法一:安装HASSOS(以树莓派0W为例)

0W的配置确实…不怎么样…
如果你只有一台0W的话…直接装HASSOS吧…反正docker的方法我捣鼓了几天慢的我人都要没了(换了源下载不慢,安装慢的急死人)


下载HASSOS镜像

官方链接:Home Assistant OS Release
所有版本的都有,按照你的树莓派版本下载对应的镜像就ok(*.img.xz)

国内换源:HACHINA镜像
感谢Andrew老师提供,这里会实时更新树莓派3和4的国内镜像(其他型号的不知道安装了能不能允许,我就不浪费时间试了,但反正亲测树莓派4是OK的)
PS:这个视频课程也不错,在网易云课堂上,298块内容挺多的(可以淘宝买网易云课堂的学习币,大概只有7折的价格)


烧录

用官方烧录工具,Erase过后选择Use Custom然后选你的镜像,然后选择你的储存卡,等待写入然后校验就ok了


准备工作

  1. 烧录过后会弹出读卡器,所以再次插拔
  2. 在启动盘中建立CONFIG文件夹
  3. 在CONFIG文件夹中建立timesyncd.conf文件,写入以下内容(去掉几个也行,我强迫症)
[Time]
NTP=0.cn.pool.ntp.org 1.cn.pool.ntp.org 2.cn.pool.ntp.org 3.cn.pool.ntp.org ntp1.aliyun.com ntp2.aliyun.com ntp3.aliyun.com ntp4.aliyun.com ntp5.aliyun.com ntp6.aliyun.com ntp7.aliyun.com
FallbackNTP=0.cn.pool.ntp.org 1.cn.pool.ntp.org 2.cn.pool.ntp.org 3.cn.pool.ntp.org ntp1.aliyun.com ntp2.aliyun.com ntp3.aliyun.com ntp4.aliyun.com ntp5.aliyun.com ntp6.aliyun.com ntp7.aliyun.com
  1. 在CONFIG文件夹中建立authorized_keys文件(无扩展名),用puttyGen或者什么的生成RSA,公钥放这里(ssh-rsa开头的),私钥放到putty或者xshell什么的里面一会用。
  2. 在CONFIG文件夹中建立network文件夹,然后在network文件夹里新建my-network文件(无扩展名),然后写入
[connection]
id=my-network
uuid=7b91b4ea-528e-4c87-a3fe-5cd21f22b03a
type=802-11-wireless

[802-11-wireless]
mode=infrastructure
ssid=这里填WIFI名称(WIFI名称有空格的时候也可以不加引号)
# Uncomment below if your SSID is not broadcasted
# hidden=true

[802-11-wireless-security]
auth-alg=open
key-mgmt=wpa-psk
psk=这里填WIFI密码

[ipv4]
method=auto

[ipv6]
addr-gen-mode=stable-privacy
method=auto

现在文件结构应该是这样的:

CONFIG
├── authorized_keys
├── timesyncd.conf
├── network
│ └── my-network

  1. 把Micro SD卡插入树莓派启动。

安装和启动

国内换源的在20分钟以内,具体多少时间忘了…挺快的反正…
官方镜像没换源好像也不是特别慢,我可能也就丢在那不到1小时就装好了。

多刷几次http://ip:8123等出来就好了

然后在路由器里设置一个静态IP吧
MAC地址可以在局域网下的windows电脑cmd里输入以下命令

arp -a



方法二:安装Raspberry Pi OS + Docker + HASSIO

树莓派4B大概需要30+N分钟(主要是最后HASSIO的下载安装挺慢的)
主要流程是参考:这篇帖子

这里先提一嘴,装完之后HASSIO里显示操作系统不支持(但应该也不影响使用),原文见这里,所以你们要不装个debian11试试?后面配置网络的步骤可能有点小变化,但应该问题不大。


下载镜像

下载:官方镜像
其实哪个都行,我是下的Raspberry Pi OS with desktop and recommended software,这样方便点


烧录

用官方烧录工具,Erase过后选择Use Custom然后选你的镜像,然后选择你的储存卡,等待写入然后校验就ok了


准备工作

  1. 烧录过后会弹出读卡器,所以再次插拔
  2. 建立wpa_supplicant.conf文件,写入以下内容:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=CN
 
network={
  ssid="WIFI名称"
  psk="WIFI密码"
  key_mgmt=WPA-PSK
  priority=5
}
  1. 建立ssh文件(无扩展名),这个让你的电脑SSH连接到树莓派。
  2. 然后把Micro SD卡插入树莓派启动。

换源

启动过后先换个apt源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo nano /etc/apt/sources.list

先把原来的源注释掉,然后加入以下内容:

deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi

继续换源

sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak
sudo nano /etc/apt/sources.list.d/raspi.list

先把原来的源注释掉,然后加入以下内容:

deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ stretch main ui

顺便换个pip源

cd ~
mkdir .pip
sudo nano ~/.pip/pip.conf
[global]
trusted-host=mirrors.aliyun.com
index-url=http://mirrors.aliyun.com/pypi/simple

提前换个docker源

sudo mkdir /etc/docker/
sudo touch /etc/docker/daemon.json
sudo nano /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com", "https://registry.docker-cn.com"],
"log-driver": "journald"
}

换这个log-driver的话是HASSIO只支持这个,现在换好省的一会再重启了


正式安装

curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/raspbian/gpg | sudo apt-key add -
echo "deb [arch=armhf] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/raspbian stretch stable" | sudo tee /etc/apt/sources.list.d/docker.list

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade
sudo apt-get install bash socat jq -y
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 lsb-release software-properties-common
sudo apt-get install docker-ce

倒数第二步会提示你network-manager没安装,但可以装完docker再来弄,因为这个…
很!麻!烦!

首先看一下路由器设置先不要分配静态IP(分配了应该也没事),因为换了NetworkManager之后MAC好像会变…(好像)

首先安装NetworkManager

sudo apt install network-manager network-manager-gnome

重启以后,就会看到角落多了一个图标,就是NetworkManager。然而点击以后,却发现Wifi那里显示设备未就绪。一番搜索以后了解到Wifi仍然被之前的系统管理,NetworkManager无法接管。解决方法简单粗暴,直接卸载下面两项:

sudo apt purge openresolv dhcpcd5

重启以后原来的系统图标变成了一个叉,而NetworkManager的菜单里面Wifi可以正常使用了。

以上来源于这篇帖子

按着这个操作之后确实NetworkManager里面的Wifi列表显示了,但我点了之后图标闪了一下没有反应,继续查资料:

sudo nano /etc/NetworkManager/nm-system-settings.conf

然后修改一下(这步不确定有没有用,你们不修改直接试试重启NetworkManager可能也行,我查了下说这样改了NetworkManager才有对无线网卡的控制权)

[ifupdown]
managed=true

最后发现可以这样:

systemctl enable NetworkManager

我这里重启了一下,不重启应该也没事,然后输入:

nmcli dev wifi connect wifi名称 password wifi密码

我琢磨着刚既然是这样,是不是刚刚enable之后不一定要用命令连接,列表里选就可以连接了?你们可以试试。

至此我们成功的切换到了NetworkManager的WIFI,当然你用网线的话…不搞也没事…吧?

然后我们继续安装
注意:下面代码中的armv7你需要输入uname -a看一下你的系统是什么,然后修改成你的架构。
这边docker源我们一开始就换过了,大概5分钟就能ok

sudo usermod -aG docker $USER
sudo systemctl restart docker
sudo docker info
sudo docker pull portainer/portainer:latest
sudo docker pull homeassistant/armv7-homeassistant:latest
sudo docker pull homeassistant/armv7-hassio-supervisor:latest

然后来运行docker-portainer(我琢磨着不运行好像也没事)

sudo docker run -d -p 9000:9000 --name docker-portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

登录http://ip:9000看看有没有,配置个账户选择local然后确定就好了。

来我们开始安装HASSIO:
(下面的脚本需要重启NetworkManager所以最好再本机上插屏幕允许,SSH会断)

curl -sL https://raw.githubusercontent.com/home-assistant/hassio-build/master/install/hassio_install | bash -s – -m raspberrypi4

问题来了,这个安装脚本,因为众所周知的原因,会因为网络问题经常无错误信息地中止,所以用gitte或者coding.net克隆一个下来,然后记得修改一下installer.sh中的URL_RAW_BASE这个参数,改成你现在新的git地址。(如果你懒的clone的话可以用我下面代码里的,我公开了)

最后我们用自己的git仓库进行安装:

sudo su
curl -sL https://copro.coding.net/p/git/d/supervised-installer/git/raw/master/installer.sh | bash -s -- -m raspberrypi4

最后的这个raspberrypi4是你的设备型号,根据脚本里的代码,可以看到他有以下选项:

generic-x86-64
odroid-c2
odroid-n2
odroid-xu
qemuarm
qemuarm-64
qemux86
qemux86-64
raspberrypi
raspberrypi2
raspberrypi3
raspberrypi4
raspberrypi3-64
raspberrypi4-64
tinker
khadas-vim3

好了大部分都很正常,到最后Install supervisor Docker container了跟我报个参数错误。

研究了半天发现(应该)是前面systemctl restart NetworkManager还没重启完,导致后面

HASSIO_VERSION=$(curl -s $URL_VERSION | jq -e -r '.supervisor')

这个名称拿不到值,解决方案如下:

方法一:插网线,我试了试插网线之后就没问题

方法二:浏览器访问$URL_VERSION,根据前面的定义我们可以看到是https://version.home-assistant.io/stable.json,修改一下脚本变成你查出来的值:

HASSIO_VERSION="2020.06.8"

方法三:中间加一句sleep,等个10秒应该重启完了

然后重新运行一遍指令,如果显示HASS运行在8123端口那就是成功了。

结束了吗?没有。

我等了几分钟还是没打开8123的网页,怎么肥四,我们来看一下,切回pi用户然后执行:

su pi
sudo journalctl -fu hassio-supervisor.service

怎么!还在!下载!来看看这时间跨度…

pi@raspberrypi:~ $ sudo journalctl -fu hassio-supervisor.service
-- Logs begin at Wed 2021-09-01 16:22:45 CST. --
9月 01 16:28:16 raspberrypi hassio-supervisor[2413]: 21-09-01 16:28:16 INFO (MainThread) [supervisor.updater] Fetching update data from https://version.home-assistant.io/stable.json
9月 01 16:28:19 raspberrypi hassio-supervisor[2413]: 21-09-01 16:28:19 INFO (SyncWorker_0) [supervisor.docker.interface] Downloading docker image ghcr.io/home-assistant/armv7-hassio-dns with tag 2021.06.0.
9月 01 16:43:09 raspberrypi hassio-supervisor[2413]: 21-09-01 16:43:09 INFO (MainThread) [supervisor.plugins.dns] CoreDNS plugin now installed
9月 01 16:43:11 raspberrypi hassio-supervisor[2413]: 21-09-01 16:43:11 INFO (MainThread) [supervisor.plugins.audio] Setup Audio plugin
9月 01 16:43:11 raspberrypi hassio-supervisor[2413]: 21-09-01 16:43:11 INFO (SyncWorker_0) [supervisor.docker.interface] Downloading docker image ghcr.io/home-assistant/armv7-hassio-audio with tag 2021.04.0.
9月 01 17:23:02 raspberrypi hassio-supervisor[2413]: 21-09-01 17:23:02 INFO (MainThread) [supervisor.plugins.audio] Audio plugin now installed
9月 01 17:23:05 raspberrypi hassio-supervisor[2413]: 21-09-01 17:23:05 INFO (MainThread) [supervisor.plugins.cli] Running setup for CLI plugin
9月 01 17:23:05 raspberrypi hassio-supervisor[2413]: 21-09-01 17:23:05 INFO (SyncWorker_0) [supervisor.docker.interface] Downloading docker image ghcr.io/home-assistant/armv7-hassio-cli with tag 2021.08.0.
9月 01 17:24:08 raspberrypi hassio-supervisor[2413]: 21-09-01 17:24:08 ERROR (SyncWorker_0) [supervisor.docker.interface] Can't install ghcr.io/home-assistant/armv7-hassio-cli:2021.08.0: 404 Client Error for http+docker://localhost/v1.40/images/ghcr.io/home-assistant/armv7-hassio-cli:2021.08.0/json: Not Found ("no such image: ghcr.io/home-assistant/armv7-hassio-cli:2021.08.0: No such image: ghcr.io/home-assistant/armv7-hassio-cli:2021.08.0")
9月 01 17:24:08 raspberrypi hassio-supervisor[2413]: 21-09-01 17:24:08 WARNING (MainThread) [supervisor.plugins.cli] Error on install cli plugin. Retry in 30sec
9月 01 17:24:38 raspberrypi hassio-supervisor[2413]: 21-09-01 17:24:38 INFO (SyncWorker_1) [supervisor.docker.interface] Downloading docker image ghcr.io/home-assistant/armv7-hassio-cli with tag 2021.08.0.
9月 01 17:44:55 raspberrypi hassio-supervisor[2413]: 21-09-01 17:44:55 INFO (MainThread) [supervisor.plugins.cli] CLI plugin is now installed
9月 01 17:50:33 raspberrypi hassio-supervisor[2413]: 21-09-01 17:50:33 INFO (SyncWorker_1) [supervisor.docker.interface] Downloading docker image ghcr.io/home-assistant/armv7-hassio-multicast with tag 2021.04.0.
9月 01 17:51:08 raspberrypi hassio-supervisor[2413]: 21-09-01 17:51:08 ERROR (SyncWorker_1) [supervisor.docker.interface] Can't install ghcr.io/home-assistant/armv7-hassio-multicast:2021.04.0: 404 Client Error for http+docker://localhost/v1.40/images/ghcr.io/home-assistant/armv7-hassio-multicast:2021.04.0/json: Not Found ("no such image: ghcr.io/home-assistant/armv7-hassio-multicast:2021.04.0: No such image: ghcr.io/home-assistant/armv7-hassio-multicast:2021.04.0")
9月 01 17:51:08 raspberrypi hassio-supervisor[2413]: 21-09-01 17:51:08 WARNING (MainThread) [supervisor.plugins.multicast] Error on install Multicast plugin. Retry in 30sec
9月 01 17:51:38 raspberrypi hassio-supervisor[2413]: 21-09-01 17:51:38 INFO (SyncWorker_0) [supervisor.docker.interface] Downloading docker image ghcr.io/home-assistant/armv7-hassio-multicast with tag 2021.04.0.

恩…到这里还没装完,但我觉得问题不大…先去吃个饭

============================================================

吃完饭回来,8123可以访问了,但还在安装,再等等,出来UI至少说明没啥大问题了!

HASS正在安装
现在是19点,历时2个半小时不到,装完了,这个时间还能接受。

============================================================

ghcr.io换源的问题早上群里好像有个大哥说可以DNS解决,待我去问问,先丢着安装吧,有好办法再更新。


HASS公网转发

装完了进路由器后台设置一下静态IP,然后把ip的8123转发到路由器的8123。

再到光猫的后台把路由器的8123转发到光猫的8123。

在Supervisor里装一下DuckDNS,就可以把ip动态转发到公网啦。

DuckDNS里面的谷歌验证因为众所周知的原因是打不开的,可以参考这篇帖子解决。

SSL没搞,感觉没有也没关系…需要的自己查吧,开头说的视频教程里也有,可以买了看看…


关于Homekit接入HASS

接入的时候要保证树莓派和iphone都在2.4G的wifi下(反正要在同一个忘了),我一开始装HASSOS的时候因为手机在5G下面连了半天没连上。

天真的我一开始还曾经把HA装在公网的服务器上,结果根本连不上homekit,打扰了。


关于天猫精灵接入HASS

hassbian上有个帖子(可以点击这里),用的PHP + OAuth2.0搭建认证服务器,但是给的代码还有很多问题(其实也就是跳转逻辑有点乱…)

虽然我会PHP而且有现成的PHP+mysql公网服务器,但这几天心情烦躁没有空去理代码…你们可以研究下然后给我个不用动手的…

如果懒得话可以在天猫精灵APP里搜索HASS然后用hassbian或者Blear的技能连接,唯一的缺点就是会暴露ApiKey,但…其实也无伤大雅,真出了问题把Key删了就好了,几盏灯也出不了什么乱子吧。

我前几天(2021年8月底)试了下,Blear的可以正常用,hassbian论坛最近好像老被人攻击…设备列表也出不来…

主要是接入了也就是实现天猫精灵控制hass中的设备,而不能把hass中的设备导入天猫精灵(还是我不会用?要是你能的话可以教一下我)

主要是我想把我的美的空调直接接入但失败了,请看下一章


关于米家接入HASS

这个好像直接装个addon就好了很简单,因为小米网关还没买,你们自己捣鼓吧。

教程:HAChina


关于美的空调接入HASS

参考了这篇帖子,我虽然能在路由器里找到美的空调(那个MAS开头的),但是midea-discover不出现,可能是控制协议版本不支持吧…

然后按方法一直接装HASSOS的在这里会遇到个问题,要装这个组件需要装python,但hassos用的是alpine-linux,这个安装方法不太一样,没有apt-get,要先装SSH组件然后允许:

apk add python3

python还是python3我也忘了,先试试python3吧。(老版本的需要用login进入宿主系统,但新版的HASSOS我输了login显示ssh-login:我也不知道该输什么,Andrew老师说不用输直接就是,但我折腾半天重启之后pip又没了,所以才去试了方法二,但装完方法二我已经不想搞美的接入了)

网上还有另外一个办法,但是奇慢无比,我放弃了(这个方法据称可以带pip安装)

然后要安装pip,又是找了一大堆资料,最后还是离线安装吧(参考步骤

反正2.4G和5G都试了,最后也没discover出什么…算了…准备搞小米+homekit生态了

============================================================

更新一下,树莓派是搜了半天没搜到,今天自己电脑上心血来潮搜了一下竟然搜到了(…

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值