Status: ready for the first test runs
This application provides both a server-side plugin and the user interface for maintaining semi-automatic logbooks with Signal K. Just like traditional logbooks, you can write an entry at any time. However, there are several things that are done automatically for you:
The logbook presents a web-based user interface as part of the Signal K administration interface. The features should work fine on both desktop and mobile browsers.
Adding a log entry:
Traditional logbook view:
Log entries on a map:
Registering sail changes:
This logbook app writes the logs to disk using YAML format which combines machine readability with at least some degree of human readability.
Logs are stored on a file per day basis at ~/.signalk/plugin-config-data/signalk-logbook/YYYY-MM-DD.yml
If there are no entries for a given day, no file gets written.
Note: unlike Signal K itself, the log entries are written using "human-friendly" units, so degrees, knots, etc. They look something like:
- datetime: 2014-08-15T19:00:19.546Z
position:
longitude: 24.7363006
latitude: 59.7243978
source: GPS
heading: 202
course: 198
speed:
stw: 12.5
sog: 11.8
log: 9.6
waypoint: null
barometer: 1008.71
wind:
speed: 13.7
direction: 283
engine:
hours: 405
category: navigation
text: Set 1st reef on mainsail
author: bergie
It is a good idea to set up automatic backups of these files off the vessel, for example to GitHub or some other cloud storage service. How to handle this backup is out of the scope of this plugin.
The following SignalK paths are used by this logbook.
SingleK path | Timeline name | YAML path | Notes |
---|---|---|---|
navigation.datetime |
Time | /datetime |
Falls back to system time if not present. Display timezone can be configured. |
navigation.courseOverGroundTrue |
Course | /course |
|
navigation.headingTrue |
Heading | /heading |
|
navigation.speedThroughWater |
/speed/stw |
||
navigation.speedOverGround |
Speed | /speed/sog |
|
environment.wind.directionTrue |
Wind | /wind/direction |
|
environment.wind.speedOverGround |
Wind | /wind/speed |
|
environment.outside.pressure |
Baro | /barometer |
|
environment.water.swell.state |
Sea | /observations/seaState |
|
navigation.position |
Coordinates | /position/longitude /position/latitude |
|
navigation.gnss.type |
Fix | /position/source |
Defaults to "GPS". |
navigation.log |
Log | /log |
|
propulsion.*.runTime |
Engine | /engine/hours |
|
sails.inventory.* |
Sail changes are logged. | ||
communication.crewNames |
/crewNames |
Crew changes are logged. | |
steering.autopilot.state |
Autopilot changes are logged. | ||
navigation.state |
If present, used to start and stop automated hourly entries. Changes are logged. | ||
propulsion.*.state |
Propulsion changes are logged. | ||
communication.vhf.channel |
/vhf |
||
navigation.courseRhumbline.nextPoint.position |
/waypoint |
The signalk-derived-data and signalk-path-mapper plugins are both useful to remap available data to the required canonical paths.
Other applications can also use the logbook API for retrieving and writing log entries. This can be useful for automations with Node-Red or NoFlo etc.
Some additional ideas for the future:
navigation.position
includes altitudenavigation.log
instead of navigation.trip.log
end
flag to entries marking end of a trip