From 4fcf41b91e42a7820c60f71ccc97790c1f562af1 Mon Sep 17 00:00:00 2001 From: TheRealFalseReality Date: Thu, 13 Feb 2025 12:23:17 -0500 Subject: [PATCH] pump updates --- common/ezo_commands.yaml | 38 ++- common/ezo_pmp.yaml | 44 +-- common/ezo_pmp_blue.yaml | 310 ++++++++++++++++++ ...ezo_pmp_extra.yaml => ezo_pmp_orange.yaml} | 50 ++- common/ezo_pmp_yellow.yaml | 310 ++++++++++++++++++ 5 files changed, 688 insertions(+), 64 deletions(-) create mode 100644 common/ezo_pmp_blue.yaml rename common/{ezo_pmp_extra.yaml => ezo_pmp_orange.yaml} (88%) create mode 100644 common/ezo_pmp_yellow.yaml diff --git a/common/ezo_commands.yaml b/common/ezo_commands.yaml index c95db5b..57b6bfe 100644 --- a/common/ezo_commands.yaml +++ b/common/ezo_commands.yaml @@ -1,49 +1,59 @@ substitutions: - # PMP circuit, who's default address is 103 - addPMP_default: "103" #White - addPMP_alt1: "108" # Waste/Red - addPMP_alt2: "109" # Clean/Green - addPMP_alt3: "110" #Orange - addPMP_alt4: "106" # Blue + # # PMP circuit, who's default address is 103 + # addPMP_default: "103" #White + # addPMP_alt1: "108" # Waste/Red + # addPMP_alt2: "109" # Clean/Green + # addPMP_alt3: "110" #Orange + # addPMP_alt4: "106" # Blue button: # Change I2C Address of EZO-PMP - platform: template - name: "Pump(Blue) -> ${addPMP_alt4} - Change I2C Address" + name: "Pump(Blue) -> ${addPMP_blue} - Change I2C Address" on_press: then: - ezo_pmp.change_i2c_address: id: ezo_pump_white - address: ${addPMP_alt4} + address: ${addPMP_blue} web_server: sorting_group_id: sorting_group_config - platform: template - name: "Pump(Red) -> ${addPMP_alt1} - Change I2C Address" + name: "Pump(Yellow) -> ${addPMP_yellow} - Change I2C Address" on_press: then: - ezo_pmp.change_i2c_address: id: ezo_pump_white - address: ${addPMP_alt1} + address: ${addPMP_yellow} web_server: sorting_group_id: sorting_group_config - platform: template - name: "Pump(Green) -> ${addPMP_alt2} - Change I2C Address" + name: "Pump(Red) -> ${addPMP_red} - Change I2C Address" on_press: then: - ezo_pmp.change_i2c_address: id: ezo_pump_white - address: ${addPMP_alt2} + address: ${addPMP_red} web_server: sorting_group_id: sorting_group_config - platform: template - name: "Pump(Orange) -> ${addPMP_alt3} - Change I2C Address" + name: "Pump(Green) -> ${addPMP_green} - Change I2C Address" on_press: then: - ezo_pmp.change_i2c_address: id: ezo_pump_white - address: ${addPMP_alt3} + address: ${addPMP_green} + web_server: + sorting_group_id: sorting_group_config + + - platform: template + name: "Pump(Orange) -> ${addPMP_orange} - Change I2C Address" + on_press: + then: + - ezo_pmp.change_i2c_address: + id: ezo_pump_white + address: ${addPMP_orange} web_server: sorting_group_id: sorting_group_config \ No newline at end of file diff --git a/common/ezo_pmp.yaml b/common/ezo_pmp.yaml index 5bdf7c3..382b6da 100644 --- a/common/ezo_pmp.yaml +++ b/common/ezo_pmp.yaml @@ -69,7 +69,7 @@ sensor: id: ezo_pump_white current_volume_dosed: id: current_volume_dosed - name: Pump - Current Volume Dosed + name: Pump White - Current Volume Dosed icon: mdi:cube-scan device_class: 'volume' unit_of_measurement: 'mL' @@ -80,7 +80,7 @@ sensor: id: ezo_pump_white total_volume_dosed: id: total_volume_dosed - name: Pump - Total Volume Dosed + name: Pump White - Total Volume Dosed icon: mdi:timer-sand-empty device_class: 'volume' unit_of_measurement: 'mL' @@ -92,7 +92,7 @@ sensor: absolute_total_volume_dosed: id: absolute_total_volume_dosed disabled_by_default: true - name: Pump - Absolute Total Volume Dosed + name: Pump White - Absolute Total Volume Dosed icon: mdi:timer-sand-full device_class: 'volume' state_class: total @@ -103,7 +103,7 @@ sensor: id: ezo_pump_white last_volume_requested: id: last_volume_requested - name: Pump - Last Volume Requested + name: Pump White - Last Volume Requested icon: mdi:history disabled_by_default: true device_class: 'volume' @@ -115,7 +115,7 @@ sensor: id: ezo_pump_white max_flow_rate: id: max_flow_rate - name: Pump - Max Volume/Time Flow Rate + name: Pump White - Max Volume/Time Flow Rate icon: mdi:car-speed-limiter disabled_by_default: true unit_of_measurement: 'mL/min' @@ -125,7 +125,7 @@ sensor: id: ezo_pump_white pump_voltage: id: pump_white_voltage - name: Pump - Voltage + name: Pump White - Voltage icon: mdi:lightning-bolt-circle disabled_by_default: true device_class: 'voltage' @@ -137,7 +137,7 @@ binary_sensor: id: ezo_pump_white pump_state: id: pump_white_state - name: Pump - State + name: Pump White - State icon: mdi:pump web_server: sorting_group_id: sorting_group_pump_white @@ -145,7 +145,7 @@ binary_sensor: id: ezo_pump_white is_paused: id: is_paused - name: Pump - Paused Status + name: Pump White - Paused Status disabled_by_default: true icon: mdi:pause web_server: @@ -156,7 +156,7 @@ text_sensor: id: ezo_pump_white dosing_mode: id: dosing_mode - name: Pump - Dosing Mode + name: Pump White - Dosing Mode icon: mdi:auto-mode web_server: sorting_group_id: sorting_group_pump_white @@ -164,7 +164,7 @@ text_sensor: id: ezo_pump_white calibration_status: id: calibration_status - name: Pump - Calibration Status + name: Pump White - Calibration Status disabled_by_default: true icon: mdi:tape-measure web_server: @@ -174,7 +174,7 @@ number: - platform: template id: volume icon: mdi:pump - name: Pump - Volume to Dose + name: Pump White - Volume to Dose device_class: 'volume' unit_of_measurement: 'mL' optimistic: true @@ -188,7 +188,7 @@ number: - platform: template id: duration icon: mdi:timer - name: Pump - Time to Dose + name: Pump White - Time to Dose device_class: 'duration' unit_of_measurement: 'min' optimistic: true @@ -202,7 +202,7 @@ number: - platform: template id: flow_rate icon: mdi:waves-arrow-right - name: Pump - Volume/Time Flow Rate + name: Pump White - Volume/Time Flow Rate unit_of_measurement: 'mL/min' optimistic: true initial_value: 10 @@ -215,7 +215,7 @@ number: button: - platform: template - name: Pump - Dose Volume for Time + name: Pump White - Dose Volume for Time icon: mdi:clock-time-two-outline id: dose_over_time on_press: @@ -228,7 +228,7 @@ button: web_server: sorting_group_id: sorting_group_pump_white - platform: template - name: Pump - Dose Continuously + name: Pump White - Dose Continuously icon: mdi:infinity id: dose_continuously on_press: @@ -237,7 +237,7 @@ button: web_server: sorting_group_id: sorting_group_pump_white - platform: template - name: Pump - Dose Volume + name: Pump White - Dose Volume icon: mdi:pump id: dose_volume on_press: @@ -248,7 +248,7 @@ button: web_server: sorting_group_id: sorting_group_pump_white - platform: template - name: Pump - Dose at Volume/Time Flow Rate for Time + name: Pump White - Dose at Volume/Time Flow Rate for Time icon: mdi:format-text-wrapping-overflow id: dose_flow_rate on_press: @@ -261,7 +261,7 @@ button: web_server: sorting_group_id: sorting_group_pump_white - platform: template - name: Pump - Pause Dosing + name: Pump White - Pause Dosing icon: mdi:pause id: dose_pause on_press: @@ -270,7 +270,7 @@ button: web_server: sorting_group_id: sorting_group_pump_white - platform: template - name: Pump - Stop Dosing + name: Pump White - Stop Dosing icon: mdi:stop id: dose_stop on_press: @@ -279,7 +279,7 @@ button: web_server: sorting_group_id: sorting_group_pump_white - platform: template - name: Pump - Clear Total Volume Dosed + name: Pump White - Clear Total Volume Dosed disabled_by_default: true icon: mdi:backspace id: dose_clear @@ -291,7 +291,7 @@ button: # Calibrate - platform: template - name: Pump - Set Calibration Volume + name: Pump White - Set Calibration Volume icon: mdi:tape-measure id: dose_calibrate_volume on_press: @@ -302,7 +302,7 @@ button: web_server: sorting_group_id: sorting_group_pump_white - platform: template - name: Pump - Clear Calibration Volume + name: Pump White - Clear Calibration Volume icon: mdi:cancel disabled_by_default: true id: dose_calibrate_volume_clear diff --git a/common/ezo_pmp_blue.yaml b/common/ezo_pmp_blue.yaml new file mode 100644 index 0000000..7cd4ac8 --- /dev/null +++ b/common/ezo_pmp_blue.yaml @@ -0,0 +1,310 @@ +substitutions: + # PMP circuit + addPMP_blue: "104" # blue + update_pmp_blue: "60s" + sorting_group_pump_blue_weight: '83' + +web_server: + sorting_groups: + - id: sorting_group_pump_blue + name: "Pump - Blue" + sorting_weight: ${sorting_group_pump_blue_weight} + +ezo_pmp: + - id: ezo_pump_blue + address: ${addPMP_blue} + update_interval: "${update_pmp_blue}" + +api: + actions: + - action: pump_blue_dose_volume + variables: + dose_volume: float + then: + - ezo_pmp.dose_volume: + id: ezo_pump_blue + volume: !lambda 'return dose_volume;' + - action: pump_blue_dose_volume_time + variables: + dose_volume: float + dose_time: float + then: + - ezo_pmp.dose_volume_over_time: + id: ezo_pump_blue + volume: !lambda |- + return dose_volume; + duration: !lambda |- + return dose_time; + - action: pump_blue_dose_flow_rate_time + variables: + dose_rate: float + dose_time: float + then: + - ezo_pmp.dose_with_constant_flow_rate: + id: ezo_pump_blue + volume_per_minute: !lambda |- + return dose_rate; + duration: !lambda |- + return dose_time; + - action: pump_blue_dose_set_calibration + variables: + actual_volume: float + then: + - ezo_pmp.set_calibration_volume: + id: ezo_pump_blue + volume: !lambda |- + return actual_volume; + - action: pump_blue_change_address + variables: + address: int + then: + - ezo_pmp.change_i2c_address: + id: ezo_pump_blue + address: !lambda |- + return address; + +sensor: + - platform: ezo_pmp + id: ezo_pump_blue + current_volume_dosed: + id: current_volume_dosed_2 + name: Pump Blue - Current Volume Dosed + icon: mdi:cube-scan + device_class: 'volume' + state_class: total + unit_of_measurement: 'mL' + web_server: + sorting_group_id: sorting_group_pump_blue + - platform: ezo_pmp + id: ezo_pump_blue + total_volume_dosed: + id: total_volume_dosed_2 + name: Pump Blue - Total Volume Dosed + icon: mdi:timer-sand-empty + device_class: 'volume' + unit_of_measurement: 'mL' + disabled_by_default: true + web_server: + sorting_group_id: sorting_group_pump_blue + - platform: ezo_pmp + id: ezo_pump_blue + absolute_total_volume_dosed: + id: absolute_total_volume_dosed_2 + name: Pump Blue - Absolute Total Volume Dosed + icon: mdi:timer-sand-full + disabled_by_default: true + device_class: 'volume' + state_class: total + unit_of_measurement: 'mL' + web_server: + sorting_group_id: sorting_group_pump_blue + - platform: ezo_pmp + id: ezo_pump_blue + last_volume_requested: + id: last_volume_requested_2 + name: Pump Blue - Last Volume Requested + icon: mdi:history + device_class: 'volume' + disabled_by_default: true + state_class: total + unit_of_measurement: 'mL' + web_server: + sorting_group_id: sorting_group_pump_blue + - platform: ezo_pmp + id: ezo_pump_blue + max_flow_rate: + id: max_flow_rate_2 + name: Pump Blue - Max Volume/Time Flow Rate + icon: mdi:car-speed-limiter + disabled_by_default: true + unit_of_measurement: 'mL/min' + web_server: + sorting_group_id: sorting_group_pump_blue + - platform: ezo_pmp + id: ezo_pump_blue + pump_voltage: + id: pump_blue_voltage + name: Pump Blue - Voltage + disabled_by_default: true + icon: mdi:lightning-bolt-circle + device_class: 'voltage' + web_server: + sorting_group_id: sorting_group_pump_blue + +binary_sensor: + - platform: ezo_pmp + id: ezo_pump_blue + pump_state: + id: pump_blue_state + name: Pump Blue - State + icon: mdi:pump_blue + - platform: ezo_pmp + id: ezo_pump_blue + is_paused: + id: is_paused_2 + name: Pump Blue - Paused Status + icon: mdi:pause + disabled_by_default: true + web_server: + sorting_group_id: sorting_group_pump_blue + +text_sensor: + - platform: ezo_pmp + id: ezo_pump_blue + dosing_mode: + id: dosing_mode_2 + name: Pump Blue - Dosing Mode + icon: mdi:auto-mode + web_server: + sorting_group_id: sorting_group_pump_blue + - platform: ezo_pmp + id: ezo_pump_blue + calibration_status: + id: calibration_status_2 + name: Pump Blue - Calibration Status + disabled_by_default: true + icon: mdi:tape-measure + web_server: + sorting_group_id: sorting_group_pump_blue + +number: + - platform: template + id: volume_2 + icon: mdi:pump_blue + name: Pump Blue - Volume to Dose + device_class: 'volume' + unit_of_measurement: 'mL' + optimistic: true + initial_value: 10 # cannot be less than +/-0.1mL + min_value: -378541 + max_value: 378541 # 100 gal + mode: box + step: 0.1 + web_server: + sorting_group_id: sorting_group_pump_blue + - platform: template + id: duration_2 + icon: mdi:timer + name: Pump Blue - Time to Dose + device_class: 'duration' + unit_of_measurement: 'min' + optimistic: true + initial_value: 1 + min_value: 1 + max_value: 1440 # 24 hours + mode: box + step: 0.1 + web_server: + sorting_group_id: sorting_group_pump_blue + - platform: template + id: flow_rate_2 + icon: mdi:waves-arrow-right + name: Pump Blue - Volume/Time Flow Rate + unit_of_measurement: 'mL/min' + optimistic: true + initial_value: 10 + min_value: .5 + max_value: 105 # may need to lower to 40 + mode: box + step: 0.1 + web_server: + sorting_group_id: sorting_group_pump_blue + +button: + - platform: template + name: Pump Blue - Dose Volume for Time + icon: mdi:clock-time-two-outline + id: dose_over_time_2 + on_press: + - ezo_pmp.dose_volume_over_time: + id: ezo_pump_blue + volume: !lambda |- + return id(volume).state; + duration: !lambda |- + return id(duration).state; + web_server: + sorting_group_id: sorting_group_pump_blue + - platform: template + name: Pump Blue - Dose Continuously + icon: mdi:infinity + id: dose_continuously_2 + on_press: + - ezo_pmp.dose_continuously: + id: ezo_pump_blue + web_server: + sorting_group_id: sorting_group_pump_blue + - platform: template + name: Pump Blue - Dose Volume + icon: mdi:pump_blue + id: dose_volume_2 + on_press: + - ezo_pmp.dose_volume: + id: ezo_pump_blue + volume: !lambda |- + return id(volume).state; + web_server: + sorting_group_id: sorting_group_pump_blue + - platform: template + name: Pump Blue - Dose at Volume/Time Flow Rate for Time + icon: mdi:format-text-wrapping-overflow + id: dose_flow_rate_2 + on_press: + - ezo_pmp.dose_with_constant_flow_rate: + id: ezo_pump_blue + volume_per_minute: !lambda |- + return id(flow_rate).state; + duration: !lambda |- + return id(duration).state; + web_server: + sorting_group_id: sorting_group_pump_blue + - platform: template + name: Pump Blue - Pause Dosing + icon: mdi:pause + id: dose_pause_2 + on_press: + - ezo_pmp.pause_dosing: + id: ezo_pump_blue + web_server: + sorting_group_id: sorting_group_pump_blue + - platform: template + name: Pump Blue - Stop Dosing + icon: mdi:stop + id: dose_stop_2 + on_press: + - ezo_pmp.stop_dosing: + id: ezo_pump_blue + web_server: + sorting_group_id: sorting_group_pump_blue + - platform: template + name: Pump Blue - Clear Total Volume Dosed + disabled_by_default: true + icon: mdi:backspace + id: dose_clear_2 + on_press: + - ezo_pmp.clear_total_volume_dosed: + id: ezo_pump_blue + web_server: + sorting_group_id: sorting_group_pump_blue + + # Calibrate + - platform: template + name: Pump Blue - Set Calibration Volume + icon: mdi:tape-measure + id: dose_calibrate_volume_2 + on_press: + - ezo_pmp.set_calibration_volume: + id: ezo_pump_blue + volume: !lambda |- + return id(volume).state; + web_server: + sorting_group_id: sorting_group_pump_blue + - platform: template + name: Pump Blue - Clear Calibration Volume + disabled_by_default: true + icon: mdi:cancel + id: dose_calibrate_volume_clear_2 + on_press: + - ezo_pmp.clear_calibration: + id: ezo_pump_blue + web_server: + sorting_group_id: sorting_group_pump_blue \ No newline at end of file diff --git a/common/ezo_pmp_extra.yaml b/common/ezo_pmp_orange.yaml similarity index 88% rename from common/ezo_pmp_extra.yaml rename to common/ezo_pmp_orange.yaml index 3b73404..a6405d3 100644 --- a/common/ezo_pmp_extra.yaml +++ b/common/ezo_pmp_orange.yaml @@ -1,13 +1,7 @@ substitutions: # PMP circuit addPMP_orange: "110" # Orange - addPMP_yellow: "104" # Yellow - addPMP_blue: "106" # Blue - update_pmp_orange: "60s" - update_pmp_yellow: "60s" - update_pmp_blue: "60s" - sorting_group_pump_orange_weight: '83' web_server: @@ -74,7 +68,7 @@ sensor: id: ezo_pump_orange current_volume_dosed: id: current_volume_dosed_2 - name: Pump 2 - Current Volume Dosed + name: Pump Orange - Current Volume Dosed icon: mdi:cube-scan device_class: 'volume' state_class: total @@ -85,7 +79,7 @@ sensor: id: ezo_pump_orange total_volume_dosed: id: total_volume_dosed_2 - name: Pump 2 - Total Volume Dosed + name: Pump Orange - Total Volume Dosed icon: mdi:timer-sand-empty device_class: 'volume' unit_of_measurement: 'mL' @@ -96,7 +90,7 @@ sensor: id: ezo_pump_orange absolute_total_volume_dosed: id: absolute_total_volume_dosed_2 - name: Pump 2 - Absolute Total Volume Dosed + name: Pump Orange - Absolute Total Volume Dosed icon: mdi:timer-sand-full disabled_by_default: true device_class: 'volume' @@ -108,7 +102,7 @@ sensor: id: ezo_pump_orange last_volume_requested: id: last_volume_requested_2 - name: Pump 2 - Last Volume Requested + name: Pump Orange - Last Volume Requested icon: mdi:history device_class: 'volume' disabled_by_default: true @@ -120,7 +114,7 @@ sensor: id: ezo_pump_orange max_flow_rate: id: max_flow_rate_2 - name: Pump 2 - Max Volume/Time Flow Rate + name: Pump Orange - Max Volume/Time Flow Rate icon: mdi:car-speed-limiter disabled_by_default: true unit_of_measurement: 'mL/min' @@ -130,7 +124,7 @@ sensor: id: ezo_pump_orange pump_voltage: id: pump_orange_voltage - name: Pump 2 - Voltage + name: Pump Orange - Voltage disabled_by_default: true icon: mdi:lightning-bolt-circle device_class: 'voltage' @@ -142,13 +136,13 @@ binary_sensor: id: ezo_pump_orange pump_state: id: pump_orange_state - name: Pump 2 - State + name: Pump Orange - State icon: mdi:pump_orange - platform: ezo_pmp id: ezo_pump_orange is_paused: id: is_paused_2 - name: Pump 2 - Paused Status + name: Pump Orange - Paused Status icon: mdi:pause disabled_by_default: true web_server: @@ -159,7 +153,7 @@ text_sensor: id: ezo_pump_orange dosing_mode: id: dosing_mode_2 - name: Pump 2 - Dosing Mode + name: Pump Orange - Dosing Mode icon: mdi:auto-mode web_server: sorting_group_id: sorting_group_pump_orange @@ -167,7 +161,7 @@ text_sensor: id: ezo_pump_orange calibration_status: id: calibration_status_2 - name: Pump 2 - Calibration Status + name: Pump Orange - Calibration Status disabled_by_default: true icon: mdi:tape-measure web_server: @@ -177,7 +171,7 @@ number: - platform: template id: volume_2 icon: mdi:pump_orange - name: Pump 2 - Volume to Dose + name: Pump Orange - Volume to Dose device_class: 'volume' unit_of_measurement: 'mL' optimistic: true @@ -191,7 +185,7 @@ number: - platform: template id: duration_2 icon: mdi:timer - name: Pump 2 - Time to Dose + name: Pump Orange - Time to Dose device_class: 'duration' unit_of_measurement: 'min' optimistic: true @@ -205,7 +199,7 @@ number: - platform: template id: flow_rate_2 icon: mdi:waves-arrow-right - name: Pump 2 - Volume/Time Flow Rate + name: Pump Orange - Volume/Time Flow Rate unit_of_measurement: 'mL/min' optimistic: true initial_value: 10 @@ -218,7 +212,7 @@ number: button: - platform: template - name: Pump 2 - Dose Volume for Time + name: Pump Orange - Dose Volume for Time icon: mdi:clock-time-two-outline id: dose_over_time_2 on_press: @@ -231,7 +225,7 @@ button: web_server: sorting_group_id: sorting_group_pump_orange - platform: template - name: Pump 2 - Dose Continuously + name: Pump Orange - Dose Continuously icon: mdi:infinity id: dose_continuously_2 on_press: @@ -240,7 +234,7 @@ button: web_server: sorting_group_id: sorting_group_pump_orange - platform: template - name: Pump 2 - Dose Volume + name: Pump Orange - Dose Volume icon: mdi:pump_orange id: dose_volume_2 on_press: @@ -251,7 +245,7 @@ button: web_server: sorting_group_id: sorting_group_pump_orange - platform: template - name: Pump 2 - Dose at Volume/Time Flow Rate for Time + name: Pump Orange - Dose at Volume/Time Flow Rate for Time icon: mdi:format-text-wrapping-overflow id: dose_flow_rate_2 on_press: @@ -264,7 +258,7 @@ button: web_server: sorting_group_id: sorting_group_pump_orange - platform: template - name: Pump 2 - Pause Dosing + name: Pump Orange - Pause Dosing icon: mdi:pause id: dose_pause_2 on_press: @@ -273,7 +267,7 @@ button: web_server: sorting_group_id: sorting_group_pump_orange - platform: template - name: Pump 2 - Stop Dosing + name: Pump Orange - Stop Dosing icon: mdi:stop id: dose_stop_2 on_press: @@ -282,7 +276,7 @@ button: web_server: sorting_group_id: sorting_group_pump_orange - platform: template - name: Pump 2 - Clear Total Volume Dosed + name: Pump Orange - Clear Total Volume Dosed disabled_by_default: true icon: mdi:backspace id: dose_clear_2 @@ -294,7 +288,7 @@ button: # Calibrate - platform: template - name: Pump 2 - Set Calibration Volume + name: Pump Orange - Set Calibration Volume icon: mdi:tape-measure id: dose_calibrate_volume_2 on_press: @@ -305,7 +299,7 @@ button: web_server: sorting_group_id: sorting_group_pump_orange - platform: template - name: Pump 2 - Clear Calibration Volume + name: Pump Orange - Clear Calibration Volume disabled_by_default: true icon: mdi:cancel id: dose_calibrate_volume_clear_2 diff --git a/common/ezo_pmp_yellow.yaml b/common/ezo_pmp_yellow.yaml new file mode 100644 index 0000000..5770d01 --- /dev/null +++ b/common/ezo_pmp_yellow.yaml @@ -0,0 +1,310 @@ +substitutions: + # PMP circuit + addPMP_yellow: "104" # Yellow + update_pmp_yellow: "60s" + sorting_group_pump_yellow_weight: '83' + +web_server: + sorting_groups: + - id: sorting_group_pump_yellow + name: "Pump - Yellow" + sorting_weight: ${sorting_group_pump_yellow_weight} + +ezo_pmp: + - id: ezo_pump_yellow + address: ${addPMP_yellow} + update_interval: "${update_pmp_yellow}" + +api: + actions: + - action: pump_yellow_dose_volume + variables: + dose_volume: float + then: + - ezo_pmp.dose_volume: + id: ezo_pump_yellow + volume: !lambda 'return dose_volume;' + - action: pump_yellow_dose_volume_time + variables: + dose_volume: float + dose_time: float + then: + - ezo_pmp.dose_volume_over_time: + id: ezo_pump_yellow + volume: !lambda |- + return dose_volume; + duration: !lambda |- + return dose_time; + - action: pump_yellow_dose_flow_rate_time + variables: + dose_rate: float + dose_time: float + then: + - ezo_pmp.dose_with_constant_flow_rate: + id: ezo_pump_yellow + volume_per_minute: !lambda |- + return dose_rate; + duration: !lambda |- + return dose_time; + - action: pump_yellow_dose_set_calibration + variables: + actual_volume: float + then: + - ezo_pmp.set_calibration_volume: + id: ezo_pump_yellow + volume: !lambda |- + return actual_volume; + - action: pump_yellow_change_address + variables: + address: int + then: + - ezo_pmp.change_i2c_address: + id: ezo_pump_yellow + address: !lambda |- + return address; + +sensor: + - platform: ezo_pmp + id: ezo_pump_yellow + current_volume_dosed: + id: current_volume_dosed_2 + name: Pump Yellow - Current Volume Dosed + icon: mdi:cube-scan + device_class: 'volume' + state_class: total + unit_of_measurement: 'mL' + web_server: + sorting_group_id: sorting_group_pump_yellow + - platform: ezo_pmp + id: ezo_pump_yellow + total_volume_dosed: + id: total_volume_dosed_2 + name: Pump Yellow - Total Volume Dosed + icon: mdi:timer-sand-empty + device_class: 'volume' + unit_of_measurement: 'mL' + disabled_by_default: true + web_server: + sorting_group_id: sorting_group_pump_yellow + - platform: ezo_pmp + id: ezo_pump_yellow + absolute_total_volume_dosed: + id: absolute_total_volume_dosed_2 + name: Pump Yellow - Absolute Total Volume Dosed + icon: mdi:timer-sand-full + disabled_by_default: true + device_class: 'volume' + state_class: total + unit_of_measurement: 'mL' + web_server: + sorting_group_id: sorting_group_pump_yellow + - platform: ezo_pmp + id: ezo_pump_yellow + last_volume_requested: + id: last_volume_requested_2 + name: Pump Yellow - Last Volume Requested + icon: mdi:history + device_class: 'volume' + disabled_by_default: true + state_class: total + unit_of_measurement: 'mL' + web_server: + sorting_group_id: sorting_group_pump_yellow + - platform: ezo_pmp + id: ezo_pump_yellow + max_flow_rate: + id: max_flow_rate_2 + name: Pump Yellow - Max Volume/Time Flow Rate + icon: mdi:car-speed-limiter + disabled_by_default: true + unit_of_measurement: 'mL/min' + web_server: + sorting_group_id: sorting_group_pump_yellow + - platform: ezo_pmp + id: ezo_pump_yellow + pump_voltage: + id: pump_yellow_voltage + name: Pump Yellow - Voltage + disabled_by_default: true + icon: mdi:lightning-bolt-circle + device_class: 'voltage' + web_server: + sorting_group_id: sorting_group_pump_yellow + +binary_sensor: + - platform: ezo_pmp + id: ezo_pump_yellow + pump_state: + id: pump_yellow_state + name: Pump Yellow - State + icon: mdi:pump_yellow + - platform: ezo_pmp + id: ezo_pump_yellow + is_paused: + id: is_paused_2 + name: Pump Yellow - Paused Status + icon: mdi:pause + disabled_by_default: true + web_server: + sorting_group_id: sorting_group_pump_yellow + +text_sensor: + - platform: ezo_pmp + id: ezo_pump_yellow + dosing_mode: + id: dosing_mode_2 + name: Pump Yellow - Dosing Mode + icon: mdi:auto-mode + web_server: + sorting_group_id: sorting_group_pump_yellow + - platform: ezo_pmp + id: ezo_pump_yellow + calibration_status: + id: calibration_status_2 + name: Pump Yellow - Calibration Status + disabled_by_default: true + icon: mdi:tape-measure + web_server: + sorting_group_id: sorting_group_pump_yellow + +number: + - platform: template + id: volume_2 + icon: mdi:pump_yellow + name: Pump Yellow - Volume to Dose + device_class: 'volume' + unit_of_measurement: 'mL' + optimistic: true + initial_value: 10 # cannot be less than +/-0.1mL + min_value: -378541 + max_value: 378541 # 100 gal + mode: box + step: 0.1 + web_server: + sorting_group_id: sorting_group_pump_yellow + - platform: template + id: duration_2 + icon: mdi:timer + name: Pump Yellow - Time to Dose + device_class: 'duration' + unit_of_measurement: 'min' + optimistic: true + initial_value: 1 + min_value: 1 + max_value: 1440 # 24 hours + mode: box + step: 0.1 + web_server: + sorting_group_id: sorting_group_pump_yellow + - platform: template + id: flow_rate_2 + icon: mdi:waves-arrow-right + name: Pump Yellow - Volume/Time Flow Rate + unit_of_measurement: 'mL/min' + optimistic: true + initial_value: 10 + min_value: .5 + max_value: 105 # may need to lower to 40 + mode: box + step: 0.1 + web_server: + sorting_group_id: sorting_group_pump_yellow + +button: + - platform: template + name: Pump Yellow - Dose Volume for Time + icon: mdi:clock-time-two-outline + id: dose_over_time_2 + on_press: + - ezo_pmp.dose_volume_over_time: + id: ezo_pump_yellow + volume: !lambda |- + return id(volume).state; + duration: !lambda |- + return id(duration).state; + web_server: + sorting_group_id: sorting_group_pump_yellow + - platform: template + name: Pump Yellow - Dose Continuously + icon: mdi:infinity + id: dose_continuously_2 + on_press: + - ezo_pmp.dose_continuously: + id: ezo_pump_yellow + web_server: + sorting_group_id: sorting_group_pump_yellow + - platform: template + name: Pump Yellow - Dose Volume + icon: mdi:pump_yellow + id: dose_volume_2 + on_press: + - ezo_pmp.dose_volume: + id: ezo_pump_yellow + volume: !lambda |- + return id(volume).state; + web_server: + sorting_group_id: sorting_group_pump_yellow + - platform: template + name: Pump Yellow - Dose at Volume/Time Flow Rate for Time + icon: mdi:format-text-wrapping-overflow + id: dose_flow_rate_2 + on_press: + - ezo_pmp.dose_with_constant_flow_rate: + id: ezo_pump_yellow + volume_per_minute: !lambda |- + return id(flow_rate).state; + duration: !lambda |- + return id(duration).state; + web_server: + sorting_group_id: sorting_group_pump_yellow + - platform: template + name: Pump Yellow - Pause Dosing + icon: mdi:pause + id: dose_pause_2 + on_press: + - ezo_pmp.pause_dosing: + id: ezo_pump_yellow + web_server: + sorting_group_id: sorting_group_pump_yellow + - platform: template + name: Pump Yellow - Stop Dosing + icon: mdi:stop + id: dose_stop_2 + on_press: + - ezo_pmp.stop_dosing: + id: ezo_pump_yellow + web_server: + sorting_group_id: sorting_group_pump_yellow + - platform: template + name: Pump Yellow - Clear Total Volume Dosed + disabled_by_default: true + icon: mdi:backspace + id: dose_clear_2 + on_press: + - ezo_pmp.clear_total_volume_dosed: + id: ezo_pump_yellow + web_server: + sorting_group_id: sorting_group_pump_yellow + + # Calibrate + - platform: template + name: Pump Yellow - Set Calibration Volume + icon: mdi:tape-measure + id: dose_calibrate_volume_2 + on_press: + - ezo_pmp.set_calibration_volume: + id: ezo_pump_yellow + volume: !lambda |- + return id(volume).state; + web_server: + sorting_group_id: sorting_group_pump_yellow + - platform: template + name: Pump Yellow - Clear Calibration Volume + disabled_by_default: true + icon: mdi:cancel + id: dose_calibrate_volume_clear_2 + on_press: + - ezo_pmp.clear_calibration: + id: ezo_pump_yellow + web_server: + sorting_group_id: sorting_group_pump_yellow \ No newline at end of file