A SignalK plugin that provides offline tidal predictions for the vessel's position, powered by Neaps.
Since 2.0, predictions are computed locally from harmonic constituents — no network access or API keys required.
Install signalk-tides from the SignalK Appstore or manually by running npm install signalk-tides in the SignalK server directory (~/.signalk).
This plugin depends on navigation.position.
It publishes the following tide data:
environment.tide.heightHighenvironment.tide.timeHighenvironment.tide.heightLowenvironment.tide.timeLowenvironment.tide.heightNowenvironment.tide.stationNameenvironment.tide.state— tide trend,risingorfallingenvironment.tide.timeToNextExtreme— seconds until the next high or low water
The plugin mounts the Neaps API at /signalk/v2/api/tides, which serves station search, extremes, and timeline predictions. The synthetic station vessel/current resolves to the nearest station to the vessel:
$ curl http://localhost:3000/signalk/v2/api/tides/stations/vessel/current/extremes
It also registers a tides resource, which returns the next 7 days of tide extremes for the vessel's position.
$ curl http://localhost:3000/signalk/v2/api/resources/tides
{
"datum": "MLLW",
"units": "meters",
"station": {
"id": "noaa/9414290",
"name": "San Francisco",
"latitude": 37.806,
"longitude": -122.465
},
"extremes": [
{ "time": "2025-03-29T00:45:00.000Z", "level": 0.025, "high": false, "low": true, "label": "Low" },
{ "time": "2025-03-29T07:20:00.000Z", "level": 1.928, "high": true, "low": false, "label": "High" }
]
}This plugin is a fork of the signalk-tides-api plugin (which is no longer working) and is licensed under the Apache License 2.0. Kudos to @joabakk and @sbender9 for the original work.