Tank monitoring solution

I have recently installed what is termed in ‘India’ an indirect pumbling system. It is a water back up solution comprising of a 2500litre jojo tank installed below 1.5m depth underground…a booster pump and pressure tank tank.

I am in Zimbabwe and with everthing else the provision of water services is not consistant and i receive only 2 to 3 hours of limited water supply and pressure. The reason the tank is below ground is the City is not supplyng us with enough pressure past even 0.5m in height!

I am using victron gear… i have a multiplus 2 5kva with a gx and a 250 100mppt. I NEED HELP FINDING the most practical resistive tank senders to read my tank level!
Uploading: 20210221_160437.jpg…

1 Like

Do you need an analog signal? (not visual…)

I need something i can connect to my venus gx tank inputs…to able to see the levels off vrm or remote console…any options are also welcome

Take a PVC pipe and some of these float switches.
Seal the pipe and mount the swiches at intervals so the cables run inside the pipe, and then put the pipe inside the tank from the top (Best is to get the PVC pipe to rest on the bottom and then fix it to the top. Each sensor is just open or close and you can mount it upside down if you want it open or closed depending on the water level.


OK, this might be a start. The code for those sensors is open enough so you can look at some of it (can’t compile it as one of the libraries is still closed, but it’s a start :slight_smile: ). See here. This lists the resistances of the supported sensors, loosely dubbed the European standard, and the US standard.

The European spec goes from 0Ω to 180Ω. The US spec goes from 240Ω down to 30Ω as the tank fills up (ie, inversely proportional to tank level).

So basically any sensor that does 0-180 over its range should be good.

Great…i am studying your suggestion. Seems brilliant. Sorry i would ask again…would i be able to use the gx resistive inputs for monitoring with the option indicated on the robotics site?

You will need to use the relay inputs. Plonkster’s option will work for the resistive.
Edit: I have a Pi GX so don’t have the option to test this for you.

Then you can build a chain of resistors, say 4 x 47Ω or 5 x 39Ω 7 x 27Ω or what have you, and have the switches bypass them creating a kind of digital potentiometer :slight_smile:

Patching this resistance into the Venus device will get you a number of discrete levels.

Or, if you know a bit more… the analog reading on the GX wants to see a voltage between 0.7V and 4.5V or something like that (if I recall), and it gets it because there is a pull-up resistor and the sensor you attach simply pulls it down. If you have a strong enough voltage signal below 5V, you should be good.

1 Like

At least I think it is 5V. Better measure it before you start (just measuring it through the pull-up should tell you if it is 5V or 3.3V.

@plonkster Great idea.
The alternative is to move the pump logic to something like this. But having it all in the GX would be better.

Also you need a better relay to handle to pump that these 10A versions.

I use an NodeMCU and HC-SR04 to monitor my water tanks, atm all data is send to Blynk.IO but busy setup home assistant to better automate things. My main tank is not connected to anything other than RO waste water, i have another tank that I use to collect rain water, then pump from there to the main tank when needed(see the up spikes)

The SR04 is not water tight, but I added it with the node inside a water tight case and silicone where the ultrasonic sensors comes out, then put that on top of the tank with two small holes through the lid. The one has run over a year the other one about 6 months, even with water condensation they still work and are around R30 if i need to replace them.

so in short you can use the arduino to send what ever signal/short/data to your other systems to operate what you need to with some trial and error.

Alternatively look at Led Select on Bid or buy, they have some sensors and board or this one:


Brilliant…let me read further. Many thanks!!!

mind sharing your HA yaml.


moved over from blynk to HA, still to do a few things but see % wise atm
just remember you need a voltage divider on the one pin as the sensor is 5v and not 3.3

  - platform: ultrasonic
    trigger_pin: D5
    echo_pin: D6
    unit_of_measurement: "%"
    icon: "mdi:water-percent"
    accuracy_decimals: 0
    update_interval: 0.5s
    name: "1kl Water tank"
      - median:
          window_size: 5
          send_every: 5
          send_first_at: 1
      - lambda: return (1-((x-.22)/2.2))*100;
      - filter_out: nan
# tank height: 223cm, width 75
    # height from full to sensor: 22cm (essentially sensors minimum distance)
    # full tank: 180cm
    # current reading: x
    # ergo: used = (x - 22)
    # ergo: remaining = (180 - used)
    # ergo: percent = (remaining / 180) * 100

I have the same configuration as you, using Eco tanks, 2 x JSN-SR04T on esp8266. The issue I cannot resolve is x - the distance when the tank is become empty (level to the bottom outlet) It reads 1.1m when “empty” instead of around 1.86m. Any idea as to why it does not read the full length given the spec is indicated 4/5m.

It’s probably reflections from the side-walls in the empty tank confusing the sensor? What about mounting it at the top of a section of 150mm pipe to shield it a bit?

I haven’t actually done this, but planned to have a ~150mm pipe from top to bottom with holes at the ends with the sensor mounted at the top. Idea was that this would cut down on interference from the inflow when the borehole was running, since the water inside the pipe section would calmly rise to the top.


Hi Marius,
Thank you for the feedback.
My sensor is mounted about 20cm from that tank wall. I moved it to the center but the results remain the same. I then tried your idea of a pipe (I only have 110mm) but it seems it picks up pipe walls with a much less value of 0.21. Think I will move the equipment into the garage and do a set up there to see what readings I will find there.