Coder Social home page Coder Social logo

Spritpreise einlesen (gezielte Stationen via ID) - Parse Fehler: TypeError: Cannot read property 'e5' of undefined about iobroker.tankerkoenig HOT 18 CLOSED

SteffnVo avatar SteffnVo commented on July 22, 2024
Spritpreise einlesen (gezielte Stationen via ID) - Parse Fehler: TypeError: Cannot read property 'e5' of undefined

from iobroker.tankerkoenig.

Comments (18)

Pix--- avatar Pix--- commented on July 22, 2024

Interessanter Punkt. Aber der Adapter ist ein Tool zur Abfrage der Daten von Tankerkoenig.de. Wenn die Daten nicht zur Verfügung stehen, können sie nicht verarbeitet werden.
Sollte eine ID nicht stimmen, ist eine Log-Ausgabe vorgesehen.

from iobroker.tankerkoenig.

SBajonczak avatar SBajonczak commented on July 22, 2024

Ich hatte den Fehler heute auch, das lag aber daran das die Tankstellen ID ohne Bindestriche eingegeben wurde. Eventuell ist das auch dort das Problem.

from iobroker.tankerkoenig.

Pix--- avatar Pix--- commented on July 22, 2024

Werde in der nächsten Version (Admin 3 Update und material design) die Zeichen bei der Eingabe prüfen. Das Muster ist xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Ein regulärer Ausdruck könnte so aussehen:
[a-z|0-9]{8}-[a-z|0-9]{4}-[a-z|0-9]{4}-[a-z|0-9]{4}-[a-z|0-9]{12}
Die Überprüfung wird erst nach dem Speichern der Einstellungen vorgenommen. Eine vorherige Überprüfung schon bei der Eingabe der Daten kann ich nur über die Länge der Zeichenkette (36 Zeichen) und mit Hilfe des materializecss-Plugins "Character Counter" realisieren.

Der Adapter prüft derzeit die Länge des API-Keys (auch 36 Zeichen) und startet keine Server-Abfrage, wenn die Länge nicht stimmt. Die Tankstellen-ID werden nicht geprüft, sondern wie eingegeben in die Bulk-Abfrage der Tankerkoenig-API eingebaut. Ist eine ID fehlerhaft, wird auch die ganze Abfrage fehlerhaft sein.
Die vom Server zurückgegebene JSON enthält keine Daten, welcher API-Key fehlerhaft sei und so kann eine genauere Identifikation des Fehlers nicht erfolgen. Man muss das Log regelmäßig prüfen und die ID und den Key sorgfältig eingeben.

Ich werde weiterhin den Abfrage-Vorgang abbrechen lassen, wenn eine Tankstellen ID oder der API-Key nicht korrekt sind.

from iobroker.tankerkoenig.

Zwer2k avatar Zwer2k commented on July 22, 2024

Hallo,
bei mir kam der Fehler wenn alle Tankstellen geschlossen waren.
Meldung sollte mit meinem pull request nicht mehr kommen. Die Anfrage habe ich vor einem Monat gestartet, wurde leider noch nicht übernommen.
https://github.com/Pix---/ioBroker.tankerkoenig/pull/34

from iobroker.tankerkoenig.

olderbag avatar olderbag commented on July 22, 2024

Mir ist es jetzt innerhalb kurzer Zeit auch zwei mal passiert, dass eine der abgefragten Tankstellen geschlossen wurde und deshalb keine Aktualisierung mehr erfolgte.

Ich kann nachvollziehen, dass durch die Bulk-Abfrage und die fehlende Info, welcher Key fehlerhaft ist, der Grund vom Adapter nicht identifiziert werden kann.

Bei mir hat es jeweils mehrere Tage gedauert, bis ich gecheckt habe, dass da was faul ist.

Hilfreich wäre ein zusätzlicher boolscher Datenpunkt, der den Erfolg der Abfrage dokumentiert.

from iobroker.tankerkoenig.

Pix--- avatar Pix--- commented on July 22, 2024

