We heat our house with oil (grumble grumble grumble) but our float sensor is not a very accurate measure and it’s out of the way to actually see. Has anyone come across a sensor that works with HA and has been reliable? Bonus points for something that still has an “analog” view in case of problem
I’ve seen some sensors on Amazon but I’m skeptical of anything through there.
Get a Beckett Rocket and an RTL-SDR dongle. You can use rtl_433 to decode the chirps from the Rocket and do whatever you want with them. You keep the float, it screws into an unused port on the top of the tank.
I think this is exactly what I’m looking for! Have you used these in the past? I like that I can keep the float
My brother has a Rocket in his tank, it works great.
I have a similar setup but with an ultrasonic sensor instead of a float sensor. rtl_433 had support for the sensor, and I could get a good signal reception with an RTL-SDR and cheap 433MHz antenna. I can even pick up signals from a neighbours tank that is some distance away.
The Rocket is ultrasonic.
I got a sensor set up last year and it’s great. You need a raspberry pi with a camera.
https://github.com/tangentaudio/opencv_tank_gauge
The project includes all sorts of 3D printed goodies that I skipped. Since it’s optical in nature, the readings change if there’s a change in lighting (garage door open, etc). I just painted the inside of a cardboard box matte black and covered the whole thing. Works great.
Another thing I did differently is I used an IR camera. The project is designed around normal cameras. There’s a closed issue on GitHub where I figure out the settings to change, so you can check that out if you want.
It feeds into Home Assistant and I get notified when the oil is low, can look at graphs, etc.
This is a really cool project. I do have a pi zero laying around…
Have you had any issues with this setup? Also was the ir necessary because of the interior of the box?
The only problem I had was because of changing light where the tank is. Up until a month ago, it was out in the open. If the garage door opened or the sun came through the window, the reading would jump because the computer would think a reflection was the float sensor.
Covering it with the spray-painted Amazon box has (almost) completely solved that problem. Here’s a screenshot:
Around Jan. 5th (earlier this month) is when I installed the box. You can see how the line smooths out, although it did jump around on the 18th for some reason.It has been amazingly solid, and I never even think about it. On occasion I SSH in to do a “sudo apt update”, but it never crashes or needs debugging.
Getting the camera pointed at it was tricky. There’s a pretty narrow range of being “just right”. Cameras for Pi’s don’t typically have adjustable focus, but I bought one that does.
I got an IR camera because it’s totally dark in the garage at night. The camera has built in IR blasters (this is the one I got). If you get a normal camera, I would still cover it with a box, and you could probably rig up some low-powered LED for light.
It definitely takes some tinkering to get it set up. Once the software is installed, then you have to get the camera pointed correctly (you can see it live on your phone as you move it around, at least). Then you have to make some small adjustments in the settings to make sure the software is picking up the 100/75/50/25/0 markings on your gauge, as well as the float gauge. The guide has decent instructions, and fortunately once it’s set, you don’t have to touch it ever again.
When it talks to Home Assistant, it just provides a number. If you want long-term history, you need to give HA more than a number. To do this, I created a Template under Settings -> Helpers. The template takes the number (0-100) and turns it into a percentage. HA will then keep long term history for you.
So, to sum it all up: An IR camera will require changes to the gauge.py file as seen here because it’s a different image hue (sort of pinkish).
An enclosure definitely helps in my case, but it depends where your tank is located. Matte Black spray paint is good.
Be prepared to tinker and follow the directions precisely.
When you’re done, create a Template Sensor to get those sweet long-term graphs.Thank you so much for this detail! You’ve made it sound like a fun (and wonderfully over engineered) solution. I may just give it a go because it sounds like I may learn a lot!
I also have an oil boiler, and a tank in the garden. The tank was fitting with an Apollo Ultrasonic oil level sensor, which sends a signal to base station with a very basic LCD display in the house via 433Mhz radio.
I use an RTL-SDR USB radio dongle, a cheap 433MHz antenna and the rtl_433 software to monitor the signals from the ultrasonic sensor, which transits roughly once an hour. The level measurement transmitted is a fairly accurate centimetre value (I compared it with manual measurements with a dip stick for a few months).
The base station only showed a vague level indication with 10 bars, but now I have more a more precise smart display of the tank level, without any extra modification to the tank system.
I’m starting to wonder if there are white label ultrasonic sensors out there since this looks like the Beckett. It also looks like this won’t support 120 AC. I’m in the USA and our namby pamby grid can’t handle it.
VL53L0X can measure distance to 2 meters
Honeywell ABP pressure sensor and an aquarium pump could make a bubbler tube sensor
Can you measure flow from the tank to the furnace instead?
I have oil heat too and I struggle to imagine how you would add a sensor to it. That tank is solid and thick, trying to get anything inside it is a horrible idea and trying to sense through the metal is going to be prone to problems. In the past I’ve just pointed a camera at the main gauge.
My tank came with a mounting point on the top of it where you can fit an ultrasonic sensor. You just configure it with the depth of your tank and that’s it. I have a unit inside that shows how much oil I have left.
Apparently, it uses an RF protocol that can be intercepted and interpreted in HA with the right dongle but I haven’t done that.
Edit: mine looks like this although with different branding.
The only option I could think of would be integrating an industrial oil tank sensor.
A wire sensor that uses Time-domain-reflectometry would likely be the best, but expensive. This uses a corrosion resistant cable and uses wave reflections when a pulse changes mediums (air to oil) in order to give a level reading.
More difficult to DIY though. You have to know what you are doing.
Ultrasonic sensor might work, but it depends on if oil for home heating gives off fumes that would interfere with it.
Otherwise another DIY solution would be optical sensing like a ToF sensor. Maybe the most realistic for easy integration in ESPHome, but like the ultrasonic sensor, you would have to protect it from a full tank contaminating the sensor with oil.
If the tank is plastic, a capacitive sensor could work too.
ESPHome has support for a few sensors that might get the job done… would weighing the tank be an option, or are you looking for something more off-the-shelf?
I’ve seen a few that screw into the float sensor location. But maybe a DIY would be a good path!
I’ve yet to mess around with any of the liquid level sensing tech, so I don’t have any specific recommendations… but ESPHome has a huge array of different sensor filtering options which should really help. I think sensor noise and settling time are a lot of what complicate the task.