FEATURED · 精选文章

Home Assistant 场景激活完全指南:scene.turn_on 动作的 UI 操作、YAML 配置与实战自动化

发布时间 / 2026/9/17 22:36:25
来源 / 创域科博编辑部
栏目 / 资讯中心
Home Assistant 场景激活完全指南:scene.turn_on 动作的 UI 操作、YAML 配置与实战自动化 Home Assistant 场景激活完全指南scene.turn_on 动作的 UI 操作、YAML 配置与实战自动化【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io场景Scene是 Home Assistant 中一键恢复一组实体状态的核心机制。本文围绕官方文档 scene.turn_on 动作参考 展开系统讲解如何通过用户界面与 YAML 两种方式激活场景涵盖目标target选择、过渡transition参数、完整自动化示例并结合 场景集成文档 说明场景实体的底层状态模型与限制帮助你掌握回家即点亮、观影即变暗这类一键场景编排能力。场景是什么一组状态的快照在深入scene.turn_on之前先明确场景的本质。按 场景集成文档 的定义场景实体可以恢复一组实体的状态。例如一个浪漫场景可以存储灯 A 开启、灯 B 亮起且呈亮红色这样的组合状态。场景存储的是一组实体的期望状态哪些灯开着、亮度多少、什么颜色而不是动作参数。激活场景时Home Assistant 会在一步之内把所有相关实体恢复到已存储的状态。场景有两种来源既可以自己在configuration.yaml中定义也可以由集成integration提供——例如 Philips Hue、MQTT、KNX 等集成提供的场景激活时由集成提供其偏好的恢复状态。为什么没有关闭场景的动作scene.turn_on文档明确强调不存在scene.turn_off动作。场景描述的是你想回到的某个时刻而不是某个保持开启的东西。要离开当前场景只需激活另一个场景或手动关闭相关实体即可。这是场景实体无状态特性的直接体现——它不像开关switch实体那样有on/off两种状态。从用户界面激活场景如果你偏好可视化操作可以在自动化或脚本编辑器中按以下步骤完成配置对应 UI 使用说明进入Settings Automations scenes。打开现有的自动化或脚本如果是新建选择Create automation Create new automation。新建自动化时在When部分添加触发器脚本不需要触发器它们在被其他东西调用时才运行。在Then do部分选择Add action。选择你要控制的对象在By target下选择要激活的场景目标选择规则见下文 目标 一节。从该目标对应的动作列表中选择Activate scene激活场景。可选设置Transition过渡时间让状态变化是渐进式而非瞬间切换。选择Save保存。UI 中的选项选项是否必填说明Transition否设备过渡到场景定义的状态所需的时间单位秒在 YAML 中使用 scene.turn_on如果你直接编写 YAML或者想确切了解 Home Assistant 底层做了什么可以参考 YAML 技术参考。在 YAML 中该动作的引用名就是scene.turn_on。基本用法激活名为scene.romantic的场景最小示例action: scene.turn_on target: entity_id: scene.romantic带过渡时间的用法如果希望场景渐进式生效而非瞬间切换可以添加transition数据字段action: scene.turn_on target: entity_id: scene.romantic data: transition: 2.5YAML 选项参考字段是否必填类型说明transition否float设备过渡到场景定义状态所需的时间单位秒关于 transition 的重要限制过渡效果目前只有灯lights支持而且灯本身也必须支持过渡能力。不过场景不需要全部由灯组成也能设置过渡时间——场景中只要存在支持过渡的灯过渡参数就会对这些灯生效。目标 Targets支持哪些类型scene.turn_on是一个**必须有目标target**的动作。目标是动作的作用对象你可以把动作指向单个实体、设备、区域、楼层或标签Home Assistant 会对该目标背后所有匹配的scene实体执行动作见 targets.md实体Entity某个具体的 scene 实体例如scene.living_room。设备Device属于某台设备的所有 scene 实体。区域Area某个房间或区域内的所有 scene 实体。楼层Floor某一楼层上的所有 scene 实体。标签Label共享某个标签的所有 scene 实体。同一个动作还可以混合选择不同类型的多个目标例如同时添加一个具体实体和一个区域让动作一次作用于两者。实战示例回家时自动激活浪漫场景官方文档提供了一个完整的自动化示例当某人进入家区域时立即把客厅布置成温馨的迎宾氛围。触发器Zone entered进入区域目标Paulus某位家庭成员区域Home家动作Activate scene激活场景目标Romantic浪漫场景过渡2.5 秒对应的完整 YAMLautomation: - alias: Activate the romantic scene on arrival triggers: - trigger: zone.entered target: entity_id: person.paulus options: zone: zone.home actions: - action: scene.turn_on target: entity_id: scene.romantic data: transition: 2.5这段配置与 场景集成文档 中使用场景过渡一节的自动化示例结构完全一致触发器判断person.paulus进入zone.home动作调用scene.turn_on并传入transition: 2.5。场景实体的状态last_activated 时间戳场景实体是无状态的stateless。根据 场景集成文档每个场景实体都会跟踪它最后一次被调用last activated的时间戳无论调用来自 Home Assistant UI 还是动作。这让你在 UI 中很容易检查某个场景是否运行过——官方文档称之为Good to know要点之一。场景实体可能呈现的状态还包括Unavailable不可用实体当前不可用。Unknown未知状态尚不清楚。下方截图展示了在Settings Tools States中场景实体的状态显示效果与相关动作的配合使用原文档在 front matter 中声明了三个相关动作见 related.md 模板的逻辑它们与scene.turn_on互补动作用途与 scene.turn_on 的关系scene.apply不预先创建场景直接把一组实体的目标状态传给动作适合一次性场景scene.turn_on则要求场景已存在。详见 scene.apply 文档scene.create动态创建新场景无需写入配置文件创建的场景可通过scene.turn_on激活重载配置后动态场景会被丢弃scene.reload修改configuration.yaml中的场景配置后重载重载后场景定义更新供scene.turn_on使用官方文档特别提示要在不先创建场景的情况下应用一组状态请使用scene.apply——它的entities数据格式与场景配置中的entities字段相同scene.apply不支持目标 target需在data.entities中列出实体及其状态。自定义场景的定义与激活闭环结合 场景集成文档你可以先在configuration.yaml中定义场景再用scene.turn_on激活形成完整的配置闭环# Example configuration.yaml entry scene: - name: Romantic icon: mdi:flower-tulip entities: light.tv_back_light: on light.ceiling: state: on brightness: 200 color_mode: xy xy_color: [0.33, 0.66] - name: Movies entities: light.tv_back_light: state: on brightness: 125 light.ceiling: off media_player.sony_bravia_tv: state: on source: HDMI 1scene.turn_on动作要求场景实体已经存在无论是 YAML 定义、UI 场景编辑器创建还是集成提供。而scene.create则可以即兴创建场景——例如当窗户打开时用snapshot_entities快照当前状态存为scene.before关窗后再用scene.turn_on恢复完整示例见 场景集成文档 的Creating scenes on the fly小节。快速试玩Tools Actions想在不写任何 YAML 的情况下验证效果打开Settings Tools Actions搜索scene.turn_on填写字段并点击Perform action就能在真实实体上看到场景被激活的效果见 try_it.md。常见注意事项小结scene.turn_on是唯一用于激活场景的动作不存在scene.turn_off离开场景请激活另一个场景或手动关灯。过渡时间transition秒float仅对支持过渡的灯生效但场景整体不需要只包含灯。场景实体的最近激活时间可帮助你在 UI 中确认场景是否成功运行。目标支持实体、设备、区域、楼层、标签五种类型且可混用。如果只是偶尔用一次、不想建立可复用场景优先考虑scene.apply或scene.create。【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