Hallo,
bei mir kam der Fehler wenn alle Tankstellen geschlossen waren.
Meldung sollte mit meinem pull request nicht mehr kommen. Die Anfrage habe ich vor einem Monat gestartet, wurde leider noch nicht übernommen.
https://github.com/Pix---/ioBroker.tankerkoenig/pull/34

Ich werde - bei Gelegenheit - den PR einpflegen. Mir fehlt die Zeit zur Prüfung. Ich bitte um Geduld und bedanke mich herzlich für die Weiterentwicklung.

from iobroker.tankerkoenig.

Pix--- avatar Pix--- commented on July 22, 2024

Mir ist es jetzt innerhalb kurzer Zeit auch zwei mal passiert, dass eine der abgefragten Tankstellen geschlossen wurde und deshalb keine Aktualisierung mehr erfolgte.

Ich kann nachvollziehen, dass durch die Bulk-Abfrage und die fehlende Info, welcher Key fehlerhaft ist, der Grund vom Adapter nicht identifiziert werden kann.

Bei mir hat es jeweils mehrere Tage gedauert, bis ich gecheckt habe, dass da was faul ist.

Hilfreich wäre ein zusätzlicher boolscher Datenpunkt, der den Erfolg der Abfrage dokumentiert.

Meinst du "geschlossen" im Sinne der Öffnungszeiten oder im Sinne von "gibt es nicht mehr"? Es gibt eine Option in den EInstellungen, die den Preis "0" schreibt, wenn keine Aktualisierung erfolgt. Daran kann man sehen, ob die Station einen Preis liefert oder nicht.

from iobroker.tankerkoenig.

olderbag avatar olderbag commented on July 22, 2024

Ich meine geschlossen im Sinne von "gibt es nicht mehr".

from iobroker.tankerkoenig.

Schweizer75 avatar Schweizer75 commented on July 22, 2024

bekomme den fehler auch sobald die tankstelle um 2200 dicht macht!
es kann also nicht damit zu tun haben das die tankstelle auf ewig geschlossen ist...

grüsse

from iobroker.tankerkoenig.

Pix--- avatar Pix--- commented on July 22, 2024

Um es nachzuvollziehen brauche ich die ID der Station. Evtl. Ist die JSON Rückmeldung nicht korrekt.

Sent with GitHawk

from iobroker.tankerkoenig.

Schweizer75 avatar Schweizer75 commented on July 22, 2024

0a49f5e0-d339-4772-9a49-7f863b7bcf96
5bee7690-a802-4bae-b09b-cc6f1e238d19
e993fb24-3912-43cc-a47b-399ba02ae435
61f761da-7aa5-4966-a7eb-c9abb5820db3
c76a7198-d4f3-4c5d-94ce-e501c611092f
748c78a4-5c77-414a-9f11-1ebd616fdaaa

das sind meine IDS

Grüsse Schweiz

from iobroker.tankerkoenig.

moelski avatar moelski commented on July 22, 2024

Moin !
Ich hänge mich hier mal an. Habe auch (wenn die Tanke zu ist) den Fehler "Spritpreise einlesen (gezielte Stationen via ID) - Parse Fehler: TypeError: Cannot read property 'e5' of undefined".
Die Tankstellen sind aber nur zu (Öffnungszeit) und nicht geschlossen (kein Betrieb mehr).

Meine IDs:
091edf78-d193-43f2-946d-57ad79c7cccd
b289a6d0-34db-46de-8bd2-851fa5d61c74
fd11fb8c-efcc-4ee0-b689-a7fd158315b8
51d4b4de-a095-1aa0-e100-80009459e03a
e72e7d5e-06ea-4926-a7f7-84c570d88212

Wäre super wenn dieser Bug behoben werden könnte.
Dann sehen die grafischen Logs auch wieder lesbarer aus ...

Grüße Dominik

from iobroker.tankerkoenig.

Pix--- avatar Pix--- commented on July 22, 2024

