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 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.
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 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.