
Home Assistant remote.delete_command 动作完全指南删除已学习遥控命令的 UI 与 YAML 实战【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.ioremote.delete_command是 Home Assistant Remote遥控器集成提供的核心动作之一用于从支持该能力的 remote 实体中删除一条或多条已学习的红外IR/射频RF命令。本文基于 home-assistant.io 官方文档仓库中的 remote.delete_command 动作参考系统讲解该动作的适用前提、UI 可视化配置步骤、YAML 完整参数与自动化示例并结合 Remote 集成文档 与 Broadlink 集成文档 中的真实用法帮助你在自动化与脚本中准确清理过时、错误或需要重新学习的遥控命令。一、动作概述删除一条或多条已学习的命令Delete remote command删除遥控命令动作会从支持的 remote 实体中删除一条命令或一个命令列表。它通常在以下场景中使用学习命令时出错需要删掉重新学习某条命令已不再需要希望清理遥控器的命令数据库命令被修改或更换需要先删除旧版本再通过remote.learn_command重新录入。值得注意的是是否支持删除命令取决于具体的 remote 集成以及所选的 remote 实体原文档明确指出 Deleting support depends on the remote integration and the selected remote entity。也就是说并非所有遥控器实体都实现了删除能力使用前应查阅对应集成的文档确认。在动作体系中remote.delete_command与 Learn remote command、Send remote command 构成完整闭环动作作用remote.learn_command向支持学习能力的遥控实体录入一条或多条命令remote.send_command通过遥控实体发送已保存的命令remote.delete_command删除已保存的命令从源码结构看Remote 实体域domain由remote域定义Remote 集成文档 明确其 Provides actions to turn remotes on or off, toggle them, send commands, learn commands, and delete commands即管理每个遥控器的状态并提供开关、切换、发送、学习与删除命令的动作集合。二、在 UI 界面中配置该动作按照 UI 操作说明 的指引要从自动化automation或脚本script中删除遥控命令按以下步骤操作进入设置自动化与场景Settings Automations scenes。打开现有的自动化或脚本或选择创建Create新建一个。如果是新建自动化需要在当……时When部分添加一个触发器脚本则不需要触发器脚本由其他东西调用时运行。在然后执行Then do部分选择添加动作Add action。选择要控制的对象在按目标By target参见下方动作的目标一节下选择要删除命令的 remote 实体、设备、区域、楼层或标签。从该目标对应的动作列表中选择删除遥控命令Delete remote command。在命令Command中输入要删除的命令。可选在设备Device中输入包含该命令的设备 ID。点击保存Save。UI 中的可选项选项说明是否必填设备Device将从其删除命令的设备 ID否命令Command要删除的单条命令或命令列表是三、YAML 用法与完整参数说明在 YAML 中该动作以remote.delete_command引用。最基础的写法如下action: remote.delete_command target: entity_id: remote.living_room data: device: television command: mute上述示例的作用是从remote.living_room实体中删除television设备的mute命令。YAML 数据参数Options in YAML参数说明是否必填类型device将从其删除命令的设备 ID否stringcommand要删除的单条命令或命令列表是string关于类型说明command参数在官方参考文档中标为 string 类型且必填但结合下方删除多个命令的示例可以确认它同时支持 YAML 列表形式多条命令一起删除。device参数为可选当遥控器只对应单个设备时可不填当遥控器管理多个设备如电视、机顶盒、投影仪时用它精确定位命令所属的设备。删除多条命令command参数支持命令列表一次动作即可批量删除action: remote.delete_command target: entity_id: remote.living_room data: device: television command: - power - input_hdmi_1四、动作的目标Targets该动作必须指定一个目标target目标是动作作用的对象。根据 动作目标说明你可以把动作指向实体Entity某个具体的 remote 实体如remote.living_room设备Device属于某设备的所有 remote 实体区域Area某个房间或区域内的所有 remote 实体楼层Floor某个楼层上的所有 remote 实体标签Label共享某标签的所有 remote 实体。你还可以在同一次动作中混合多种目标类型例如同时指定一个具体实体和一个区域让动作一次性作用于两者覆盖的所有匹配 remote 实体。五、自动化实战示例示例一按下一个辅助按钮删除单条已学习命令当用户单独创建的辅助helper按钮被按下时删除已学习的 mute 命令。触发器Trigger状态State实体Entity删除静音input_button.delete_mute动作Action删除遥控命令Delete remote command目标Target客厅遥控器设备Devicetelevision命令Commandmute对应 YAMLautomation: alias: Delete TV mute command triggers: - trigger: state entity_id: input_button.delete_mute actions: - action: remote.delete_command target: entity_id: remote.living_room data: device: television command: mute示例二按下一个辅助按钮批量删除多条命令当用户单独创建的辅助按钮被按下时删除几条准备重新学习的电视命令。触发器Trigger状态State实体Entity删除电视命令input_button.delete_tv_commands动作Action删除遥控命令目标Target客厅遥控器设备Devicetelevision命令Commandpower、input_hdmi_1对应 YAMLautomation: alias: Delete TV commands triggers: - trigger: state entity_id: input_button.delete_tv_commands actions: - action: remote.delete_command target: entity_id: remote.living_room data: device: television command: - power - input_hdmi_1这两个示例展示了把remote.delete_command与input_button辅助按钮结合的典型模式通过状态触发器监听按钮按下触发删除动作。你也可以把同样的逻辑放进脚本供其他自动化调用。六、真实集成示例Broadlink 中的命令删除为了说明该动作在真实集成中的用法可以看仓库中 Broadlink 集成文档 的 Deleting commands 一节。该集成明确支持remote.delete_command用于删除通过remote.learn_command学习到的命令并给出以下参数约定数据属性可选说明entity_id否遥控器的 IDdevice否设备名称command否要删除的命令名称删除单条命令的脚本示例script: delete_tv_power: sequence: - action: remote.delete_command target: entity_id: remote.bedroom data: device: television command: power批量删除多条命令的脚本示例script: delete_tv_commands: sequence: - action: remote.delete_command target: entity_id: remote.bedroom data: device: television command: - power - source - menu注意Broadlink 文档中此处device和command均标注为必填与动作参考文档device可选略有差异——这印证了具体参数要求由集成实现决定编写配置时应以所用集成的文档为准。从版本历史看remote.delete_command在 Broadlink 集成中的实现最早出现于 2021.2 版本发布说明release-20212.markdown 中记录 Implement remote.delete_command in the Broadlink integration说明这是一个随各集成逐步落地的能力。七、注意事项Good to know根据官方动作参考文档使用remote.delete_command时需要记住以下几点目标限制该动作只作用于支持删除命令的 remote 实体目标中不支持的实体会被跳过或报错。删除即移除删除命令会将其从 remote 集成的命令数据库中移除。如果之后还要发送这条命令必须先重新学习。命名取决于集成具体的设备 ID 和命令名称取决于所选的 remote 集成不同集成对设备名、命令名的约定可能不同命令不被接受时应查阅所用集成的文档核对命名。重新学习要再次添加被删除的命令请使用 Learn remote command 动作。该动作支持指定命令类型ir/rf、是否存为备选代码alternative以及学习超时时间timeout等参数学习完成后即可用 Send remote command 发送。发送前确认存在与发送命令类似如果遥控器不可用删除动作同样无法正常完成删除前可通过开发者工具或实体状态确认实体在线。八、相关动作一览remote.delete_command在动作参考文档中标记的相关动作related actions为Learn remote command学习命令删除后重新录入的命令入口Send remote command发送已学习的命令可配合num_repeats重复次数、delay_secs重复间隔、hold_secs按住时长等参数使用。三者配合可以覆盖学习 → 发送 → 删除的完整遥控命令生命周期管理先用learn_command录入日常用send_command触发需要清理或重录时用delete_command删除。掌握了remote.delete_command的 UI 与 YAML 两种配置方式你就能在自动化与脚本中自如地维护遥控命令库避免误存、错存命令长期占用遥控器存储空间。【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考