Anyone connected an eflow Bluetooth water meter

Hello everyone,

I have an old e-flow inline Bluetooth water meter. However it is actually really annoying having a separate app to check water level.

I can see that victron CERBRO has the ability to connect to Bluetooth sensors so it can show up on my touch screen.

Has anyone connected an inline water meter like the e-flow?

I am also open to recommendations on other water meters.

I have a 110L tank mounted under my long wheel base sprinter so it’s a long 200cm tank that is only around 30cm tall and I don’t know if the other sensors are as accurate in this situation.

1 Like

The Cerbo can not read random Bluetooth sensors, it has to be programmed to decrypt them. You may be lucky that someone has written add on script for this that answers, or can be found via a search or on github. Otherwise, consider the Mopeka level sensors which the Cerbo has been programmed to read, these work over a 30cm range. Have a look at Section 6.7 and 6.8 of the Cerbo manual.

So I have been learning Node-Red over the last few days and I think it may be able to help me!

But I cant find out how to connect to random bluetooth devices.
I know my device mac address but I don’t know which node to use to connect.

I have tried a few community bluetooth nodes but sometimes they dont install or create lots of ‘depreciated warnings’.

Any help would be greatly appreciated.


Screenshot above is using the community nodes ‘node-red-contrib-victron-ble’ but doesnt seem to do anything :frowning:

The eflow meter is branded as Topargee, but produced by Savant electronics as specifically for RV’s Part number BT-058L-44EF

See https://www.digisavant.com/product/25

I have successfully connected the sensor as with 2 wires to the Cerbo Mk2 as a digital input, and after some trial and error, can recommend setting the multiplier in the device settings to 0.004503. This seems to be +/- 2% accuracy over my 650 litre tank.

But

I have found no way to display the reading on the screen as a tank or VRM.

The cerbo doesn’t seem to see the Bluetooth signal .

If someone can help with the node red or signal k, I’d be most grateful - I don’t know where to start with these, as Fortran was the language and cards were what the mainframe read when I went to University..

I’ve looked on git hub, but have not found anything appropriate.

Hi @Snafud , Let me know if your still having trouble displaying as a tank. I figured that part out!

Still struggling to get the ‘eflow’ to talk to the Cerbro Mk2 so I would love to know how you did that.

Hi Logan

I can’t help you with decoding the Bluetooth. What i did was to buy a second sensor, install it and run the ground and signal wires to the other end of the ( canal) boat where the Cerbo is installed .

NB you must have the Mark 2 Cerbo

Then I just plugged into the digital input…

I still have the flow, an̈d there is a gateway available to take the flow onto wifi and then a cloud for remote monitoring.

I’m heading to my boat later and will take some pics

What was the 2nd sensor you purchased?

In terms of node-red I currently have a virtual tank showing up on my display which I can update by node red.

The missing piece is a water sensor I can somehow connect to node red as well.

Hi Logan,

The Topargee kit is I believe Savant Electronics kit rebranded as Topargee. Please check out www.digisavant.com.

I think under products, you will find a Flow Meter that looks familiar, and also the sensor. Under their IoT section, they even have a hub to take the bluetooth to a cloud service via WiFi… In particular the “Bluetooth Water Gauge for RV”.

The Savant equipment is available from a number of sources in the UK, but I discovered more was available from Amazon in the USA, and at far lower prices than here, and a lot less than the Australian Topargee price I first paid.

So I have the Topargee Bluetooth kit setup on my boat, with the eFlow app on my phone. The fresh water tank is stainless steel and awkward to access, and hence I won’t be drilling holes in the top to fit any sort of float gauge.

The most common gauge on canal boats seems to be an “MCS” gauge. MCS use a pressure transponder to determine the head of water remaining in the tank, which is fine if the boat remained level and trimmed the same way at all times. They don’t, so the effective head of pressure changes, and hence the reading is unreliable.

So I bought the Topargee flush mount, and then the Bluetooth version when it came out. Both are accurate, and allowed me to persuade the wife that we didn’t have to stop every day to take on fresh water.

But no display on the Victron…

Having discovered Savant, got the Hub, and can hence say while still at home that we don’t need to fill up with water before we go out on the boat…

But still not on the Victron or VRM!!

The Topargee sensor is the Savant FS-4400H - I got one from Amazon in the States fo about £6, and you can get the sensor with another meter for about £25.

So I installed the second sensor in the water pipe, the power to the sensor and the power to the Cerbo are a common ground (negative) to the battery. I put in a £6 buck convertor to bring the 12V supply down to the 3.3V required, ran telephone cable the 15m to the Cerbo MK2, and plugged the ground and signal into the digital input on the Cerbo. Set the input to pulse meter, and then trialed and errored a bit to fix the ‘K’ factor, or what =Victron call a ‘multiplier’ the the device setup. For my pump and pipe work, the ‘multiplier’ is 0.004503.

