Projects

Real-time weather from the boat

Getting real-time weather data from the boat is now possible using SignalK and some plugins, plus beautiful dashboards in Grafana, with the data stored in Influx
Steve Mitchell 9 min read
Real-time weather from the boat

I’ve always dreamt of having real-time weather from the boat while I am away, and for analyzing trends after a day of being on the water. Most of the attempts I’ve made in the past have used stations and instruments that were meant for a fixed location which have issues on a boat. I’ve found a few new ways to do this which have me really excited.

The Hardware

The biggest challenge using a home-style weather station is that it is not meant to be on a moving platform. I wrote about using an Ambient Weather station with weeWX software a few years ago, and that is still a great solution if you want accurate data only while away from the boat.

However, I wanted weather data no matter where I was. In particular, I wanted very accurate wind and temperature data from multiple data points – apparent & true wind direction and speed, and inside, outside, engine room temperatures.

After considering a number of options, I settled on an Airmar WX-220 NMEA 2000 instrument. This device reports apparent and true wind speed and direction, barometric pressure, as well as air and wind chill temperature. It also has a GPS, compass, gyro and accelerometer.

The Airmar has been around a while, and is not that new technology-wise, but it is very well supported by various software and solutions, which is important for my use case.

I mounted the Airmar on an extension pole up above all of my other instruments on the arch. I wanted it up high to get out of any wind effects from other things nearby.

SignalK

The backbone of my entire system is SignalK. It is connected to my NMEA 2000 network and gathers all of the data from the Airmar. Then, two different plugins take that data and allow the solutions below to work.

Windy.com

Windy.com is a great resource for seeing an easily understandable graphical representation of wind and waves. In addition to PredictWind, Windy is one of the top tools I use when planning passages and weather. A fairly new plugin called signalk-windy is available and allows you to take weather data right out of SignalK and submit it to Windy.com.

The setup is pretty easy – you need to setup an account on Windy.com and get an API key. Put the API key in the plugin config field, set your station ID to 0, and make sure you have the derived data plugin installed as well. Data will start flowing to Windy and after a day or so, you should start to see details.

You can see my station at Rendezvous PWS. It updates every 5 minutes or so, and the station location moves as the boat does, which is perfect!  The plugin supports sending wind speed, wind direction, temperature, pressure and humidity.

Grafana + InfluxDB

I’ve written about this combo before, but I’ve taken the configuration to the next step, and find that I use this more than any other setup, both on the boat, and remotely to check on things.

This configuration uses the signalk-to-influxdb plugin, which you can setup with the provided instructions using docker. I decided to set it up a different way, based on how it was originally packaged.

This plugin takes data from SignalK and spits it out to a time-series database product named Influx. You don’t have to be a database administrator to use it – it’s very simple to install on a Linux system and leave it to run and gather data in the background.

Overview video of the dashboards and setup

The second part of this setup is Grafana, an open source dashboard and graphing tool. It’s power is in the ability to interface with an Influx database and let you build powerful graphs and displays without being a programmer. Grafana can also be easily installed on a Linux system, in this case, the same one I have running SignalK and Influx. After configuring Grafana to use the Influx database, it’s time to build a graph.

You start with a query, and can see all of the data that SignalK has sent over to Influx. In this example, I’m going to graph outside temperature. You can search for data (there is a lot of it sent over from my network) by typing a few letters in the FROM box.

After choosing data in your query, the graph at the top of the screen will show you example data to confirm things look good. You can see above we have an issue because the temperature appears to be 280 degrees – NMEA 2000 temps are stored in Kelvin for some crazy reason.

I googled the formula to convert Kelvin to Fahrenheit and popped that into the SELECT line under the math() function.

Now comes my favorite part – figuring out how to represent the data. In Visualization you have a bunch of really great graph and display options.

One of my favorite ones is the heatmap, which takes highs and lows and averages all together and shows a very visually easy interpretable representation.

Besides how the graph looks overall, you can customize all sorts of options on a per-graph-type basis, turn off legend items, and more.

In addition, you can write alert rules to send messages and emails if values reach all sorts of different thresholds. Very flexible engine!

You can add all sorts of graphs and data to a single dashboard so you can see everything that matters in one place. This is my main dashboard that shows me everything I care about in one place, and I use this constantly both while on the boat and remotely to check on things.

It gets even more powerful because you can change the time range on the fly. You can choose from preset amounts, enter your own start/end date, or just click on a graph and drag a selection, say to look at a spike of wind or temp. Very easy to use.

You can also change the frequency that the data updates on the dashboard. I usually set them to 1 minute while I am on the boat, and have the dashboard up on my computer or the main driving PC in case something changes dramatically. I have alerts in place to change colors and send emails if things get really bad.

The dashboards also work amazingly well on a mobile phone.

How I use it

I was initially just really excited at having a real, mobile weather station the boat, but it has proven far more useful than I thought. Having the data always available on Windy.com is very convenient for checking on things quickly no matter where I am. Since I use Windy for planning, it’s also nice seeing current conditions if I am on the boat and figuring out the next few days. And since it follows wherever I go, I always have a track of data from along the way.

