首页 >PC >正文

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

是返乡过年?还是就地过年?最新一届#双面过节指南#开始啦!本次征稿活动分为A面返乡和B面就地,大家可以根据自己的情况,分享自己的春节攻略,优秀的投稿文章还有可能能获得优厚的大奖哦,快点击查看活动详情<<<创作立场声明:树莓派自费购入后就在家里落灰,所以不存在利益相关,仅仅为了记录折腾过程,并分享给值友们,希望对大家有所启发。

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的不同方式。

其中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/

码字太难了。

网友评论

验证码 换一张
取 消
暂无评论...
三日内热门评论文章
为您推荐
  • 相关阅读
  • 业界资讯
  • 手机通讯
  • 电脑办公
  • 新奇数码
  • 软件游戏
  • 科学探索