NEWS
IoBroker.tankerkoenig | Spritpreis-Adapter
-
Lass doch die Kirche im Dorf…
Du springst doch bestimmt nicht auf und fährst noch schnell zur Tanke wenn du gerade mal auf dein View guckst und bei 5 Tanken weißt du doch auch so ob die auf oder zu hat.
Stell dir mal vor alleine alle iobroker User würden den Tankerkönig Server im 5 Minuten Takt mit anfragen bombardieren wieviele Requests der bearbeiten müsste ohne das jemand etwas dafür bezahlt.
Ich frage den alle 22 minuten ab und habe noch nie vor verschlossener Türe gestanden.
Zur Not kannst du dir die Öffnungszeiten ja auch in deine VIS Schreiben.
-
Ja ,vielleicht bin ich Perfektionist.
Aber wenn mit Echtzeit Spritpreisen geworben wird, nützen die mir nichts , wenn ich sie vielleich alle 30min bekomme.
Zudem kenne ich natürlich nicht alle Öffnungszeiten und es ist ärgerlich , wie ich schon schrieb, wenn die um 21Uhr dicht macht und trotzdem um 21:30 noch als offen in VIS geführt wird.
Wie gesagt, dass ist bei meinen 5 Tankstellen so.
Und noch ein Satz zu deiner Kirche im Dorf:
Man lebt ja nicht alleine zu Hause, wenn ich sowas schon zusammenbastel, soll das auch funktionieren.
Und wenn meine Frau mich gestern anruft , wo auf der Strecke oder Umkreis der günstigste Sprit ist, ja rate mal was ich ihr sagen musste?
Genau: Sorry, ist nicht aktuell was ich hier habe. Musste mal alle Tankstellen abfahren.
Also zurück zu meinen Anfangssätzen, was bringt mir angeblich Echtzeit, wenn es im täglichen Einsatz nur zum Hübsch aussehen in meiner VIS ist.
Und ja, ich habe mir jetzt alle Öffnungszeiten rausgesucht und die automatische Visualisierung mit offen und geschlossen rausgeschmissen.
-
Wird der Spritpreis Adapter mit „Preisen in Echtzeit“ beworben?
Ich denke wenn du Perfektionist bist, hast du bestimmt auch nichts dagegen einen kommerziellen API Key zu erwerben und für die zur Zeit „kostenfreie“ Leistung zu bezahlen um deine Anzeige „Perfekt“ zu gestalten und aktuell zu halten.
Aber was anderes, was bedeutet alle 30minuten aktualisiert er die Daten?
Laut deinem Logfile wurden einmal Objekte um 19:08 und dann wieder um 19:10Uhr geschrieben.
Hast du im Objekt Tab mal geschaut welchen Zeitstempel die Preise da haben?
Hast du mal verglichen wie die Preise bei dir angezeigt werden und auf der Tankerkönig Seite unmittelbar nach einer Abfrage durch den Adapter?
Hat es vielleicht keine Änderung des Preises in dem Abfrage Zeitraum gegeben?
Poste doch mal deine Einstellung des Adapters (Persönlichen API unkenntlich machen) und des CRON.
EDIT: Ganz vergessen… Tankerkönig und damit auch der Adapter sind auf die Übermittlung der Daten durch die Tankstelle angewiesen. Wenn die Tanke das nicht richtig macht oder wie bei mir aktuell einfach mal eine neue ID bekommt sucht man sich schonmal den Wolf. Leider hatte die Tanke die neue ID auch bei Tankerkönig nicht direkt bekannt gemacht.
-
Ironie und Vorhaltungen sind hier nicht angebracht. Falls es Dich beruhigt, ich habe deren Arbeit natürlich schon honoriert, die vermutlich in der Freizeit geleistet wird und per Paypal "Spritgeld" gespendet.
Zurück zum eigentlichen Thema.
Die beiden verschiedenen Log Daten (19:08 und 19:10) kamen vom Neustart des Adapters. Ich wollte damit die Daten aktualisieren.
Cron habe ich jetzt auf 17min gestellt.
Laut Anbieter würde auch kürzer gehen (Home-Automation-, Smart-Mirror- und ähnliche Systeme sollten Abfragen nicht öfter als einmal in 5 Minuten durchführen.) , aber das hat mir ja nicht geholfen, weil wahrscheinlich ein Großteil der User es bei den 5min nach der Installation des Adapters gelassen hat.
Die Öffnungszeiten habe ich jetzt manuell als Text eingepflegt ohne Visualisierung.
Die Daten der letzten Änderungen beim Widget springen auch wild hin und her. Daraus lässt sich nicht wirklich was erahnen.
Mal sieht man die Zeit wo er die Daten versucht abzuholen (alle 17min), dann wiederum sieht man eine andere Uhrzeit, die in der Vergangenheit liegt.
Habe beim Widget "Letzte Änderung" eingestellt.
"Zeitstempel" wäre meines Erachtens auch die falsche Einstellung für die Zeit der Spritpreisänderung.
Ich lasse den Raspi jetzt jeden morgen um 8Uhr neustarten.
Mal schauen, ob sich es sich einpendelt oder gar nicht mehr für mich zu gebrauchen ist.
Bin leider noch auf der Arbeit und kann keine Dateien hier anhängen.
-
Meine Frau hat mir jetzt mal was geschickt.
Da sieht man die Diskrepanz. Ich vergleiche immer Tankerkönig mit clever-tanken.de
Sind beide an die Transparenzstelle angeschlossen.
Wie man oben sieht , hat meine Tankstelle die Daten gesendet.
Clever-Tanken hat sie auch um 12:07 aktualisiert.
Meine sind um 12:18 (die 17min Aktualisierung sind um) immer noch beim alten Stand.
3723_unbenannt4.png
3723_unbenannt23.png -
Hallo haselchen,
hier bei ioBroker bewerben wir den Adapter nicht mit Echtzeit-Daten. Falls doch, zeig mir die Stelle, dann wird das korrigiert. Es ist tankerkoenig, das Echzeitdaten bewirbt. Für den kostenlosen Zugang kannst du nicht erwarten, dass die Daten in so kurzen Abständen aktualisiert werden.
Und wendy2702 hat schon recht, du kannst natürlich auch die Öffnungszeiten anzeigen lassen. Die ändern sich nicht ständig. Der Adapter arbeitet mit Tankstellen ID, daher weißt du, um welche Station es sich handelt und kannst die Öffnungszeiten in dein VIS eintragen.
Der beste Tipp:
Hole die Daten auf Knopfdruck ab! Du kannst einen Schalter für den Adapter in VIS anlegen. Somit kannst du den Adapter ausschalten und wieder an, dabei werden die aktuellsten Daten geladen.
Du musst dazu ein Javascript erstellen, das einen Datenpunkt erzeugt und dann auf Änderung die Instanz schaltet.
https://forum.iobroker.net/viewtopic.php?t=3491. Wenn du Probleme mit dem Skript hast, meld dich nochmal.
Gruß
Pix
-
Da hast du natürlich Recht. Die Echtzeit wird auf deren Website beworben.
Ist auch kein lebenswichtiges Thema.
Mich ärgert es halt.
Hauptsache ihr könnt mit einem störrischen Esel, wie mich, hier leben
Die Idee mit dem Skript ist gar nicht mal schlecht.
Danke dafür.
Und auch Danke an Wendy für die Geduld
-
Hallo,
@haselchen:Meine Frau hat mir jetzt mal was geschickt.
Da sieht man die Diskrepanz. Ich vergleiche immer Tankerkönig mit clever-tanken.de
Sind beide an die Transparenzstelle angeschlossen.
Wie man oben sieht , hat meine Tankstelle die Daten gesendet.
Clever-Tanken hat sie auch um 12:07 aktualisiert.
Meine sind um 12:18 (die 17min Aktualisierung sind um) immer noch beim alten Stand. `
das ist natürlich interessant, aber ändert in ioBroker nix. Du kannst einen clever-tanken-Adapter schreiben, dann wird sich auf Dauer der genauere Lieferant durchsetzen. Tankerkoenig liefert seine Daten nunmal über eine API in JSON. Also genau in ioBroker-Sprache. Damit kann man schnell und ohne großen Rechen- und vor allem Pflegeaufwand die Daten abholen. Die Alternative wäre ja das Parsen der Clever-tanken-Webseite. Ich veröffentliche allerdings keine Adapter mehr, die Daten auf dieser Basis bereitstellen. Da ist einfach zu viel Pflegeaufwand vorprogrammiert. Und es gibt bei tankerkoenig auch noch die Umkreissuche (nur Skriptlösung), die aber deutlich mehr Daten zieht.Scheinbar ist clever-tanken beim Abholen der Daten von der MTS vor Tankerkönig dran, oder die Aufbereitung der Daten für die API dauert in tankerkoenig einfach noch ein paar Minuten. Man müsste deinen Vergleich mal repräsentativ mit mehren Tankstellen, zu mehreren Zeitpunkten und über einen etwas längeren Zeitraum machen.
Ich selbst habe mit meinen favorisierten Tankstellen keine Probleme.
Gruß
Pix
-
Ich bin ja ehrlich, ich habe keine Ahnung von den technischen Begriffen
Bin der Basteltyp, also Copy & Paste.
Deine Idee mit dem Adapterneustart, wenn ich genau jetzt den aktuellen Preis wissen will, hat manuell schonmal funktioniert.
Meine View hat er sofort auf den neuesten Stand gebracht.
Ich werde das mal mit einem Button und dem Skript auf meine View legen und bei Bedarf einfach drücken
Edit:
Ich habe jetzt ein Skript fürs Ausschalten und eines zum Anschalten. Aber wie muss es aussehen, dass ich einfach einen Neustart mache?
var obj = getObject("system.adapter.tankerkoenig.0"); obj.common.enabled = true; // Adapter einschalten setObject("system.adapter.tankerkoenig.0", obj);
var obj = getObject("system.adapter.tankerkoenig.0"); obj.common.enabled = false; // Adapter ausschalten setObject("system.adapter.tankerkoenig.0", obj);
-
Meine Frau hat mir jetzt mal was geschickt.
Da sieht man die Diskrepanz. Ich vergleiche immer Tankerkönig mit clever-tanken.de
Sind beide an die Transparenzstelle angeschlossen.
Wie man oben sieht , hat meine Tankstelle die Daten gesendet.
Clever-Tanken hat sie auch um 12:07 aktualisiert.
Meine sind um 12:18 (die 17min Aktualisierung sind um) immer noch beim alten Stand. `
Kannst du auch mal auf der Tankerkönig Seite direkt die Preise vergleichen mit Clever Tanken?
Nicht das nur die Preise bei der API Abfrage hinterher hinken.
-
Ich versuch das in der Woche mal zu beobachten.
Momentan würde mir der Vorschlag von pix super weiterhelfen mit dem Button und dem Skript.
Weisst du wie das für einen Neustart aussehen müsste?
-
Hallo,
muss jetzt leider kurz aus dem Haus. Ich kann es nachher nachliefern.
Eigentlich brauch es nur ein neues Objekt (createState), das dann überwacht wird.
Dann reicht evtl. ein SetValue Widget
Ich brauche bis heute Abend. Vielleicht ist hier jemand schneller.
Gruß
Pix
-
@pix:Du kannst einen clever-tanken-Adapter schreiben, `
Das kann er leider nicht:
@[url=http://www.clever-tanken.de/agb:~~Clever-Taken AGB"]~~Insbesondere ist es nicht gestattet, eigene Robots, Webcrawler oder sonstige Automatismen zu programmieren und die Inhalte von clever-tanken.de systematisch und umfassend in anderen Medien darzustellen oder für sonstige Zwecke zu extrahieren und zu verarbeiten. `
Gruß
Rainer
-
@pix:Hallo,
muss jetzt leider kurz aus dem Haus. Ich kann es nachher nachliefern.
Eigentlich brauch es nur ein neues Objekt (createState), das dann überwacht wird.
Dann reicht evtl. ein SetValue Widget
Ich brauche bis heute Abend. Vielleicht ist hier jemand schneller.
Gruß
Pix `
Pix? Ich komme leider ohne Deine Hilfe nicht weiter
-
Hallo,
hier mal ein Skript, das über einen boolean-Schalter aus VIS einen Adapter aus/einschalten kann.
Es wird ein Objekt angelegt, welches in VIS mit einem Schalter verknpüft werden muss (javascript.X.Sprit.Adapter.Schalter). Beim Schalten wird der Adapter (es gehen natürlich auch andere Adapter als der tankerkoenig) aktiviert/deaktiviert. Ich habe festgelegt, dass nur Schaltung aus VIS heraus akzeptiert werden. Will man aus einem anderen Skript oder z.B. dem Szene-Adapter schalten, dann bitte Zeile 32 (From) anpassen.
Achtung: Der Schalter in VIS schaltet nur ein Objekt, welches im Skript überwacht wird und dann den Adapter schaltet. Das heißt, dass Änderungen am Adapterstatus selbst nicht zwangsläufig korrekt in VIS dargestellt werden. Oder anders: Wenn du z.B. den Adapter in Admin abschaltest oder er dir abschmiert, wird das in VIS nicht angezeigt.
Skript (bitte die Konstanten im oberen Bereich anpassen):
/* Spritpreis tankerkoenig adapter neu starten erzeugt Objekt, das in VIS geschaltet werden kann Schaltung triggert Neustart eines Adapters 28.03.2018 erstellt von pix */ const logging = true; // (true;false) Logausgabe zentral schalten, da 5minütlich ein Mehrzeiler geloggt wird. const instanz = "javascript." + instance; const fC = false; // force Create const idSchalter = instanz + ".Sprit.Adapter.Schalter"; const adapter = "tankerkoenig.0"; // Name und Instanz des Adapters // Ab hier nix mehr ändern if (logging) log("Skript " + name + " in der Instanz " + instance + " gestartet"); var idAdapter = "system.adapter." + adapter; createState(idSchalter, false, fC, { name: adapter + " Adapter neu starten", type: "boolean", desc: "Schaltet den <" + adapter + "> Adapter per Skript zB aus VIS", role: "switch" }); // Neustart triggern on({ id: idSchalter, change: "ne", from: "system.adapter.web.0" // Schaltung nur aus VIS möglich }, function (dpobj) { var obj = getObject(idAdapter); if (dpobj.state.val) { obj.common.enabled = true; // Adapter einschalten } else if (!dpobj.state.val) { obj.common.enabled = false; // Adapter ausschalten } setObject(idAdapter, obj); if (logging) log("Adapter <" + adapter + "> wurde " + ((obj.common.enabled) ? "ein" : "aus") + "geschaltet"); });
Widget:
[{"tpl":"tplMetroTileToggle","data":{"visibility-cond":"==","visibility-val":1,"hover":false,"transform":"true","bg_class_true":"ribbed-emerald","bg_class_false":"ribbed-crimson","icon_class_true":"","icon_class_false":"","icon_badge_true":"","icon_badge_false":"","badge_bg_class_true":"","badge_bg_class_false":"","brand_bg_class_true":"","brand_bg_class_false":"","select_on_true":true,"label_true":"Adapter aktiviert tankerkoenig.0 eingeschaltet","label_false":"Adapter deaktiviert tankerkoenig.0 abgeschaltet","toggle_oid":"javascript.0.Optin_Nachtruhe_Sayit","name":"Adapter schalten","oid":"javascript.2.Sprit.Adapter.Schalter","badge_top":"0","badge_left":"0","gestures-offsetX":0,"gestures-offsetY":0,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"visibility-groups-action":"hide","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"comment":"wird in Skript überwacht"},"style":{"left":"875px","top":"416px","width":"137px","height":"137px","font-family":"","z-index":"26","cursor":"pointer"},"widgetSet":"metro"}]
Gruß
Pix
-
@ Pix
Wenn es den Danke Button noch gäbe, würde ich stündlich für Dich draufdrücken.
Bist der Wahnsinn.
Vielen Dank.
-
ich habe seit gestern eine Fehlermeldung…
tankerkoenig.0 2018-04-03 09:35:00.906 error Spritpreise einlesen (gezielte Stationen via ID) - Parse Fehler: TypeError: Cannot read property 'e5' of undefined tankerkoenig.0 2018-04-03 09:35:00.687 info starting. Version 1.0.4 in /opt/iobroker/node_modules/iobroker.tankerkoenig, node: v6.13.1 tankerkoenig.0 2018-04-03 09:30:01.431 error Spritpreise einlesen (gezielte Stationen via ID) - Parse Fehler: TypeError: Cannot read property 'e5' of undefined tankerkoenig.0 2018-04-03 09:30:01.161 info starting. Version 1.0.4 in /opt/iobroker/node_modules/iobroker.tankerkoenig, node: v6.13.1 tankerkoenig.0 2018-04-03 09:25:00.878 error Spritpreise einlesen (gezielte Stationen via ID) - Parse Fehler: TypeError: Cannot read property 'e5' of undefined tankerkoenig.0 2018-04-03 09:25:00.667 info starting. Version 1.0.4 in /opt/iobroker/node_modules/iobroker.tankerkoenig, node: v6.13.1
hat sich etwas am API geändert?
-
Hi,
hat sich etwas am API geändert? `
oder hat sich ggf. die Tankstellen-ID geändert?Gruß,
Eric
-
Habe ich auch bei einer Tankstelle gehabt - die ist jetzt dauerhaft geschlossen.
Existiert deine noch?
ist schließlich der 1.4. gewesen und damit Quartalswechsel….
Gruß
Rainer
-
Es war tatsächlich noch eine Tabkstelle in dr nähe meiner alten Arbeisstätte in der Abfrage bei der sich anscheinend die ID geändert hat…
Danke für die Tipps...