Skip to content
Snippets Groups Projects
Commit 95a914cd authored by Jan Grewe's avatar Jan Grewe
Browse files

fix waterlevel calculation

parent 07a74e53
Branches
No related tags found
Loading
Pipeline #1280 failed
......@@ -30,4 +30,4 @@ packages:
water_sts35: !include packages/water_sts35.yaml
dosing: !include packages/dosing.yaml
dosing_pca9685: !include packages/dosing_pca9685.yaml
level: !include packages/level.yaml
water_level: !include packages/water_level.yaml
substitutions:
waterlevel_current_init: '4.06' # mA at 0mm
waterlevel_current_empty_system: '3.75' # mA at 0mm
waterlevel_current_empty_tank: '3.11' # mA at 0mm
waterlevel_range: '1000' # mm
waterlevel_density: '1' # water
globals:
- id: waterlevel_current_init
- id: waterlevel_current_empty_system
type: float
restore_value: yes
initial_value: ${waterlevel_current_init}
initial_value: ${waterlevel_current_empty_system}
- id: waterlevel_current_empty_tank
type: float
restore_value: yes
initial_value: ${waterlevel_current_empty_tank}
- id: waterlevel_range
type: float
restore_value: yes
......@@ -24,61 +29,61 @@ ads1115:
sensor:
- platform: ads1115
ads1115_id: ads1115_waterlevel
id: waterlevel_tank_voltage
id: waterlevel_voltage_system
internal: true
#name: "Waterlevel Tank: Voltage"
multiplexer: 'A0_GND'
#name: "Waterlevel System: Voltage"
multiplexer: 'A1_GND'
gain: 4.096 # max: 3.0V
update_interval: 5s
accuracy_decimals: 5
<<: !include filter.yaml
- platform: ads1115
ads1115_id: ads1115_waterlevel
id: waterlevel_system_voltage
id: waterlevel_voltage_tank
internal: true
#name: "Waterlevel System: Voltage"
multiplexer: 'A1_GND'
#name: "Waterlevel Tank: Voltage"
multiplexer: 'A0_GND'
gain: 4.096 # max: 3.0V
update_interval: 5s
accuracy_decimals: 5
<<: !include filter.yaml
# - platform: template
- platform: template
id: waterlevel_current_system
# name: "Waterlevel System: Current"
# id: waterlevel_tank_current
# unit_of_measurement: "mA"
# accuracy_decimals: 2
# update_interval: 5s
# lambda: !lambda 'return id(waterlevel_tank_voltage).state * 1024.0 / 120.0;' # V->mV, Sense Resistor: 120ohm'
# - platform: template
unit_of_measurement: "mA"
accuracy_decimals: 2
update_interval: 5s
lambda: !lambda 'return id(waterlevel_voltage_system).state * 1024.0 / 120.0;' # V->mV, Sense Resistor: 120ohm'
- platform: template
id: waterlevel_current_tank
#name: "Waterlevel Tank: Current"
# id: waterlevel_system_current
# unit_of_measurement: "mA"
# accuracy_decimals: 2
# update_interval: 5s
# lambda: !lambda 'return id(waterlevel_system_voltage).state * 1024.0 / 120.0;' # V->mV, Sense Resistor: 120ohm
unit_of_measurement: "mA"
accuracy_decimals: 2
update_interval: 5s
lambda: !lambda 'return id(waterlevel_voltage_tank).state * 1024.0 / 120.0;' # V->mV, Sense Resistor: 120ohm
- platform: template
name: "Waterlevel: Tank"
id: waterlevel_tank
name: "Waterlevel: System"
id: waterlevel_system
unit_of_measurement: "cm"
accuracy_decimals: 2
update_interval: 5s
<<: !include filter.yaml
lambda: |-
float dataCurrent = id(waterlevel_tank_voltage).state * 1024.0 / 120.0; // Sense Resistor: 120ohm
float depth = (dataCurrent - id(waterlevel_current_init)) * (id(waterlevel_range) / id(waterlevel_density) / 16.0) / 10;
float dataCurrent = id(waterlevel_voltage_system).state * 1024.0 / 120.0; // Sense Resistor: 120ohm
float depth = (dataCurrent - id(waterlevel_current_empty_system)) * (id(waterlevel_range) / id(waterlevel_density) / 16.0) / 10;
return depth;
- platform: template
name: "Waterlevel: System"
id: waterlevel_system
name: "Waterlevel: Tank"
id: waterlevel_tank
unit_of_measurement: "cm"
accuracy_decimals: 2
update_interval: 5s
<<: !include filter.yaml
lambda: |-
float dataCurrent = id(waterlevel_system_voltage).state * 1024.0 / 120.0; // Sense Resistor: 120ohm
float depth = (dataCurrent - id(waterlevel_current_init)) * (id(waterlevel_range) / id(waterlevel_density) / 16.0) / 10;
float dataCurrent = id(waterlevel_voltage_tank).state * 1024.0 / 120.0; // Sense Resistor: 120ohm
float depth = (dataCurrent - id(waterlevel_current_empty_tank)) * (id(waterlevel_range) / id(waterlevel_density) / 16.0) / 10;
return depth;
prometheus:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment