Home Assistant ISY994 节点命令操作指南:使用 isy994.send_node_command 实现 Beep、调光与快速开关
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
导读
isy994.send_node_command是 Home Assistant 中 Universal Devices ISY/IoX 集成(domain:isy994)提供的一个核心操作(action),它允许你直接向 ISY 控制器上的任意节点发送命令,从而调用 Home Assistant 实体界面中未直接暴露的设备能力——例如让 Insteon 设备发出"哔"声(beep)、对灯光执行淡入淡出(fade)或快速开关(fast on/off)。读完本文,你将掌握该操作的完整参数语义、UI 与 YAML 两种使用方式、目标(target)选择机制,以及它与isy994.send_raw_node_command、isy994.send_program_command等兄弟操作的边界与配合方法。
操作概览与适用场景
该操作的官方定义是:"Sends a command to an ISY node using its Home Assistant entity"(使用 Home Assistant 实体向 ISY 节点发送命令),定义见 source/_actions/isy994.send_node_command.markdown。它属于isy994集成,该集成支持 ISY994 硬件家族以及当前 ISY-on-Anything(IoX)硬件(如 eisy、Polisy),并通过 Local Push 方式通信,相关平台包括 binary_sensor、button、climate、cover、fan、light、lock、number、select、sensor、switch 等(见 source/_integrations/isy994.markdown)。
典型场景:
- 让设备发出提示音:对支持 Beep 的 Insteon 设备发送
beep,可用于门磁触发、寻物提醒等自动化; - 灯光淡入淡出:发送
fade_up/fade_down/fade_stop实现类似 ISY 场景中的渐变效果; - 快速开关:发送
fast_on/fast_off(相当于物理设备上双击按键的"Fast On/Off"行为,对应的底层控制事件即DFON/DFOF); - 节点启用/禁用与查询:
enable/disable控制节点是否响应命令,query主动刷新节点状态。
该操作在 2025.3 版本的核心变更日志中也有记录(source/changelogs/core-2025.3.markdown),说明其文档与实现一直处于维护状态。
通过用户界面(UI)使用
该操作与 Home Assistant 其他操作一样支持可视化编排,无需编写 YAML(参见 source/_includes/actions/ui_header.md)。在自动化或脚本中使用步骤如下:
- 进入设置 > 自动化与场景(
{% my automations %}快捷链接); - 打开现有自动化或脚本,或选择创建自动化 > 创建新自动化;
- 若是新建自动化,需在When(触发条件)部分添加触发器;脚本(Script)不需要触发器,它们由其他流程调用时才执行;
- 在Then do(执行动作)部分选择添加动作(Add action);
- 选择要控制的设备。在目标(By target)下(详见下文"目标选择")选择 ISY 实体,也可以选择一个区域(area)、设备(device)或标签(label);
- 从该目标可用的动作中选择ISY: Send node command(ISY:发送节点命令);
- 在命令(Command)字段中选择要发送的命令;
- 点击保存。
UI 中的选项
| 选项 | 说明 |
|---|---|
| Command | 要发送给节点的命令,取值为beep、brighten、dim、disable、enable、fade_down、fade_stop、fade_up、fast_off、fast_on、query之一 |
通过 YAML 使用
在 YAML 中,该操作以isy994.send_node_command引用(参见 source/_includes/actions/yaml_header.md)。以下是一个基本示例:
action: isy994.send_node_command target: entity_id: light.front_porch data: command: fast_on上述配置向light.front_porch节点发送fast_on命令(即快速开启灯光)。
YAML 参数表
| 参数 | 必填 | 类型 | 说明 |
|---|---|---|---|
command | 是 | string | 要发送给节点的命令。取值:beep、brighten、dim、disable、enable、fade_down、fade_stop、fade_up、fast_off、fast_on、query |
参数定义见 source/_actions/isy994.send_node_command.markdown 中的 options_yaml 块:command为必填字符串,其余无需其他参数。
目标选择机制(Targets)
该操作必须指定目标(target)。目标是动作的作用对象,你可以将动作指向单个实体、设备、区域、楼层或标签,Home Assistant 会对该目标背后每一个匹配的 ISY 实体执行该操作。
| 目标类型 | 行为 |
|---|---|
| 实体(Entity) | 单个特定 ISY 实体,如light.front_porch |
| 设备(Device) | 属于某设备的所有 ISY 实体 |
| 区域(Area) | 某个房间/区域中的所有 ISY 实体 |
| 楼层(Floor) | 某个楼层中的所有 ISY 实体 |
| 标签(Label) | 共享同一标签的所有 ISY 实体 |
你还可以在同一次动作中混合多种目标类型,例如同时添加一个具体实体和一个区域作为目标,让动作一次性作用于两者。
需要特别注意的是:与isy994.send_program_command(通过地址或名称识别 ISY 程序、不支持目标)不同,send_node_command面向的是实体化后的节点,因此必须以目标方式指定操作对象,而send_program_command则直接用address/name定位程序(见 source/_actions/isy994.send_program_command.markdown)。
命令语义与底层映射
理解每个命令背后的 ISY 控制事件有助于判断何时使用该操作。在 ISY 的 REST/控制协议中,常见控制类型(control type)包括(依据 source/_integrations/isy994.markdown 中关于isy994_control事件的说明):
DON:开(On 按钮);DOF:关(Off 按钮);DFON:快速开(通常来自双击 On 按钮);DFOF:快速关(通常来自双击 Off 按钮);FDUP:淡入(按住 On 按钮时);FDDOWN:淡出(按住 Off 按钮时);FDSTOP:停止淡入淡出(松开长按按钮时);BRT:变亮(控制器发出的单次微调变亮指令);DIM:变暗(控制器发出的单次微调变暗指令)。
可以看到,isy994.send_node_command的 11 个命令取值(beep、brighten、dim、disable、enable、fade_down、fade_stop、fade_up、fast_off、fast_on、query)与这些控制类型高度对应,但它是经过 Home Assistant 抽象后的"友好"命令,由集成负责翻译并下发给 ISY 节点,因此无需你记忆原始控制码。
与 send_raw_node_command 的分工
如果你需要发送上述抽象命令之外、尚未被 Home Assistant 完整支持的 ISY REST 命令(例如许多 NodeServer 节点的控制指令,如DON/DOF),则应改用isy994.send_raw_node_command。该操作直接以字符串形式下发原始 ISY REST 命令,并额外支持value(0–255 的整数值)、parameters(查询字符串参数字典,可用于控制彩色灯泡等标准实体控件未暴露的参数)和unit_of_measurement(0–120 的 ISY 计量单位),定义见 source/_actions/isy994.send_raw_node_command.markdown。
# 对比:raw 方式直接发送底层命令 action: isy994.send_raw_node_command target: entity_id: light.front_porch data: command: DON经验法则:能在 UI 命令下拉框中找到的命令用send_node_command;需要直接发送 REST 原语或自定义参数时用send_raw_node_command;控制 ISY 程序/文件夹(运行、停止、启用、禁用、设置开机自启等)时用send_program_command。
实战示例
示例 1:门磁触发时让灯光快速闪烁
automation: - alias: "Front door opened - fast flash porch light" triggers: - trigger: state entity_id: binary_sensor.front_door to: "on" actions: - action: isy994.send_node_command target: entity_id: light.front_porch data: command: fast_on - delay: "00:00:01" - action: isy994.send_node_command target: entity_id: light.front_porch data: command: fast_off示例 2:使用标签批量控制多个 ISY 节点
script: porch_lights_off: alias: "Turn off all porch lights" sequence: - action: isy994.send_node_command target: label: porch_lights data: command: fade_down示例 3:混合目标:同时控制单个实体与整个区域
action: isy994.send_node_command target: entity_id: light.kitchen_pendant area_id: living_room data: command: query示例 4:向 Insteon 设备发送 Beep 提示音(配合 isy994_control 事件)
ISY 集成会在设备网络产生控制事件时发出isy994_control事件(前提是该设备未被忽略或禁用)。下面先触发一个双击事件,再让另一个设备发出提示音:
automation: - alias: "Beep hallway device on double tap" triggers: - trigger: event event_type: isy994_control event_data: entity_id: light.lr_track_lights_front control: "DFON" actions: - action: isy994.send_node_command target: entity_id: switch.hallway_beep data: command: beep上述isy994_control事件结构(entity_id、control、value、formatted、uom、prec)以及常见控制类型说明可参考 source/_integrations/isy994.markdown。
使用提示与注意事项
- 节点能力决定命令有效性:并非所有节点都支持全部 11 种命令。例如只有支持亮度调节的灯光节点才会对
fade_up/fade_down有意义,不支持 beep 的设备会忽略该命令。请结合 ISY Admin Console 中节点的实际能力使用。 - 目标解析:
send_node_command依赖目标(实体/设备/区域/楼层/标签),当目标背后有多个 ISY 实体时,Home Assistant 会对每个匹配实体各执行一次命令,因此批量操作时无需逐个写动作。 - 原始命令需求:如需
DON/DOF等原始 ISY REST 命令或需要附带value/parameters/unit_of_measurement,请改用 isy994.send_raw_node_command;如需控制 ISY 程序(run/stop/enable等),请改用 isy994.send_program_command;如需重命名节点或场景,可使用 isy994.rename_node。 - 自定义设备背景:ISY 允许通过
HA.*文件夹(如HA.switch、HA.light)在控制器上创建自定义设备并映射为 Home Assistant 实体(详见 source/_integrations/isy994.markdown),这些自定义设备的节点同样可以作为send_node_command的目标使用。 - 在 UI 中快速体验:你可以在自动化/脚本编辑器中通过动作界面试运行该操作("Try it"),Home Assistant 会给出即时反馈,便于验证命令是否被节点接受。
小结
isy994.send_node_command是打通 Home Assistant 自动化与 ISY 节点原生能力的关键桥梁:它以 11 个语义清晰的命令覆盖了提示音、调光、快速开关、启停与查询等高频需求,并通过实体/设备/区域/楼层/标签五类目标实现灵活批量控制。配合send_raw_node_command(底层 REST 原语)与send_program_command(程序级控制),你可以完整接管 ISY 控制器的节点级与程序级操作,无需再依赖 ISY Admin Console 手工干预。
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考