旋转编码器传感器
rotary_encoder 传感器平台允许您在 ESPHome 中使用任意连续旋转编码器。这些设备通常有两个引脚,用于对旋转进行编码。每当旋转编码器的旋钮转动一次,两个引脚的信号会依次变为 HIGH 和 LOW。参见这篇 Arduino 文章以更好地了解这些传感器。

+ 连接到 3.3V,GND 连接到 GND,CLK 和 DT 分别对应 A 和 B。
要在 ESPHome 中使用旋转编码器,首先识别用于编码步进值的两个引脚。它们通常称为 CLK 和 DT,如上图所示。请注意,如果该传感器输出的数值方向不对,只需交换这两个引脚即可。
# 示例配置条目sensor: - platform: rotary_encoder name: "Rotary Encoder" pin_a: D1 pin_b: D2如需修改引脚的其他参数,例如有效电平或上拉,可以添加额外选项。
# 高级引脚配置示例pin_a: number: D5 inverted: true mode: input: true pullup: true-
pin_a (必选, Pin Schema): 用于确定步进值的第一个引脚。不能来自外部 I/O 扩展器的引脚。
-
pin_b (必选, Pin Schema): 用于确定步进值的第二个引脚。不能来自外部 I/O 扩展器的引脚。
-
pin_reset (可选, Pin Schema): 一个用于重置步进值的可选引脚。这对于具有第三个引脚的旋转编码器很有用。默认为无重置引脚。
-
resolution (可选, string): 传感器的分辨率,控制每个步进产生多少个脉冲:
1-(默认)24
-
min_value (可选, int): 旋转编码器可到达的最小值,继续转动旋钮不会减少该数值。默认为无最小值。
-
max_value (可选, int): 旋转编码器可到达的最大值,继续转动旋钮不会增加该数值。默认为无最大值。
-
publish_initial_value (可选, boolean): 控制 ESPHome 启动时是否发布数值。默认情况下,只有当数值发生变化时才发布,导致初次显示为”unknown”(未知)。如果将此选项设为 true,则在启动后发布一次,并在数值变化时发布。默认为
false。 -
restore_mode (可选): 控制旋转编码器在启动时如何尝试恢复状态。
RESTORE_DEFAULT_ZERO-(默认)尝试恢复状态;如果无法恢复,则默认为 0。ALWAYS_ZERO- 总是将计数器初始化为 0。
-
on_clockwise (可选, Automation): 旋钮顺时针转动时要执行的动作。参见
on_clockwise与on_anticlockwise触发器。 -
on_anticlockwise (可选, Automation): 旋钮逆时针转动时要执行的动作。参见
on_clockwise与on_anticlockwise触发器。 -
Sensor 的所有其他选项。
sensor.rotary_encoder.set_value 动作
Section titled “sensor.rotary_encoder.set_value 动作”旋转编码器的内部状态可以通过此动作手动更改为任意值。执行此动作后,继续旋转编码器会相对新设置的内部值进行增减。
# 示例配置条目sensor: - platform: rotary_encoder id: my_rotary_encoder # ...
# 在某个触发器中on_...: - sensor.rotary_encoder.set_value: id: my_rotary_encoder value: 10
# 模板化 - sensor.rotary_encoder.set_value: id: my_rotary_encoder value: !lambda 'return -1;'配置选项:
on_clockwise 与 on_anticlockwise 触发器
Section titled “on_clockwise 与 on_anticlockwise 触发器”通过这些配置选项,您可以根据编码器的转动方向(而不是其当前数值)来运行自动化。 这些触发器会忽略最小和最大值,会在每一步骤上触发。
on_clockwise: - logger.log: "Turned Clockwise"on_anticlockwise: - logger.log: "Turned Anticlockwise"