@Schweizer75 Ich werde eine weitere Instanz des Adapters anlegen und deine IDs probieren. Welche der Stationen ist denn betroffen?

@moelski Auch bei Dir? Welche Station genau ist betroffen? Was sagt das Log, wenn man die Adapter Instanz auf Loglevel debug stellt? (Reiter Instanzen, Expertenmodus [Button neben dem Reload Button])

from iobroker.tankerkoenig.

Soulguard avatar Soulguard commented on July 22, 2024

Habe den Fehler leider auch seit Urzeiten. Nervt, weil er das Log zuspamt. Ich wäre wirklich sehr Dankbar für eine Fehlerbehebung, oder eine Option, das der Fehler nicht mehr geloggt wird.
Diese Station verursacht den Fehler:
11c1a588-4130-486c-a8e2-ffcc7e1dadb3

Danke und Gruß

from iobroker.tankerkoenig.

Pix--- avatar Pix--- commented on July 22, 2024

Hallo @Soulguard @moelski @Schweizer75 @olderbag,
ich habe heute kurz Zeit gefunden, mir das Problem anzusehen. mit Hilfe von @Soulguard geteilter Station-ID konnte ich gerade die zurückgelieferte JSON sehen
{"ok":true,"license":"CC BY 4.0 - https:\/\/creativecommons.tankerkoenig.de","data":"MTS-K","prices":{"xxx":{"status":"no stations"}}}
Im Adapter (main.js) wird in Zeile 113 ein try() ausgeführt und mit catch(e) in Zeile 343 der Fehler ausgegeben. Innerhalb von try werden die in der Konfiguration gespeicherten Station-IDs durchgegangen. Wenn die "kaputte" StationID einzeln abgefragt wird, kommt der obige Fehler als JSON. Das lässt sich mit der neuen Adapterversion 2.0.7 abfangen.
Wenn aber weitere Tankstellen mit abgefragt werden, ist die Antwort JSON des Servers in zwar Ordnung und liefert Daten, allerdings bricht der try() das Auslesen der JSON ab, sobald die "kaputte" bzw. "nicht vorhandene" Station abgefragt werden soll. Es greift catch() und schreibt "Parse Fehler".
Einfach gesagt: Die Rückmeldung "no stations" kommt nur, wenn keine weiteren Stationen abgefragt werden. Ist letzteres der Fall, kann der Adapter diesen Fehler nicht identifizieren.
Lösung: Tankstelle muss korrekt an MTS-K melden, wie die anderen Stationen auch.
Lösung 2: Tankerkönig anfragen, ob Rückmeldung "no stations" wie die anderen Fehlermeldungen geliefert werden kann.

Sorry, mehr kann ich nicht tun.
Pix

from iobroker.tankerkoenig.

Pix--- avatar Pix--- commented on July 22, 2024

Dank @Zwer2k 's sollte dieser Fehler behoben sein. Hab den Wald vor lauter Bäumen nicht gesehen. Bitte testet v2.0.8

from iobroker.tankerkoenig.

Janideluxe avatar Janideluxe commented on July 22, 2024

Habe seit ein paar Tagen die oben genannte Fehlermeldung im Log.
9d0671d2-8cf3-4ac1-958b-cd8a911f0482
15c9c562-812f-4e20-a443-cdb967d97e81
6af4af67-54d0-4cca-b837-777f712e079c

das hier sind meine IDs. Alle Tankstellen sind offen und Daten sind vorhanden

from iobroker.tankerkoenig.

Pix--- avatar Pix--- commented on July 22, 2024

@Janideluxe Ich habe zwar keine Frage in deinem Post gefunden, aber aus Neugier mal die erste ID ausprobiert und keine Fehlermeldung entdeckt.
Es hilft bei der Fehlersuche immer, mit allen Daten rauszukommen. Welche Fehlermeldung kommt genau? Poste doch die Logausgabe in Code-Tags hier. Du kannst den Adapter auf debug stellen und das Log hier posten.

Werden deine States nicht gefüllt?

Gruß
Pix

from iobroker.tankerkoenig.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.