Home Assistant Insteon 集成指南:使用 X10 All Units Off 动作批量关闭 X10 设备
2026/9/16 18:41:43 网站建设 项目流程

Home Assistant Insteon 集成指南:使用 X10 All Units Off 动作批量关闭 X10 设备

【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io

本文基于 Home Assistant 官方文档仓库中 insteon.x10_all_units_off 动作文档 编写,系统讲解如何在 Home Assistant 中通过insteon.x10_all_units_off动作向某个 X10 房代码(house code)下的全部 X10 设备发送All units off(全部关闭)命令。读完本文,你将掌握该动作的 UI 配置步骤与 YAML 调用方式、housecode参数的取值与含义,以及如何将其融入“离家”或“睡前”自动化场景。

动作概述:一条命令关闭整个房代码下的所有 X10 设备

X10 all units off动作(action)会向使用指定房代码的所有 X10 设备发送 X10All units off命令。它的价值在于:当你的 Insteon 网络中混有 X10 设备时,无需逐个设备操作,只需指定一个房代码,即可将挂在该房代码下的全部 X10 设备一次性关断。

典型应用场景包括:

  • 离家自动化:离开家时关闭该房代码下的所有 X10 负载,防止遗忘;
  • 睡前自动化:睡前一键关闭所有 X10 设备,而无需逐一列出设备实体;
  • 应急总关:在脚本或手动触发中快速批量断电。

该动作在 Home Assistant 中的完整 action 名称为insteon.x10_all_units_off,属于insteon域,其 frontmatter 中的描述为 “Sends an X10 All units off command for a house code.”(动作文档)。

前置条件:Insteon 集成与 X10 设备

insteon.*系列动作由 Insteon 集成 提供。该集成用于将 Insteon 网络接入 Home Assistant,支持本地控制,并在以下硬件上经过测试(集成文档):

  • USB / 串口 PowerLinc Modem(PLM):如 2413U、2448A7、2413S、2412S 等型号,需接入 Home Assistant 宿主机并记录串口路径(Linux 下如/dev/ttyUSB0);
  • Hub 设备:2242(Hub v1)与 2245(Hub v2),需在路由器上为其保留固定 IP(v1 使用端口 9761,v2 使用端口 25105)。

在使用 X10 相关动作前,需要注意:

  1. Insteon 设备必须先与调制解调器完成链接(linking),之后才会在 Home Assistant 中出现(集成文档);
  2. 首次接入时集成会执行自动发现(autodiscovery),每台设备最多可能需要约 60 秒;若设备未被识别,可手动触发设备(如按下按钮)强制其向调制解调器发送消息(集成文档);
  3. X10 设备同样需要位于 Insteon 网络中、并且能被集成识别,才能响应由insteon.x10_all_units_off发出的 X10 命令。

通过 UI 使用该动作(Automations & scenes)

在自动化或脚本中发送 X10 All units off 命令,按照以下步骤操作(动作文档):

  1. 进入设置(Settings)> 自动化与场景(Automations & scenes)
  2. 打开现有的自动化或脚本,或选择创建自动化(Create automation)> 新建自动化(Create new automation)
  3. 如果是新建自动化,在当(When)部分添加触发器;脚本不需要触发器——脚本在别处被调用时才运行;
  4. 然后执行(Then do)部分选择添加动作(Add action)
  5. 在搜索框中搜索并选择Insteon: X10 all units off
  6. 选择房代码(Housecode)
  7. 点击保存(Save)

UI 选项

在 UI 中,该动作只有一个选项(动作文档):

选项说明是否必填
HousecodeX10 房代码,取值范围为ap

关于 Targets 的说明

该动作不支持 targets。在 UI 中不会提示你选择区域(area)、设备(device)、实体(entity)或标签(label)(动作文档)。这符合该动作的语义——它的作用对象不是某个具体实体,而是某个房代码下的整组 X10 设备

通过 YAML 使用该动作

如果你直接编写 YAML,或者想确切了解 Home Assistant 在底层做了什么,可以参考下面的技术参考。在 YAML 中,该动作的引用名称为insteon.x10_all_units_off,基础示例如下(动作文档):

action: insteon.x10_all_units_off data: housecode: a

以上 YAML 会向房代码a下的所有 X10 设备发送All units off命令。

YAML 选项

字段说明必填类型
housecodeX10 房代码,取值范围apstring

housecode是唯一参数,且必须提供。房代码是 X10 协议中的地址体系概念:X10 协议通过“房代码(A–P)+ 单元代码(1–16)”组合为设备编址,其中房代码用于划分不同的设备分组,而All units off属于面向整个房代码的广播式命令——只要房代码匹配,该房代码下所有 X10 设备都会收到关闭指令,这也是该动作只需要housecode一个参数的原因。

与关联动作配合:构建完整的 X10 批量控制方案

该动作在文档中声明了两个关联动作(动作文档),三者配合可以覆盖 X10 批量控制的主要场景:

动作作用
insteon.x10_all_lights_on向指定房代码下的所有 X10 灯光发送All lights on命令,适合“到家”自动化
insteon.x10_all_lights_off向指定房代码下的所有 X10 灯光发送All lights off命令
insteon.x10_all_units_off(本文主题)向指定房代码下的所有 X10 设备(不仅限于灯光)发送All units off命令

三者的 UI 操作流程与 YAML 结构完全一致,参数同为必填的housecodeap)。区别在于作用范围:all_lights_*仅作用于灯光设备,而all_units_off作用于房代码下的全部 X10 单元。

例如,“离家”自动化可以同时关闭灯与所有其他 X10 负载:

automation: - alias: "Leaving home - X10 all off" triggers: - trigger: state entity_id: binary_sensor.front_door to: "off" actions: - action: insteon.x10_all_lights_off data: housecode: a - action: insteon.x10_all_units_off data: housecode: a

注意事项与常见问题

  • 房代码必须合法housecode只能取ap(不区分大小写含义上对应 X10 的 A–P 房代码),超出范围的取值无法正确对应 X10 地址体系;
  • 不针对具体实体:该动作没有 targets 概念,不要尝试为其指定entity_idtarget字段;
  • 仅影响匹配房代码的设备:其他房代码下的 X10 设备不受影响;Insteon(非 X10)设备也不属于该命令的作用对象;
  • 联动 Insteon 场景:如果需要控制的是 Insteon 场景(scene),应改用 Scene on / Scene off 动作,它们接收 Insteon 组号或场景号,与 X10 房代码动作是两套不同的控制路径。

通过本文介绍的动作,你可以在不维护庞大实体列表的情况下,把 X10 设备群作为“一组”来统一管理,让离家、睡前的批量断电流程变得简单可靠。

【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询