Modbus 组件
Modbus 协议被许多消费和工业设备用于通信。 此组件允许 ESPHome 中的组件通过 RTU 协议与这些设备通信。您可以作为传感器、开关、选择器、数字或各种其他 ESPHome 组件访问设备中的线圈、输入、保持寄存器、读取寄存器,并将它们呈现给您喜欢的家庭自动化系统。您甚至可以从 ESPHome 将它们作为二进制或浮点输出写入。
各种子组件实现了以下一些 Modbus 功能(取决于其所需功能):
| 功能码 | 描述 |
|---|---|
| 1 | 读取线圈状态 |
| 2 | 读取离散输入状态 |
| 3 | 读取保持寄存器 |
| 4 | 读取输入寄存器 |
| 5 | 写单个线圈 |
| 6 | 写单个寄存器 |
| 15 | 写多个线圈 |
| 16 | 写多个寄存器 |
Modbus RTU 需要 UART 总线 进行通信。
# 示例配置条目uart: ...
modbus:-
id (可选, ID):手动指定用于代码生成的 ID。
-
flow_control_pin (可选, 引脚):用于切换流控制的引脚。 这对于没有自动流控制切换的 RS485 收发器很有用, 如常见的 MAX485。
-
send_wait_time (可选, 时间):当前一个命令的应答尚未开始时,发送下一个 ModBUS 命令前的等待时间(毫秒)(即何时超时并假设不会有响应)。默认为 250 ms。 将此值设置为总线上最慢设备开始响应所需的最长时间(到第一个字节的时间)。 如果设备在此时间内开始响应,下一个命令将排队并在响应完成后发送,无论响应多长时间。
-
disable_crc (可选, boolean):如果设置为
true,则忽略错误的 CRC。默认为false -
role (可选, string):此组件的角色,
client或server。默认为client。