Distributed Signal K (New User)
Good afternoon!
Can I install multiple SignalK instances aboard, and have them communicate/merge data over the TCP/IP network?
My idea is that I would have a Raspi Zero 2 W at my NMEA/Seatalk bridge, and then run Signal K on a Raspi 4b somewhere else. Is this how SignalK works? Or is it more a system built around a single primary host? Is there a way to multiplex data?
I'm about to install SignalK aboard, and I'm curious about how SignalK works, and how it communicates between various devices (is it like Mqtt?). I'm new to Signal K, but I have a lot of experience with microcontrollers and Home Assistant (but not so much that I'm sure that HA runs on Node Red, though I think they're similar?) Thanks for your help!
34 Replies
Short answer is “Yes”. You can have have multiple sk servers, and a server can bring in data from another sk server.
This would use WebSockets
What's the integration like?
Does signalk auto-discover?
I've seen NMEA and openCPN work shockingly well together, so part of me is thinking I should just try it and see what happens.
It does auto discover, but it won’t automatically load data. You have to do some setup in the admin ui.
Interesting!
Thanks for your help!
While I have you, is this a typical method?
Or do most people just use one host?
Most just use one host, but some people do have setups similar to your proposal
Cool. I'll give it a shot.
Thanks for your time.
You’re welcome
add a signalk connection from rpi4 to your zero. the connection is over websocket. unlike mqtt there are no options for delivery guarantees, it works if tcp works
Nice. I'll give it a shot.
So I got signal k on a raspi working and talking to my sea talk devices.
And I have signal k installed on my laptop and added the web socket connection to the raspi. None of my data is coming across, though. Is there a step I need to take to select which data is forwarded?
By default everything without passing a subscription json. Did you check the checkbox ‘act as self ?
All paths should show up in your data browser
Act as self... I'll read the manual about that, I wasn't familiar with its use.
I worked around it by using the apps as hosted on the raspi instance, which may be as was intended.
I'm doing something similar, I have 2 N2K networks onboard one for nav devices and one for digital switching. So I've set up two rPi's with hats to get the data. I've created the connections and the switching one works just fine. I've subscribed to one data path, when I activate the connection on the other server the cpu and temp go through the roof and I end up needing to reboot. Am I somehow creating a loop there is only a few bits of data that I want to pull over so I set up the subscription to only one path from each server.
I would not have them subscribe to each other and allow all paths. Limit the paths to only what you need by adding a subscription json with intervals for updating each path
Paths are a bit of a new concept to me. Is there a place in the docs you could recommend?
I'm not sure if it could be focused, but my current roadblock is getting NMEA 0183 OUT of signalk on the same FTDI that's feeding it in, to control an ST4000 (and interface openCPN to the plotter I have on the 0183 circuit)
I can't really seem to find the place in the docs for such an issue.
GitHub
Events and Outputting Data
An implementation of a Signal K central server for boats. - SignalK/signalk-server