So I have one system counting down from full (the Topargee) and one counting up from empty (on the Cerbo). They tally pretty well (+/* 2%).

I have now watched a couple of YouTubes and learnt enough of Node Red to get the sensor aggregate into a node Red Flow, and even into a Dashboard. Disturbingly simple to achieve in the end!!

All that is left for me now is to wait till Victron produce the routine to either

  1. allow me to include my node red dashboard on the tank page of the Cerbo (which I don’t think is likely) or
  2. wait till Victron /Savant / Topargee talk to each other to display the Bluetooth output on the Cerbo. They have done this for Ruuvi sensors, and now for the Gobius tank sensors (as I have on my Black Tank - and is working well).

Good luck, and remember the pulse meter is only on the Mk2 Cerbo. I hope you don’t have to upgrade the Cerbo too, as I did.

Thanks John! I will definitely look into that :smiley:

As for your node red situation. I think I maybe able to help setting up a virtual tank.

Hopefully this demo workflow below gives you the missing pieces on how virtual tanks work.

Since I don’t understand what you get from the ‘input to pulse meter’ the following workflow will need to be tweaked to use that value correctly.
E.g. Does the pulse meter give you one big number of water used, or a running number that you add up in node red?

The key part its easy to get stuck on is you need both

  • A ‘Virtual Device Node’ (Top Left) to create the device and set the max value.
  • And a ‘Custom Control Node’ (Bottom Right) to set the device current value.

Copy and paste these nodes into a new flow and have a play around until you get it to work.

[
    {
        "id": "01efa392657a784b",
        "type": "tab",
        "label": "Virtual Tank Demo",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "14dfb6fd0e04d3f0",
        "type": "victron-input-pulsemeter",
        "z": "01efa392657a784b",
        "service": "com.victronenergy.pulsemeter/2",
        "path": "",
        "serviceObj": {
            "service": "com.victronenergy.pulsemeter/2",
            "name": "Generic pulse meter"
        },
        "name": "",
        "onlyChanges": false,
        "x": 110,
        "y": 340,
        "wires": [
            [
                "e61d75ca73cd467a"
            ]
        ]
    },
    {
        "id": "516a97188e93a0ca",
        "type": "comment",
        "z": "01efa392657a784b",
        "name": "^ Or digital input",
        "info": "",
        "x": 120,
        "y": 380,
        "wires": []
    },
    {
        "id": "e61d75ca73cd467a",
        "type": "function",
        "z": "01efa392657a784b",
        "name": "function (apply K value to get L)",
        "func": "\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 350,
        "y": 340,
        "wires": [
            [
                "00fb06dcbbd12848"
            ]
        ]
    },
    {
        "id": "00fb06dcbbd12848",
        "type": "function",
        "z": "01efa392657a784b",
        "name": "function (Global.Capacity - Used)",
        "func": "let currentUsed = global.get(\"freshWaterUsed\");\nlet capacity = global.get(\"freshWaterCapacity\");\n\n// FYI can also set gobal values using global.set(\"freshWaterUsed\")\n\nlet currentLevel = capacity - currentUsed // Hopefully a number like 80 or 100. Representing the L remaining \n\nreturn [{payload: currentLevel}];",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 680,
        "y": 340,
        "wires": [
            [
                "c4edc95b558aeba1"
            ]
        ]
    },
    {
        "id": "c4edc95b558aeba1",
        "type": "victron-output-custom",
        "z": "01efa392657a784b",
        "service": "com.victronenergy.tank/100",
        "path": "/Remaining",
        "serviceObj": {
            "service": "com.victronenergy.tank/100",
            "name": "Virtual Fresh water (100)"
        },
        "pathObj": {
            "path": "/Remaining",
            "name": "/Remaining",
            "type": "number",
            "value": 91
        },
        "name": "",
        "onlyChanges": false,
        "x": 1050,
        "y": 340,
        "wires": []
    },
    {
        "id": "e619fbe6cc8b18b2",
        "type": "comment",
        "z": "01efa392657a784b",
        "name": "^ (Empty) Ask John Mosenthal for code",
        "info": "",
        "x": 370,
        "y": 380,
        "wires": []
    },
    {
        "id": "f70f14ae17e5c66a",
        "type": "change",
        "z": "01efa392657a784b",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "freshWaterCapacity",
                "pt": "global",
                "to": "payload",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 350,
        "y": 140,
        "wires": [
            []
        ]
    },
    {
        "id": "07d5432fa6db38d9",
        "type": "inject",
        "z": "01efa392657a784b",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "200",
        "payloadType": "num",
        "x": 90,
        "y": 140,
        "wires": [
            [
                "f70f14ae17e5c66a"
            ]
        ]
    },
    {
        "id": "7f53ea82537a2202",
        "type": "comment",
        "z": "01efa392657a784b",
        "name": "^ Change this number to your capcity and run once",
        "info": "",
        "x": 230,
        "y": 180,
        "wires": []
    },
    {
        "id": "40e6ec56d3604f8f",
        "type": "change",
        "z": "01efa392657a784b",
        "name": "set global.freshWaterUsed to 0",
        "rules": [
            {
                "t": "set",
                "p": "freshWaterUsed",
                "pt": "global",
                "to": "0",
                "tot": "num"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 390,
        "y": 240,
        "wires": [
            []
        ]
    },
    {
        "id": "3cd449f30281fa32",
        "type": "victron-input-digitalinput",
        "z": "01efa392657a784b",
        "service": "com.victronenergy.digitalinput/4",
        "path": "",
        "serviceObj": {
            "service": "com.victronenergy.digitalinput/4",
            "name": "Door alarm"
        },
        "name": "",
        "onlyChanges": false,
        "x": 110,
        "y": 240,
        "wires": [
            [
                "40e6ec56d3604f8f"
            ]
        ]
    },
    {
        "id": "431b3dd90d8967a1",
        "type": "comment",
        "z": "01efa392657a784b",
        "name": "^ Attach a button to relay 4. When clicked it resets used value to 0",
        "info": "",
        "x": 280,
        "y": 280,
        "wires": []
    },
    {
        "id": "34f28ec712b4612f",
        "type": "victron-virtual",
        "z": "01efa392657a784b",
        "name": "Virtual Fresh water",
        "device": "tank",
        "default_values": false,
        "battery_capacity": 25,
        "include_battery_temperature": false,
        "grid_nrofphases": 1,
        "include_motor_temp": false,
        "include_controller_temp": false,
        "include_coolant_temp": false,
        "include_motor_rpm": true,
        "include_motor_direction": true,
        "position": 0,
        "pvinverter_nrofphases": 1,
        "fluid_type": "1",
        "include_tank_battery": false,
        "include_tank_temperature": false,
        "tank_battery_voltage": 3.3,
        "tank_capacity": "110",
        "temperature_type": 2,
        "include_humidity": false,
        "include_pressure": false,
        "include_temp_battery": false,
        "temp_battery_voltage": 3.3,
        "x": 130,
        "y": 40,
        "wires": []
    },
    {
        "id": "fb0314faeca6374a",
        "type": "comment",
        "z": "01efa392657a784b",
        "name": "^ This is required to create the virtual device on system boot. (Change capacity value in here)",
        "info": "",
        "x": 360,
        "y": 80,
        "wires": []
    },
    {
        "id": "f7336237c2eed271",
        "type": "comment",
        "z": "01efa392657a784b",
        "name": "^ This changes the current level of the tank",
        "info": "",
        "x": 1060,
        "y": 380,
        "wires": []
    },
    {
        "id": "bb749a96292bd5be",
        "type": "comment",
        "z": "01efa392657a784b",
        "name": "^ WIP. Update with values from pulse meter",
        "info": "",
        "x": 710,
        "y": 380,
        "wires": []
    }
]

Let me know if you have any questions.

Hi Logan,

Thank you for the flow and coding - I was unaware of “Virtual Tanks” - I’m still on Chapter 1 of node red for dummies and that concept is possibly in Volume 2.

Since I don’t understand what you get from the ‘input to pulse meter’ the following workflow will need to be tweaked to use that value correctly.
E.g. Does the pulse meter give you one big number of water used, or a running number that you add up in node red?

Simple answer to your question is either /or - your choice, but defaults to AGGREGATE.

The sensor creates a discreet signal with each rotation of the turbine, and the digital input of the Cerbo counts these pulses a bit like a rev counter on a car, but unlike a car, it totals the pulses only as an aggregate, not as an aggregate over a period of time. i.e. Total Revs, not RPM.
Then by setting the size of the Virtual Tank at (in my case, 650 Liters = X), the aggregate number is either filling or emptying the tank (filling is 0+X =Y, and emptying is 650-X = Y).

For graphical display, as a percentage, its then Y/650*100.

I see a weekend in front of a screen ahead of me!

How did you get the Gobius connected? According to the press release for 3.67, Gobius via Bluetooth is supported - but I’ve not been able to set it up and there are no instructions anywhere…

Hi Carl,

There are three distinct types of Gobius systems: Gobius 4, Gobius Pro and Gobius C. I have the (original) Gobius 4 on my waste Black Water Tank. That is connected to the Cerbo from the control box with a 4 core telephone lead. See www.gobiuspro.com/wpcontent/uploads/2021/04/Connection_Gobius_VictronEnergy-AM.pdf

For the Gobius Pro, see www.gobiuspro.com/wp-content/uploads/2021/04/Gobius_Pro_Cerbo-GX_May-2021_1.pdf

For the Bluetooth Gobius C, please see Documentation - Gobius C