Home Assistant Insteon Add All-Link 动作实战:手动建立调制解调器与设备的 All-Link 链接
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
本文基于 insteon.add_all_link 动作文档 并结合 Insteon 集成文档,系统讲解如何让 Insteon 调制解调器(IM,即 PLM 或 Hub)进入 All-Linking 模式,从而手动将设备以控制器或响应者身份接入 All-Link 网络。读完本文,你将掌握该动作在 UI 与 YAML 两种形态下的完整用法、Group 与 Mode 两个核心参数的语义,以及它与insteon.delete_all_link、insteon.add_default_links等关联动作的协作方式,可用于扩展、修复或清理 Insteon 设备间的链接关系。
一、All-Link 与 All-Linking 模式是什么
在 Insteon 网络中,任意两台设备想要互相通信,都必须先在各自的All-Link Database(ALDB)中建立一条指向对方的链接记录。ALDB 保存的是该设备与网络内其他设备之间的链接清单,它是 Insteon 组网机制的核心数据结构,相关管理功能可在 Insteon 集成文档的“Device All-Link Database”一节中找到详细说明(见 source/_integrations/insteon.markdown)。
Add All-Link动作做的事情就是:让 Insteon Modem(IM)进入All-Linking 模式,以便你把某个设备链接到它身上。在这一过程中,调制解调器既可以作为controller(控制器),也可以作为responder(响应者)被链接。
这一动作典型的应用场景是:手动在调制解调器与设备之间构建一条 All-Link 链接,例如用来扩展或修复让 Insteon 设备相互通信的既有链接。当设备响应异常、链接记录缺失或你想重新整理网络拓扑时,手动走一遍 All-Linking 流程往往是恢复通信最直接的手段。
二、动作触发前的准备
在调用本动作之前,需要先确认 Insteon 集成已正确接入(Hub 或 PLM 已配置),具体前置条件如下(出自 source/_integrations/insteon.markdown):
- PLM 调制解调器(如 2413U、2412U,或串口版 2413S/2412S):必须已插入 Home Assistant 宿主机,并能确认串口路径(Linux 下通常是
/dev/ttyUSB0,可在Settings > System > Hardware的System hardware中查看)。 - Hub 版本 1(2242,2014 年前)或 Hub 版本 2(2245):Hub 需在网络上可达,并建议在路由器上为其保留固定 IP。Hub v1 使用端口 9761,Hub v2 使用端口 25105。
- Hub v2 凭证:用户名和密码印在 Hub 底部标签上。
- Insteon 设备必须已链接到调制解调器,才会出现在 Home Assistant 中——既可以在之前的控制器配置中完成,也可以在接入后在 Insteon 配置面板中通过Add device功能补充链接。
需要强调的是,本动作属于“手动补链”工具:它把调制解调器置入 All-Linking 模式后,仍需你在物理设备上完成剩下的链接确认动作(详见下一节),链接才会真正建立。
三、在 UI 中执行 Add All-Link 动作
按照动作文档(source/_actions/insteon.add_all_link.markdown),你可以从自动化或脚本中启动 All-Linking 模式:
- 进入Settings>Automations & scenes(自动化与场景)。
- 打开一个已有的自动化或脚本,或选择Create automation>Create new automation新建。
- 如果是新建自动化,在When(何时)区域添加一个触发器;脚本则不需要触发器——它们在被其他对象调用时才运行。
- 在Then do(然后执行)区域,选择Add action(添加动作)。
- 在搜索框中搜索并选择Insteon: Add All-Link。
- 填写Group(组)编号,并选择Mode(模式)。
- 点击Save(保存)。
动作启动之后,需要到设备侧完成链接收尾(这是 All-Linking 协议的手动握手环节,动作文档原文明确说明):
- 如果调制解调器作为controller(控制器):先把调制解调器置于链接模式,然后按下设备上的SET按钮;
- 如果调制解调器作为responder(响应者):先按下设备上的SET按钮,然后把调制解调器置于链接模式。
也就是说,物理设备上 SET 按钮的按压时机,取决于你选择的 Mode。
UI 中的选项
| 选项 | 说明 | 是否必填 |
|---|---|---|
| Group | All-Link 组编号 | 必填 |
| Mode | Insteon 调制解调器的链接模式,取值为controller或responder | 必填 |
动作不支持 targets:在 UI 中不会提示你选择区域、设备、实体或标签。此外,只有具备管理员权限的用户才能运行该动作。
四、在 YAML 中使用 Add All-Link 动作
在 YAML 配置中,该动作以insteon.add_all_link引用。文档给出的基础示例如下(source/_actions/insteon.add_all_link.markdown):
action: insteon.add_all_link data: group: 1 mode: controller这段配置的作用是:让调制解调器以controller身份进入组 1 的 All-Linking 模式。执行后仍需按上一节的流程在设备上按下 SET 按钮完成链接。
YAML 中的选项
| 参数 | 说明 | 必填 | 类型 |
|---|---|---|---|
group | All-Link 组编号 | 是 | integer |
mode | Insteon 调制解调器的链接模式,设为controller或responder | 是 | string |
从配置结构可以看出,group是整数类型,对应 Insteon 网络中的组/场景编号;mode是字符串类型,只能取controller与responder两个值,二者决定了调制解调器在链接关系中的角色,也决定了设备端 SET 按钮的操作顺序。
在自动化中的完整示例
将上述 YAML 嵌入一个真实的自动化场景,例如在按下某个实体按钮后,让调制解调器以控制器身份进入组 1 的链接模式:
automation: - alias: "Put Insteon modem into All-Linking mode for group 1" triggers: - trigger: state entity_id: input_boolean.start_all_linking to: "on" actions: - action: insteon.add_all_link data: group: 1 mode: controller - action: input_boolean.turn_off target: entity_id: input_boolean.start_all_linking执行后,到目标设备上按下 SET 按钮,即可完成本次手动链接。
五、与其他 Insteon 动作的配合
insteon.add_all_link并不是孤立存在的,它和另外两个 All-Link 相关动作构成一组完整的手动链路管理工具:
insteon.delete_all_link:告诉 Insteon Modem 从自身的 ALDB 和设备上移除一条 All-Link 记录,适合拆除不再需要的链接或清理废弃设备。它只接受
group一个必填参数,动作启动后同样需要按下对应设备上的 SET 按钮来完成。示例:action: insteon.delete_all_link data: group: 1insteon.add_default_links:在设备与 Insteon Modem 之间补回一组默认链接。当设备响应异常、需要恢复与调制解调器之间的标准通信链路时使用,它接受
entity_id一个必填参数。示例:action: insteon.add_default_links data: entity_id: light.1a2b3c
这三个动作的定位差异很清晰:add_all_link负责手动按需建链,add_default_links负责批量恢复标准链路,delete_all_link负责拆链。三者均不支持 targets,且都仅限管理员执行。
此外,若你需要在自动化中直接控制已经建好的 Insteon 场景,可以使用insteon.scene_on与insteon.scene_off两个动作(Insteon 集成文档“Controlling Insteon scenes”一节对此有说明,见 source/_integrations/insteon.markdown),它们接收 Insteon 组或场景编号。
六、注意事项与故障排除
- 操作顺序务必与 Mode 对应:Mode 选
controller时先启动调制解调器再按设备 SET 键;选responder时先按设备 SET 键再启动调制解调器。顺序颠倒会导致链接建立失败。 - 管理员权限:与
insteon.delete_all_link、insteon.add_default_links一致,本动作仅对管理员开放,普通用户调用会被拒绝。 - 不支持 targets:不要在自动化中为该动作配置
target,UI 与 YAML 均不接受区域、设备、实体或标签选择。 - ALDB 编辑有风险:Insteon 集成文档明确警告,编辑设备 ALDB 可能使设备失去响应;如果发生这种情况,只需按 “Add device” 的指引重新将设备链接到调制解调器即可(见 source/_integrations/insteon.markdown)。
- 集成移除不会清空网络链接:移除 Insteon 集成不会改变 Insteon 网络本身,设备仍保持彼此链接;若要退役调制解调器,应先使用 Insteon 面板的Delete device逐个清理设备(见 source/_integrations/insteon.markdown)。
七、小结
insteon.add_all_link是 Insteon 网络手动组网的核心动作之一,它把调制解调器送入 All-Linking 模式,配合设备上的 SET 按钮完成控制器/响应者角色下的物理握手,从而建立或修复调制解调器与设备之间的链接。通过本文,你已掌握其在 UI 与 YAML 中的完整配置方式、group与mode两个关键参数的语义,以及与insteon.delete_all_link、insteon.add_default_links的动作分工;结合 Insteon 集成文档 中关于 ALDB、自动发现与配置面板的说明,即可独立完成 Insteon 网络的链路搭建与排障。
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考