Ich habe um die 100 Coins. Das Update funktioniert so gut wie gar nicht mehr. Viele meiner Coins wurden mehr als 1 Monat nicht mehr aktualisiert, obwohl ich PP fast täglich öffne und die Aktualisierung mehrfach anstosse.
Bei vielleicht 5 Abrufen pro Minute die CoinGecko erlaubt sind das mindestens mal 20 Minuten.
In der nächsten Version werde ich eine Option aufnehmen um die Anzahl der Versuche zu konfigurieren. Aktuell wird mit einem Rate Limit von ca. 10 Calls pro Minute gearbeitet. Und dann bis zu 10 mal erneut versucht, wenn trotz dieses Abruflimit CoinGecko ein “too many request” liefert.
Allerdings werde ich das nicht unendlich machen. Der bisherige Code hat das unendlich oft versucht. Das war mir ehrlich gesagt nicht so klar. Es wird vermutlich nicht so viele Benutzer mit so vielen Coins geben, aber ich will keine DoS Attacke machen.
Ich brauche auch so viele Kryptokurse. Ich muss aber auch zustimmen, dass man einen (begrenzt) kostenfreien Kurslieferanten nicht verärgern sollte (Stichwort DoS Attacke).
Eventuell lässt sich das so umbauen, dass die ältesten Kurse zuerst aktualisiert werden und die aktuellsten notfalls hinten runter fallen? Über mehrere Stunden gesehen, sollte so trotzdem jeder Wert mehrmals aktualisiert werden.
Ich sehe gerade es gibt einen “demo account” mit einem besseren Abruflimit:
To get a stable rate limit of 30 calls per minute, please register a Demo account here: https://www.coingecko.com/en/api/pricing
In den Einstellungen kann man schon einen API Key hinterlegen. Aber das tut nicht für den Demo API Key (der muss anders im Code gesetzt werden). Sieht gut aus. Das veröffentliche ich mit der nächsten Version.
Das mache ich auch - aber nur innerhalb einer Session - also nicht basierend auf den letzten Kursen sondern zu welcher Uhrzeit der letzte Abruf war.
Bei mir ist PP üblicherweise 24 Stunden offen. Heißt das (“nur innerhalb einer Session”), dass ich PP dann mehrmals am Tag schließen/neu öffnen muss?
Mit “session” meinte ich das wird sich nur gemerkt, wenn PP offen bleibt. Also insofern sollten bei Dir die Coins ohne einen bisherigen Abruf als erstes abgerufen werden.
Mit Version 0.77.2 könnt Ihr den API Schlüssel von dem CoinGecko Demo-Account hinterlegen. Ich habe damit deutlich stabiler Kurse laden können.
Den Demo Account gibt es hier: https://www.coingecko.com/en/api/pricing
Oha genial, vielen Dank. Erster Eindruck: läuft sehr gut, deutlich schneller als vorher !
Nur irgendwas stimmt mit den Kursen nicht, alles geht runter. (*Ironie off)
Oha, da ist aber eine Kostenfalle…
Siehe beim Planvergleich “Guthaben pro Monat (=10.000)”: Überschreitungsgebühr: 250 $ pro 500.000 zusätzliche Anrufe
Um bei den beispielhaft genannten 30 Coins zu bleiben:
30 Werte, Abruf aller 2 Stunden x 30 Tage = 10.800 Abrufe pro Monat - die Überschreitungsgebühr wäre bereits ausgelöst
Oder lese ich da etwas falsch?
Gute Frage. Das weiß ich nicht. Es könnte sich auch alle Pläne beziehen. Und eine Kreditkarte habe ich nicht hinterlegt
Do note that we do not support overage billing for trial plans
Ich habe eine Anfrage bei CoinGecko gestellt
Wenn keine Kreditkarte hinterlegt ist, könnte ja auch eine Rechnung kommen. Hatte sowas bereits mehrmals (nicht von CoinGecko) - da hießt es dann zahlen oder weitere Nutzung wird unterbunden.
Laut KI:
- Nach 10.000 Abfragen/Monat blockiert CoinGecko weitere Anfragen deiner Demo-API bis zum nächsten Monat.
- Du erhältst Fehlermeldungen (z.B. 429 Too Many Requests).
- Für mehr Abfragen ist ein kostenpflichtiger API-Plan notwendig
→ für mich ist die Lösung immer noch besser als die extrem langwierigen Abfragen.
Habe eben mein Portfolio geöffnet, von 19 Kursen hat er 14 direkt aktualisiert, die restlichen 5 Kurse jedoch nicht (habe Portfolio seit 12 Minuten offen). Keine Fehlermeldungen. Selbst wenn ich diese 5 “manuell” aktualisiere passiert nichts.
UPDATE: Scheinbar liegt es daran, dass ich bei diesen Coins die historischen Kurse über Portfolio Report ziehe und die aktuellen Kurse über Coingecko. Da scheint sich aber was zu verlaufen, denn den aktuellen Kurs zieht er nicht, nur den von gestern. Bei ALGO sogar nur den von Vorgestern.

