Home Assistant 安装
Home Assistant 运行在 Python 3.5.3 及以上 环境下,一般来说,符合 Python 运行条件的系统皆可安装 Home Assistant。以树莓派Raspbian系统中安装Home Assistant为例。
树莓派
- Mossbian
- Raspbian
- Hassbian
- Hass.io
!!!硬件可能存在的一些问题!!!
- 树莓派估计还是接有线稳定,接wifi不管使用2.4G的还是5G的,都感觉信号不太稳定。然后这个问题在树莓派上可能被放大,导致下载软件,pip的时候,会存在连不上网,各种error的问题。
同样的用有线,就没问题了。所以躲坑的话还是接有线最稳。 - 可是因为某些原因,官方的piwheels访问非常缓慢,经常会导致安装出错。更换pip为国内源,就是个非常好的解决办法了。
Raspbian 安装 HA
抓取最新源数据:sudo apt-get update
,如果速度太慢请参考 此处 更换软件源
更新系统:sudo apt-get upgrade -y
(这一步要多点耐心网速问题)
安装依赖:sudo apt-get install python3 python3-venv python3-pip
创建名为 homeassistant 的用户:sudo useradd -rm homeassistant
创建安装文件夹
cd /srv
sudo mkdir homeassistant
sudo chown homeassistant:homeassistant homeassistant
创建虚拟环境
sudo su -s /bin/bash homeassistant
cd /srv/homeassistant
python3 -m venv .
source bin/activate
安装 Home Assistant:pip3 install homeassistant
这里可能会多次出错,重复安装,多试几次就好了
初次启动 Home assistant:hass
在此过程中将会创建配置文件,并且安装所需要的一些软件大约耗时20-30 分钟,注意 hass 是一个始终运行的程序 所以它不会退出,当终端输出 Timer:starting
的时候 表示hass 已经启动完成。之后你便可以从局域网内任意终端浏览器访问 http://树莓派的 IP 地址:8123,进入 Home Asssitant。
参考文档:
Home Assistant 自启动
当关掉终端,就会发现浏览器的Home Assistant 无法访问了。因为hass 是一个始终运行的程序 。下面就介绍一下如何把Home Assistant 安装成服务 进行自启动。
2020/01/05 凌晨 4:13 :!头疼!!!!!!!!!!!!!还没有完成这个任务,不知道哪里出问题!
2020/01/05 下午 13:43: 解决问题,如下“使用systemd自动启动”。
使用systemd自动启动
较新的Linux发行版趋向于systemd用于管理守护程序。通常,基于Fedora,ArchLinux或Debian(8或更高版本)的系统使用systemd。这包括Ubuntu版本,包括15.04和之后的版本,CentOS和Red Hat。如果不确定系统是否在使用systemd,可以使用以下命令进行检查:
$ ps -p 1 -o comm=
如果前面的命令返回字符串systemd,则继续以下说明。
需要一个服务文件才能使用来控制Home Assistant systemd。下面的模板应使用文本编辑器(以nano为例)创建。请注意,以root权限执行下面操作。
pi@raspberrypi:~ $ su root
修改模板时应注意以下几点:
- ExecStart包含到达的路径hass,这可能会有所不同。检查
whereis hass
位置。 - 对于大多数系统,该文件
/etc/systemd/system/home-assistant@YOUR_USER.service
以YOUR_USER替换为Home Assistant将以其运行的用户帐户(通常为homeassistant)。尤其是Ubuntu 16.04。(这里使用的pi )
root@raspberrypi:/# /etc/systemd/system/home-assistant@pi.service
- 如果不熟悉命令行文本编辑器,sudo nano -w [filename]可以将其[filename]替换为文件的完整路径。例如 sudo nano -w /etc/systemd/system/home-assistant@YOUR_USER.service。输入文本后,按CTRL-O保存,按CTRL-X,然后按Y保存并退出。
root@raspberrypi:/# sudo nano -w /etc/systemd/system/home-assistant@pi.service
- 如果您在Python虚拟环境或Docker容器中运行Home Assistant,请跳至下面列出的相应模板。
模板一:
[Unit]
Description=Home Assistant
After=network-online.target
[Service]
Type=simple
User=%i
ExecStart=/usr/bin/hass
[Install]
WantedBy=multi-user.target
模板二:
PYTHON虚拟环境
如果你按照文章上面介绍的Home Assistant Raspbian 手动安装指南设置了Home Assistant ,则以下模板应适用。
如果Home Assistant安装不在上/srv/homeassistant,请ExecStart=相应地修改该行。YOUR_USER应该由Home Assistant运行的用户帐户代替(例如homeassistant)。
[Unit]
Description=Home Assistant
After=network-online.target
[Service]
Type=simple
User=%i
ExecStart=/srv/homeassistant/bin/hass -c "/home/%i/.homeassistant"
[Install]
WantedBy=multi-user.target
参考文档:
iPhone客户端登录Home Assistant 报错
ERROR: INVALID CLIENT ID OR REDIRECT URL
您必须使用域名而非IP地址来远程访问Home Assistant,否则您将在登录表单上看到错误:无效的客户端ID或重定向URL错误。但是,您可以使用IP地址访问家庭网络中的家庭助理。
这是因为当您的IP地址是内部网络地址(例如192.168.0.1
)或回送地址(例如127.0.0.1
)时,我们仅允许将IP地址作为客户端ID 。
如果您的Home Assistant实例没有有效的域名,则可以修改hosts计算机上的文件以伪造该文件。在Windows上,C:\Windows\System32\Drivers\etc\hosts
以管理员权限编辑文件,在Linux上/etc/hosts
,然后添加以下条目:
12.34.56.78 homeassistant.home
替换12.34.56.78
为家庭助理的公共IP地址。
这将允许您在以下位置打开家庭助理http://homeassistant.home:8123/
参考文档: