Visualizing Data and Trends
on Your Boat
Introductions
Steve Mitchell
SeaBits
Seattle, WA, USA
Teppo Kurki
Committer, Signal K
Helsinki, Finland
Agenda
What problem are we solving?
Boat networking
Implementation
Results
What’s next
Q&A
Boat Problems
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!
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?”
Boat Networking
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
Steve’s Boat Network
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
Solution
Technologies Being Used
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.
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
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!
Signal K Demonstration
● 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
Data in
InfluxDB
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
Results
Real-time weather
https://seabits.com/real-time-weather-from-the-boat/
● Original goal was to have a
weather station on board
● Have always wanted to record all
data on the boat since the early
1990s
● Combined the approaches
Dashboard Demo
Engine Performance Dashboard
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
What’s Next?
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
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/
© 2020 InfluxData. All rights reserved.35
We look forward to bringing together our
community of developers to learn, interact and
share tips and use cases.
October 27 – 28, 2020
Hands-On Flux Training
www.influxdays.com/virtual-experience-2020/
November 10 – 11, 2020
Virtual Experience
Q & A

How an Open Marine Standard, InfluxDB and Grafana Are Used to Improve Boating Safety

  • 1.
    Visualizing Data andTrends on Your Boat
  • 2.
    Introductions Steve Mitchell SeaBits Seattle, WA,USA Teppo Kurki Committer, Signal K Helsinki, Finland
  • 3.
    Agenda What problem arewe solving? Boat networking Implementation Results What’s next Q&A
  • 4.
  • 5.
    What problem werewe 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 “Werewe 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?”
  • 7.
  • 8.
    Boat Networks areold 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
  • 11.
  • 12.
    Software to manageboats 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
  • 13.
  • 14.
  • 15.
    What is SignalK 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 Whatis 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!
  • 18.
  • 19.
    ● Mostly prettystraightforward 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
  • 20.
  • 21.
    Deploying the solution InstallSignal 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
  • 22.
  • 23.
    Real-time weather https://seabits.com/real-time-weather-from-the-boat/ ● Originalgoal was to have a weather station on board ● Have always wanted to record all data on the boat since the early 1990s ● Combined the approaches
  • 27.
  • 30.
  • 31.
    How has thissolution 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
  • 32.
  • 33.
    What’s next? Steve ● Moredashboards + 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/
  • 35.
    © 2020 InfluxData.All rights reserved.35 We look forward to bringing together our community of developers to learn, interact and share tips and use cases. October 27 – 28, 2020 Hands-On Flux Training www.influxdays.com/virtual-experience-2020/ November 10 – 11, 2020 Virtual Experience
  • 36.