Scheinbar liegt es daran, dass ich bei diesen Coins die historischen Kurse über Portfolio Report ziehe und die aktuellen Kurse über Coingecko.
Ok, schaue ich mir an. Im Code sehe ich nichts auffälliges. Kannst Du meine Konfiguration teilen?
Ich hatte das Portfolio jetzt noch lange offen und dann haben sich die Kurse irgendwann aktualisiert. Scheint dann doch mit der Aktualisierungsrate zusammen zu hängen? Ich vermute mal, dass wenn bei manchen Coins historische + aktuelle Kurse über Coingecko eingestellt ist, sind das jeweils 2 Abfragen pro Coin, oder? Dann kommt man auf über 30 Abfragen pro Minute, auch wenn es nur 19 Coins sind. Frage dann: warum sind nach 2-3 Minuten nicht alle aktualisiert?
Antwort erhalten von CoinGecko erhalten:
Für die öffentliche API (einschließlich Demo-Nutzung) ist die Überschreitungsabrechnung standardmäßig deaktiviert. Nutzer mit kostenpflichtigen Abonnements können die Überschreitungsabrechnung jedoch über das Entwickler-Dashboard aktivieren.
Ich weiß gerade gar nicht, ob es in PP überhaupt einzustellen geht, aber dann müsste die Kursabfrage so eingestellt werden, dass man das monatliche Abruflimit nicht überschreit, also z.B. nur 2x täglich aktualisieren. Und das würde dann ja für alles gelten - z.B. auch für Aktien. Das würde mir dann gar nicht passen.
Also für mich wäre dann die Lösung aus der alten Version die bessere. Auch wenn´s gedauert hat, waren irgendwann alle Kurse aktualisiert.
Ideal wäre: API hinterlegt und nicht ausgereizt → Abfrage über API. Ansonsten so, ohne den Server zu sehr zu strapazieren. Bedenke, dass die PP Entwickler (AndreasB) weg wollen von zu vielen Abfragen durch PP. Daher vermute ich, dass es “die Lösung aus der alten Version” nicht mehr geben wird.
Weitere Antwort von CoinGecko:
Wenn die API-Aufruflimits für ein Demokonto überschritten werden, gibt das System Fehler bei der Ratenbegrenzung zurück und blockiert vorübergehend weitere Anfragen, bis das Fenster für die Ratenbegrenzung zurückgesetzt wird. Da die Überschreitungsabrechnung für Demokonten deaktiviert ist, fallen keine zusätzlichen Gebühren an.
Super, dass der Demo API Key jetzt hinterlegt werden kann , danke. So richtig funktioniert es bei mir aber leider immer noch nicht mit 100 Coins. Im Gegensatz zu früher bricht das Update jetzt immer nach 1-2 Sekunden ab. Früher ging es langsam aber stetig durch, ich sah in der Statuszeile dass er etwa ein Preis pro Minute aktualisiert hat. Jetzt rattert alles sofort durch und die meisten Preise sind nicht aktualisiert. Ist es ev. nicht mehr richtig sequentiell und läuft aus Versehen parallel ab?

Super, dass der Demo API Key jetzt hinterlegt werden kann
, danke. So richtig funktioniert es bei mir aber leider immer noch nicht mit 100 Coins.
Bei 100 Coins wird es mit dem Demo API Key leider nie funktionieren, auch wenn der Abruf dann mal funktioniert. Siehe weiter oben (Abruflimit von 10.000 pro Monat). Selbst bei wenigen Kursaktualisierungen pro Tag für 100 Coins wäre das Abruflimit schnell erreicht und der Datenabruf würde von Seiten CoinGecko für den Rest des Monats blockiert werden.