Your Intelligent Marine Assistant for Signal K
Ocearo Core is the voice and brain of the Ocearo ecosystem. It's a Signal K plugin that provides intelligent navigation assistance, weather briefings, sail coaching, and contextual alerts using LLM (Large Language Model) analysis and Text-to-Speech output.
"Just A Rather Very Intelligent System" β Marine Edition π’
Ocearo Core transforms your Signal K server into an intelligent assistant that:
- π£οΈ Speaks - Provides voice feedback using Piper TTS or eSpeak
- π§ Thinks - Analyzes data with local LLM (Ollama) for contextual insights
- π Monitors - Continuously tracks vessel data, weather, and alerts
- π Logs - Maintains an automatic logbook with hourly entries
- β΅ Coaches - Offers sail trim and course optimization advice
Your Ocearo Ecosystem:
- π Ocearo-UI = The eyes (3D visual interface)
- π£οΈ Ocearo-Core = The voice (AI assistant)
- π§ Signal K = The nervous system (data)
- Weather forecast for the next hours
- Tide times and heights
- Current vessel status
- Battery and tank levels
- Current position, speed, and course
- Depth monitoring
- Weather conditions update
- Hourly entries with vessel state
- Integration with signalk-logbook plugin
- 24-hour contextual memory for coherent AI responses
- Real-time sail trim recommendations
- Course optimization based on wind and destination
- Reefing suggestions based on conditions
- VMG (Velocity Made Good) analysis
- Intercepts all Signal K notifications
- Provides contextual explanations
- Announces critical alerts via TTS
- Supports multiple languages (English/French)
- Personas: Captain, Teammate, Jarvis (Tony Stark style), French Sailor
- Modes: Humor/Serious, Predictions on/off, Auto-briefing on/off
- Languages: English, French (extensible)
- Signal K Server β₯ 1.x
- Node.js β₯ 18.0.0
- Ollama (optional, for LLM features) - Install Ollama
- Piper TTS (optional, for voice) - Install Piper
npm install ocearo-coreThen restart your Signal K server and configure the plugin via the Admin UI.
cd ~/.signalk/node_modules
git clone https://github.com/laborima/ocearo-core.git
cd ocearo-core/plugin
npm installRestart Signal K server.
ocearo-core/
βββ README.md # This file
βββ CONTRIBUTING.md # Contribution guidelines
βββ CHANGELOG.md # Version history
βββ LICENSE # Apache 2.0 license
βββ docs/ # Documentation
β βββ INSTALLATION.md # Detailed installation guide
β βββ CONFIGURATION.md # Configuration reference
β βββ ARCHITECTURE.md # Technical architecture
βββ plugin/ # Signal K plugin source
βββ index.js # Plugin entry point
βββ package.json # npm package definition
βββ schema.json # Admin UI configuration schema
βββ src/ # Source modules
Configure Ocearo Core through the Signal K Admin UI under Server β Plugin Config β OcΓ©aro Jarvis.
| Setting | Description | Default |
|---|---|---|
language |
Interface language (en/fr) | en |
persona |
AI personality style | jarvis |
mode |
Operating mode (sailing/anchored/motoring) | sailing |
| Setting | Description | Default |
|---|---|---|
ollamaHost |
Ollama server URL | http://localhost:11434 |
model |
LLM model to use | phi3:mini |
timeoutSeconds |
Request timeout | 30 |
| Setting | Description | Default |
|---|---|---|
enabled |
Enable TTS output | true |
backend |
TTS engine (piper/espeak/console) | piper |
piperModel |
Piper voice model | en_US-joe-medium |
| Setting | Description | Default |
|---|---|---|
provider |
Weather data source | openmeteo |
cacheMinutes |
Cache duration | 30 |
| Setting | Description | Default |
|---|---|---|
alertCheck |
Alert check interval (seconds) | 30 |
weatherUpdate |
Weather update interval (seconds) | 300 |
navPointMinutes |
Navigation point interval | 30 |
hourlyLogbook |
Enable hourly logbook entries | true |
Ocearo Core exposes several REST endpoints:
| Endpoint | Method | Description |
|---|---|---|
/plugins/ocearo-core/health |
GET | Health check with component status |
/plugins/ocearo-core/status |
GET | Full system status |
/plugins/ocearo-core/analyze |
POST | Trigger manual analysis |
/plugins/ocearo-core/speak |
POST | Test TTS with custom text |
/plugins/ocearo-core/mode |
POST | Update operating mode |
/plugins/ocearo-core/memory |
GET | View memory statistics |
/plugins/ocearo-core/logbook/entries |
GET | Retrieve logbook entries |
navigation.speedOverGroundnavigation.courseOverGroundTruenavigation.headingTrueenvironment.depth.belowKeelenvironment.wind.speedApparentenvironment.wind.angleApparentnotifications.*
notifications.ocearoJarvis.*- Alert notificationsocearo.jarvis.brief- Latest briefingocearo.jarvis.mode- Current modeocearo.jarvis.sailAdvice- Sail recommendations
- Install Ollama: https://ollama.ai
- Pull a model:
ollama pull phi3:mini
- Ensure Ollama is running:
ollama serve
- Download Piper: https://github.com/rhasspy/piper/releases
- Download voice models:
# English wget https://huggingface.co/rhasspy/piper-voices/resolve/main/en/en_US/joe/medium/en_US-joe-medium.onnx # French wget https://huggingface.co/rhasspy/piper-voices/resolve/main/fr/fr_FR/tom/medium/fr_FR-tom-medium.onnx
- Configure the path in plugin settings
# Debian/Ubuntu
sudo apt-get install espeak
# macOS
brew install espeakOcearo Core is designed to work seamlessly with Ocearo-UI:
- Voice announcements complement visual alerts
- Briefings are displayed in the UI
- Logbook entries are viewable in the documentation panel
- Sail advice appears in the performance view
"Sir, oil pressure is dropping to 1.2 bar. I suggest reducing RPM immediately and checking the oil level."
"Attention, critical depth detected. 1.8 meters below keel. My calculations indicate a grounding risk in this area."
"Sir, weather conditions are evolving. Wind forecast at 28 knots in 2 hours. Perhaps it's time to reduce sail area?"
"Good morning, Captain. Current conditions: wind 12 knots from the west, waves 1.5 meters. High tide at 14:32 with 4.2 meters. Forecast shows increasing wind this afternoon, reaching 18 knots by 16:00."
Your contributions make Ocearo Core better! Here's how you can help:
- π Report bugs - Open an issue when something isn't working
- π‘ Suggest features - Share your ideas for improvements
- π§ Submit PRs - Fix bugs, add features, improve documentation
- π Translate - Help add support for more languages
- β Support - Help fund development
See CONTRIBUTING.md for detailed guidelines.
- Additional language support (Spanish, German, Italian)
- More weather providers (NOAA, MΓ©tΓ©o-France)
- Advanced polar performance analysis
- Voice command input (speech-to-text)
- Integration with autopilot systems
- Machine learning for personalized sailing advice
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- Signal K - The open marine data standard
- OpenPlotter - Open source sailing platform
- Ollama - Local LLM runtime
- Piper - Fast local TTS
- Ocearo-UI - 3D marine interface
Ocearo Core is designed to enhance sailing awareness and provide intelligent assistance. However, this software is not a certified navigation or safety system and should not be relied upon as the sole source of navigational information.
- Always cross-check data with official marine charts, GPS devices, and other navigation aids
- Maintain situational awareness and follow maritime safety regulations
- The developers are not liable for any incidents arising from using this software
By using Ocearo Core, you acknowledge and accept the inherent risks of relying on non-certified navigation tools. Always navigate responsibly!
- π Documentation
- π Issue Tracker
- π¬ Discussions
- π§ Contact: Open an issue
