Read the statement by Michael Teeuw here.
Request loop & "Loading..." in standard weather module (Open-Meteo) after update
-
@Phantomkommander can you show you config for the weather module
-
@sdetweil Hi Sam,
here is my current configuration for the weather modules. I am using the default weather module with Open-Meteo.
{ module: "weather", position: "top_right", config: { weatherProvider: "openmeteo", type: "current", tempUnits: "metric", lat: 50.4667, lon: 7.6333, useKmh: true, updateInterval: 20 * 60 * 1000, } }, { module: "weather", position: "top_right", header: "Wetter Vorhersage", config: { weatherProvider: "openmeteo", type: "forecast", lat: 50.4667, lon: 7.6333, useKmh: true, updateInterval: 20 * 60 * 1000, } },An interesting update: Right now, the weather data is actually being displayed correctly again. However, based on my observations over the last few days, it usually works in the morning and early afternoon, and then fails (stuck on ‘Loading’) for the rest of the day.
This supports the theory that the request loop I see in the logs (journalctl) eventually triggers a rate limit or a temporary IP ban from Open-Meteo. The config seems to work fundamentally, but the fetching behavior is out of control."


-
@Phantomkommander great! Can you post some of the log entries?
-
@sdetweil
"Hi Sam,for comparison, here are the current logs while the system is working correctly. As you can see, the weather provider initializes and then stays quiet for several minutes:
Apr 18 14:56:53 MagicMirror npm[230]: [2026-04-18 14:56:53.051] [LOG] [weather] Attempting to initialize provider openmeteo... Apr 18 14:56:53 MagicMirror npm[230]: [2026-04-18 14:56:53.317] [LOG] [weather] Weather provider openmeteo initialized... Apr 18 15:06:53 MagicMirror npm[230]: [2026-04-18 15:06:53.184] [LOG] [weather] Attempting to initialize provider openmeteo...And here again is the ‘Loop’ state from earlier today (for direct comparison):
[18.04.2026 10:15:22.453] [INFO] [http_fetcher] [weatherprovider.openmeteo] Fetching url: https://api.open-meteo.com/v1/forecast?latitude=50.4667&longitude=7.6333... [18.04.2026 10:15:22.510] [INFO] [http_fetcher] [weatherprovider.openmeteo] Fetching url: https://api.open-meteo.com/v1/forecast?latitude=50.4667&longitude=7.6333... [18.04.2026 10:15:22.622] [INFO] [http_fetcher] [weatherprovider.openmeteo] Fetching url: https://api.open-meteo.com/v1/forecast?latitude=50.4667&longitude=7.6333...The difference is clear: When it fails, it ignores the timing logic entirely. It seems that once a specific error occurs (maybe a temporary timeout from Open-Meteo), the http_fetcher enters a state where it retries instantly without any back-off delay."
-
@Phantomkommander thanks. I think this is a defect in the new weather data collector
I opened an issue in the MagicMirror GitHub repo so we can make sure it’s tracked and fixed
See https://github.com/MagicMirrorOrg/MagicMirror/issues/4109
-
@sdetweil “Thank you, Sam! I’m glad the logs were helpful in identifying the defect. I’ll keep an eye on the GitHub issue and wait for the official fix. Thanks for your great support!”
-
Actually, there might have already been a fix in the develop branch…
so you could try that first…
see this topic on how to get the develop branch
https://forum.magicmirror.builders/topic/14327/testing-new-fixes-or-solving-current-problems-with-next-release-code -
Hi Sam,
I wanted to give you a quick update and, most importantly, say a huge thank you for your incredibly fast and professional help! It’s amazing to see how quickly you identified the defect and even opened an official issue on GitHub.
I’ve been monitoring the develop branch, and the fix is definitely working. The “rapid-fire” request loop is gone. Even with my temporary IP block, the logs show that the system is now handling the situation gracefully without spamming the API anymore:
Apr 21 07:45:29 MagicMirror npm[495]: [2026-04-21 07:45:29.616] [WARN] [http_fetcher] [weatherprovider.openmeteo] ... Apr 21 07:45:40 MagicMirror npm[495]: [2026-04-21 07:45:40.581] [LOG] [weather] Received INIT_WEATHER for instance module_5_weatherThe system is stable now, and I’m just waiting for Open-Meteo to lift the rate limit. I’ll provide another final update in a few days to confirm everything is still running smoothly, but for now: Thanks again, Sam! I really appreciate the support you give to this community.
-
@Phantomkommander great news. Glad to hear.
I can’t take credit for this. The work was already done by others, and I didn’t know a fix was already in place.
-
@sdetweil
Hi Sam,I’ve been testing the new develop branch of the weather module over the last few days, and I wanted to give you some positive feedback.
My tablet recently developed a life of its own (eigenartiges Eigenleben), causing unpredictable connection drops and browser reloads. This would have normally triggered the 24-hour API limit for OpenMeteo, but your new protection logic completely saved my setup! It’s great to see that the module now prevents “rogue” clients from getting the whole IP banned.
While testing, I had one idea for an improvement:
Currently, if a client reconnects during the backend’s “protection phase,” it stays on “Loading…” until the next scheduled fetch. It would be the icing on the cake if the module could immediately push the cached data to a newly connected client, instead of making it wait for the next real API call.Anyway, thanks for the amazing work. Everything is running smoothly now!
Best regards,
Florian
-
@Phantomkommander thanks for the great feedback. I’ll see what the developer thinks.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login