使用 Home Assistant cover.open_cover 动作打开卷帘、百叶窗与车库门
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
cover.open_cover是 Home Assistant 中 cover(覆盖物)域的核心动作之一,用于将支持打开能力的 cover 实体(如卷帘、百叶窗、遮阳篷、车库门)完全打开。本指南基于 cover.open_cover 动作文档 完整讲解该动作的 UI 操作、YAML 参数、目标选择方式与实战自动化示例,并结合 cover 集成文档 说明 cover 实体的状态模型与设备类划分,帮助你快速把"定时开窗帘""早晨放光"这类场景落地。
一、cover.open_cover 动作概述
cover.open_cover是一个由 Home Assistant 核心(ha_domain: cover,内部质量等级)提供的标准动作,适用于任何实现了 cover 实体的设备。文档开篇明确其适用范围:卷帘(roller shutter)、百叶窗(blind)、遮阳篷(awning)或车库门(garage door)。
在 cover 集成文档 中,cover 实体被定义为"为卷帘、百叶窗和车库门提供控制接口"的基础能力,其设备类(device class)包括:
- None:通用 cover,默认值,无需设置
- awning:遮阳篷(如户外可伸缩窗、门或露台遮蔽物)
- blind:百叶窗(可伸缩或倾斜的板条)
- curtain:窗帘或帷幔
- damper:减少气流、声音或光线的机械风门
- door:提供通道的门或大门
- garage:车库门
- gate:栅栏门(户外)
- shade:遮光帘
- shutter:卷帘(可升降或外摆)
- window:可开合或倾斜的窗户
cover 实体的状态包括Opening(正在打开)、Open(已完全打开)、Closing(正在关闭)、Closed(已完全关闭),以及Unavailable(不可用)和Unknown(未知),前端如何呈现这些状态取决于实体的设备类。理解这些状态有助于判断cover.open_cover触发后实体的流转过程。
二、从界面(UI)创建"打开 cover"动作
如果你习惯可视化构建自动化,Home Assistant 会逐步引导你完成该动作的配置:选择目标、微调选项并保存,全程无需编写 YAML。
按照 UI 使用说明,在自动化或脚本中使用cover.open_cover的操作步骤如下:
- 进入设置(Settings)>自动化与场景(Automations & scenes)。
- 打开现有的自动化或脚本;如果是新建,选择创建自动化(Create automation)>创建新自动化(Create new automation)。
- 如果正在配置新自动化,在When(何时触发)部分添加触发器。脚本(Script)不需要触发器,它们在被其他内容调用时运行。
- 在Then do(然后执行)部分,选择添加动作(Add action)。
- 选择要控制的设备:在按目标(By target)下(参见下文"动作的目标"),选择要打开的 cover。
- 从该目标显示的动作中选择打开覆盖物(Open cover)。
- 可选:如果你的 cover 支持多档速度,设置Speed(速度)。
- 选择保存(Save)。
界面中的选项
在 UI 中,cover.open_cover仅有一个可选参数:
| 选项 | 描述 | 是否必填 |
|---|---|---|
| Speed | 打开 cover 的速度。仅当 cover 支持速度选择时该选项才会出现,可用的速度值列在 cover 实体的supported_speeds属性中 | 否 |
注意:速度选项属于条件性出现——它依赖实体是否声明了
supported_speeds属性(该属性同样被 cover.set_cover_position 和 cover.close_cover 引用,是 cover 域多档速度能力的统一约定)。只有设备固件或集成实现了多速控制时,才会暴露该属性。
三、在 YAML 中使用 cover.open_cover
在 YAML 中,该动作以cover.open_cover引用。根据 YAML 技术参考说明,YAML 方式能精确控制 Home Assistant 底层行为,需要明确字段名、类型与必填性。
基础示例
action: cover.open_cover target: entity_id: cover.living_room_blind该示例打开cover.living_room_blind这一实体。
带速度的示例
如果 cover 支持多档速度,可以在data段中指定速度:
action: cover.open_cover target: entity_id: cover.living_room_blind data: speed: "fast"YAML 参数说明
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
target | object | 是 | 动作的目标对象(见下节"动作的目标") |
data.speed | string | 否 | 打开 cover 的速度。使用 cover 实体supported_speeds属性中列出的值之一,仅当 cover 支持时才使用 |
四、动作的目标(Targets)
cover.open_cover必须指定目标。根据 Targets 说明,目标即动作的作用对象,你可以将动作指向单个实体、设备、区域、楼层或标签,Home Assistant 会对目标背后所有匹配的 cover 实体执行动作:
- 实体(Entity):某一个具体的 cover 实体,例如
cover.living_room。 - 设备(Device):属于某设备的所有 cover 实体。
- 区域(Area):某个房间或区域内的所有 cover 实体。
- 楼层(Floor):某一楼层上的所有 cover 实体。
- 标签(Label):共享某个标签的所有 cover 实体。
你还可以在同一次动作中混合选择不同类型的多个目标。例如,同时添加一个具体实体和一个区域作为目标,让动作一次性作用于两者——这非常适合"一键打开整层窗帘"这类批量场景。
五、实战示例:早晨定时打开窗帘
在自动化与脚本的实际场景中,cover.open_cover最常见的用法是"定时开帘"。原文档提供了以下完整示例——每天 07:15 打开客厅百叶窗,让晨光进入房间:
- 触发器:时间 07:15
- 动作:打开 cover
- 目标:客厅百叶窗(Living room blind)
展开的完整 YAML 如下:
automation: - alias: "Open the living room blind in the morning" triggers: - trigger: time at: "07:15:00" actions: - action: cover.open_cover target: entity_id: cover.living_room_blind复制该示例即可适配你的设备,只需把entity_id换成你自己的 cover 实体,并调整at的触发时间。
六、Good to know:适用条件与限制
- 该动作仅对支持打开(opening)能力的 cover 实体生效。如果某个 cover 设备只实现了关闭或位置控制,
cover.open_cover不会产生预期效果——此时应检查实体支持的能力,并考虑改用 cover.set_cover_position(如"打开到一半")或 cover.toggle。 - 在 cover 集成文档 的自动化示例中可以看到,cover 域还提供配套触发器(如
cover.blind_opened)和条件(如cover.shutter_is_open),可与cover.open_cover组合出更智能的逻辑,例如"日出后盲打开则关灯""日落时若百叶窗仍开则自动关闭"。值得注意的是,该页标注的触发器与条件仅对awning、blind、curtain、shade、shutter这五类设备类生效。
七、自行测试:开发者工具中的 Actions
无需编写 YAML 即可验证该动作的实际效果:进入设置(Settings)>工具(Tools)>动作(Actions),搜索cover.open_cover,填写字段后点击执行动作(Perform action),即可在你的真实实体上观察结果(参见 Try it yourself)。这是调试目标选择、速度取值等配置的最快捷方式。
八、相关动作
cover.open_cover与以下动作配合使用效果最佳(对应文档中的 related_actions 定义):
- 关闭 cover(cover.close_cover):将 cover 完全关闭,参数结构与本动作一致(
target+ 可选data.speed),配套示例为"日落时关闭卧室卷帘"。 - 停止 cover(cover.stop_cover):在开合过程中随时中止,常用于行程中间急停。
- 切换 cover(cover.toggle):根据当前状态自动在打开与关闭之间切换。
- 设置 cover 位置(cover.set_cover_position):将 cover 移动到指定百分比位置(0 表示关闭,100 表示打开),支持
position(必填,integer)与speed(可选,string)参数,例如"将百叶窗开至 50%"。
这些动作共享同一套目标选择机制与supported_speeds速度约定,掌握cover.open_cover后即可举一反三。
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考