HA开发者-环境配置

941 阅读4分钟

作者:拿铁编码_韦斯利 创建日期:2023年7月28日


设置开发环境

如果您想为Home Assistant开发新的功能或组件,您需要设置开发环境。以下是如何设置开发环境的详细步骤。

使用Visual Studio Code + devcontainer进行开发

最简单的开始开发的方式是使用Visual Studio Code与devcontainers。这种方法会创建一个预配置的开发环境,其中包含您所需的所有工具。该方法对于所有Home Assistant仓库都适用。devcontainers是一种非常方便的方式,详情请参阅相关文档。

注意:由于该方法使用容器,您可能在将硬件(如USB设备和适配器,板载蓝牙、Zigbee等)暴露到容器进行测试时遇到一些挑战。在Linux主机上开发可以实现这一点,但在Windows或MacOS上开发时,可能无法直接访问此类硬件。

前提条件:

  • Docker
  • Visual Studio Code
  • Git

开始:

  1. 前往Home Assistant core仓库并点击"Fork"进行fork操作。

  2. 一旦您的fork创建完成,复制您的fork仓库URL并在下方粘贴,然后点击"Open"。

  3. 浏览器将询问您是否要使用Visual Studio Code打开链接,点击"Open Link"。

  4. 当Visual Studio Code询问是否要安装Remote扩展时,点击"Install"。

  5. 然后将构建Dev Container镜像(可能需要几分钟时间),之后您的开发环境将准备就绪。

  6. 您可以验证您的Dev Container是否正确设置,方法如下:

    • 在Visual Studio Code中打开命令面板 - Shift+Command+P(Mac)/ Ctrl+Shift+P(Windows / Linux)。
    • 选择“Tasks: Run Task -> Run Home Assistant Core”。
    • 应该会打开一个终端并输出活动。检查错误并等待输出停止/减缓。
    • 在Web浏览器中导航到https://localhost:8123,您应该看到Home Assistant的设置屏幕。
  7. 将来,如果您想回到开发环境:打开Visual Studio Code,在侧边栏中点击"Remote Explorer"按钮,选择侧边栏顶部的"Containers"。

任务:

Dev Container带有一些有用的任务,可以帮助您进行开发。您可以通过打开命令面板(Shift+Command+P(Mac)/ Ctrl+Shift+P(Windows / Linux))并选择“Tasks: Run Task”,然后选择要运行的任务来启动这些任务。

当任务正在运行时(例如,预览文档),您可以通过打开命令面板并选择“Tasks: Restart Running Task”,然后选择要重新启动的任务来重新启动任务。

使用Visual Studio Code进行调试:

如果Dev Container设置正确 - 它支持默认的调试配置。它提供了必要的调试配置,因此按下F5键应该启动Home Assistant。任何放置在代码中的断点都应该被触发,调试器应该停止。

您还可以通过遵循此处描述的过程来调试远程Home Assistant实例(例如,生产实例)。

手动环境设置

如果您不想使用devcontainers,您也可以设置更传统的开发环境。以下是不同操作系统下的设置步骤。请确保您的Python版本为3.10。

在Linux上进行开发:

安装核心依赖项。

sudo apt-get update
sudo apt-get install python3-pip python3-dev python3-venv autoconf libssl-dev libxml2-dev libxslt1-dev libjpeg-dev libffi-dev libudev-dev zlib1g-dev pkg-config libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libavresample-dev libav

filter-dev ffmpeg

在Windows上进行开发:

要在Windows上进行开发,您需要使用Linux子系统(WSL)。请按照WSL安装指南并从Windows商店安装Ubuntu。一旦您能够访问Linux,按照Linux的说明操作。

在macOS上进行开发:

安装Homebrew,然后使用它来安装依赖项:

brew install python3 autoconf ffmpeg cmake

如果在运行script/setup脚本时遇到有关cryptography的构建问题,请查看cryptography文档以获取安装说明。

设置本地仓库:

访问Home Assistant Core仓库并点击"Fork"。Fork完成后,使用以下命令设置您的本地源代码:

git clone https://github.com/YOUR_GIT_USERNAME/core.git
cd core
git remote add upstream https://github.com/home-assistant/core.git

使用提供的脚本setup安装要求:

script/setup

这将创建一个虚拟环境并安装所有必要的要求。现在您已经设置好了!

每次开始新的终端会话时,您需要激活您的虚拟环境:

source venv/bin/activate

之后,您可以这样运行Home Assistant:

hass -c config

如果在macOS上运行此命令时遇到崩溃(SIGKILL),可能是缺乏蓝牙权限的问题。您可以通过为您的终端应用程序添加此权限来解决此问题(系统偏好设置->安全性与隐私->蓝牙)。Home Assistant配置存储在仓库中的config目录中。