-
Notifications
You must be signed in to change notification settings - Fork 209
基于树莓派搭建 Home Assistant 开发环境
本文介绍了如何使用 Home Assistant Core 的方式在树莓派上安装 Home Assistant,以及如何搭建开发环境。
Home Assistant 是一款基于 Python 的智能家居开源系统,作为中央控制系统连接众多智能家居设备,轻松实现对设备的控制。 本文中,将以 Home Assistant Core(推荐开发者使用)的方式来安装,以 Ubuntu Server 作为运行环境来运行 Home Assistant。关于其他安装方式,请参考 Home Assistant 官方安装方式介绍页面。
已安装 Python 运行环境,建议版本为 3.8.0 及以上。
设备/软件 | 说明 |
---|---|
电脑 | 苹果电脑 1 台 |
开发板 | 树莓派 3 代及以上。本文使用树莓派 4 代 64位,8GB 版本为例进行介绍 |
开发板运行环境 | Ubuntu Server 20.04.2 LTS |
无线路由器 | 1 台 |
microSD 卡 | 1 张 |
读卡器 | 1 个 |
- 下载并安装 Raspberry Pi Imager 1.6。
- 将 microSD 卡插入电脑。
- 启动 Raspberry Pi Imager 1.6 后,单击 CHOOSE OS。
- 在弹出的窗口中,选择 Other general purpose OS > Ubuntu > Ubuntu Server 20.04.2 LTS (RPi 3/4/400)。
- 在 Raspberry Pi Imager 1.6 主页面上,单击 CHOOSE STORAGE,选择此前插入的 microSD 卡。
- 在 Raspberry Pi Imager 1.6 主页面上,单击 WRITE。
- 在弹出的窗口中输入 macOS 登录账号的密码,等待烧录完成。
- 烧录完成后,拔下 microSD 卡插回树莓派。
Ubuntu Server 支持两种联网方式:有线连接(推荐)和 Wi-Fi 连接。
- 有线连接 直接使用网线将树莓派连接至路由器。
- Wi-Fi 连接
- 将烧录过操作系统的 microSD 卡插上电脑。
- 在 访达 菜单中找到 位置 > system-boot。
- 以文本编辑的方式打开 network-config 文件,将其中的
myhomewifi
字段替换成所用路由器的 SSID,将S3kr1t
字段替换成所用路由器的密码。wifis: wlan0: dhcp4: true optional: true access-points: myhomewifi: password: "S3kr1t"
- 保存文件并退出。
- 将 microSD 卡插回树莓派。
- 通过路由器查看树莓派局域网内 IP 地址,本文以 192.168.1.140 为例进行介绍。
- 确保电脑处于同一局域网内,使用以下命令连接树莓派。
ssh ubuntu@192.168.1.140
- 输入 1 次默认密码后,再输入 2 次新密码来重置密码。
说明:Ubuntu Server 默认用户名和密码都为 ubuntu。
分别执行以下 3 条命令行安装依赖,安装过程需要耗费一定时间,耐心等待安装完成。
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y python3 python3-dev python3-venv python3-pip libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 --fix-missing
- 创建安装 Home Assistant 的目录。
mkdir ~/hass
- 创建并激活用于 Home Assistant 的虚拟环境。
- 进入目录。
cd ~/hass
- 创建虚拟环境。
python3 -m venv .
- 激活虚拟环境。
source bin/activate
- 进入目录。
- 安装 Python package。
python3 -m pip install wheel
- 安装 Home Assistant Core。
pip3 install homeassistant
使用以下命令启动 Home Asssitant。
hass
首次启动 Home Assistant 时,系统会创建 ~/.homeassistant
目录用于承载配置文件,并安装所需的基础依赖,这个过程会花费一定时间,请耐心等待。
使用局域网内其他设备,通过浏览器访问 http://192.168.1.140:8123,如果出现 Home Assistant 主页,说明安装成功。
说明:此处的 IP 地址仅为示例,实际地址请使用树莓派在局域网内的 IP 地址。
本文通过 Samba 将 .homeassistant 目录在局域网内进行共享,使开发者可在电脑端直接修改 .homeassistant 文件,以便后期的开发。
- 安装 Samba。
sudo apt-get install samba samba-common-bin
- 配置 smb.conf 文件。
注意:smb.conf 配置的路径必须是绝对路径,如 /home/ubuntu/.homeassistant。
- 编辑文件。
sudo vi /etc/samba/smb.conf
- 在文件底部增加以下代码行。
[pi] path = /home/ubuntu/.homeassistant writeable=Yes create mask=0777 directory mask=0777 public=no
- 保存文件。
- 编辑文件。
- 添加 Samba 账户。
注意:使用 sudo smbpasswd -a 命令创建用户时,创建的用户必须为 Linux 系统账户,如ubuntu。
- 输入以下命令行。
sudo smbpasswd -a ubuntu
- 输入密码,比如 a123456。
- 输入以下命令行。
- 重启 Samba 使上述步骤配置生效。
sudo systemctl restart smbd
Samba 安装完成后,树莓派的 Hass 开发环境搭建完毕。
-
在电脑桌面上打开 访达。
-
选择桌面左上角菜单中的 前往 > 连接服务器。
-
在弹出的窗口中,输入以下地址后单击 连接。
smb://192.168.1.140/pi
说明:此处的 IP 地址仅为示例,实际地址请使用树莓派在局域网内的 IP 地址。
-
在弹窗中输入添加 Samba 账户时设置的账号和密码,以下为示例:
- Name: ubuntu
- Password: a123456
-
单击 连接 访问树莓派共享的 Home Assistant 文件夹。
安装完 Samba 并可以通过 Samba 访问 Home Assistant 文件夹后,您可以进行后续的开发操作。后续开发示例可以参考 基于涂鸦 Home Assistant 插件开发智能设备驱动教程。
Installation
How to Contribute
Documentation