Home Assistant LCN 继电器批量控制:lcn.relays动作完全指南
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
lcn.relays是 Home Assistant 中 LCN 集成提供的一个动作(action),用于在一次调用中批量设置 LCN 模块上八个继电器的状态。通过一个紧凑的八字符状态字符串,你可以同时完成多个继电器的开启、关闭、切换与保持,非常适合在自动化与脚本中实现灯光组、百叶窗、电机等外设的联动控制。读完本文,你将掌握lcn.relays的状态字符串编码规则、UI 与 YAML 两种调用方式、参数细节,以及它在 LCN 模块硬件体系中的位置。
动作概述:一条命令控制八个继电器
根据 lcn.relays 动作文档,lcn.relays会在一次调用中设置 LCN 模块上八个继电器的状态。你只需提供一个由八个字符组成的字符串,每个字符对应控制一个继电器,LCN 模块即会按序应用这些状态变化。
该动作属于 LCN 集成在 Home Assistant 中暴露的众多补充能力之一。LCN(Local Control Network)是一个本地控制网络总线系统,其 LCN 集成文档 明确指出:已实现的平台(platform)并未覆盖 LCN 系统的全部功能,因此该集成额外提供了丰富的事件(events)、设备触发器(device triggers)与动作(actions),非常适合在自动化脚本或template平台中使用。lcn.relays正是这些补充动作中的一员,它让你绕开逐实体控制的繁琐,以硬件原生方式直接操纵模块继电器。
状态字符串编码规则
lcn.relays的核心输入是一个恰好八位的状态字符串,字符串中的每一位代表一个继电器的状态变化:
| 字符 | 含义 |
|---|---|
1 | 开启(on) |
0 | 关闭(off) |
T | 切换(toggle) |
- | 不改变(no change) |
八个字符从左到右依次对应继电器 1 到继电器 8。文档给出的示例:
例如,
T---001-会切换继电器 1,保持继电器 2~4 不变,关闭继电器 5 和 6,开启继电器 7,并保持继电器 8 不变。
拆解T---001-的每一位:
| 位序 | 字符 | 对应继电器 | 效果 |
|---|---|---|---|
| 1 | T | relay 1 | 切换(toggle) |
| 2 | - | relay 2 | 不改变 |
| 3 | - | relay 3 | 不改变 |
| 4 | - | relay 4 | 不改变 |
| 5 | 0 | relay 5 | 关闭 |
| 6 | 0 | relay 6 | 关闭 |
| 7 | 1 | relay 7 | 开启 |
| 8 | - | relay 8 | 不改变 |
这种编码方式的优势在于幂等性与部分更新:需要改动的继电器显式指定目标状态,不需要改动的用-跳过,从而在一次总线指令中完成精细控制,减少 LCN 总线通信量。
通过用户界面(UI)使用该动作
如果你偏好可视化地构建自动化和脚本,Home Assistant 会逐步引导你完成该动作的配置,无需编写 YAML。完整步骤如下:
- 进入设置(Settings) > 自动化与场景(Automations & scenes)。
- 打开现有的自动化或脚本,或选择创建自动化(Create automation) > 创建新的自动化(Create new automation)。
- 若在创建新自动化,请在When(何时)区域添加一个触发器;脚本(scripts)不需要触发器,它们由其他内容调用时运行。
- 在Then do(然后执行)区域,选择添加动作(Add action)。
- 在搜索框中搜索并选择LCN: Relays。
- 在Device(设备)字段中选择 LCN 模块或组,并输入继电器的State(状态)字符串。
- 选择保存(Save)。
UI 选项说明
| 选项 | 描述 | 是否必填 |
|---|---|---|
| Device | 要发送命令的 LCN 模块或组 | 是 |
| State | 由八个字符组成的继电器状态字符串,使用1(开启)、0(关闭)、T(切换)、-(不改变) | 是 |
需要注意:该动作不支持 targets(目标实体),而是通过Device字段直接选择 LCN 模块或组。这与针对实体(entity)的动作不同——LCN 模块与组在 Home Assistant 中是以**设备(device)**形式存在的(见 LCN 集成文档 的 "Setting up devices and entities" 章节)。
通过 YAML 使用该动作
如果你直接编写 YAML,或想确切了解 Home Assistant 在底层做了什么,可以按以下技术参考使用。YAML 中动作名称为lcn.relays,一个基本示例如下:
action: lcn.relays data: device_id: 91aa039a2fb6e0b9f9ec7eb219a6b7d2 state: "T---001-"该示例将状态字符串描述的状态变化应用于选定的模块。
YAML 选项说明
| 字段 | 描述 | 是否必填 | 类型 |
|---|---|---|---|
device_id | LCN 模块或组的设备 ID | 是 | string |
state | 由八个字符组成的继电器状态字符串,使用1(开启)、0(关闭)、T(切换)、-(不改变) | 是 | string |
注意state值建议用引号包裹(如"T---001-"),以避免 YAML 解析时将其中的字符序列误读为其他类型。
获取 device_id 的实用技巧
LCN 集成文档 的 "Device triggers" 章节提供了一个获取device_id的简便方法:在自动化和脚本中,可以使用device_id()模板函数,根据前端显示的模块名称(或在 LCN-PRO 软件中配置的名称)动态解析出device_id:
action: lcn.relays data: device_id: "{{ device_id('模块名称') }}" state: "T---001-"这种方式让配置对设备 ID 的变化不再敏感,提升了自动化脚本的可维护性。device_id()函数的具体用法可参考 模板函数文档(若该文件存在,可直接查看其完整参数说明)。
动手试一试
想立即验证效果?打开设置(Settings) > 工具(Tools) > 动作(Actions)(开发者工具中的服务调用界面),搜索该动作,填写字段并选择执行动作(Perform action)。无需编写一行 YAML,就能在真实实体上观察执行结果。
结合 LCN 硬件体系理解该动作
LCN 模块的继电器在硬件层面承担着多种角色,理解这一点有助于你正确使用lcn.relays:
开关与灯光控制:LCN 的 light 平台允许控制(可调光的)输出端口与继电器;switch 平台同样支持输出端口、继电器、调节器锁状态与按键锁状态(见 LCN 集成文档 的 Light 与 Switch 平台章节)。
电机/百叶窗控制:LCN 的 cover 平台允许控制已被配置为电机控制器的继电器与输出端口。电机与继电器之间存在固定映射关系:
电机 开/关继电器 上行/下行继电器 motor1relay1relay2motor2relay3relay4motor3relay5relay6motor4relay7relay8从上表可以看出,模块的八个继电器恰好对应四个电机控制器的继电器组。因此,
lcn.relays的一次调用既可以批量控制灯光开关,也可以(在硬件配置允许的前提下)协调电机相关继电器的联动状态。配置在 LCN-PRO 中完成:需要强调的是,继电器作为电机控制器等硬件行为必须在 LCN-PRO 编程软件中完成配置。LCN 集成文档特别警告:如果使用模块的输出端口驱动电机,必须确保已在 LCN-PRO 中将输出端口配置为电机控制器,否则输出端口之间没有互锁,存在烧毁电机的风险。
lcn.relays只是向模块发送状态指令,模块如何解释这些指令取决于其硬件编程配置。
此外,与继电器关系最紧密的相关动作还包括:lcn.led(设置 LED 状态)、lcn.lock_keys(锁定按键)、lcn.pck(发送 PCK 命令),它们与lcn.relays一样都是面向 LCN 模块/组的补充动作,可以在自动化中组合使用,实现按键锁定、LED 状态指示与继电器批量控制的协同场景。
使用前提与限制
- 该动作面向 LCN 模块/组设备,通过
device_id寻址,而非普通实体。若未配置任何 LCN 模块或组,该动作将无对象可寻址。 - 状态字符串必须为八个字符,且只能使用
1、0、T、-四种字符,否则指令不符合预期。 - 一次调用覆盖全部八个继电器:即使你只想改动其中一个,也需要提供完整的八字符字符串,用
-保持其他继电器不变。 - LCN 模块的响应行为依赖硬件配置(如是否启用确认机制等),相关参数在 LCN 集成配置 的配置流程中设置。
故障排查与更多资源
- 若动作执行后继电器无反应,请先在设置 > 工具 > 动作中手动执行一次,确认 LCN 模块/组是否在线、
device_id是否正确。 - 若问题依旧,检查 LCN 模块在 LCN-PRO 中的继电器配置与模块通讯状态;LCN 集成的配置面板支持扫描模块(Scan Modules),可轮询每个模块的名称与序列号,帮助确认设备是否正常在线(详见 LCN 集成文档 的 "Scanning modules" 章节)。
- 如需查看 LCN 集成提供的全部动作,可参阅 LCN 集成的动作列表,其中每个动作都链接到独立页面,包含示例、参数与 UI 分步指引。
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考