But I really, really love the Grafana dashboard. I leave it on the salon PC when I am aboard in full screen mode so I can see the current temperature and wind, and the last hour of trends. Being able to go back in time from the day’s trip and dig deeper into the wind and temperatures allow for some fun entries in the cruising log.

When a bad storm comes through and the boat is at the dock, I can check the dashboard remotely make sure things are OK – wind speeds, temps inside and out, including the engine room. I leave it up in the corner of my monitor at home while working so I can watch the winds change throughout the storm,

If you have a PC, connect it to your NMEA 2000 network, setup SignalK (easy) and get both of these plugins. Not only will you be contributing weather to Windy and helping others, but with the Grafana dashboards, you can transform your helm into a super customizable display that you can enjoy every day.


Archived Comments

These are read only comments from the old system. Scroll down to participate in SeaBits Discussions, our new interactive forum attached to each article.

Wayne & Christine
March 29, 2020 at 6:16 am
Hi Steve et al, another typically well written and high value post with an equally well done video. Really appreciate your clear and detailed overviews and covering the how to portions in more detail. Much appreciated, thanks.
We had the previous Airmar WX150 weather station on our last boat, a 52′ steel Bruce Roberts design cutter and it was a super addition that worked without a hitch for over 10 years and is still working well for the new custodians of that boat. I initially got this for its super accurate wind and heading info that was a huge improvement on the sailboat and for the autopilot. But I too came to value the weather data more and more.
Right now we are busy building our next boat here in Antalya Turkey with Naval Yachts which will be a 24m all aluminium eXtreme eXploration Passage Maker or XPM as we make the leap from sail to power. We will soon be installing the new Airmar 220WX WeatherStation on the new build and I will post details of that installation when it happens as part of the weekly updates on our Mobius.World blog. Once we launch and get back to sea we will be sharing all the real world data we are logging so that we and others can start to see how various bits of kit are performing, efficiency rates, etc.
Not sure if this is the best place to do so but please do put Christine & my name on the list of those very interested in participating in your “video happy hour” Tech Talk sessions via Zoom if you get those going. Let me know if there is a better place to sign up for that?
Hope everyone here is finding ways to stay healthy and happy as we all navigate this latest storm in the world and thanks again for time and effort into the articles you share.
Wayne & Christine

Christopher
April 11, 2020 at 4:52 pm
Hello Steve, could you tell me how to configure Derive Data to send data to Windy.com
Thank you and best regards
Christopher

Christopher
April 11, 2020 at 10:32 pm
Do you already have the Windy plugin (https://github.com/itemir/signalk-windy#readme) installed?
Yes , everything configured in Windy because I have other stations already connected there and working.
signalk-derived-data I have installed the same and have a problem with it .

Christopher
April 13, 2020 at 10:23 am
Everything works, it took a long time to log in to Windy.com

Mike
June 17, 2020 at 12:45 pm
Hey Steve,
I figured i’d add it to this post as it may be beneficial to others…I’m setting up my Grafana dashboards and trying to get the best and most useful use of data for underway/anchor/remote monitoring. One thing I’m having the hardest time with is getting the math right for Heading/Wind Angles. It appears it’s coming in from the N2K network as Rads but every conversion I have run doesn’t seem to work? Do you mind sharing your formula for Rads -> Degrees that seems to work well.

James
December 11, 2020 at 5:11 am
Hi Steve,
This has been extremely useful in setting up live weather data from the RNZYS in Auckland.
However, I would really like to send the data to InfluxDB Cloud, rather than to a local instance of InfluxDB.
So far, I have not been able to achieve this with the SignalK – Influx DB plugin.
Is this something that you have considered or achieved?
I am running SignalK on a Raspberry Pi connected to a NMEA2000 network.
Many thanks
J

Alastair
April 12, 2021 at 10:31 pm
Hi Steve
How do you get multiple lines (series) on the same graph. For example Temperatures, I want to put Cabin, water, and ambient temperature on the same graph.
Thanks in advance
Cheers
Alastair
Auckland NZ

  • Steve Mitchell
    July 17, 2021 at 1:41 pm
    Sorry for not responding sooner – a bunch of comments got flagged as spam accidentally!
    You just add another query when you’re adding items. It’s in the bottom left of the screen when you’re adding a new graph and editing things.

Patrick St-Onge
August 27, 2021 at 12:11 pm
Anyone found a way to implement 3 hour pressure drop warning with Grafana? That would help me greatly 🙃

Share
Comments
More from SeaBits
Rendezvous initial networks
Projects

Rendezvous initial networks

In the last 4 months, I have been developing my overall network on board Rendezvous. I wanted a good WiFi/Ethernet network to connect me to the outside world, as well as a well developed NMEA 2000 network for marine equipment while underway. So far, here's what I have...
Steve Mitchell 18 min read

Sign up for my newsletter

Get all of the latest delivered directly to your inbox

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to SeaBits.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.