IOT Home Assistant | #入门教程01#树莓派Raspbian HA系统安装与简单上手

官网:Home Assistant


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/[email protected]

  • 如果不熟悉命令行文本编辑器,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/[email protected]

  • 如果您在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/

参考文档:


发布了75 篇原创文章 · 获赞 58 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/Naiva/article/details/103758646