Signal K is the hub to receive data, from different devices in different data formats, and send it on to different equipment, or databases, in different formats. Most common for standard marine equipment are the old NMEA 0183 and the newer NMEA 2000 protocol which is also handled.
Besides the SK "hub" function developers have created plugins for different purposes. This is due to that SK is open-source ! Sharing is caring !
So why mention OC when this post concerns SK ?
There is a good SK installation instruction, for RPi, but will do a compact one here, where ju start with a update
Via ssh/terminal install Node.js(V22 LTS) and NPM
Install the SK server with
sudo npm install -g signalk-server
(There could be some warnings but it's OK)
Test the server with a sample logfile
signalk-server --sample-nmea0183-data
In a WEB browser check with, (If You are using another Hostname, change)
http://raspberrypi:3000/
and the SK dashboard will show. In the upper left corner click on "Webapps => @signalk/freeboard-sk", (FSK) and a world map will open with a boat symbol in the south of Finland. Zoom in and watch the boat approaching Österby.
sudo signalk-server-setup
In this link you can learn more.
The charts that are displayed are online charts and if you use the application offline you can download offline charts.
Migrate a Signal K serverThis method was used to migrate a SK server, Raspberry pi, from Bullseye, Node 16 to Bookworm Node 20. On the source SK server update the server and all plugins. The following objects are needed on the target SK server
$HOME/.signalk/package.json
, file$HOME/.signalk/settings.json
, file$HOME/.signalk/plugin-config-data
, directory
Create a target server installing Signal K, logon and then remove/rename
$HOME/.signalk/node_modules
(Will disable the installed plugins)$HOME/.signalk/settings.json
(SK server settings)$HOME/.signalk/package.json
(Node.js metadata)
Restore the files settings.json
and package.json
, from the source server, to target server in folder $HOME/.signalk/
In $HOME/.signalk/
run npm install
which will install all the plugins listed in package.json
Remove/rename $HOME/.signalk/plugin-config-data (Plugin settings)
Restore the plugin-config-data folder, from the source server, to target server in folder $HOME/.signalk/
Restart the SK target server and check the result.
A nice way to copy data from one server to another is using command scp which demands that ssh is activated on both SK servers. So for example use below command copying the folder plugin-config-data.
pi@source:~/.signalk $ scp -r plugin-config-data pi@target.local:
Enjoy !
Setup dialog (sudo signalk-server-setup)
____ _ _ _ __
/ ___| (_) __ _ _ __ __ _ | | | |/ /
\___ \ | | / _` | | '_ \ / _` | | | | ' /
___) | | | | (_| | | | | | | (_| | | | | . \
|____/ |_| \__, | |_| |_| \__,_| |_| |_|\_\
|___/
YOU ARE LOGGED IN AS pi AND THE SERVER WILL BE STARTED AS THIS USER
? Enter the location to store server configuration: /home/pi/.signalk
? Enter your vessel name: Zest
? Enter your mmsi if you have one:
The Signal K default port is 3000
Port 80 does not require ":3000" in the browser and app interfaces
? Do you want to use port 80? No
? Do you want to enable SSL? No
✔ Creating your server base deltas at /home/pi/.signalk/baseDeltas.json
✔ Creating your server settings at /home/pi/.signalk/settings.json
✔ Creating package.json
✔ Creating your server startup script at /home/pi/.signalk/signalk-server
✔ Updating file ownership and permissions
✔ Setting up your server to start Signal K when booting up
✔ Running 'systemctl daemon-reload'
✔ Running 'systemctl enable signalk.service'
✔ Running 'systemctl enable signalk.socket'
✔ Running 'systemctl stop signalk.service'
✔ Running 'systemctl restart signalk.socket'
✔ Running 'systemctl restart signalk.service'
No comments:
Post a Comment
Feel free to leave a comment ! ... but due to a lot of spam comments I have to moderate them. Will reply ASAP !