树莓派 篇七:树莓派安装homeassistant全流程(非docker方式)

2021-01-20 18:47:10 21点赞 112收藏 15评论

创作立场声明:树莓派自费购入后就在家里落灰,所以不存在利益相关,仅仅为了记录折腾过程,并分享给值友们,希望对大家有所启发。

1、前言

这篇文章也许是这个系列的最后一篇了,但是也不一定。

如你所料,我的树莓派也和你一样,一直在吃灰。

因为树莓派3B的性能有限,之前在树莓派上实现的功能已全部转到 sinoc 主机 黑群晖上了,见:

sinoc 主机 篇一:300元 Sinoc NAS主机整机——2020年第一辆矿车,能不能上?是返乡过年?还是就地过年?最新一届#双面过节指南#开始啦!本次征稿活动分为A面返乡和B面就地,大家可以根据自己的情况,分享自己的春节攻略,优秀的投稿文章还有可能能获得优厚的大奖哦,快点击查看活动详情mwh1987| 397 评论475 收藏1k查看详情


之前在树莓派上所实现的功能:

samba -----------------局域网文件共享

sshfs------------------广域网文件共享

ssh------------ -------远程管理

vnc/xrdp---------------远程桌面

aria2/transmission-----远程下载

nextcloud--------------私有云

syncthing---------------文件同步

nginx-------------------web服务

frp---------------------内网穿透

emby/jellyfin-----------视频管理

calibre-----------------电子书管理

以上功能全部迁移到群晖上,太简单了,基本上都有现成的教程,所以“sinoc 主机 ”系列的文章也不一定会有后续了,也许会有一两篇,记录我怎样在群晖上建立我的私人电子书网站:

https://kandou.cc

https://books.kandou.cc/

很早以前有使用树莓派安装 homeassistant 的经历,因为使用的是 docker 安装方式,可能是因为docker 安装方式比较占用存储空间,homeassistant 的日志文件太大了,于是将日志文件放在移动硬盘上,最后可能因为移动硬盘频繁写入日志,挂掉了,我的结论是 homeassistant 对硬盘是不友好的,于是没有打算使用群晖来安装 homeassistant ,于是又找到了落灰已久的树莓派,这次换了个32G 的 TF卡,写坏了也不心疼。

2、Home Assistan安装

方案选择

首先转载一张图,这张图是在树莓派上安装Home Assistant的不同方式。

树莓派安装homeassistant全流程(非docker方式)

其中Hassbian没有图形界面,详见:https://www.home-assistant.io/blog/2019/10/26/rip-hassbian/

Mossbian是由Hassbian改版的本土版本,详情:https://home-assistant.cc/mossbian/ 目前已停止维护,遂放弃这两种方案。

这里不使用docker ,就直接在树莓派的系统Raspbian上通过手动的方式安装Home Assistant;

开始安装

安装Home Assistant过程

以下内容参考官方指导页面: https://www.home-assistant.io/docs/installation/raspberry-pi/

个人建议在网速良好的环境下安装或者将软件源更换到国内,否则很有可能安装完之后无法打开页面,或者页面返回 404 错误

2.1 使用以下指令修改树莓派 pi 用户的默认密码,注意,一定要修改,否则安装会出错。


passwd

2.2 更新系统


sudo apt-get update
sudo apt-get upgrade -y

2.3 安装依赖

如果你是下载的最新的系统,此步骤应该会很快


$ sudo apt-get install python3 python3-dev python3-venv python3-pip libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5

pip国内镜像配置

这一步一定不能少

很多安装Home Assistant未成功的,往往都是因为python依赖模块无法成功安装,而其中由于网络不通也占比不少。

这里配置清华的源,可以参照:https://mirrors.tuna.tsinghua.edu.cn/help/pypi/

临时使用

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

注意,simple 不能少, 是 https 而不是 http

设为默认

升级 pip 到最新的版本 (>=10.0.0) 后进行配置:

pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

如果您到 pip 默认源的网络连接较差,临时使用本镜像站来升级 pip:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U

2.4 添加Home Assistant账号及安装目录

Home Assistant不能使用root运行,可以建个专用用户,然后顺便把GPIO的权限都给它,方便以后连接其它传感器。

sudo useradd -rm homeassistant -G dialout,gpio,i2c

cd /opt && sudo mkdir homeassistant

sudo chown homeassistant:homeassistant homeassistant

但是这里我直接使用系统默认的 pi 用户来运行,只需执行以下命令:

cd /opt && sudo mkdir homeassistant

sudo chown pi:pi homeassistant

