NEWS
Tankerkönig - Requests sind zu oft
-
Hallo,
ich bin selbst kein ioBroker-User, aber Anbieter einer webbasierten Spritpreis-API - seid also bitte nachsichtig mit einem der sich mit ioBroker nicht auskennt.
Ein User dieser API setzt ein ioBroker-System ein, um regelmäßig Daten von unserem Web-Server abzuholen.
Da hierbei Probleme aufgetreten sind, habe ich ihn gebeten entsprechende Änderungen vorzunehmen:
- 1. auf einen Request ganz zu verzichten
2\. die Frequenz zu reduzieren
Der Anwender hat mir glaubhaft versichert, dass er diese Änderungen vorgenommen hat. Insbesondere hat er ein neues schedule eingesetzt:
schedule("*/15 * * * *", daten_einlesen);
-> das sollte den Request alle 15 Minuten starten.
Allerdings kann ich auf unserer Seite keine Änderung feststellen.
Inzwischen hat er mir mitgeteilt, dass das Skript deaktiviert worden ist.
Auch das kann ich nicht bestätigen - hier kommen weiterhin Requests an.
Meine Vermutung: Es fehlt auf ioBroker-Seite noch ein letzter Schritt, um die Änderungen zu aktivieren. Kann das sein? Oder kann es andere Gründe geben?
-
Hallo tankerkönig,
willkommen im Forum.
Ich nutze die Tankerkönig API in zwei Skripts um einerseits gezielt die Daten bestimmter Tankstellen und andererseits die Liste der billigsten Tankstellen im Umkreis abzufragen. Bei Skripts starten alle 5! Minuten, wobei das erste Skript ein Array aus 5 Tankstellen jedesmal nach und nach abarbeitet. Das bedeutet alle 5min 7! requests. Wir sind hier mittlerweile über 1000 Nutzer und ich kann mir schon vorstellen, dass das Einlesen der Spritpreise sehr populär ist.
Ich kann auch die Zahl der requests verringern, vor allem den Schedule anpassen. So könnte man etwas abseits der "Hauptaupfragezeiten" arbeiten (alle 6min, 12s statt alle 5min).
Da hierbei Probleme aufgetreten sind, habe ich ihn gebeten entsprechende Änderungen vorzunehmen: `
Um welche Probleme handelt es sich? Mein Log hat bei meinen Requests bisher keine Fehler ausgegeben.Ich würde das Problem gern lösen und möchte nicht auf den Dienst verzichten. Tankerkönig hat auf eine frühe Anfrage von mir einen Fehler beseitigt und ist sehr kooperativ. Ich wünsche mir eine weiterhin gute Zusammmenarbeit.
Gruß,
Pix
PS: @tankerkönig: Bitte den Threadtitel ändern und die Wörter "Spritpreis" oder "Tankerkönig" einbauen für mehr Aufmerksamkeit im Forum
-
Hallo pix,
@pix:… Ich nutze die Tankerkönig API in zwei Skripts .... Mein Log hat bei meinen Requests bisher keine Fehler ausgegeben. .... ` mit 'ein User' habe ich nicht Dich, sondern einen anderen User gemeint.
Mein Problem mit der API-Verwendung:
1. zu hohe Frequenz (jedes Intervall < 4 Minuten ist sinnlos, da die Preise nicht schneller upgedated werden)
2. Abfrage nicht existenter Tankstellen
Sein Problem: er schafft es nicht, sein System so zu ändern, dass das korrigiert wird. Also wie ich bereits geschrieben habe: er hat das Schedule geändert, die Änderungen sind aber nicht wirksam. Bei uns kommen alle 30 Sekunden 3 Requests an, nicht wie von ihm beabsichtigt einer alle 15 Minuten.
@pix:… Ich kann auch die Zahl der requests verringern, vor allem den Schedule anpassen. .... `
Eine Anleitung wie Du das schaffst wäre für Ihn und auch mich und evtl. andere hilfreich.Liege ich mit meiner Vermutung richtig, dass Änderungen erst aktiviert werden müssen? Falls ja: WIE GEHT DAS?
-tankerkönig
-
mit 'ein User' habe ich nicht Dich, sondern einen anderen User gemeint. `
Schon klar, wollte nur beschreiben, wie ich das mache. Ich habe damals den node-red Flow und später das Skript hier veröffentlicht. Die 5min-Grenze war mir bekannt.Ich behaupte mal: Wer seine Tankpreisanzeige nur zu Hause nutzt, kann auch locker die 15min Frequenz einstellen. Es geht ja eh ums Vergleichen der Preise. Ausserdem kann jeder auch einen manuellen Trigger für das Abfragen in sein VIS einbauen. Wenn er denn tanken will, ein kurzer Klick und man hat definitiv den neuesten Preis.
Wer auch unterwegs zB auf dem Weg nach Hause eine eigene View mit zB VPN-Zugang verwendet, der kann sowieso auch einen manuellen Trigger einbauen. Bluefox hat da mal ein Skriptteil gepostet, den kann man abgewandelt in das Spritpreisskript einsetzen.
createState('Sprit.aktualisieren', false); var idSpritAktualisieren = 'javascript.2.Sprit.aktualisieren'; // richtige Instanznummer beachten // Fall es sofort gewolt ist, die Kurse zu aktualisieren (auch für mehrere möglich) on(idSpritAktualisieren, function (obj) { // Falls ein Kommando und trigger ist true (was eigentlich überflüssig ist). Es kann kein Kommando mit false kommen if (!obj.newState.ack && obj.newState.val) { daten_einlesen; // richtigen Namen der Funktion hier eintragen } });
Dazu ein kleines Widget ins VIS:
[{"tpl":"tplBasicState","data":{"oid":"javascript.2.Sprit.aktualisieren","visibility-cond":"==","visibility-val":1,"value":"true","html":"[neu]","name":"Spritpreise erneuern"},"style":{"left":"801px","top":"65px","z-index":"40","color":"rgba(250,250,250,0.6)","font-family":"","font-style":"","font-size":"12px","width":"29px","height":"14px"},"widgetSet":"basic"}]
Bei Klick, werden die Daten sofort neu eingelesen. Da kann man die Frequenz wirklich runtersetzen.
@tankerkönig:Eine Anleitung wie Du das schaffst wäre für Ihn und auch mich und evtl. andere hilfreich.
Liege ich mit meiner Vermutung richtig, dass Änderungen erst aktiviert werden müssen? Falls ja: WIE GEHT DAS? `
Scripte aktiviert und deaktiviert man im Admin/Skript-Reiter. Auf den Stift klicken und den Haken entfernen. Wenn das Skript eingeschaltet ist, werden gespeichert Änderungen sofort aktiv.
Die Cron-Einstellungen werden hier gut erklärt: https://de.wikipedia.org/wiki/CronIch appelliere hier an alle Anwender, ihre Skripte auf die genutzte Frequenz zu überprüfen. Ich habe meine Skripte angepasst.
Gruß
Pix
-
Hallo pix,
danke für die Antwort.
@pix:Ich behaupte mal: Wer seine Tankpreisanzeige nur zu Hause nutzt, kann auch locker die 15min Frequenz einstellen. Es geht ja eh ums Vergleichen der Preise. ` das sehe ich auch so.
@pix:Ausserdem kann jeder auch einen manuellen Trigger für das Abfragen in sein VIS einbauen. Wenn er denn tanken will, ein kurzer Klick und man hat definitiv den neuesten Preis.
das ist natürlich noch besser. Aktueller bekommt man keine Spritpreise und der Tankerkönig-Server wird nur minimal belastet.
> Scripte aktiviert und deaktiviert man im Admin/Skript-Reiter. Auf den Stift klicken und den Haken entfernen. Wenn das Skript eingeschaltet ist, werden gespeichert Änderungen sofort aktiv. `
Das heißt, man kann nicht viel falsch machen. Ich werde den User mal auf diesen Thread aufmerksam machen - mal sehen, ob es hilft.Nochmals Danke für deine Replies.
Gruß,
tankerkönig
-
Hallo tankerkönig,
ich vermute, dass der Anwender noch ein Skript irgendwo hat, welches er vergessen hat.
Besser währe natürlich einen Adapter dafür schreiben, und minimal Update auf 10 Minuten limitieren.
Vielleicht macht das jemand, sollte wirklich einfach sein? (Skript existiert schon sowieso)
-
Hallo Tankerkönig,
frag den User mal, ob er evtl. auch noch den Node-Red-Flow einsetzt.
Im Scheduler dort sind 2 Eingaben notwendig : Einmal eine Zahl und einmal die Auswahl der Einheit (Sekunden, Minuten, usw.) per Pulldownliste. Nicht das er 5 Minuten haben will und zufällig die Einheit auf Sekunden steht (klassischer "Verklicker").
Ich hole mir die Werte auch per Node-Red alle x Minuten (ich glaube, ich bin bei 10 oder 15 Minuten - habe gerade keinen Zugriff auf dei Admin-Oberfläche) und bisher keine Probleme gehabt.
Gruß,
Eric
-
Hallo Tankerkoenig,
ich setzte Eure API ebenfalls ein. Leider ist seit ein paar Wochen eine Tankstelle dabei die bei E10 keinen Wert sendet. Da Sie nur Diesel anbietet.
Leider habe ich deshalb meine Umkreissuche stark einschränken müssen, da mir sonst 0,00€ angezeigt wird.
Hat da vielleicht jemand eine Idee wie ich das umgehen kann?
Gruß Sebbo
-
Hallo Sebbo,
danke für den Hinweis. Ich werde das demnächst so ändern, dass bei einer Suche mit einer bestimmten Spritsorte keine Tankstellen mehr geliefert werden, die diese Sorte nicht führen.
Allerdings sollte es auch möglich sein, clientseitig solche Tankstellen zu ignorieren.
Falls Du das irgendwie hinbekommst - also statt die Info nur anzuzeigen, die Tankstellenliste vorher noch zu filtern - könntest Du auch auf den zweiten Request verzichten und alle Preise mit type=all holen.
Siehe dazu: https://creativecommons.tankerkoenig.de/#techInfo
Leider bin ich - wie ich bereits geschrieben habe - kein Experte, was ioBroker angeht, so dass ich Dir keine detailiertere Info geben kann.
Gruß,
tankerkönig
-
@Pix: mit dem default Abfrageintervall Deines Adapters gibt es wohl Probleme.
Mein API-Key wurde gesperrt.
Laut Info von Tankerkönig lag das wohl am Abfrageintervall bzw. am Zeitpunkt (runde Zeiten).
Habe das bei mir manuell jetzt geändert.
Tankerkönig bat mich darum, den Kontakt zum Entwickler herzustellen, was ich hiermit gerne tue.
- Harald
-
Hallo,
mich hat es mit der Sperre die Woche auch erwischt. Im Prinzip bin ich selber Schuld, hatte die Abfrage zuerst in einer Testumgebung aktiviert, für gut befunden und dann auf dem Livesystem übernommen. Dann aber vergessen, auf dem Testsystem die Abfrage auszuschalten. Da laufen dann hinter der Router-IP 2 Systeme mit der selben Public-IP und das werden dann mit hoher Wahrscheinlichkeit Abfrageintervalle < 5 min.
Es wäre schön, wenn der Adapter bei der Konfiguration auf Problematik der Abfragesequenz hinweisen würde (ggf. plus Link zum Tankerkönig) und der Cron-Job im Standard mit einem höheren Intervall eingestellt werden würde.
Beim Testen ist man ja froh, dass es prinzipiell funktioniert und dann vergisst man doch all-zu-oft das Lesen der Details.
Gruß
GH
-
Danke für den Hinweis. Ich kümmere mich darum.
Pix