This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to connect Openplotter-Pypilot to a second SignalK-Server?
#1
Hi everybody,

maybe someone of you knows the solution to my problem, I'm getting desperate:
I have an openplotter pypilot with the fixed IP address 10.10.10.111. There is a SignalK server set up with port 3001.

On a second Raspberry runs another SignalK server, on which among other things via USB GPS data and AvNav runs as a navigation app, this server runs on port 3000.

On a freshly set up system, Pypilot requests a connection on both SignalK servers, which I confirm via approve.

This works so far, on the navigation server runs data from pypilot, for example "heading" or "roll".
On the Pypilot SignalK server, however, I only receive the GPS data if I set the NMEA client to the navigation server address (10.10.10.100) with port 10110 in the configuration of Pypilot.

And obviously Pypilot does not accept any data from its SignalK server that shows up in its in the Databrowser. I managed to get APB datasets from AvNav to the Pypilot SignalK server via port 28628, unfortunately without effect.
The APB and RMB records of the Navigation SignalK server are obviously also ignored by Pypilot, despite the correct client address.
Therefore no data for a route can be transferred to Pypilot.

So my question: How do I set up the data connections between 2 SignalK servers so that the Openplotter Pypilot app also responds to active routes?

Thanks a lot!

Michael

Translated with www.DeepL.com/Translator (free version)
Reply
#2
As far as I know pypilot will only respond to NMEA0183 APB sentences that are sent straight to its 20220 port; it will not respond to, for instance, navigation.courseRhumbline.nextPoint.bearingTrue values in the SignalK data store. So far I have not been able to generate APB messages with the signalk_to_nmea0183 plugin. So in my case the only option was to configure opencpn to send those RMC and APB messages to pypilot TCP/20220 with a data connection, and I would suggest you attempt the same from AvNav.

Separate from that, you are aware of the possibility of signalk to synchronise two instances with each other? If only to offload pypilot I would only connect to one signalk server, not two. Call it superstition if you want, but the latter would give me an eaky feeling.
Reply
#3
Hi @ironman,

thank you for all the useful information.
I have already looked at the synchronization possibilities of two SignalK servers. This works well, but you have to be careful not to produce a data loop.
In the meantime I managed to connect from AvNav to Pypilot via port 20220 using an AVNSocketWriter in the server menu of AvNav. With the OPenCPN NMEA logger I can see the incoming data (APB and RMB) on the Pypilot Raspberry.
Unfortunately the pypilot webcontrol does not accept the data. I had set the NMEA client to localhost:20220 in the configuration menu.
Interestingly, the pypilot control can be switched to GPS, but the bearing of the APB data set is not taken over as command.

I think I'll leave it for now that I can use GPS and wind data in my openplotter Pypilot. So often I will not use routes then just....

Translated with www.DeepL.com/Translator (free version)
Reply
#4
You need RMC in addition to APB, not RMB. Even if you don't use a route, the gps mode is very useful, as it delivers a straight track over ground.
Reply
#5
Thanks again, I will check, if I can transmit RMC too. Good idea...
Reply
#6
after some very useful help in the german "segeln-forum" I have a solution for my problem:

For those who want to follow it, working with AvNav on one Raspberry, Pypilot on the other, both with openplotter 3:

Pypilot wants the route data (APB) on port 20220 and the position data (RMC) on port 10110.

1. out of AvNav you need a socketwriter for port 20220 which sends $APB and $RMB
2. for port 10110 you need a socketreader, which sends $RMC over port 10110 to localhost. RMB and APB are filtered on this reader

The installation of socketreader and socketwriter can be managed inside "server status" of AvNav.
3. in the configuration menu of Pypilot (<ipaddress>:8000) you set the NMEAClient to the IP address of the AvNav computer with port 10110.

Then Pypilot will follow routes created in AvNav and will show COG, if no route is present.

Translated with www.DeepL.com/Translator (free version)
Reply
#7
I have not designed the signalk support in pypilot to talk to more than one signalk server at a time. What does work is to use a single signalk server and multiple pypilots. If a single pypilot has gps, all of the pypilots can get this gps via signalk. Maybe also not very useful most of the time.

As for following routes using signalk instead of APB, yes it is implemented to work off steering.autopilot.target.headingTrue, but not tested because nothing produces this, so there is no actual use case unless you can somehow do it with avnav? Can avnav produce signalk to follow routes?
Reply
#8
SignalK creates navigation.courseRhumbline.bearingToDestinationTrue, amongst others, when you send APB to it. I tried to tweak signalk.py to respond to this path (of course with APB created by the autopilot_route plugin!), but to no avail yet. There does not seem to be a way to go 100% native signalk for now.

Also, environment.wind.angleTrue I don't get either, so TrueWind mode I can also not achieve through native signalk.
Reply
#9
So if you send nmea APB to signalk server it produces navigation.courseRhumbline.bearingToDestinationTrue ? I find this strange, but even still you would not be native signalk since nmea is still used, you might as well send the APB to pypilot directly.

Until there is a navigational program that outputs signalk for route following there is no way to use 100% signalk for this.
Reply
#10
(2023-08-26, 04:48 PM)seandepagnier Wrote: Until there is a navigational program that outputs signalk for route following [...]

AvNav seems to do this already.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)