Home Assistant 中使用 harmony.change_channel 切换 Logitech Harmony Hub 频道【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io本篇技术指南围绕 Home Assistant 的harmony.change_channel动作action讲解如何通过 UI 或 YAML 向 Logitech Harmony Hub 发送切换频道的指令覆盖前置条件、UI 操作步骤、YAML 参数与 target 用法并给出「每晚定时切到新闻频道」的完整自动化示例。读完本文你将掌握在自动化与脚本中可靠切换 Harmony 遥控器当前活动频道的能力并理解它与harmony.sync、remote.turn_on等关联动作的配合方式。动作概览harmony.change_channel做什么harmony.change_channel是 Home Assistant 中harmony 域domain提供的一个动作其官方定义为Sends a change channel command to the Harmony Hub.即向你的 Harmony Hub 发送一条「切换频道」的命令。使用时你需要提供想切换到的频道号channel number例如200。该动作的完整定义位于 source/_actions/harmony.change_channel.markdown。与harmony.sync强制同步 Hub 与 Harmony 云端配置、remote.turn_on启动某个活动如 Watch TV、remote.send_command向指定设备发送按键命令不同change_channel专注于频道调谐这一件事不启动活动、不发送任意按键而是直接切换当前活动正在控制的设备如机顶盒/电视到指定频道。前置条件在使用该动作之前需要满足已配置 Logitech Harmony Hub 集成支持 Harmony Hub、Harmony Companion、Harmony Pro、Harmony Elite、Harmony Pro 2400 等设备。配置完成后会生成对应的remote.*实体例如remote.tv_room。集成细节可参考 source/_integrations/harmony.markdown。Hub 上必须正在运行一个活动activity原文档的 Good to know 明确指出——Harmony Hub 必须正在运行一个控制你想切换频道设备的活动例如 Watch TV 活动。如果当前处于 PowerOff关机状态或没有活动在运行频道切换没有可作用的目标设备。视固件而定启用 XMPP根据 source/_integrations/harmony.markdown 的说明部分固件需要先在 Harmony App 中开启Menu Harmony Setup Add/Edit Devices Activities Remote Hub Enable XMPP集成才能正常工作。通过 UI 操作在自动化或脚本中切换频道在 Home Assistant 的Settings Automations scenes中可以完全通过图形界面完成配置进入Settings Automations scenes。打开一个已有的自动化或脚本如果是新建选择Create automation Create new automation。新建自动化时在When触发条件部分添加一个 trigger脚本不需要 trigger脚本在被其他东西调用时才运行。在Then do执行动作部分选择Add action。选择你要控制的对象。在By target见下文「动作的目标Targets」下选择要控制的 Harmony 遥控器。在该目标显示的动作列表中选择Change channel。输入你想切换到的Channel频道号。选择Save保存。UI 中的选项在 UI 中该动作只有一个选项选项说明Channel要切换到的频道号。使用 YAML动作引用与参数参考在 YAML 中无论是自动化actions、脚本sequence还是action:键中该动作以harmony.change_channel引用。原文档给出一个基础示例action: harmony.change_channel target: entity_id: remote.tv_room data: channel: 200这段配置会把remote.tv_room这个 Harmony 遥控器实体切换到频道200。YAML 参数Options in YAML字段说明是否必填类型channel要切换到的频道号。是requiredinteger注意channel的类型是整数integer不是字符串请勿写成200之类的引号形式YAML 中200即为整数。该动作必须指定 target目标没有 target 时无法确定要控制哪台 Harmony Hub。target 与data在 YAML 中属于同一层级的键这一点从上述示例可以看到。动作的目标Targets该动作需要一个 target即动作的作用对象。你可以把动作指向一个实体、设备、区域、楼层或标签Home Assistant 会对该 target 背后所有匹配的remote 实体执行该动作该动作的目标域为remoteEntity实体某一个具体的 remote 实体例如remote.tv_room。Device设备属于某台设备的所有 remote 实体。Area区域某个房间/区域内的所有 remote 实体。Floor楼层某一楼层上的所有 remote 实体。Label标签共享某个标签的所有 remote 实体。你也可以在同一个动作中组合不同类型的 target例如同时指定一个具体实体和一个区域让动作对两者都执行。Target 机制细节见 source/_includes/actions/targets.md。完整实战示例每晚 6 点自动切到新闻频道原文档提供了一个可直接落地的场景——每天固定时间自动切换频道Trigger触发时间为下午 6:00Action动作Change channelTargetTV room remoteremote.tv_roomChannel200完整的 YAML 自动化如下automation: - alias: Switch to the news channel each evening triggers: - trigger: time at: 18:00:00 actions: - action: harmony.change_channel target: entity_id: remote.tv_room data: channel: 200这个例子中triggers使用trigger: time配合at: 18:00:00实现每天 18:00 触发actions中即是我们讨论的harmony.change_channel。需要再次强调的是该自动化能否生效前提是 Harmony Hub 在 18:00 时正处于某个活动如 Watch TV状态。实用提示与排障确认 Hub 处于活动状态如果切换频道没有生效第一件事是确认 Harmony Hub 当前正在运行的活动是否包含你希望换台的设备如机顶盒。你可以用remote.*实体的current_activity属性来检查当前活动例如在模板传感器中展示template: - sensor: - name: Family Room Harmony Remote state: {{ state_attr(remote.family_room, current_activity) }}该模板用法同样来自 source/_integrations/harmony.markdown。结合harmony.sync刷新配置如果你在 Harmony App 中新增/修改了活动、设备或命令可以调用harmony.sync强制让 Hub 与 Harmony 云端同步使 Home Assistant 尽快拿到最新配置详见 source/_actions/harmony.sync.markdown。Hub 配置活动名称与 ID、设备名称与 ID、每台设备的可用命令列表会在启动时写入 Home Assistant 配置目录下的harmony_UNIQUE_ID.conf文件Hub 配置变化时该文件会被自动覆盖无需重启 Home Assistant。手工验证动作不想写 YAML 时可进入Settings Tools Actions搜索harmony.change_channel填写字段后选择Perform action即可在真实实体上立即看到效果。动作卡住时的检查路径若动作长期无响应或行为异常可结合上述要点逐一排查——集成是否在线、活动是否运行、channel是否为整数、target 是否指向正确的 remote 实体。相关资源harmony.change_channel 动作文档harmony.sync 动作文档change_channel 的关联动作之一用于同步 Hub 配置Logitech Harmony Hub 集成文档配置流程、remote.turn_on/remote.send_command、配置文件的格式与示例Actions 通用 Target 机制说明【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考