香橙派OrangePi One安装Homeassistant

为了折腾ha,在咸鱼上花90块钱淘了两块香橙派的开发板。
一块是one,处理器全志H3,内存512M
一块是zero,处理器全志H2,内存256M。
最开始尝试使用docker安装ha,但是由于这块板子实在是太便宜,内存只有区区512M,docker运行经常卡死,后面直接导致开不了机。
但是,它比树莓派便宜了几条街,板如其名,入门的开发板里最香的就是香橙派了。

到手就是选择系统。开发板把SD卡作为系统盘,在尝试了Ubuntu、debian等等之后,选择了armbian
armbian可以自动扩展内存卡的空间,不用像Ubuntu之类的系统还需要手动扩展(因为我不会,搞半天没搞出来,系统崩了几次)
我选择的版本为Armbian_20.02.1_Orangepione_buster_current_5.4.20
下载地址:https://dl.armbian.com/orangepione/archive/

烧录后,将SD卡插入开发板。

更换apt源

如果没有全局上网环境,这一步是必须。
使用finalshell SSH连接,修改/etc/apt/sources.list
将其中的内容全部注释或者删掉,
添加中科大源:

deb https://mirrors.ustc.edu.cn/debian/ buster main contrib non-free
#deb-src https://mirrors.ustc.edu.cn/debian/ buster main contrib non-free
deb https://mirrors.ustc.edu.cn/debian/ buster-updates main contrib non-free
#deb-src https://mirrors.ustc.edu.cn/debian/ buster-updates main contrib non-free
deb https://mirrors.ustc.edu.cn/debian-security/ buster/updates main contrib non-free
#deb-src https://mirrors.ustc.edu.cn/debian-security/ buster/updates main contrib non-free

清华的源也可以,不挑:

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free

注意这里系统用的是buster,其他的源不可以的。

然后进行更新:

sudo apt-get update
sudo apt-get upgrade

完成后,安装python3

sudo apt-get -y install python3-pip build-essential libssl-dev libffi-dev python-dev openssl libssl-dev python3-cffi python3-setuptools python3-cryptography python3-bcrypt python-cryptography python-bcrypt python3-dev

其中可能会提示需要安装其他的源,且指定版本,按照提示安装对应版本的包即可。
指定版本的方法:

sudo apt-get install NAME=VERSION

修改清华pip源

在etc目录下新建一个文件pip.conf,内容如下:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

安装HomeAssistant

sudo pip3 install homeassistant

其中会自动安装很多必须的依赖,也可在这一步之前手动安装:

pip3 install requests
pip3 install sqlalchemy
pip3 install distro
pip3 install hass-nabucasa
pip3 install xmltodict
pip3 install mutagen
pip3 install netdisco
pip3 install pynacl
pip3 install pyotp
pip3 install pyqrcode
pip3 install aiohttp
pip3 install aiohttp_cors
pip3 install cryptography
pip3 install gtts-token
pip3 install hass-nabucasa
sudo pip3 install pycryptodome
sudo pip3 install --upgrade pip

微信截图_20200221205251.png

启动hass

输入:

hass

第一次启动会非常慢,且有可能失败,如果报错可以ctrl C多次运行hass,其中也会安装依赖。

检查

进程:ps -ef|grep hass
网络:netstat -an|grep 8123
配置目录与配置文件:/home/pi/.homeassistant/
错误日志文件:/home/pi/.homeassistant/home-assistant.log
浏览器访问:http://xx.xx.xx.xx:8123/

当出现timer starting时,恭喜,表示启动成功。
微信截图_20200221214111.png

升级HomeAssistant

命令:sudo pip3 install homeassistant --upgrade

添加开机启动并启动Home Assistant

Systemd是目前新版的linux比较常用的管理后台服务的机制。在Linux的发行版Fedora、ArchLinux,Debian(8或以上),Ubuntu(15.04以上),CentOS,Redhat都使用systemd机制。
注:运行命令ps -p 1 -o comm=看是否返回“systemd”,可以检测系统是否运行了systemd后台服务管理机制。

以root身份创建文件/etc/systemd/system/home-assistant@[user].service,其中“[user]”替换为你希望运行hass的用户名。文件内容为:

[Unit]
Description=Home Assistant
After=network.target
 
[Service]
Type=simple
User=%i
ExecStart=/usr/local/bin/hass
 
[Install]
WantedBy=multi-user.target

注1:修改文件中ExecStart指向的文件路径修改为系统中实际的路径(不同系统安装hass的目录可能不同,可以使用命令whereis hass获得)。
注2:如果是在Python的虚拟环境(virtualenv)中安装的HomeAssistant,需要修改文件中ExecStart指向的命令加上参数-c,指定hass的配置文件目录。例如:
ExecStart=/srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant"
注3:如果是在docker下运行HomeAssistant,文件会相对复杂一些,可以参见docker的相应说明。

以下systemd相关的控制命令供参考:

sudo systemctl --system daemon-reload:重新加载systemd的配置文件。
sudo systemctl enable home-assistant@[user]:设置home-assitant服务为自启动。
sudo systemctl disable home-assistant@[user]:从自启动中去除home-assitant服务。
sudo systemctl start home-assistant@[user]:手工启动home-assitant服务(命令中start可以替换成stop、restart、status,完成停止、重启、查看服务状态等功能)。
sudo journalctl -f -u home-assistant@[user]:查看hass的日志输出。
sudo journalctl -f -u home-assistant@[your user] | grep -i 'error':查看hass的日志输出中的error部分。

微信截图_20200221214222.png
微信截图_20200221215838.png

我来吐槽

*

*