Seit etwa dem 27.04.2026 schlagen meine API-Aufrufe fehl.
Zuerst dachte ich, es handle sich lediglich um die üblichen, gelegentlichen API-Probleme. Bei genauerer Betrachtung stellte ich jedoch fest, dass ich an die Ratenbegrenzung stoße:
PyViCare.PyViCareUtils.PyViCareRateLimitError: (PyViCareRateLimitError(...), 'API rate limit development portal "xxxxxxxxxxxxxxxxxx" daily limit exceeded. Max 1450 calls in timewindow. Limit reset at 2026-05-06T00:00:04.802000.')
Das ist merkwürdig, da mein Code so getaktet ist, dass er diese Limits deutlich unterschreitet – an einem normalen Tag stelle ich üblicherweise weniger als 350 Verbindungen zum API-Endpunkt her.
In den letzten Tagen hat sich die Anzahl der Verbindungen durch ein einzelnes Skript jedoch deutlich erhöht. Dieses Skript erfasst alle 5 Minuten die Außentemperaturdaten (d. h. ca. 288 Mal pro Tag) und versucht es nach 1 Minute erneut, falls keine Daten empfangen werden.
Das folgende Protokoll zeigt normale Tage im Vergleich zu den letzten Tagen:
Timestamp, MinTemp, MaxTemp, AvTemp, RunCount, TempCount
20260424, 1.6, 18.5, 10.03, 287, 286 20260425, -0.8, 19.3, 10.02, 287, 287 20260426, 3.8, 19.9, 12.43, 287, 286 20260427, 5.3, 21.7, 13.16, 626, 201 20260428, 9.3, 10.9, 9.73, 940, 122 20260429, 6.6, 15.9, 9.26, 940, 122 20260430, 7.6, 17.4, 11.03, 940, 122 20260501, 7.1, 16.5, 10.32, 1008, 105 20260502, 7.8, 11.9, 9.37, 1158, 67 20260503, 11.2, 13.3, 12.22, 1159, 67 20260504, 12.5, 13, 12.51, 1157, 67
Die letzten beiden Einträge jeder Zeile zeigen die Gesamtzahl der Verbindungsversuche und die Anzahl der erfolgreichen Datenerfassungen an. Die Subtraktion des letzten Wertes (z. B. 67) von der Gesamtzahl (z. B. 1157) ergibt die Anzahl der fehlgeschlagenen Verbindungen.
Es sieht also so aus:
1) Es gibt Backend-Fehler in der API.
2) Das API-Ratenlimit zählt die Anzahl der Verbindungsversuche, nicht die Anzahl der erfolgreichen API-Aufrufe.
Ich bin überrascht, dass ich seit dem 27./28. April keine weiteren Meldungen zu API-Ausfällen gefunden habe. Hat sonst noch jemand diese lange Ausfallzeit und die fehlerhafte Verbindungszählung erlebt?
Vielen Dank!
jpuk
---------------------------------
Since ~27/04/26, my API calls have started failing.
Initially, I thought it was simply the 'usual;' API intermittent flakiness, however looking deeper, I can see that I am hitting rate limits:
PyViCare.PyViCareUtils.PyViCareRateLimitError: (PyViCareRateLimitError(...), 'API rate limit development portal "xxxxxxxxxxxxxxxxxx" daily limit exceeded. Max 1450 calls in timewindow. Limit reset at 2026-05-06T00:00:04.802000.')
This is strange because my code is timed to be well within these limits - on a normal day, I would usually make <350 connections to the API endpoint.
In the last few days, the number from a single script has increased significantly. This script collects outside temperature data every 5 minutes (i.e. ~288x per day), but will retry after 1 minute if no data is received.
The following log shows normal days compared to the last few days:
Timestamp, MinTemp, MaxTemp, AvTemp, RunCount, TempCount
20260424, 1.6, 18.5, 10.03, 287, 286 20260425, -0.8, 19.3, 10.02, 287, 287 20260426, 3.8, 19.9, 12.43, 287, 286 20260427, 5.3, 21.7, 13.16, 626, 201 20260428, 9.3, 10.9, 9.73, 940, 122 20260429, 6.6, 15.9, 9.26, 940, 122 20260430, 7.6, 17.4, 11.03, 940, 122 20260501, 7.1, 16.5, 10.32, 1008, 105 20260502, 7.8, 11.9, 9.37, 1158, 67 20260503, 11.2, 13.3, 12.22, 1159, 67 20260504, 12.5, 13, 12.51, 1157, 67
The last two entries on each row show the total number of connection attempts and the number of successful data collections. Subtracting the last value (e.g. 67) from the total (e.g. 1157) provides the number of failed connections.
So it looks like:
1) there are some back-end failures in the API
2) the API rate limit is counting the number of attempted connections, not the number of successful API calls.
I am surprised that I couldn't find any other messages relating to API failure since 27th / 28th April - is anyone else experiencing this long outage and unfortunate connection counting?
Thanks!
jpuk
Nach etwas weiterer Recherche stellte sich heraus, dass das Problem zumindest teilweise auf meiner Seite lag.
Ich hatte schließlich ein Skript im Hintergrund laufen (und zwar gleich zweimal), das ständig versuchte, die API-Schnittstelle aufzurufen. Diese beiden Instanzen beanspruchten alle meine API-Aufrufe.
Seltsamerweise waren die Skripte jedoch selbst dann nie erfolgreich, wenn die API verfügbar war. Ein erfolgreicher Aufruf hätte sie eigentlich beenden müssen. Daher vermute ich derzeit ein lokales Berechtigungsproblem, das diesen Zustand verursacht hat.
Zusammenfassend lässt sich sagen, dass dies höchstwahrscheinlich teilweise durch einen API-Ausfall ausgelöst und durch eine fehlerhafte Fehlerbehandlung meinerseits verschärft wurde.
Vielen Dank!
jpuk
-------
After a little more digging, the issue was at least partially on my end.
I ended up with a script running in the background (twice) making constant retries to the API endpoint, these two instances were consuming all my API calls.
What is strange, however, is that the scripts never succeeded even during the times the API was available. Success should have terminated them both - so my current working assumption is a local permissions problem that caused this state.
Summary - this is most likely partially triggered by API outage and compounded by some incorrect error handling on my end.
Thanks!
jpuk