This is a sequel to the previous post “Weather Underground no longer providing free API keys.” We would like to fill you in on what has happened since and how we rode that storm.
Disaster struck in the evening of Thursday May 16th in the form of a private message from David “G6EJD” Bird to me. David, a passionate amateur radio & weather station operator and electronics engineer, is active on GitHub as G6EJD and has been contributing a lot to the ThingPulse open-source projects. The email started with:
I thought I’d give you advanced information, although you may already know, that Weather Underground are no-longer issuing a free Developers Licence and so new customers can no-longer download weather data.
The implications became clear in an instant – and they were far reaching.
- All ThingPulse customers who had recently bought one of our products but had not created their Wunderground API key yet would not be able to use our free weather station software.
- Obviously someone needed to find a replacement for the Wunderground API.
- We would have to rewrite a significant part of the ESP8266 Weather Station library and adjust all “client” projects (for classic OLED kit, color TFT kit and ePaper kits).
- We would have to devote a lot of time to communication activities getting the word out and keeping customers up to date.
Unfortunately, we (ThingPulse) were not in a good position to react instantly. I was travelling abroad with my family and on the way back to Switzerland (spending time in cars and trains). I relayed the bad news to Dani right away. Unfortunately, we did not manage to set up an emergency conference call that night. Until Sunday around noon we worked independently. Occasionally, i.e. whenever I was online, we synced our activities.
On Sunday morning we sent an email to all customers who had purchased one of our products in our store within the last 30 days. We figured that those who had purchased before that would have created the Wunderground API key in the meantime. It was fairly easy to pull the relevant email addresses from our shop system.
What took quite a bit more time was to inform our affected Amazon customers. Amazon protects their personal information well and we had to use their communication channels (i.e. we couldn’t just email them).
More or less in parallel we updated all product pages in our own shop, in our Amazon shop and in our Tindie shop. A prominent paragraph informed customers about the situation and warned them that they would not be able to use our free software for the time being. Needless to say that this had a negative impact on our sales figures. However, we are convinced that being honest and sincere upfront will help us in the long run.
New weather API
Initially when the bad Wunderground news broke many people in the weather community seemed to favor switching to the Aeris weather API. Over that first weekend Dani rushed ahead and implemented a working API client for Aeris. Too late did we realize that the free API key they offer is really just a trial key that expires after 2 months. However, we did reach out to Aeris to see if there was anything they could do for our customers. They got back to us and we set up a phone call. Dani explained what we do and what needs our customers have: free access to weather API for personal use with a low number of requests per day. It became obvious that their focus / offering and our needs only partially overlap.
After some more analysis and carefully weighing all our options we eventually settled for OpenWeatherMap. Their coverage and resolution seem good enough for our needs. Also, it is very unlikely that any ThingPulse customer will hit their “60 calls per minute free” limit. The OpenWeatherMap ideology is inspired by OpenStreetMap and Wikipedia that make information free and available for everybody. As that’s very much in line with ours we feel comfortable being dependent on them – as comfortable as you can ever be if your dependent on someone of course. A notable absence in the OpenWeatherMap API is an astronomy service. While the API does provide sun rise/set times for any given location similar data for the moon is completely missing.
Over the course of the next weeks we worked on the OpenWeatherMap integration. We pushed code to GitHub whenever a piece was done. We wanted to give early adopters a chance to follow along. As Dani is more familiar with the weather station code we decided that he should work on OpenWeatherMap. Besides, he had just completed an early Aeris integration. Despite being a complete astronomy noob I volunteered to find a replacement for the Wunderground moon data. We wanted to avoid integrating an extra API if at all possible although this would have been the easiest solution.
On June 6th Dani eventually announced on Twitter that we had migrated all relevant code from Wunderground to OpenWeatherMap. The only feature missing are moon rise/set times (phase and illumination are there), I am still working on those. On the other hand, Dani added new features like night icons or a temperature chart. No doubt that more people will care about those than about the missing moon times.
The Wunderground client will remain part of the weather station lib until June 2019, we simply deprecated it. The 1-year grace period should give users ample time to migrate their own code to OpenWeatherMap.