赞
踩
树莓派0W是能装的,就是…安装很慢,装完每次服务重启也很慢。
4B重启一下服务大概12秒,0W…呃…5分钟吧…
HASSOS非常方便,烧录完加几个配置文件允许就行了,丢着就行。最快15分钟,最慢1个小时。
但是HASSOS基于alpine-linux,和一般的linux好像不太一样(我不是很懂啊我不太用linux的),所以装其他东西比较麻烦…几层系统的嵌套结构弄得我也有点懵。
所以不想折腾就方法一直接HASSOS吧,想自己动手的就方法二DOCKER+HASSIO(其实方法一也是docker但是我不太能搞懂里面的结构)
下载工具:官方烧录工具
(SDFormatter+Image Writer也行,但这个工具集成了这俩的功能还快)
先对SD卡执行一遍Erase格式化
0W的配置确实…不怎么样…
如果你只有一台0W的话…直接装HASSOS吧…反正docker的方法我捣鼓了几天慢的我人都要没了(换了源下载不慢,安装慢的急死人)
官方链接:Home Assistant OS Release
所有版本的都有,按照你的树莓派版本下载对应的镜像就ok(*.img.xz)
国内换源:HACHINA镜像
感谢Andrew老师提供,这里会实时更新树莓派3和4的国内镜像(其他型号的不知道安装了能不能允许,我就不浪费时间试了,但反正亲测树莓派4是OK的)
PS:这个视频课程也不错,在网易云课堂上,298块内容挺多的(可以淘宝买网易云课堂的学习币,大概只有7折的价格)
用官方烧录工具,Erase过后选择Use Custom然后选你的镜像,然后选择你的储存卡,等待写入然后校验就ok了
[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
[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
国内换源的在20分钟以内,具体多少时间忘了…挺快的反正…
官方镜像没换源好像也不是特别慢,我可能也就丢在那不到1小时就装好了。
多刷几次http://ip:8123等出来就好了
然后在路由器里设置一个静态IP吧
MAC地址可以在局域网下的windows电脑cmd里输入以下命令
arp -a
树莓派4B大概需要30+N分钟(主要是最后HASSIO的下载安装挺慢的)
主要流程是参考:这篇帖子
这里先提一嘴,装完之后HASSIO里显示操作系统不支持(但应该也不影响使用),原文见这里,所以你们要不装个debian11试试?后面配置网络的步骤可能有点小变化,但应该问题不大。
下载:官方镜像
其实哪个都行,我是下的Raspberry Pi OS with desktop and recommended software,这样方便点
用官方烧录工具,Erase过后选择Use Custom然后选你的镜像,然后选择你的储存卡,等待写入然后校验就ok了
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
}
启动过后先换个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至少说明没啥大问题了!
现在是19点,历时2个半小时不到,装完了,这个时间还能接受。
============================================================
ghcr.io换源的问题早上群里好像有个大哥说可以DNS解决,待我去问问,先丢着安装吧,有好办法再更新。
装完了进路由器后台设置一下静态IP,然后把ip的8123转发到路由器的8123。
再到光猫的后台把路由器的8123转发到光猫的8123。
在Supervisor里装一下DuckDNS,就可以把ip动态转发到公网啦。
DuckDNS里面的谷歌验证因为众所周知的原因是打不开的,可以参考这篇帖子解决。
SSL没搞,感觉没有也没关系…需要的自己查吧,开头说的视频教程里也有,可以买了看看…
接入的时候要保证树莓派和iphone都在2.4G的wifi下(反正要在同一个忘了),我一开始装HASSOS的时候因为手机在5G下面连了半天没连上。
天真的我一开始还曾经把HA装在公网的服务器上,结果根本连不上homekit,打扰了。
hassbian上有个帖子(可以点击这里),用的PHP + OAuth2.0搭建认证服务器,但是给的代码还有很多问题(其实也就是跳转逻辑有点乱…)
虽然我会PHP而且有现成的PHP+mysql公网服务器,但这几天心情烦躁没有空去理代码…你们可以研究下然后给我个不用动手的…
如果懒得话可以在天猫精灵APP里搜索HASS然后用hassbian或者Blear的技能连接,唯一的缺点就是会暴露ApiKey,但…其实也无伤大雅,真出了问题把Key删了就好了,几盏灯也出不了什么乱子吧。
我前几天(2021年8月底)试了下,Blear的可以正常用,hassbian论坛最近好像老被人攻击…设备列表也出不来…
主要是接入了也就是实现天猫精灵控制hass中的设备,而不能把hass中的设备导入天猫精灵(还是我不会用?要是你能的话可以教一下我)
主要是我想把我的美的空调直接接入但失败了,请看下一章
这个好像直接装个addon就好了很简单,因为小米网关还没买,你们自己捣鼓吧。
教程:HAChina
参考了这篇帖子,我虽然能在路由器里找到美的空调(那个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生态了
============================================================
更新一下,树莓派是搜了半天没搜到,今天自己电脑上心血来潮搜了一下竟然搜到了(…
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。