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

更新时间2021-05-14 03:32:18

概况

本文介绍了如何使用 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 插件开发智能设备驱动教程