NMEA2000 tank sensor CX5001 not shown

I have a CX5001 that monitor tanks (fuel, water, black water) on my boat. The data are shown on my NMEA Network and show MFD “AXIOM”, and I can see them in all my devices that understand PGN 127505.

But my VenusOS RPI doesn’t show these data, although the this
Device is listed in NMEA Device list.
And SIGNAL K see data from this sensor : tanks.fuel.0.currentLevel n2k-on-vecan-socket.48 (127505)
I also managed to display the bears via signal k in cerbo thanks to that :slight_smile: GitHub - pdjr-archive/venus-signalk-tank-service: Inject Signal K tank data into Venus OS.
But I would prefer without signal K.

I saw in Victron documentation that it should work. Am I wrong ?

I could be wrong, but maybe Victron is listening for another address than 48 to be the tank level sensor?

1 Like

I can’t change the address. The only thing I can do is ask the creators to add this sensor. Running new wires through the boat is a nightmare.

I think you may be right that address 48 would have to be added

Hey @carlosgaros , done! Per v3.50~31

1 Like

Ps. Thank you of the request and all the details; that helped doing this quickly

Very thanks . Possible check after 26.10 .2024 .

Confirm work and show device list . tank type set device "fuel water black water " <good work
Only one problem not possible setting . Capacity always show 80L .

I am having the same problem with a Raymarine system that is connected to Ekrano GX through NMEA 2000. NMEA has data for tanks coming from EmpirBus, and I can see those values on Signal K running on the Ekrano. However they do not show up on the native GUI for Ekrano. I am using v3.52.

Any suggestions?

@mpvader any thoughts? Happy to collect and share additional debugging information.

Hi, the GX manual shows exactly what the requirements are to get N2K tank data read into Venus OS properly,

For any non working senders, usually it comes down to that someone from our side will have to login over the remote support feature and see what the issue is.

Or, change your tank sender to one of the officially supported ones (see the manual), which could often be a much quicker solution.

Okay, my mistake. I was under the impression that NMEA tank sensor support was generic rather than device-dependent, which is apparently not the case. EmpirBus is not listed as a tested or supported device, and I suspect it falls under the category mentioned in the manual: “A single function reporting multiple Fluid Levels is currently not supported.” So it is clearly not supported.

One interesting tidbit is that, at least in Signal K, this appears to be fairly generic. Many of the tank sensors do show up as Signal K paths, including those from EmpirBus. I took advantage of that and the latest virtual sensor feature in Node-RED (which is super slick!) to solve the issue with a bit of customization, but I believe it is fairly generic across different tank sensor types. Here is how it looks:

And the corresponding output on the GX display:

2 Likes

Nice!

Hi,

This has been a long term ambition of mine to get working, but there are knowledge gaps on my end. I’m not familiar with using Signal K or Node-RED.

I have a Mercury outboard with the VesselView N2K gateway. I have a CANable adapter linking my RPi with the latest VenusOS to the N2K network.

Everything shows up correctly on my Simrad MFD, but I do not see tank levels on the RPi. The RPi does see the GPS data from the N2K network. The Victron webapp works on the MFD and I can see all the inverter, MPPT, battery data etc from VenusOS.

I have just updated the RPi to the latest VenusOS Large and in Signal K I have added the N2K network and can see the fuel tank capacity and level in in the list of data sources:

@ilker are you able to assist with the details of how you added the virtual sensor in Signal K and got that to display in VenusOS?

Anny assistance is greatly appreciated.

Ben.

@benc-ipind, this is a rather advanced topic, but if you managed to get a Raspberry Pi working, you should be able to handle it.

I’ve published a series of video tutorials that explain these concepts in detail, and the one titled Displaying Seawater Temperature and Tank Levels on Victron GX specifically addresses this subject.

It looks like you’ve already got Signal K sorted out, but you might also want to review the introductory tutorials to catch some of the finer details. You can find them on our YouTube channel.

1 Like

Thanks for coming back to me.

Yep, I’m fairly across RPi and Arduino and have been running Venus OS on Rpis in various installs for years, but Signal K and Node-RED are new territory. I must apologise as a little more reading has revealed that the virtual sensors are not available in the public release of Venus OS as yet. It’s only available in the 3.60 beta at the moment.

I’ll definitely watch your videos too. I’m updating to 3.60-25 beta now and will have a play. I’ll come back with my results soon.

Thanks again,
Ben.

Oh man! I could kiss you!

@peder.berglund and @newfd90 I know you were struggling with similar issues. Hopefully this helps.

Venus OS 3.60 beta wasn’t required. Once I followed your other video, I was in a better place as I initially had issues with Node Red going into a restart loop, etc. I rolled back to 3.54 and everything is faster and it runs sweet.

After a little trial an error as I got my head around how it works, I was initially get the tank level percentage, but not the the capacity remaining. I’ve now worked that out. A second function was needed to calculate the remaining capacity (thought Venus would have done this natively?) outputting to a second Victron Custom Control. I also changed the Signal K Subscribe to only send on a value change and reduced the period to 5000ms to stop the constant updating on the screen on minute value changes.

You have made my day!

The only issue I am having is trying to replicate your Seawater temp example. I get the sensor in the Venus GUI, but never get a value - even before I add the function to convert kelvin to celsius. It shows a value of “Ok” in the device list.

Glad it worked!

On seawater temperature, what value do you see for environment.water.temperature when you go to Signal K data browser? Normally the depth sounder emits that but it may not be available in your system.

You are correct, they are from the depth sounder and I have two transducers.

I just noticed in VRM that the Seawater title has shown up, but it is displaying the temperature of the RPi CPU.

This is all the temperature sources that Signal K sees:

The outside temp can be ignored. The MFD has the ability to have one, but there isn’t one connected, so it not -54C here. :slight_smile:

The Seawater title overwriting the RPi CPU title led me to the device instance being generated when you create a virtual sensor in Node Red.

It always starts at 100 and increments by 1 for each subsequent sensor of the same type.

I created 2 more temp sensors and 102 worked perfectly. 101 overwrote the Electronics Bay temp title.

I’m must be missing something, but I can’t see a way to change what number it starts incrementing from or how to manually set it?

UPDATE:

I gave up looking.

I found I could just add more ‘dummy’ temp sensors till I got past the device instance numbers that were already in use, Deploy, delete the ‘dummies’ and Deploy again. A reboot of Venus OS is required to clear out the ‘dummies’.

That said, if you want to add more in the future, you have to do the process again as it does not continue incrementing from the device instance you kept. It starts at 100 again.

I have opened a ticket on the Github repository:

https://github.com/victronenergy/node-red-contrib-victron/issues/216

ANOTHER UPDATE (you’re limited to 3 replies in a day on this forum):

So 30mins after lodging the bug report, I’ve just discovered I can edit the Device Instances in the new v2 GUI web interface:

I have tested changing the device instance in the new v2 GUI, and the change does flow back to Node Red; so that’s good.