Converting nmea2k GPS pngs
I am trying to get the geofence in Victron VRM to work. I have a Garmin MFD that is sending position data in a format that the cerbo does not understand. Victron team says they will look into it, but that it can take a long time…
Is it possible to convert position data with signal k, and sent it out over NMEA 2000 so that the cerbo will understand it?
https://www.victronenergy.com/media/pg/Cerbo_GX/en/connecting-supported-non-victron-products.html#UUID-ab1beab9-8e31-3274-57c5-c93b22c2aafb
The NMEA 2000 device class must be 60, Navigation.
The NMEA 2000 device function must be 145, Ownship Position (GNSS).
Position (latitude, longtitude) must be transmitted in PGN 129025.
Height, which is optional, must be transmitted in PGN 129029.
Course and speed (both optional), must be transmitted in PGN 129026.
76 Replies
Are you running node-red with victron nodes?
If so; you can create a virtual GPS device on your cerbo gx and get the inputs from your signalk (that can get it from your NMEA). In that way, I've send the GPS position from my AIS to Cerbo.

Interesting!
No, I am not using node red on the cerbo. I am using it on my home assistant server, so I am familiar with it. Can you share that flow?
Hmm
What is the signalk-subscribe? It appears as unknown in my install. I run signalk on a separate rpi

These are nodes available only when you run node red as a plugin in signalk. So you should run there instead
Yes I see that this is the embedded plugin. It will not help to run that plugin since my sk installation is running on a separate pi. I could however send data from signalk to cerbo using mqtt for example. Anyone has that up and running?
you can run the signalk server on your raspberry pi, but you should run node-red on that same machine as plugin of sk. within there you can run the victron node pallet. then you can make a connection with cerbo through mqtt over lan to your raspberry to communicate with your victron. thats the setup i also have
use the victron plugin on your signalk too
so:
raspberry pi with:
signalk server
signalk node-red plugin (includes the embedded nodes)
node-red victron pallet install
signalk victron plugin (and configure as mqtt over lan)
cerbo with:
mqtt over lan
NO need for signalk node-red here
Aha, I see. Thanks for the detailed explanation.
I already have the victron/venus plugin installed to get data from the cerbo.
Do you have to do a special configuration to get the mqtt part up and running or is that the default way of communicating with that plugin?
Ok, getting closer, but I think I am missing something here.
Getting an error on the custom control node on nodered on the pi. Unable to access the service endpoint:/pkugins/signalk-node-red…
I think I need to configure something about where the cerbo is?



@Kees , do you see any obvious reason for why this isn’t working?
Or maybe this is now related to your plugin @Scott Bender ?
what does your debug log in signalk looks like?
I could remember I also manually needed to add this line to the signalk configure file in ~/.signalk/signalk-server
export NODE_RED_DBUS_ADDRESS=venus.local:78
Will need to check the logs later this week. Do you have any other config on node red config? Have you defined a flow file?
Nope


I remember Venus MQTT host with venus.local did not work for me and needed to use the IP in that plugin
This
Log or IP?
export NODE_RED_DBUS_ADDRESS=venus.local:78
assuming venus.local works
but that has to be added to ~/.signalk/signalk-serverI have now modified the file and changed to straight IP in the settings. Still not working. Getting this in the log:
"May 29 00:00:25 Error setting value for com.victronenergy.gps/100 /Fix: Error: No services available yet. Try again later.
May 29 00:00:26 Service com.victronenergy.gps/100 not found in cache. Publish may fail.
May 29 00:00:26 Error in setValue: No services available yet. Try again later.
May 29 00:00:26 Error setting value for com.victronenergy.gps/100 /Speed: Error: No services available yet. Try again later.
May 29 00:00:26 Service com.victronenergy.gps/100 not found in cache. Publish may fail.
May 29 00:00:26 Error in setValue: No services available yet. Try again later.
May 29 00:00:26 Error setting value for com.victronenergy.gps/100 /Course: Error: No services available yet. Try again later.
May 29 00:00:26 Service com.victronenergy.gps/100 not found in cache. Publish may fail.
May 29 00:00:26 Error in setValue: No services available yet. Try again later.
"
Did you add the virtual device node?
I don’t see it in the screenshot above
Oh. I see it now.

