Home Assistant Yamaha select_scene 动作详解:在自动化与脚本中切换功放场景
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
导读
yamaha.select_scene是 Home Assistant 中用于控制 Yamaha 网络影音接收器(AV Receiver)的动作(action),它允许你在自动化或脚本中直接切换功放上预配置的场景,例如电影观看场景、收音机收听场景等。本文以 yamaha.select_scene 动作文档 为核心,结合 Yamaha 集成文档,完整讲解该动作的 UI 操作路径、YAML 配置字段、目标(target)选择方式、调试方法及其在家庭影院自动化中的实战用法。读完本文,你将能够在自动化中一键切换 Yamaha 功放的音视频场景,并掌握该动作在底层与媒体播放器实体的绑定关系。
动作概述
yamaha.select_scene用于在 Yamaha 接收器上选择一个场景(scene)。所谓场景,是 Yamaha 功放本身预置的一组音视频参数组合,例如面向电影观影的TV Viewing场景、面向纯音频收听的Radio场景等。在 Home Assistant 中调用该动作,相当于通过遥控器按下功放上的场景按键,但可以将其无缝嵌入到自动化流程中。
该动作属于yamaha域(domain),目标实体类型为media_player。在动作文档的元数据中,它还关联了两个常用动作,方便组合使用:
- yamaha.enable_output:启用或禁用功放的输出端口(如 HDMI 端口),常用于切换场景后配套调整输出通道;
- yamaha.menu_cursor:模拟功放菜单方向键操作,用于浏览 NET RADIO 等菜单类音源。
前置条件:先接入 Yamaha 功放
在使用yamaha.select_scene之前,需要先把功放作为媒体播放器集成到 Home Assistant 中。根据 Yamaha Network Receivers 集成文档,在configuration.yaml中做如下最小化配置:
media_player: - platform: yamaha该集成支持 HTR-4065、RX-V473、RX-V573、RX-V585、RX-V673、RX-V685、RX-V773、RX-V3067 等型号(以及更多型号)。文档特别强调:必须启用接收器的"网络待机"(network standby)功能,否则在功放处于关机状态时,Home Assistant 启动过程可能会挂起等待。
更完整的配置示例(包含主机地址、音源与分区重命名等):
media_player: - platform: yamaha host: 192.168.0.10 source_ignore: - "AUX" - "HDMI6" source_names: HDMI1: "ChromeCast" AV4: "Vinyl" zone_ignore: - "Zone_2" zone_names: Main_Zone: "Family Room"接入成功后,每个分区(zone)会生成一个media_player实体,例如media_player.living_room_stereo(主区)或media_player.living_room_stereo_zone_2(Zone 2)。yamaha.select_scene的动作目标正是这些media_player实体。
在用户界面中使用该动作
在 UI 中配置该动作的完整步骤如下(对应 动作文档 的 UI 章节):
- 进入Settings>Automations & scenes(设置 > 自动化与场景);
- 打开已有的自动化或脚本,或选择Create automation>Create new automation(新建自动化);
- 如果新建的是自动化,在When(触发条件)区域添加一个触发器;脚本则无需触发器,脚本在别处调用它时才运行;
- 在Then do(执行动作)区域选择Add action(添加动作);
- 在By target(按目标,详见下文"目标选择")下选择要控制的功放;
- 在该目标可用的动作列表中,选择Yamaha: Select scene;
- 设置要切换的Scene(场景);
- 点击Save(保存)。
UI 中的选项
| 选项 | 说明 | 是否必填 |
|---|---|---|
| Scene | 要选择的场景名称,例如TV Viewing | 必填 |
在 UI 模式下无需编写任何 YAML,Home Assistant 会引导你逐步完成目标选择与选项设置(见 ui_header.md)。
在 YAML 中使用该动作
如果你更习惯直接编写 YAML,或在自动化、脚本中需要精确控制,可以按如下方式引用该动作(动作名称为yamaha.select_scene):
action: | action: yamaha.select_scene target: entity_id: media_player.living_room_stereo data: scene: "TV Viewing"上面的示例将在media_player.living_room_stereo(客厅音响)上选择TV Viewing场景。注意动作引用本身采用 YAML 块语法(action: |),内层才是完整的动作调用结构。
YAML 选项
| 字段 | 说明 | 类型 | 是否必填 |
|---|---|---|---|
scene | 要选择的场景名称,例如TV Viewing | string | 必填 |
scene的值必须与功放内预置场景的名称完全一致,建议在 UI 中确认功放实际显示的场景名后再填入 YAML。
目标选择(Targets)
yamaha.select_scene必须指定目标(target),目标是动作的作用对象。你可以把目标指向单个实体、设备、区域、楼层或标签,Home Assistant 会对该目标下所有匹配的media_player实体执行动作(详见 targets.md):
- 实体(Entity):单个
media_player实体,如media_player.living_room_stereo; - 设备(Device):属于某个设备的所有
media_player实体; - 区域(Area):某个房间或区域内的所有
media_player实体; - 楼层(Floor):某个楼层上的所有
media_player实体; - 标签(Label):共享某个标签的所有
media_player实体。
你也可以在同一次动作中混合多种目标类型,例如同时指定一个实体和一个区域,让动作同时作用于两者。
实战场景:观影模式一键切换
结合 Yamaha 集成支持的分区与音源能力,yamaha.select_scene非常适合构建"一键观影"类自动化。一个完整的实战示例是:电视打开时,自动将功放切到TV Viewing场景、启用对应 HDMI 输出并设置音量。
automation: - alias: "Movie night setup" trigger: - platform: state entity_id: media_player.tv to: "on" action: - action: yamaha.select_scene target: entity_id: media_player.living_room_stereo data: scene: "TV Viewing" - action: yamaha.enable_output target: entity_id: media_player.living_room_stereo data: port: hdmi1 enabled: true - action: media_player.volume_set target: entity_id: media_player.living_room_stereo data: volume_level: 0.35这里把yamaha.select_scene与关联动作 yamaha.enable_output(启用 HDMI1 输出)及媒体播放器通用动作组合使用,体现了"动作文档中列出的相关动作组合使用"的典型模式。
需要说明的是:yamaha.select_scene切换的是功放内预置场景;而集成文档中还提到play_media动作支持NET RADIO音源,通过>分隔的菜单路径(如Bookmarks>Internet>WAMC 90.3 FM,MusicCast 设备为Radio>Favorites>WAMC 90.3 FM)播放网络收音机。如果你的目标是构建收音机收听场景,可以先播放电台再用场景动作固化参数,两者可互补使用。
立即尝试与排障
在 Actions 面板直接测试
无需编写任何 YAML,就可以在开发工具中验证该动作:进入Settings>Tools>Actions(工具 > 动作),搜索yamaha.select_scene,填写字段后点击Perform action(执行动作),即可在真实实体上看到执行效果(见 try_it.md)。这是排查"场景名是否正确""目标实体是否可被控制"等问题的首选方式。
仍然无法工作?
如果动作执行不符合预期,可以参考 stuck.md 的排障思路:在社区论坛发帖时,附上你调用的动作、目标实体以及期望与实际结果,能更快获得帮助;也可以向 AI 助手用自然语言描述你的需求,让它协助解释动作字段或推荐正确的动作组合。此外,务必回顾前置条件——接收器是否开启了网络待机、host配置是否正确、场景名是否与功放端一致。
总结
yamaha.select_scene是 Home Assistant 控制 Yamaha 网络功放场景切换的核心动作:通过 UI 的可视化引导或 YAML 的精确编写,你可以在自动化与脚本中一键切换电影、收音机等预置场景,并借助目标系统将动作批量作用于实体、设备、区域、楼层或标签。结合yamaha.enable_output、yamaha.menu_cursor等关联动作以及 Yamaha 集成的分区能力,可以构建出完整的观影、听音自动化方案。在动手之前,请确保功放已完成接入并开启网络待机,且场景名称与功放端完全一致。
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考