
Home Assistant remote.send_command 动作实战在自动化与脚本中发送遥控指令【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.ioremote.send_command是 Home Assistant 中 remote 域的核心动作它让自动化automation和脚本script能够通过远程实体remote entity发送一条或多条已保存的遥控指令例如播放、暂停、音量加减、切换输入源等。本文以官方文档 source/_actions/remote.send_command.markdown 为主体结合 remote 集成文档 与 remote.learn_command 文档完整讲解该动作的 UI 配置、YAML 写法、全部参数语义、目标target机制及可落地的自动化示例读完后你即可在自己的 Home Assistant 实例中组合出开门暂停电视夜间自动降音量等实用场景。动作概述remote.send_command 是什么Send remote command发送遥控指令动作通过一个 remote 实体发送一条指令或一组指令。当你的自动化或脚本需要按下遥控器上某个已保存的按键时——比如 play播放、pause暂停、volume up音量加或 input select输入源切换——就可以调用它。它的行为有两个关键前提直接决定你能不能用它可用指令取决于 remote 集成可发送的device设备 ID与command指令名由你所用的 remote 集成及其已掌握的指令集决定。如果一条指令不被接受需要查阅对应集成文档确认指令名称。指令需要先被保存对于支持学习红外IR或射频RF信号的集成通常先用 Learn remote command 让 Home Assistant 从原装遥控器上学会指令之后才能通过remote.send_command发送它。在 UI 中配置 Send remote command在自动化或脚本的图形编辑界面中按以下步骤操作进入SettingsAutomations scenes。打开一个已有的自动化或脚本或选择Create新建一个。新建自动化时在When触发条件区域添加触发器脚本不需要触发器它们由其他机制调用时才运行。在Then do执行动作区域选择Add action。选择要控制的对象。在By target下见下文 Targets 说明选择要发送指令的 remote 实体、设备、区域area、楼层floor或标签label。在针对该目标显示的动作中选择Send remote command。在Command中填入要发送的指令。可选如果你的 remote 集成支持可设置Device、Repeats、Delay seconds或Hold seconds。选择Save保存。UI 中的选项选项说明是否必填默认值Device要发送指令的设备 ID。部分 remote 集成要求填写此项否—Command要发送的单条指令或指令列表是—Repeats指令重复发送的次数否1Delay seconds重复发送之间的等待时间否0.4 秒Hold seconds释放前按住指令的时间否0 秒在 YAML 中使用 remote.send_command在 YAML 中该动作写作remote.send_command。最基本的一个示例action: remote.send_command target: entity_id: remote.living_room data: device: television command: play这段配置的含义是通过remote.living_room实体向television电视设备发送play指令。YAML 选项详解键类型说明是否必填默认值devicestring要发送指令的设备 ID。部分 remote 集成要求填写此项否—commandstring要发送的单条指令或指令列表是—num_repeatsinteger指令重复发送的次数否1delay_secsfloat重复发送之间的等待时间秒否0.4hold_secsfloat释放前按住指令的时间秒否0其中num_repeats、delay_secs、hold_secs三个参数尤其适合需要连续按键的场景比如某些电视音量步进很小需要连按多次才有效果此时把num_repeats设为 3、delay_secs设为 0.5即可模拟快速连按三下而hold_secs可用于需要长按才能触发的功能如某些遥控器的长按快捷键。Targets动作目标机制remote.send_command必须有目标target。目标就是动作的作用对象你可以把动作指向单个实体、设备、区域、楼层或标签Home Assistant 会对该目标背后每一个匹配的 remote 实体执行动作Entity实体一个具体的 remote 实体如remote.living_room。Device设备归属于某设备的所有 remote 实体。Area区域某个房间/区域内的所有 remote 实体。Floor楼层某个楼层上的所有 remote 实体。Label标签共享某个标签的所有 remote 实体。同一个动作还可以混用多种目标类型例如同时添加一个具体实体和一个区域作为目标动作会同时作用于两者。这一机制的完整说明见仓库中的 source/_includes/actions/targets.md。注意事项Good to know该动作的目标是 remote 实体。指令名和设备 ID 取决于 remote 集成如果指令不被接受请查阅你的 remote 集成文档。建议先用 Learn remote command 教受支持的遥控器学会指令再发送它。如果 remote 实体处于不可用unavailable状态Home Assistant 将无法发送指令。实战自动化示例示例一前门打开时暂停电视场景当前门打开时向电视发送pause指令暂停播放。触发器TriggerState实体EntityFront doorbinary_sensor.front_door状态变为ToOn动作ActionSend remote command目标TargetLiving room remote设备Devicetelevision指令Commandpause对应的完整 YAMLautomation: alias: Pause TV when the front door opens triggers: - trigger: state entity_id: binary_sensor.front_door to: on actions: - action: remote.send_command target: entity_id: remote.living_room data: device: television command: pause示例二夜间降低音量演示重复与延时场景每天 22:00向电视发送 3 次volume_down指令每次间隔 0.5 秒逐步调低音量。触发器TriggerTime时间At22:00动作ActionSend remote command目标TargetLiving room remote设备Devicetelevision指令Commandvolume_down重复次数Repeats3间隔秒数Delay seconds0.5对应的完整 YAMLautomation: alias: Lower TV volume at night triggers: - trigger: time at: 22:00:00 actions: - action: remote.send_command target: entity_id: remote.living_room data: device: television command: volume_down num_repeats: 3 delay_secs: 0.5与相关 remote 动作协同使用remote.send_command属于 remote 域动作体系的一部分。根据 remote 集成文档该集成负责管理 remote 实体、维护每个遥控器的状态On/Off以及Unavailable/Unknown并提供以下动作Turn on via remoteremote.turn_on发送开机指令部分集成还支持通过activity参数启动已保存的活动场景详见 source/_actions/remote.turn_on.markdown。Turn off via remoteremote.turn_off与Toggle via remoteremote.toggle关机与开关切换。Learn remote commandremote.learn_command教遥控器学会指令支持command_typeir/rf默认ir、alternative存为替代码常用于离散码、timeout等待学习的秒数等参数详见 source/_actions/remote.learn_command.markdown。Delete remote commandremote.delete_command删除已学指令。一个典型的完整工作流是先用remote.learn_command把原装遥控器的按键如 mute学会再在自动化中用remote.send_command发送它。此外remote 集成文档 还给出了一个与remote.send_command配合的示例——遥控器开启 5 秒后自动发送 play 指令可用delay动作先等待再发送进一步说明了该动作在真实自动化链路中的组合方式。延伸阅读动作完整文档source/_actions/remote.send_command.markdownremote 集成总览与状态说明source/_integrations/remote.markdown学习指令动作source/_actions/remote.learn_command.markdown开机/活动启动动作source/_actions/remote.turn_on.markdown目标target机制说明source/_includes/actions/targets.md【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考