I just copied the flow from Kees
The version of VenusOS matters, although I’m not sure which version this was added.
I am on the latest beta
I wonder if there could be an issue when importing. Try deleting the Virtual Device and re-creating it.
I do have node red running on the cerbo device as well. To handle some sensors that I need when signalk is not running... Is that be an issue?
That should be fine
testing
And you may need to go select the options for each of the other Victron nodes.

tried to delete all the victron nodes and setting them in again
Did you deploy after re-creating the virtual device?
And it does have a connection, right? So other Victron nodes work?
does not look like any of the victron nodes work
May 29 00:19:44 29 May 00:19:44 - [error] [victron-output-custom:8cc50321315524e9] TypeError: Cannot read properties of undefined (reading 'disabled')
May 29 00:19:45 29 May 00:19:45 - [error] [victron-output-custom:8cc50321315524e9] TypeError: Cannot read properties of undefined (reading 'disabled')
May 29 00:19:46 29 May 00:19:46 - [error] [victron-output-custom:8cc50321315524e9] TypeError: Cannot read properties of undefined (reading 'disabled')
May 29 00:19:47 29 May 00:19:47 - [error] [victron-output-custom:8cc50321315524e9] TypeError: Cannot read properties of undefined (reading 'disabled')
Getting this in the log

modified file in the signalk server file
That export needs to be at the top.
and make sure that is all one line
like in the verry beginning?
Yes, has the be before the server is executed
Do another screenshot after you change it so I can verify
is it safer to do the ip rather than venus.local?
No
Make sure you can ping venus.local
As long as that works, I would use it. In theory, the ip could change
ha@Havards-MacBook-Air ~ % ping venus.local
PING venus.local (192.168.1.4): 56 data bytes
64 bytes from 192.168.1.4: icmp_seq=0 ttl=64 time=8.204 ms
64 bytes from 192.168.1.4: icmp_seq=1 ttl=64 time=2.914 ms
64 bytes from 192.168.1.4: icmp_seq=2 ttl=64 time=9.612 ms
64 bytes from 192.168.1.4: icmp_seq=3 ttl=64 time=3.557 ms
64 bytes from 192.168.1.4: icmp_seq=4 ttl=64 time=2.616 ms
64 bytes from 192.168.1.4: icmp_seq=5 ttl=64 time=8.126 ms
^X64 bytes from 192.168.1.4: icmp_seq=6 ttl=64 time=3.560 ms
64 bytes from 192.168.1.4: icmp_seq=7 ttl=64 time=2.830 ms
then I am good

like this then?
Sorry, after the /bin/sh line
ok
And make sure “export NODE_RED….
Is one line, looks like it is two
Discord may have been messing with our pastes above

Looks good
ok, will save and restart
still getting the same
strange

