I know this subject comes up quite often, but it's a moving target
I'm about to revamp my weather flows and thought I would see if there is any consensus around the best UK API to use.
I have been using OWM but I find the icons a bit odd, in that they don't seem to match the descriptions very well, and don't even cover some conditions like hail etc.
Met Office - generally the most accurate general area forecast
Storm Glass - Has some interesting data
Norway MET - Highly regarded
open-meteo.com - Up to 16 days forecast Fair use policy. Maximum 10,000 calls/day No API key required
OWM - OpenWeatherMap's OneCall API One Call API 3.0 - OpenWeatherMap - free tier gives 1000 calls per day. Has air quality and reverse geocode lookups. May be better for micro-climate forecasts?
Meteostat - Not sure about this one, a simple query for "sheffield" returns the entry for Sheffield in Australia!
What I would say is that if you aren't already, you should probably think about splitting the data fetch from the display via MQTT or some such. That way you can standardise your outputs even if you have to swap your inputs. You can also combine the best from different services.
For current conditions I recommend using METAR data for your nearest airport. They are strongly motivated to have accurate data, though it has less precision than some of the forecast APIs (eg pressure to the nearest hPa not 0.1 hPa).
If you happen to line near a US air base you have to allow for values in degrees Fahrenheit, inches of mercury and probably quarts of water vapour per cubic football pitch.
I'm finding it hard to work out which of the long array of values from the met office API represents current values
Simple: East Midlands, Leeds Bradford, Manchester. calculate a weighted average according to their distance. Apply a current weather stability correction, tweek for prevailing wind direction and add-in a random "Because it's Sheffield" factor.
"What's the weather like?"
I do know all those hills result in very local weather but it ought to be possible at least to estimate the local variability - more likely if humidity is higher or pressure is lower etc.
A project to serve the local community, which the Met Office are not providing maybe.
Actually, I mostly just look out of the window!!!!
I generally only use forecasts for when I'm going to be going somewhere, or for seeing if it is worth going cycling or into the garden. The Met Office app does everything I need so I no longer bother with my Node-RED flows unless someone asks a crazy question like this one!
The problem is that we are on the edge of the Pennines. So it can be raining/snowing a few hundred meters away and we are in bright sunshine - or the reverse. One one side of the house (which is about 300m up) are the Pennines and on the other is the drop onto the plain that stretches to the North Sea. And Sheffield is basically a bunch of big hills that cause the wind to circulate very oddly.
Weather conditions can be hyper-local.
Well, there are services that do hyper-local forecasts. I think OWM?
But, as I say, it is mostly not terribly useful and looking out the window generally tells me what will happen over the next couple of hours which is enough for most things.
You've reminded me that the one area where I probably would like to integrate weather information is the automated house lighting.
At present, I have lighting based on time of day and sun position but being able to dynamically vary depending on cloudiness (even cloud thickness would be nice though I don't know that any of the services provide that) and rain/snow would be a good indicator of how dark different parts of the house get.
I really should try that. Previously I've tried to use light sensors which kind of worked but you need a few of them in different places which can get complex as you need to account for the difference between artificial and natural light.
That's what I've tried before. You have to filter out the impact of the artificial light and once the light is on, it then becomes very complex to understand the natural light and so make decisions about whether the light should go off again.
The processing got so complex and needed constant tweaking so it wasn't really useful and I took it out. Possibly suffering from a lack of "big brain" status.