Measure distance to water level within a cylinder

Disclaimer: Maybe this is too unrelated to Arduino although that's the microcontroller I'm working with. I'm just not sure where else to turn.

The problem I'm trying to solve is to figure out how much water there is left in a water tank. The tank itself is digged down into the ground and max capacity is probably somewhere around 1800 liters.

This is what it looks like:

You can see the mount for the current ultrasonic sensor I'm experimenting with, HC-SR04. With this sensor I get fairly good result but, and this was getting more apparent as the distance to the water level was increasing, I do get some weird measurements.

Currently, the correct distance is ~114cm but it reads values around 103cm far more often than I see the correct one. My guess is it has to do with some weird echoing going on within the cylinder. In some cases I could get more or less always the correct value by holding my palm "around" the sensor eyes, trying to shield of echo. But then later, trying to do the same thing I didn't get as good result. So the "fix" isn't that easy to reproduce.

I should also mention. Once the water level drops from 100% to approx. 95% a divider (~2cm thick) starts to be visible above the water level. It's a divider inside the water tank and seen from above it cuts the cylinder in half. Some centimeters above the divider is also where the cylinder ends. The cylinder is only for reaching the water tank from ground level. My guess is that the sound waves are bouncing on the inside of the cylinder and then the divider and back to the sensor making a shorter path than some extra centimeters down to the water level and back.

I guess there's multiple questions.

Why do I get weird readings and what can I do to fix it? Is it due to echo within the cylinder?
And, is there any better alternative to read the distance to the water level (or ultimately read the volume of the tank)?
If ultrasonic sensors is the way to go, is there any better (more expensive?) sensors which could do better than HC-SR04? I yet have to try the same scenario with the PING))) sensor. Don't know if it behaves any different from HC-SR04. I guess the more narrow signal the better.

Thanks

Your going to get a ton of standing waves in that set-up. They would be bouncing off everything like the water, the side of the main pipe, those conduits and even the wire and small pipe. Depending on the level of the water, different echos could and would dominate.

I'd suggest you try to clear the 'view' of the HS-SR04. Try to mount it as close to the center of the main pipe as possible, trim the corrugated conduit and strap everything else as closely to the sides of the main pipe as you can and keep them out of the field of view of the sensor.

One simple alternative might be pressure sensor at the bottom of the tank.