Atlas Scientific 蠕动泵
ezo_pmp 组件允许您在 ESPHome 中使用 Atlas Scientific 蠕动泵。
支持 EZO-PMP(数据手册)和 EZO-PMP-L(数据手册)。
此传感器需要在配置中设置 I²C 总线才能工作。
NOTE
此组件不会自动在 Home Assistant 前端直接可控,因为 Home Assistant 不支持泵。为了从前端控制泵,您需要使用模板来提供所需操作的访问。请参阅 Home Assistant 配置。
组件/集线器
Section titled “组件/集线器”ezo_pmp: id: ezo_pmp address: 103 # EZO-PMP 的默认地址 update_interval: 60s- id (必需, ID): 指定泵的 ID 以便控制它。
- address (可选, int): 指定传感器的 I²C 地址。默认为 103。
- update_interval (可选, Time): 检查传感器的时间间隔。默认为
60s。
由于 EZO-PMP 提供大量传感器,且每个传感器需要单独轮询,代码已优化为不更新配置中未定义的传感器。如果您需要从泵获取非常快速的更新(3 秒以下),请只启用您实际需要的传感器。
current_volume_dosed
Section titled “current_volume_dosed”此传感器指示当前正在运行或上次运行的投加命令中已投加的体积(毫升)。
sensor: - platform: ezo_pmp current_volume_dosed: id: current_volume_dosed name: 当前投加体积total_volume_dosed
Section titled “total_volume_dosed”此传感器指示自上次泵启动以来已投加的总体积(毫升)。如果泵已反向运行,可能为负数。
sensor: - platform: ezo_pmp total_volume_dosed: id: total_volume_dosed name: 总投加体积absolute_total_volume_dosed
Section titled “absolute_total_volume_dosed”此传感器指示自上次泵启动以来已投加的绝对总体积(毫升)。
sensor: - platform: ezo_pmp absolute_total_volume_dosed: id: absolute_total_volume_dosed name: 绝对总投加体积last_volume_requested
Section titled “last_volume_requested”指示正在被投加(或如果泵已完成投加)的总体积(毫升),由投加操作触发。当使用具有持续时间的投加操作时,传感器将正确计算总体积。
sensor: - platform: ezo_pmp last_volume_requested: id: last_volume_requested name: 上次请求体积max_flow_rate
Section titled “max_flow_rate”泵提供其可提供的最大流量的自身计算值(毫升/分钟)。超过此速率的投加请求将失败。当使用连续投加操作时,这是泵每分钟将投加的体积。此值将在泵校准后更新(参见 ezo_pmp.set_calibration_volume 操作)。
sensor: - platform: ezo_pmp max_flow_rate: id: max_flow_rate name: 最大流量pump_voltage
Section titled “pump_voltage”为泵供电的电源当前电压。不要与为泵上电子元件供电的电压混淆。
sensor: - platform: ezo_pmp pump_voltage: id: pump_voltage name: 泵电压- 传感器的所有选项。
二进制传感器
Section titled “二进制传感器”pump_state
Section titled “pump_state”指示泵当前是否正在运行。
binary_sensor: - platform: ezo_pmp pump_state: id: pump_state name: 泵状态- 二进制传感器的所有选项。
is_paused
Section titled “is_paused”指示投加操作当前是否已暂停。
binary_sensor: - platform: ezo_pmp is_paused: id: is_paused name: 已暂停- 二进制传感器的所有选项。
dosing_mode
Section titled “dosing_mode”指示泵当前运行的投加模式。可以是 Volume、Volume/Time、Constant Flow Rate、Continuous、None 中的任何一个。
text_sensor: - platform: ezo_pmp dosing_mode: id: dosing_mode name: 投加模式- 文本传感器的所有选项。
calibration_status
Section titled “calibration_status”指示泵的校准状态。可以是 Fixed Volume、Volume/Time、Fixed Volume & Volume/Time 或 Uncalibrated 中的任何一个。
text_sensor: - platform: ezo_pmp calibration_status: id: calibration_status name: 校准状态- 文本传感器的所有选项。
ezo_pmp.dose_continuously 操作
Section titled “ezo_pmp.dose_continuously 操作”在自动化中使用此操作,使蠕动泵以最大流量连续投加。泵将在连续模式运行 20 天后自动停止。
on_...: then: - ezo_pmp.find: id: ezo_pmp- id (必需, ID): 泵的 ID。
ezo_pmp.dose_volume 操作
Section titled “ezo_pmp.dose_volume 操作”在自动化中使用此操作,使蠕动泵以最大流量投加特定体积(毫升)。如果体积为负,泵将反向运行。
on_...: then: - ezo_pmp.dose_volume: id: ezo_pmp volume: 10
# 模板化 - ezo_pmp.dose_volume: id: ezo_pmp volume: !lambda |- return id(some_volume_sensor).state;ezo_pmp.dose_volume_over_time 操作
Section titled “ezo_pmp.dose_volume_over_time 操作”在自动化中使用此操作,使蠕动泵在指定的 duration(分钟)内投加特定的 volume(毫升)。在时间段结束时,泵将已投加指定的 volume。如果体积为负,泵将反向运行。
on_...: then: - ezo_pmp.dose_volume_over_time: id: ezo_pmp volume: 23.4 duration: 2
# 模板化 - ezo_pmp.dose_volume_over_time: id: ezo_pmp volume: !lambda |- return id(some_volume_sensor).state; duration: !lambda |- return id(some_duration_sensor).state;- id (必需, ID): 泵的 ID。
- volume (必需, float, 可模板化): 要投加的体积(毫升)。如果为负,泵将反向运行。
- duration (必需, int, 可模板化): 泵投加所请求体积所需的时间(分钟)。
ezo_pmp.dose_with_constant_flow_rate 操作
Section titled “ezo_pmp.dose_with_constant_flow_rate 操作”在自动化中使用此操作,使蠕动泵在指定的 duration(分钟)内每分钟投加特定的 volume(毫升)。在时间段结束时,泵将已投加指定的 volume 乘以 duration。如果体积为负,泵将反向运行。
on_...: then: - ezo_pmp.dose_with_constant_flow_rate: id: ezo_pmp volume_per_minute: 10.2 duration: 2
# 模板化 - ezo_pmp.dose_with_constant_flow_rate: id: ezo_pmp volume_per_minute: !lambda |- return id(some_volume_sensor).state; duration: !lambda |- return id(some_duration_sensor).state;- id (必需, ID): 泵的 ID。
- volume_per_minute (必需, float, 可模板化): 每分钟要投加的体积(毫升)。如果为负,泵将反向运行。
- duration (必需, int, 可模板化): 泵每分钟投加所请求体积的时间(分钟)。
ezo_pmp.pause_dosing 操作
Section titled “ezo_pmp.pause_dosing 操作”使用此操作暂停先前发出的投加命令。要确定投加是否已暂停,可以使用已暂停传感器。如果泵当前已暂停,再次发出此操作将取消暂停。
on_...: then: - ezo_pmp.pause_dosing: id: ezo_pmp- id (必需, ID): 泵的 ID。
ezo_pmp.stop_dosing 操作
Section titled “ezo_pmp.stop_dosing 操作”使用此操作停止当前的投加命令。
on_...: then: - ezo_pmp.stop_dosing: id: ezo_pmp- id (必需, ID): 泵的 ID。
ezo_pmp.clear_total_volume_dosed 操作
Section titled “ezo_pmp.clear_total_volume_dosed 操作”on_...: then: - ezo_pmp.clear_total_volume_dosed: id: ezo_pmp- id (必需, ID): 泵的 ID。
ezo_pmp.set_calibration_volume 操作
Section titled “ezo_pmp.set_calibration_volume 操作”使用此操作校准蠕动泵。EZO-PMP 需要两种形式的校准:绝对体积和随时间变化的体积。您可以使用校准状态传感器检查校准状态。有关校准泵的程序,请参阅数据手册。
on_...: then: - ezo_pmp.set_calibration_volume: id: ezo_pmp volume: 10.01
# 模板化 - ezo_pmp.set_calibration_volume: id: ezo_pmp volume: !lambda |- return id(some_volume_sensor).state;ezo_pmp.clear_calibration 操作
Section titled “ezo_pmp.clear_calibration 操作”清除存储在泵中的校准值。您可以使用校准状态传感器检查校准状态。
on_...: then: - ezo_pmp.clear_calibration: id: ezo_pmp- id (必需, ID): 泵的 ID。
ezo_pmp.find 操作
Section titled “ezo_pmp.find 操作”使用此操作使泵控制板上的 LED 闪烁一分钟。当 LED 闪烁时,泵不会响应任何其他操作。
on_...: then: - ezo_pmp.find: id: ezo_pmp- id (必需, ID): 泵的 ID。
ezo_pmp.change_i2c_address 操作
Section titled “ezo_pmp.change_i2c_address 操作”将泵的 I2C 地址更改为提供的值。更改地址后,您必须上传带有更新后的泵 I2C 地址的新版本 ESPHome 固件,泵才能工作。
on_...: then: - ezo_pmp.change_i2c_address: id: ezo_pmp address: 100Home Assistant 配置
Section titled “Home Assistant 配置”为了从 Home Assistant 前端控制泵,重要的是将操作公开为具有 UI 渲染的组件。这可以通过在 ESPHome 中使用模板来完成。以下是使用 模板按钮 和 模板数字 在一段时间内投加特定体积的示例。
i2c:
ezo_pmp: id: ezo_pmp
number: - platform: template id: volume name: "体积" optimistic: true min_value: 0 max_value: 100 step: 0.01 - platform: template id: duration name: "持续时间" optimistic: true min_value: 0 max_value: 100 step: 1
button: - platform: template name: "定时投加" on_press: - ezo_pmp.dose_volume_over_time: id: ezo_pump volume: !lambda |- return id(volume).state; duration: !lambda |- return id(duration).state;lambda 调用
Section titled “lambda 调用”从 lambda 中,您还可以访问蠕动泵上的操作来执行一些高级操作(有关更多信息,请参阅完整的 API 参考)。函数名称与 YAML 配置中的操作名称相同。