Oil Tank Level Monitor Watchman Sonic rtl_433 Integration for RF sensors or level sensors

Are you sure you’re receiving data from the correct unit?
The “id” value is what differentiates.
I suggest this because on initial setup I was receiving readings from a neighbours oil tank, which was better positioned for reception than my own due to walls in the way. It doesn’t always pick up the closest first.

Sure - apologies if I’m forgetting any steps but a brief outline from my setup:

  1. MQTT
    https://www.home-assistant.io/integrations/mqtt/
    There’s an MQTT broker add-on so maybe start there. I already had this running for other devices beforehand so perhaps I oversimplified it. Get this running first.

  2. Dongle. Plug it in to your HA computer, preferably via a usb extension cable as locating it close to other electronics can cause RF noise.

  3. RTL_433 add-on - in the HA add-on store, click the 3 dot menu upper right, and add this repository: https://github.com/pbkhrv/rtl_433-hass-addons
    Install the RTL_433 add-on. There should be instructions there for further details on this but in an ideal world you run it, it discovers your usb dongle and runs on default config. You may need to configure it to talk to your MQTT broker(step 1) depending on your setup. It’s all in the docs there.
    I messed around with a lot of configuration options here but now that I upgraded to a nooelec dongle with 433mhz antenna it runs fine on default settings.

  4. Another add-on, from the same repository: rtl_433_mqtt_autodiscovery. This is basically a script to take the info the rtl_433 add-on is receiving, and automatically create entities in MQTT, the first step add-on. You run this for as long as it takes to discover the devices you want, then you stop it and forget about it. It will create an mqtt device with a depth sensor, temperature, and signal/timestamp.

Other bits: The watchman sonic devices I have update exactly every 17 minutes. The first one discovered was not actually mine but a neighbours. This is painful for testing, as you have to wait 17 minutes between updates to know your config is working. If you go and hold a magnet against the dot on the side of the watchman unit to you can put it in pairing mode, it will send out constant updates for a few minutes. I found this very useful to position my antenna for maximum snr.

Hope that helps? Shout if any other questions or if you get caught on any step along the way, it might jog my memory.

1 Like

Thank you!! I can now see the results (I’ll need to double check that it’s picking up my tank and not my neighbours but I’m getting a read!)

Now I need to try and wrap my head around the various coding elements of the first post to translate the depth to a % fill etc.! Did you do that or just keep the depth?

Lastly - the depth - is this the depth of oil or the depth of air above the oil?

Depth of air. It measures the distance to the surface of the oil, so the greater the depth - the emptier the tank.
The simplest thing would be to measure the height of your tank and know that as the depth sensor approaches that, you’re running empty.
The formulae above are for more accurately calculating this as a litres amount which is pretty complicated in a cylindrical tank.

Hey thanks for youre reply, yeah I believe it is mine that I am picking up, only getting data from one and its the closest to the antenna. I will do the magnet trick but cant see me picking up a neighbours at all, (think they are gas)

Similar to @CBDesignS above, I moved from RPi & SDR+ to a LilyGo 433Mhz LoRa board V1.6.1 primarily because I thought that the total cost of the Pi and SDR+ stick was overkill (cost, size, heat) for receiving data from my tank. I flashed with LilyGo-RTL_433-FSK from the OpenMQTTGateway project (1.8), and then I changed the default frequency to 433.921 MHz.
Initially I was a little concerned that something was wrong, but eventually (after quite a few hours) I started to receive messages from the tank. I presume that the board took some time to adjust to the noise levels.
Early days, but if the messages come through reliably, then I’m thinking that this is a more convenient solution for my Oil Tank Monitor.

For those embarking on the RPi / SDR project, this is the command I used on the Raspberry Pi.
rtl_433 -F "mqtt://mosquitto-core.local:1883,pass=password,user=userid,retain=1,events=MyPi/rtl_433" -M time:unix:usec:utc -Y autolevel -Y minmax -Y magest -M level -M noise -R 234 &

Note that for the Watchman Advanced, 234 is the protocol needed to screen out all of those TPMS messages.

When I search for these adapters, they all seem quite generic and cheap. Have you seen a more specific one that has a 433mhz antenna that you could recommend?

Hi Paul, not a recommendation, but the 433Mhz version of this one was what I bought.