Home Assistant Insteon 集成 X10 All lights on 动作使用指南
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
导读
本文讲解 Home Assistant Insteon 集成中insteon.x10_all_lights_on动作的完整用法:它向同一 X10 家码(house code)下的所有 X10 灯具广播All lights on命令,常用于"到家"自动化等批量开关灯场景。读完本文,你将掌握该动作的 UI 配置步骤、YAML 写法、housecode参数约束,以及它与x10_all_lights_off、x10_all_units_off两个兄弟动作的搭配策略。
动作概述:一次广播,点亮整个家码
在 Insteon 集成 中,X10 设备与 Insteon 设备共享同一套电力线网络。insteon.x10_all_lights_on动作会向使用指定 X10 house code 的全部 X10 灯发送All lights on命令,而不是逐个寻址某个单元码(unit code)。
action: insteon.x10_all_lights_on data: housecode: a这一行命令的效果等价于:对家码a下所有 X10 灯具分别发送开灯命令,但只需一次动作调用即可完成。典型的落地场景是到家自动化——当家庭成员回家时,触发该动作把客厅、走廊、厨房的 X10 灯一次性点亮。
前置条件:X10 设备已在 Insteon 网络上
在使用该动作之前,需要满足 Insteon 集成的基础环境:
- 调制解调器(Modem):USB/串口 PowerLinc Modem(如 2413U、2448A7、2413S、2412S)已接入 Home Assistant 主机,或 Insteon Hub v1(2242,端口 9761)/ Hub v2(2245,端口 25105)在网络中可达。
- 设备已链接(linked):X10 灯具必须已与调制解调器建立链接,Home Assistant 才能通过电力线广播命令。设备链接可在 Insteon 配置面板 的Add device功能中完成。
- 家码一致性:动作的
housecode参数必须与你的 X10 设备实际配置的家码一致,命令才会被对应设备接收。
在 UI 中调用该动作
如果你习惯用可视化方式编排自动化,Home Assistant 会逐步引导你完成配置,无需编写 YAML:
- 进入设置>自动化与场景。
- 打开一个现有的自动化或脚本;或选择创建自动化>创建新自动化。
- 若是新建自动化,在When(何时)部分添加一个触发器;脚本不需要触发器,它们在被其他自动化调用时运行。
- 在Then do(然后执行)部分,选择添加动作(Add action)。
- 在搜索框中搜索并选择Insteon: X10 all lights on。
- 选择Housecode(家码)。
- 点击保存。
UI 中的选项
| 选项 | 说明 | 是否必填 |
|---|---|---|
| Housecode | X10 家码,取值范围a到p | 是 |
需要注意的是,该动作不支持 targets(目标)。在 UI 中你不会被要求选择区域、设备、实体或标签——因为命令是按家码广播的,而不是定向到某个实体。
在 YAML 中调用该动作
在 YAML 中,动作名为insteon.x10_all_lights_on,需要放在action字段中,参数放在data下。以最基础的自动化为例:
automation: - alias: "到家点亮所有 X10 灯" triggers: - trigger: state entity_id: person.zhang_san to: "home" actions: - action: insteon.x10_all_lights_on data: housecode: a该示例在家庭成员回到家时,向家码a下的所有 X10 灯发送All lights on命令。脚本中同样可用:
script: arrive_home_lights: alias: "到家开灯" sequence: - action: insteon.x10_all_lights_on data: housecode: aYAML 参数参考
| 参数 | 类型 | 必填 | 取值范围 | 说明 |
|---|---|---|---|---|
housecode | string | 是 | a到p | X10 家码。家码用于区分同一电力线网络中的不同设备分组,必须与你 X10 设备上的拨码开关设置一致 |
housecode是唯一参数且为必填项。X10 协议中家码范围是a–p,共 16 个;若填写范围外的值,命令将无法被任何 X10 设备正确识别。
三个 X10 广播动作的搭配策略
该动作与另外两个 X10 广播动作同属 Insteon 集成(详见 release 111 更新日志),它们构成一套完整的"全屋 X10 控制"组合:
| 动作 | 作用范围 | 典型场景 |
|---|---|---|
insteon.x10_all_lights_on | 某家码下的所有 X10 灯 | 到家时统一开灯 |
insteon.x10_all_lights_off | 某家码下的所有 X10 灯 | 离家或就寝时统一关灯 |
insteon.x10_all_units_off | 某家码下的所有 X10 设备(不限于灯) | 离家时关闭全部设备,包括插座等 |
三者的 YAML 写法与参数完全一致,区别仅在于动作名和命令语义:
# 离家关灯(仅灯具) - action: insteon.x10_all_lights_off data: housecode: a # 离家全关(灯具 + 其他 X10 设备) - action: insteon.x10_all_units_off data: housecode: a一个完整的"离家"自动化可以这样组合:
automation: - alias: "离家全关" triggers: - trigger: state entity_id: person.zhang_san to: "not_home" actions: - action: insteon.x10_all_units_off data: housecode: a深入理解:广播命令的底层机制
从实现机制看,insteon.x10_all_lights_on属于 Insteon 集成的调制解调器级命令:它不经过 Home Assistant 的实体注册表,也不面向具体实体,而是由集成将 X10 协议帧经由调制解调器(PLM 或 Hub)注入电力线网络。X10 设备按家码+单元码寻址,All lights on这类全局命令只匹配家码,因此一条命令即可覆盖该家码下的所有灯具。这正是该动作"不支持 targets"的根本原因——广播语义天然没有实体目标。
从源码结构看,Insteon 集成把这类"全广播"动作与常规实体动作(如insteon.add_all_link、insteon.print_all_link_database等,见 source/_actions 目录)分开组织,每个动作对应一个独立文档文件。X10 广播动作家族(x10_all_units_off、x10_all_lights_on、x10_all_lights_off)在三个文档之间通过 front matter 的related_actions字段互相引用,方便用户在文档间跳转对比。
常见问题与排障
动作无效,X10 灯没有反应?按以下顺序排查:
- 确认
housecode与你 X10 设备的拨码设置完全一致(a–p,不区分大小写)。 - 确认 Insteon 集成已正常连接调制解调器/Hub,且 X10 设备已与调制解调器链接。
- 在设置>工具>操作(Actions)中搜索该动作,直接填写字段并点击执行操作(Perform action),观察实际效果——这是不写 YAML 快速验证的最直接方式。
X10 灯没被 Home Assistant 识别为实体?这不影响本动作的使用。X10 设备的命令是基于家码广播的,即使设备未以实体形式出现在 Home Assistant 中,只要硬件层面已正确链接,广播命令依然有效。若设备确实未在自动发现(autodiscovery)中被识别,可参考 Insteon 集成文档 中的设备覆盖(device override)与重新链接指引。
仍然卡住?描述你调用的动作、housecode取值和预期结果,在 Home Assistant 社区(Discord 频道、官方论坛或 /r/homeassistant)寻求帮助时附上以上信息,通常能快速定位问题。
小结
insteon.x10_all_lights_on是 Insteon 集成中用于按家码批量开灯的广播动作:UI 侧只需选择 Housecode,YAML 侧只需一个必填的housecode参数(a–p)。配合insteon.x10_all_lights_off与insteon.x10_all_units_off,可以在一两个动作内完成全屋 X10 设备的统一开/关,是"到家/离家"自动化的高效积木。
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考