树莓派安装 HomeAssistant

前言

昨天,已经运行半年 HomeAssistant

服务的那个树莓派,我决定对 HomeAssistant 进行升级,但是升级之后导致出现一系列问题,最终导致 HomeAssistant 服务无法启动,所以决定重装,鉴于之前安装时没有任何记录,所以决定记录下来最详细的安装步骤,给自己留下一个记录,也希望,这篇文章能够帮助到更多的人。

截止到写这篇文章的时候,HomeAssistant 更新的最新版本是 0.65.5 所以这篇文章就基于此版本进行介绍。

1. 树莓派安装系统

请参考 https://www.jianshu.com/p/0884f105fd50

2.安装 HomeAssistant

以下内容与官方指导的参考页面完全一致: https://home-assistant.io/docs/installation/raspberry-pi/

以下内容都是在树莓派终端或者 通过 SSH 远程控制树莓派操作,如果想要直接复制代码到命令行,青葱 $ 符号之后开始复制,不要复制 $ 符号及其之前的任何内容。

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

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

    $ passwd

2.2 更新系统

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

2.3 安装依赖

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

$ sudo apt-get install python3 python3-venv python3-pip

2.4 使用如下指令添加为系统添加一个 名为 homeassistant 的账户

    $ sudo useradd -rm homeassistant

2.5 创建安装目录,并将此目录的所有者改为 homeassistant

    $ cd /srv
    $ sudo mkdir homeassistant
    $ sudo chown homeassistant:homeassistant homeassistant

2.6 创建并进入到 homeassistant 虚拟环境

    $ sudo su -s /bin/bash homeassistant
    $ cd /srv/homeassistant
    $ python3 -m venv .
    $ source bin/activate

2.7 安装依赖的 python 包

    (homeassistant) homeassistant@raspberrypi:/srv/homeassistant $ python3 -m pip install wheel

2.8 安装 Home Assistant

    (homeassistant) homeassistant@raspberrypi:/srv/homeassistant $ pip3 install homeassistant

2.9 启动 homeassistant

使用下面一条指令启动 Home Assistant ,在此过程中将会创建配置文件,并且安装所需要的一些软件。此过程实测在 3B 上大约耗时20-30 分钟。你可以打开浏览器,输入 ipaddress:8123(将 ipaddress 换成树莓派的 IP 地址),直到网页成功加载即可。

    (homeassistant) $ hass
image

如果你可到网页加载成功加载了 homeassistant 的主页,那么切回命令行,先用 Ctrl + C 退出 homeassistant ,再输入如下指令退出 python 虚拟环境,因为我们还要安装其他软件。

(homeassistant) $ exit

3. 安装 Homebridge 与 Mosquitto

此过程也可以参考 https://sspai.com/post/38849 ,在我第二次安装 homeassistant 的过程中,博主的文章给我提供了很多帮助,在此表示感谢。此部分以及下一部分中部分代码部分参考了博主的文章,在此一并声明。

3.1 安装 Mosquitto

pi@raspberrypi:~ $ sudo apt-get install mosquitto

3.1 运行 Mosquitto

pi@raspberrypi:~ $ mosquitto

之后按下 Ctrl + C 退出 Mosquitto 。

3.3 安装 Homebridge

pi@raspberrypi:~ $ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - 
pi@raspberrypi:~ $ sudo apt-get install -y nodejs
pi@raspberrypi:~ $ sudo apt-get install libavahi-compat-libdnssd-dev
pi@raspberrypi:~ $ sudo apt-get install npm
pi@raspberrypi:~ $ sudo npm install -g --unsafe-perm homebridge
pi@raspberrypi:~ $ sudo npm install -g homebridge-homeassistant

3.4 运行 Homebridge

pi@raspberrypi:~ $ homebridge

之后按下 Ctrl + C 退出 homebridge。

3.5 设置 Homebridge

pi@raspberrypi:~ $ sudo nano  /home/pi/.homebridge/config.json

