基于树莓派搭建 Home Assistant 开发环境

更新时间Invalid date

概况

本文介绍了如何使用 Home Assistant Core 的方式在树莓派上安装 Home Assistant,以及如何搭建开发环境。

Home Assistant 是一款基于 Python 的智能家居开源系统,作为中央控制系统连接众多智能家居设备,轻松实现对设备的控制。
本文中,将以 Home Assistant Core(推荐开发者使用)的方式来安装,以 Ubuntu Server 作为运行环境来运行 Home Assistant。关于其他安装方式,请参考 Home Assistant 官方安装方式介绍页面

物料清单

硬件 (5)软件 (2)
  • 苹果电脑

    数量:1

    用于安装软件完成基础操作,以及使用终端工具连接树莓派。

  • 树莓派

    数量:1

    用于安装 Ubuntu Server、Home Assistant 以及后续的开发工作。

  • 无线路由器

    数量:1

    用于将树莓派连接到网络。

  • microSD 卡

    数量:1

    用于安装 Ubuntu Server,并作为树莓派的存储设备。

  • 读卡器

    数量:1

    用于将 microSD 卡连接至电脑。

步骤

  • 第 1 步:准备工作

    前提条件

    已安装 Python 运行环境,建议版本为 3.8.0 及以上。

    软硬件准备

    设备/软件 说明
    电脑 苹果电脑 1 台
    开发板 树莓派 3 代及以上。本文使用树莓派 4 代 64位,8GB 版本为例进行介绍
    开发板运行环境 Ubuntu Server 20.04.2 LTS
    无线路由器 1 台
    microSD 卡 1 张
    读卡器 1 个
  • 第 2 步:安装运行环境

    1. 下载并安装 Raspberry Pi Imager 1.6
    2. 将 microSD 卡插入电脑。
    3. 启动 Raspberry Pi Imager 1.6 后,单击 CHOOSE OS
      选择操作系统
    4. 在弹出的窗口中,选择 Other general purpose OS > Ubuntu > Ubuntu Server 20.04.2 LTS (RPi 3/4/400)
      选择 Ubuntu Server
    5. 在 Raspberry Pi Imager 1.6 主页面上,单击 CHOOSE STORAGE,选择此前插入的 microSD 卡。
      选择 SD 卡
    6. 在 Raspberry Pi Imager 1.6 主页面上,单击 WRITE
      烧录
    7. 在弹出的窗口中输入 macOS 登录账号的密码,等待烧录完成。
      烧录进度
    8. 烧录完成后,拔下 microSD 卡插回树莓派。
  • 第 3 步:将树莓派连接至网络

    Ubuntu Server 支持两种联网方式:有线连接(推荐)和 Wi-Fi 连接。

    • 有线连接
      直接使用网线将树莓派连接至路由器。
    • Wi-Fi 连接
      1. 将烧录过操作系统的 microSD 卡插上电脑。
      2. 访达 菜单中找到 位置 > system-boot
      3. 以文本编辑的方式打开 network-config 文件,将其中的 myhomewifi 字段替换成所用路由器的 SSID,将 S3kr1t 字段替换成所用路由器的密码。
        wifis:
            wlan0:
                dhcp4: true
                optional: true
                access-points:
                myhomewifi:
                    password: "S3kr1t"
        
      4. 保存文件并退出。
      5. 将 microSD 卡插回树莓派。
  • 第 4 步:启动 Ubuntu Server

    1. 通过路由器查看树莓派局域网内 IP 地址,本文以 192.168.1.140 为例进行介绍。
    2. 确保电脑处于同一局域网内,使用以下命令连接树莓派。
      ssh ubuntu@192.168.1.140
      
    3. 输入 1 次默认密码后,再输入 2 次新密码来重置密码。

      说明:Ubuntu Server 默认用户名和密码都为 ubuntu。

  • 第 5 步:安装 Home Assistant

    安装依赖

    分别执行以下 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

    创建虚拟环境

    1. 创建安装 Home Assistant 的目录。
      mkdir ~/hass
      
    2. 创建并激活用于 Home Assistant 的虚拟环境。
      1. 进入目录。
        cd ~/hass
        
      2. 创建虚拟环境。
        python3 -m venv .
        
      3. 激活虚拟环境。
        source bin/activate
        

    安装 Home Assistant

    1. 安装 Python package。
      python3 -m pip install wheel
      
    2. 安装 Home Assistant Core。
      pip3 install homeassistant
      

    启动 Home Assistant

    使用以下命令启动 Home Asssitant。

    hass
    

    首次启动 Home Assistant 时,系统会创建 ~/.homeassistant 目录用于承载配置文件,并安装所需的基础依赖,这个过程会花费一定时间,请耐心等待。

    使用局域网内其他设备,通过浏览器访问 http://192.168.1.140:8123,如果出现 Home Assistant 主页,说明安装成功。

    说明:此处的 IP 地址仅为示例,实际地址请使用树莓派在局域网内的 IP 地址。

  • 第 6 步:安装 Samba

    本文通过 Samba 将 .homeassistant 目录在局域网内进行共享,使开发者可在电脑端直接修改 .homeassistant 文件,以便后期的开发。

    1. 安装 Samba。
      sudo apt-get install samba samba-common-bin
      
    2. 配置 smb.conf 文件。

      注意:smb.conf 配置的路径必须是绝对路径,如 /home/ubuntu/.homeassistant。

      1. 编辑文件。
        sudo vi /etc/samba/smb.conf
        
      2. 在文件底部增加以下代码行。
        [pi]
        path = /home/ubuntu/.homeassistant
        writeable=Yes 
        create mask=0777 
        directory mask=0777 
        public=no 
        
      3. 保存文件。
    3. 添加 Samba 账户。

      注意:使用 sudo smbpasswd -a 命令创建用户时,创建的用户必须为 Linux 系统账户,如ubuntu。

      1. 输入以下命令行。
        sudo smbpasswd -a ubuntu
        
      2. 输入密码,比如 a123456。
    4. 重启 Samba 使上述步骤配置生效。
      sudo systemctl restart smbd
      

    Samba 安装完成后,树莓派的 Hass 开发环境搭建完毕。

    通过 Samba 访问 Home Assistant 文件夹

    1. 在电脑桌面上打开 访达

    2. 选择桌面左上角菜单中的 前往 > 连接服务器

    3. 在弹出的窗口中,输入以下地址后单击 连接

      smb://192.168.1.140/pi
      

      说明:此处的 IP 地址仅为示例,实际地址请使用树莓派在局域网内的 IP 地址。
      连接树莓派

    4. 在弹窗中输入添加 Samba 账户时设置的账号和密码,以下为示例:

      • Name: ubuntu
      • Password: a123456
    5. 单击 连接 访问树莓派共享的 Home Assistant 文件夹。
      访问文件夹

小结

安装完 Samba 并可以通过 Samba 访问 Home Assistant 文件夹后,您可以进行后续的开发操作。后续开发示例可以参考 基于涂鸦 Home Assistant 插件开发智能设备驱动教程