5. What problem were we trying to solve?
Steve
Record all data from disparate data
sources for later analysis
Creation of customizable and easily used
dashboards to visualize data and trends
Teppo
Gain access to all data onboard -
independent of the source format
Provide both real time and time series
(historical) access to the data
See what’s going on!
6. Real World Examples
“Were we faster on starboard or port tack?”
“What was the wind like for the last hour?”
“I got a high engine temp alarm, I wonder if it
has been running hotter lately, wasn’t
looking”
“Are my solar panels still producing what they
used to?”
“How low did the battery go last night, before
solar kicked in in the early morning when I
was asleep?”
8. Boat Networks are old and not connected well
Serial / NMEA 0183 (4800 baud)
CAN bus / NMEA 2000
Ethernet / WiFi
Proprietary / DIY with IoT and other
Remote access via
LTE/3G/WiFi/Satellite
12. Software to manage boats is expensive / proprietary
● Older technologies
● Microsoft Windows
● Only address one bus /
network type
● Very difficult to customize
● Proprietary data storage
● Expensive
Maretron N2Kview Adobe AIR Application
15. What is Signal K
http://signalk.org/
A Free and Open Source universal marine data
exchange format
Signal K is a modern and open data format for
marine use. Built on standard web technologies
including JSON, WebSockets and HTTP, Signal K
provides a method for sharing information in a way
that is friendly to WiFi, cellphones, tablets and the
Internet.
A format available to everyone, where anyone can
contribute, Signal K is the first truly open data
format for the marine industry and is set to
revolutionize how we consume and interact with
data on boats.
16. Signal K Sources, Plugins, WilhelmSK
Data Sources
● NMEA 0183
● NMEA 2000
● I²C
● 1-wire
● modbus
● dbus
● MQTT
Interesting Plugins
● Node-RED
● Victron
● Fusion Audio
● Switching / Control
● Notifications (many choices)
● Signal K Cloud
● AIS (multiple, to and from, Internet)
● Raymarine Autopilot
● Windy
17. Signal K
Data model
What is this datum called?
What unit does it have?
Set of protocols
How do I get access to my data - what protocols do I use and how?
Community
Has anybody done X?
How do I do Y?
Does Signal K do Z? Maybe it should? How should it do it?
Hey I got this thingamagic working!
19. ● Mostly pretty straightforward InfluxDB stuff
● Signal K defines measurement names (paths in Signal K lingo) => just write
to Influx
● Optional downsampling at the source (before InfluxDB) to cut down on
resource usage
● Some data are rarely useful for later analysis: allow/deny logic to pick the
items you want or don’t want
● Grafana as a UI plays a big role
● Strength: Scales from ARM on an onboard Raspberry Pi to cloud scale
● Challenge: gis - marine data like speed, depth, wind conditions, engine
params are more valuable when connected to the vessel track/location in
general - stuff like bounding box searches (Flux Geo package?)
Implementation of Signal K with InfluxDB
21. Deploying the solution
Install Signal K
● https://github.com/signalk/signalk-server-node
● Prerequisites: Node.js version 10 or higher with npm installed
● Raspberry Pi
Connect it to some data sources - NMEA 0183 / NMEA 2000 / DIY sensor data...
Install signalk-to-influxdb plugin
● Install plugin within Signal K from App Store
● https://github.com/tkurki/signalk-to-influxdb - for a quick start Docker Compose users can start a local
InfluxDB & Grafana with docker-compose up, then configure the plugin to write to localhost:8086 and
Grafana to use InfluxDB data.
● You can also install InfluxDb and Grafana by using package managers
Create some dashboards
31. How has this solution
helped?
● Engine performance / temp issue
● Electrical system performance
○ Finding large power consumers
○ Evaluating new battery technologies
○ Monitoring charging process:
solar/generator/engine
● Looking back at storms
● Remote monitoring
● Comfort / peace of mind at anchor
33. What’s next?
Steve
● More dashboards + publish on Grafana
Marketplace
● Alerts & alarms
● Connections to other systems / devices
● Investigate Chronograf
Teppo
● Extend Signal K data model and APIs to
cover access to time series data:
implement a layer on top of InfluxDB that
talks about vessel ids, Signal K data
paths and tracks instead of
measurements
● Extend Signal K data model to cover time
series related concepts like aggregates:
min/max/median/avg
● Add easier unit conversions
● Explore InfluxDb 2.0 new features
34. Resources
Signal K
● http://signalk.org/
● https://github.com/SignalK/signalk-server-node
● http://slack-invite.signalk.org/
InfluxDb
● https://portal.influxdata.com/downloads/
● https://github.com/tkurki/signalk-to-influxdb
Grafana
● https://grafana.com/grafana/download
Wilhelm SK
● https://www.wilhelmsk.com/
SeaBits
● https://seabits.com/