然后将下列内容粘贴到文件中,Ctrl + O 保存,回车确定,Ctrl + X退出。

{
"bridge": {
    "name": "Homebridge",
    "username": "B8:27:EB:DB:D8:84",
    "port": 51826,
    "pin": "123-45-678"
},

"platforms": [{
        "platform": "HomeAssistant",
        "name": "HomeAssistant",
        "host": "http://127.0.0.1:8123",
        "password": "oplm1234",
        "supported_types": ["automation", "binary_sensor", "climate", "cover", "device_tracker", "fan", "group", "input_boolean", "light", "lock", "media_player", "remote", "scene", "script", "sensor", "switch", "vacuum"],
        "default_visibility": "hidden",
        "logging": true,
        "verify_ssl": true
        }
    ]
}

记得将 "username": "B8:27:EB:34:D8:84", 这一行的内容指的是树莓派的 MAC 地址,记得改为你自己的树莓派的 MAC 地址。所有字母一律大写,小写无效!!!
之后按下 Ctrl + C 退出 homebridge。

3.6 设置 mosquitto 用户名与密码

pi@raspberrypi:~ $ mosquitto_passwd -c /etc/mosquitto/passwd pi

这里的 pi 是创建的 mosquitto 的用户名,运行完之后将会提示输入密码,改密码将会密文存储,所以请牢记。你也可以将 pi 换成其他你喜欢的用户名

4.设置开机自启

4.1 设置 homeassistant 开机自启

对于 raspbian 来说你可以通过以下方式,其他操作系统请参考官方文档 https://home-assistant.io/docs/autostart/

4.1.1 创建文件

执行如下指令创建文件:

pi@raspberrypi:~ $ sudo nano -w /etc/systemd/system/home-assistant@homeassistant.service

然后将如下内容复制到文件中,然后按 Ctrl + O 再按 Enter 保存,再按 Ctrl + X 退出。如果你的安装目录改变了,请将 ExecStart= 之后的 /srv/homeassistant/bin/hass 更改为你的 homeassistant 的安装目录,如果你是按照本教程操作,则无需更改。

[Unit]
Description=Home Assistant
After=network-online.target

[Service]
Type=simple
User=%i
ExecStart=/srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant"

[Install]
WantedBy=multi-user.target
4.1.1 配置 systemd

先执行如下指令重新加载 systemd

pi@raspberrypi:~ $ sudo systemctl --system daemon-reload

再执行如下指令以重新以允许 homeassistant 开机自启。

pi@raspberrypi:~ $ sudo systemctl enable home-assistant@homeassistant

4.1 设置 homebridge 与 mosquitto 开机自启

注意:配置 HB 前程序会运行错误,提示缺少配置文件,可先不理会。

    cd /etc/default
    sudo nano homebridge

粘贴一下内容到文件中

# Defaults / Configuration options for homebridge
# The following settings tells homebridge where to find the config.json file and where to persist the data (i.e. pairing and others)
HOMEBRIDGE_OPTS= /home/pi/.homebridge

所有带有 # 字的行皆为注释,可整行删除不影响。上述指令的作用是指定 Homebridge 的配置文件及缓存所在文件夹。

如果你想要 Homebridge 显示更详细的日志,可以继续添加如下字段:

DEBUG=*

之后 Ctrl+X,Y,回车。继续输入:

cd /etc/systemd/system
sudo nano homebridge.service

复制粘贴

[Unit]
Description=Node.js HomeKit Server 
After=syslog.target network-online.target
[Service]
Type=simple
User=pi
EnvironmentFile=/etc/default/homebridge
ExecStart=/usr/local/bin/homebridge $HOMEBRIDGE_OPTS
Restart=on-failure
RestartSec=10
KillMode=process
[Install]
WantedBy=multi-user.target

Ctrl+X,Y,回车

cd /
sudo systemctl daemon-reload
sudo systemctl enable homebridge
sudo systemctl start homebridge
sudo systemctl status homebridge
sudo systemctl enable mosquitto

然后执行sudo reboot 重启即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容