Use this open source tool to get your local weather forecast | Opensource.com

Use this open source tool to get your local weather forecast

Know whether you need a coat, an umbrella, or sunscreen before you go out with wego in the thirteenth in our series on 20 ways to be more productive with open source in 2020.

Sky with clouds and grass
Image credits : 

Flickr user: theaucitron (CC BY-SA 2.0)

x

Subscribe now

Get the highlights in your inbox every week.

Last year, I brought you 19 days of new (to you) productivity tools for 2019. This year, I'm taking a different approach: building an environment that will allow you to be more productive in the new year, using tools you may or may not already be using.

Check the weather with wego

One of the things I love about the past decade of my employment is that it mostly has been remote. I can work anywhere I happen to be in the world, although the reality is that I spend a lot of time in my home office. The downside is that when I leave the house, I base a lot of decisions on what the conditions look like outside my window. And where I live, "sunny and clear" can mean anything from "scorchingly hot" to "below freezing" to "it will rain in an hour." Being able to check the actual conditions and forecast quickly is pretty useful.

Wego is a program written in Go that will fetch and display your local weather. It even renders it in shiny ASCII art if you wish.

To install wego, you need to make sure Go is installed on your system. After that, you can fetch the latest version with the go get command. You'll probably want to add the ~/go/bin directory to your path as well:

go get -u github.com/schachmat/wego
export PATH=~/go/bin:$PATH
wego

On its first run, wego will complain about missing API keys. Now you need to decide on a backend. The default backend is for Forecast.io, which is part of Dark Sky. Wego also supports OpenWeatherMap and WorldWeatherOnline. I prefer OpenWeatherMap, so that's what I'll show you how to set up here.

You'll need to register for an API key with OpenWeatherMap. Registration is free, although the free API key has a limit on how many queries you can make in a day; this should be fine for an average user. Once you have your API key, put it into the ~/.wegorc file. Now is also a good time to fill in your location, language, and whether you use metric, imperial (US/UK), metric-ms, or International System of Units (SI). OpenWeatherMap supports locations by name, postal code, coordinates, and ID, which is one of the reasons I like it.

# wego configuration for OEM
aat-coords=false
aat-monochrome=false
backend=openweathermap
days=3
forecast-lang=en
frontend=ascii-art-table
jsn-no-indent=false
location=Pittsboro
owm-api-key=XXXXXXXXXXXXXXXXXXXXX
owm-debug=false
owm-lang=en
units=imperial

Now, running wego at the command line will show the local weather for the next three days.

Wego can also show data as JSON output for consumption by programs and with emoji. You can choose a frontend with the -f command-line parameter or in the .wegorc file.

If you want to see the weather every time you open a new shell or log into a host, simply add wego to your ~/.bashrc (or ~/.zshrc in my case).

The wttr.in project is a web-based wrapper around wego. It provides some additional display options and is available on the website of the same name. One cool thing about wttr.in is that you can fetch one-line information about the weather with curl. I have a little shell function called get_wttr that fetches the current forecast in a shortened form.

get_wttr() {
  curl -s "wttr.in/Pittsboro?format=3"    
}

Now, before I leave the house, I have a quick and easy way to find out if I need a coat, an umbrella, or sunscreen—directly from the command line where I spend most of my time.

Tree in an open field with clouds

Create a custom Prometheus integration to keep track of the biggest cloud provider of all: Mother Earth.
A graph of a wave.

I began paragliding a few years ago. It’s maybe the most weather-dependent sport in the world. We...
Person using a laptop

BitlBee brings multiple chat applications into a single interface. Find out how to set up and use BitlBee in the ninth in our series on 20 ways to be more productive with open source in 2020.

Topics

About the author

Kevin Sonney - Kevin Sonney is a technology professional, media producer, and podcaster. A Linux Sysadmin and Open Source advocate, Kevin has over 25 years in the IT industry, with over 15 years in Open Source. He currently works as an SRE at elastic. Kevin hosts the weekly Productivity Alchemy Podcast. He and his wife, author and illustrator Ursula Vernon, co-host the weekly podcast...