That has nothing to do with this
May 29 00:40:29 29 May 00:40:29 - [error] [victron-output-custom:8cc50321315524e9] TypeError: Cannot read properties of undefined (reading 'disabled')
May 29 00:40:30 29 May 00:40:30 - [error] [victron-output-custom:8cc50321315524e9] TypeError: Cannot read properties of undefined (reading 'disabled')
May 29 00:40:30 Error connecting to dbus: Error: connect ECONNREFUSED 192.168.1.4:78
May 29 00:40:31 29 May 00:40:31 - [error] [victron-output-custom:8cc50321315524e9] TypeError: Cannot read properties of undefined (reading 'disabled')
May 29 00:40:32 29 May 00:40:32 - [error] [victron-output-custom:8cc50321315524e9] TypeError: Cannot read properties of undefined (reading 'disabled')
May 29 00:40:33 29 May 00:40:33 - [error] [victron-output-custom:8cc50321315524e9] TypeError: Cannot read properties of undefined (reading 'disabled')
May 29 00:40:34 29 May 00:40:34 - [error] [victron-output-custom:8cc50321315524e9] TypeError: Cannot read properties of undefined (reading 'disabled')
May 29 00:40:35 29 May 00:40:35 - [error] [victron-output-custom:8cc50321315524e9] TypeError: Cannot read properties of undefined (reading 'disabled')
logs
Try to take a look at messages from node-red at startup
May 29 00:41:38 29 May 00:41:38 - [info] Welcome to Node-RED ===================
May 29 00:41:38 29 May 00:41:38 - [info] Node-RED version: v3.1.15
May 29 00:41:38 29 May 00:41:38 - [info] Node.js version: v18.20.8
May 29 00:41:38 29 May 00:41:38 - [info] Linux 6.12.20+rpt-rpi-2712 arm64 LE
May 29 00:41:39 29 May 00:41:39 - [info] Loading palette nodes
May 29 00:41:39 [object Object]
May 29 00:41:40 29 May 00:41:40 - [info] Context store : 'default' [module=memory]
May 29 00:41:40 29 May 00:41:40 - [info] User directory : /home/pi/.signalk/red
May 29 00:41:40 29 May 00:41:40 - [warn] Projects disabled : set editorTheme.projects.enabled=true to enable
May 29 00:41:40 29 May 00:41:40 - [warn] Flows file name not set. Generating name using hostname.
May 29 00:41:40 29 May 00:41:40 - [info] Flows file : /home/pi/.signalk/red/flows_boatpi.json
May 29 00:41:40 29 May 00:41:40 - [warn] Encrypted credentials not found
May 29 00:41:40 29 May 00:41:40 - [info] Starting flows
May 29 00:41:40 29 May 00:41:40 - [warn] [victron-virtual:Signalk GPS] Connecting to TCP address tcp:host=venus.local,port=78.
May 29 00:41:40 29 May 00:41:40 - [info] Started flows
May 29 00:41:40 Error: connect ECONNREFUSED 192.168.1.4:78 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1555:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '192.168.1.4', port: 78 }
May 29 00:41:40 Error connecting to dbus: Error: connect ECONNREFUSED 192.168.1.4:78
Ahh. Shoot!!
We forgot one other thing
🙂
well I cant think of it
dbus needs to be enabled for TCP
can't remember how to do it!!
aha
on the venus or signalk?
that's on venus
I see
GitHub
node-red-contrib-victron/docs/INSTALL.md at master · victronenergy...
Contribute to victronenergy/node-red-contrib-victron development by creating an account on GitHub.
aha
so do I ssh and change that line?
ssh in and just run on the command-line
dbus -y com.victronenergy.settings /Settings/Services/InsecureDbusOverTcp SetValue 1
aha
then reboot the venus device
do you know the login venus device? I have not been on that with ssh yet
https://www.victronenergy.com/live/ccgx:root_access
I have to head out, can help more later tonight or tomorrow…
it is getting late here as well
thanks a lot. Looks like the way to anable ssh access has changed with the new UI. Will need to see how this is enabled...
Things are looking much better now. Getting the communication to work. But I am seeing some unstability. Getting some errors that the site has stopped reporting to vrm. And I am unable to connect to vrm through cloud. Could it be related?

When I turn off the main switch for the signalk and mfd it starts to report again…
Hmmm. Looks like it is related to the mfd and venus. They are connected to show the venus app on the mfd
You have SignalK turned on in VenusOS?
No
And it starts to report when I turn off the mfd, so perhaps not related to the pi, but rather Venus <-> MFD?
Sounds like it, but I have no idea.
But thanks a lot on the help with getting the node red to work from signalk. I will continue to look at the VRM dropout, but maybe not related to this topic…
The issue about VRM time out looks as it is addressed in the Venus beta:
Networking
Fix issues with feature that allows to have a WiFi and an Ethernet network connected at the same time and then wanting WiFi to be used for internet. This had issues, also in v3.55. Now fixed, and the way to make this happen is to configure the ethernet connection, which normally has priority over the WiFi connection, with a gateway of 0.0.0.0.