2.5 python虚拟容器创建及Home Assistant安装


cd /opt/homeassistant

python3 -m venv .

source bin/activate

python3 -m pip install wheel #这一条可以不执行,实测执行了反而又会变慢,多次重试才安装成功

cd /opt/homeassistant && pip3 install homeassistant

2.6 启动 homeassistant

使用下面的指令启动 Home Assistant ,在此过程中将会创建配置文件(配置文件位置位于/home/pi/.homeassistant/ 如果发生错误,可以将些文件夹下内容删除,再重新启动 homeassistant),并且安装所需要的一些软件。此过程实测在 3B 上大约耗时20-30 分钟。你可以打开浏览器,输入 ipaddress:8123(将 ipaddress 换成树莓派的 IP 地址),直到网页成功加载即可。


source /opt/homeassistant/bin/activate

hass

第一次访问需要创建一个用户。然后输入刚刚创建的用户名和密码登录Home Assistant

树莓派安装homeassistant全流程(非docker方式)

如果你可到网页加载成功加载了 homeassistant 的主页,那么切回命令行,先用 Ctrl + C 退出 homeassistant ,再输入如下指令退出 python 虚拟环境,因为我们还要设置开机启动。

(homeassistant) $ exit

我们使用Jupyter Notebook 来编辑Home Assistant 的配置文件。

2.7 安装jupyter notebook

推荐 python3 环境下安装 jupyter。树莓派3里面内置了 python3,所以直接安装 jupyter,如果系统 python 版本是 python2.7,可以使用 virtualenvwrapper 进行多版本python管理。

下面使用pip来安装 jupyter notebook

sudo apt-get install python3-pip // 安装pip3
sudo pip3 install jupyter // 安装jupyter

注意:jupyter 是单用户服务,如果想使用多用户服务可以使用jupyterhub

2.8 配置 jupyter notebook

生成配置文件

下面命令将在~/.jupyter目录下面生成jupyter notebook配置文件jupyter_notebook_config.py

sudo jupyter notebook --generate-config

修改jupyter_notebook_config.py文件中以下配置:

c.NotebookApp.ip = '*' // jupyter监控地址
c.NotebookApp.port = 8888 // jupyter监听端口
c.NotebookApp.allow_remote_access = True // 运行以非localhost/127.0.0.1访问

2.9 配置登录密码

jupyter启动服务时候,默认是使用一次性token进行登录验证的。我们需要使用以下命令来给jupyter服务配置登录密码:

sudo jupyter notebook password

按照提示输入密码,再次确认密码就可以了。这条命令需要jupyter notebook版本不小于5.0才支持。若不支持可以按照下面方式来配置,详细见官方文档

在python交互模式下,输入以下命令

>>> from notebook.auth import passwd
>>> passwd()
Enter password:
Verify password:
'sha1:5952f1c3c7ec:16852a1f8ee36f7cb716b74d3e0127efee106c1c'

然后复制上面的hash处理之后的字符串到~/jupyter_notebook_config.py

c.NotebookApp.password = u'sha1:5952f1c3c7ec:16852a1f8ee36f7cb716b74d3e0127efee106c1c'

2.10 启动服务并验证

配置完成之后我们可以使用 jupyter notebook来启动服务

cd /home/pi/.homeassistant // 使用homeassistant 的配置目录作为jupyter的工作目录
jupyter notebook

完成上面操作,打开浏览器,地址栏输入 ipaddress:8888(将 ipaddress 换成树莓派的 IP 地址),即可打开jupyter ,这时候 Home Assistant 的目录是隐藏的,这时在新开的终端 输入

ln -s .homeassistant/ homeassistant

然后刷新 jupyter Notebook 就可以看到 Home Assistant 的目录了。

树莓派安装homeassistant全流程(非docker方式)

可直接编辑配置文件 configuration.yaml:

树莓派安装homeassistant全流程(非docker方式)

注意配置缩进,一定要注意。

到此已经介绍完 Home Assistant 在树莓派上的安装。但是关掉终端,就会发现Home Assistant 无法访问了。下面我就介绍一下如何把Home Assistant 安装成服务 进行自启动。

2.11 设置开机启动

sudo nano /etc/systemd/system/homeassistant.service

编辑内容如下:

[Unit]

Description=Home Assistant

After=network-online.target

[Service]

Type=simple

User=pi

ExecStart=/opt/homeassistant/bin/hass -c "/home/pi/.homeassistant"

[Install]

WantedBy=multi-user.target

保存退出。

sudo systemctl daemon-reload

