How to externally detect liquid level in a container?

We have a chemical pump that supplies the pool with liquid chlorine and muriatic acid. For the first time ever, hubby forgot to check chemical levels and discovered over the weekend that the chlorine container was empty :frowning: .

So, any recommendations for monitoring the chemical levels? The chemicals are harsh so internal monitoring is probably out of the question, but you can see the level of chemicals from the outside of the containers.

Something like this, maybe? I ran across it while searching for a flow switch.

1 Like

Are the chemicals clear?

I will check that would you integrate that with Hubitat or could you?

The chlorine looks like water, the muriatic acid is kind of a clear yellow color.

Ok, I was thinking a light sensor, where dark = full light = empty but that would require a light on the other side of the containers or schedule the rule to only check during the day and it may not work with either liquid since there may not be enough tint to change the light level sufficiently.

You'd want to use an ultrasonic distance sensor for a caustic materials solution. Because the sensor never touches the liquid, there's no chance of it degrading.

Basically, you take the sensor and down-fire it into a container. Then, you connect that to an Arduino and use HubDuino to tie it into HE.

AFAIK, there is no off the shelf solution for something like this, so you'd almost have to DIY it.

1 Like

I kind of thought DIY was the answer, which means I'll pass it on to the electronics guy in the family! :smiley:

Would that sensor work through the wall of the container? Because those chemicals are in a bucket with a lid and still manage to outgas.

1 Like

No, because it measures distance using an ultrasonic ping (of sorts). You could drill a hole in the top of the container and face the sensor downward. Then, silicon around it so that you don't get any outgasing from that entry point.

So, in a 5 gallon bucket, you have 44.28 cm of height (bottom of the ring to the bottom of the bucket). So, every 8cm is a gallon (roughly). You could have the Arduino alert when the distance from the lid is 10cm, 18cm, 26cm, and 38cm.

Does that make sense?

1 Like

Depending upon how large the chemical containers are, you could have them sit on a plate with springs below it, and then use a standard micro switch below the plate.

There’d be no contact with the fluid, or it’s gasses, and you’d be free to use an off-the-shelf contact sensor (eg. Zigbee/ZWave) - assuming it’s within RF range.

My coffee machine has something like that to turn off the boiler when it’s tank is empty. Hardest part would be sizing the springs :wink:


OK, all that does make sense! Alerting every time the level goes down by a gallon. I will pass it on to hubby and see if he takes the bait :wink: .

1 Like

@guessed You have some of the BEST (and most out there) ideas for things... LOL

1 Like

I will pass that on to hubby too--when we were discussing this morning we only got as far as "It can't come into contact with the chemicals!"

1 Like

Using @guessed's idea you could do something like this..

and another one using a Wii Balance Board..


You are reading my mind; I thought of a scale as well, thinking it might be easier than finding the right springs!

This is a fairly common application on boats water tanks, diesel tanks, waste tanks.

Since any product containing the word "Marine" in the product name is significantly more expensive than the same product without that moniker, I would not recommend this option unless all else fails.

Several manufacturers make ultrasonic tank monitoring equipment. It would be really fun to get the Hubitat Team to develop and interface to NMEA 2000 (the marine networking "standard").

1 Like

Yup, I was thinking about buying a "Marine" water sensor for my saltwater reservoir and then saw the prices. Ummmm, nope! LOL

1 Like

How about a simple float switch installed to the level at which you need to be alerted that its too low. Connect the wires to a z-wave dry contact sensor.

@denise.grider, I use this sensor with Hubduino to alert me when my rust removing addative tank for my sprinklers gets low. Ever since I installed Rachio the tank takes a REALLY long time to deplete and I don't want to end up a rust coating on my walls because I forgot to refill my tank. I have the SR04t ultrasonic sensor attached to an esp8266 device in my garage. I also keep this sprinkler on my Grafana dashboard so I'm aware of the level.


1 Like

If it was me... I wouldn't care about the levels; just a single level or threshold I care that it goes below. I'm sort of up to my ears in ESP8266/RPI projects so I wouldn't go for a DIY approach on this particular one.

Assuming you can mount something in the reservoirs buy a level switch like this:

and hook it up to the terminals of this:

Do it twice for both tanks. Call it done.

If you want a project that uses a ESP8266 (low cost both operating and to purchase compared to a pi) and an ultrasonic distance sensor look here.

You would have most of the code for the firmware. Then you just need a driver. Even though I have built a lot of DIY stuff though I still say go mostly OOB. I have too much to maintain and I'm slowly replacing stuff I can with retail/less upkeep solutions.


Download the Hubitat app