依赖
Home Assistant 允许组件和平台使用变量DEPENDENCIES和REQUIREMENTS来指定它们的依赖和需求。两者都是包含字符串的列表。
依赖
依赖是指在平台加载之前应该设置好的其他 Home Assistant 组件。例如 MQTT 传感器组件,它需要与 MQTT 代理建立活动连接。如果 Home Assistant 无法加载并设置 MQTT 组件,它将不会设置 MQTT 传感器组件。
DEPENDENCIES = ['mqtt']
需求
需求是指你通常会为你的组件使用pip安装的 Python 库或模块。如果你没有使用venv,Home Assistant 会尝试将需求安装到 Home Assistant 配置目录的deps子目录中;如果你在虚拟环境中运行,则会安装到类似path/to/venv/lib/python3.6/site-packages的位置。这将确保在启动时所有需求都存在。如果步骤失败,例如缺少模块编译所需的包或其他安装错误,组件将无法加载。
需求是一个字符串列表。每个条目都是一个与pip兼容的字符串。例如,媒体播放器 Cast 平台依赖于 Python 包 PyChromecast v0.6.12:
REQUIREMENTS = ['pychromecast==0.6.12']
在组件开发过程中,针对需求的不同版本进行测试可能很有用。以 pychromecast 为例,这可以通过两步完成:
pip install pychromecast==0.6.13 --target ~/.homeassistant/deps
hass --skip-pip
这将使用指定的版本,并防止 Home Assistant 尝试用REQUIREMENTS中当前的版本覆盖它。
如果你需要对需求进行更改以支持你的组件,也可以从需求的检出中进行pip install。
git clone https://github.com/balloob/pychromecast.git
pip install./pychromecast
hass --skip-pip
总结
主要介绍了 Home Assistant 中组件和平台的需求与依赖管理。详细阐述了DEPENDENCIES用于指定其他需提前设置的组件,如 MQTT 传感器依赖 MQTT 组件的示例,明确了依赖关系对组件加载的影响。对于REQUIREMENTS,说明了其是组件所需的 Python 库或模块,介绍了 Home Assistant 安装需求的位置及安装失败对组件加载的影响,还提供了在开发中测试不同版本需求及从检出安装修改后需求的方法,为开发者在管理组件依赖和需求时提供了全面指导,有助于确保组件正常运行,同时在开发过程中灵活应对不同需求场景,提高组件的稳定性和兼容性。
1276

被折叠的 条评论
为什么被折叠?