sudo systemctl enable homeassistant

同样也可以用相同的方式把 Jupyter Notebook 也安装成服务 自启动:

sudo nano /etc/systemd/system//jupyter-notebook.service

编辑内容如下:

[Unit]

Description=Jupyter Notebook

[Service]

Type=simple

ExecStart=/usr/local/bin/jupyter-notebook

User=pi

[Install]

WantedBy=multi-user.target

保存退出。

同样输入指令 sudo systemctl enable jupyter-notebook

手动启动 刚刚安装的两个服务:

sudo systemctl start homeassistant

sudo systemctl start jupyter-notebook

这样下次就不用在终端输入命令来启动服务了,直接开启树莓派就可以使用。


2.12 服务相关命令(以homeassistant服务为例)

重载服务配置: sudo systemctl --system daemon-reload

将服务加入自启动: sudo systemctl enable homeassistant

将服务移除自启动: sudo systemctl disable homeassistant

手工启动服务: sudo systemctl start homeassistant

手工停止服务: sudo systemctl stop homeassistant

手工重启服务: sudo systemctl restart homeassistant

查看服务输出: sudo journalctl -f -u homeassistant


后记

树莓派的折腾就到此为止了,“sinoc 主机 ”系列的文章也不一定会有后续了,也许会有一两篇,记录我怎样在群晖上建立我的私人电子书网站:

https://kandou.cc

https://books.kandou.cc/

码字太难了。

展开 收起

网心云 OEA-自带储存-无需硬盘-适合家庭网络-N期

网心云 OEA-自带储存-无需硬盘-适合家庭网络-N期

暂无报价

网心云 OEC-turbo-共享闲置宽带赚零花 -性能提升跑量高-1011

网心云 OEC-turbo-共享闲置宽带赚零花 -性能提升跑量高-1011

暂无报价

OEC-强悍性能轻松跑量-共享宽带赚零花-1010

OEC-强悍性能轻松跑量-共享宽带赚零花-1010

暂无报价

OES Plus-共享网络赚零花-多重升级-1012

OES Plus-共享网络赚零花-多重升级-1012

暂无报价

HUAWEI 华为 AS6020-PS 家庭存储断电保护器

HUAWEI 华为 AS6020-PS 家庭存储断电保护器

349元

Synology 群晖 BeeDrive 个人备份存储助手

Synology 群晖 BeeDrive 个人备份存储助手

1050元起

N2 恩兔 ND-1 双盘位家庭云盘

N2 恩兔 ND-1 双盘位家庭云盘

暂无报价

HIKVISION 海康威视 H99 网络硬盘盒

HIKVISION 海康威视 H99 网络硬盘盒

228元起

WD西部数据个人云存储20t My Cloud Home Duo私有储存云盘20tb 西数网络家用存储器网盘nas云硬盘 家庭云wifi

WD西部数据个人云存储20t My Cloud Home Duo私有储存云盘20tb 西数网络家用存储器网盘nas云硬盘 家庭云wifi

暂无报价

HUAWEI 华为 ST310-S1 手机移动存储 1T 英伦灰

HUAWEI 华为 ST310-S1 手机移动存储 1T 英伦灰

暂无报价

Synology 群晖 DX513 5盘位NAS网络存储扩充设备

Synology 群晖 DX513 5盘位NAS网络存储扩充设备

暂无报价

硬酷R1 Pro限量尊享版 标配金属上盖 全铜散热器

硬酷R1 Pro限量尊享版 标配金属上盖 全铜散热器

暂无报价

SONY 索尼 128GB SF-M SD V60系列数字存储卡

SONY 索尼 128GB SF-M SD V60系列数字存储卡

暂无报价

Lenovo 联想 DE2000H 入门级存储系统(64GB、3 个4TB HDD)

Lenovo 联想 DE2000H 入门级存储系统(64GB、3 个4TB HDD)

暂无报价

SanDisk Ultra USB 3.0 U盘闪存盘 带钥匙孔 办公视频照片文件备份传输 黑色 64G

SanDisk Ultra USB 3.0 U盘闪存盘 带钥匙孔 办公视频照片文件备份传输 黑色 64G

299元起

WD西部数据个人云存储6t My Cloud Home Duo私有储存云盘6tb 西数网络家用存储器网盘nas云硬盘 家庭云wifi

WD西部数据个人云存储6t My Cloud Home Duo私有储存云盘6tb 西数网络家用存储器网盘nas云硬盘 家庭云wifi

暂无报价
15评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
112
扫一下,分享更方便,购买更轻松