NEWS
Skripten des E-Control Spritpreisrechners
-
@metaxa
Der Grundstein ist gelegt: -
@Homoran sagte in Skripten des E-Control Spritpreisrechners:
@metaxa
Der Grundstein ist gelegt:Ösi-Tanken
-
Hallo,
ja, das ist der richtige Weg. Dann braucht es auch keinen Parser-Adapter, das kann ein Skript ganz gut.
Mir fehlt gerade etwas die Zeit, um es komplett vorzukauen. Bin noch mit dem Pollenflug beschäftigt und dann gehts ja schon fast nach KS. Ich werde es mir im Zug nochmal ansehen. Dort kann ich aber nur grob was zusammenschreiben, da ich da nicht testen kann (hab noch keinen mobilen iobroker-Master).
Hilft euch denn nicht das Spritpreis Skript, das dem tankerkoenig-Adapter damals vorausging? Da läuft doch das Parsen einer JSON auch erfolgreich.
https://forum.iobroker.net/post/1012Gruß
Pix -
-
@metaxa
Mal ganz grob gedachtWas hältst du von einem array.
Wird beim allerersten Durchlauf angelegt mit allen daten der 10 tanken
Da kannst du dann bei jedem weiteren Durchlauf nur die preise im array austauschen oder gegen >xx wenn nicht unter den top5 -
So, mein grober Entwurf ist mal fertig.
Gefällt mir noch nicht perfekt, aber zumindest sieht man auf den 1. Blick alles nötige!Danke nochmals
-
Hübsch, wirklich gelungen!
Bin gerade am Erweitern um Entfernung und ob zum Zeitpunkt der letzten Abfrage - offen oder zu.
Gerne und LG, mxa
-
@Homoran
Hallo Rainer! Ja array, an dem geht eh kein Weg vorbei. Nur, ich darfs nicht laut schreiben, ich habe keinen blassen Schimmer davon.
Hab es gestern Abend noch geschafft, mit dem Hinweis von PIX, die URL direkt ins Script (also ohne Parser) zu laden. Nur bei der Schleifenabfrage der einzelnen Werte hagelt es Beschwerden seitens JS im Log. Da bin ich noch sehr hilfsbedürftig
Auch habe ich mir gestern Nacht noch angesehen wie denn das ist, wenn man auch geschlossene Tankstellen anzeigen läßt. Naja, ausbaufähig, bei einigen sieht man einen Preis, bei anderen wieder nicht.
Die Endausbaustufe sehe ich in meinem Script:-
kein Parser notwendig
-
nur das Script mit folgenden Parametern zum Einstellen:
-
Längengrad & Breitengrad
-
Diesel/ Benzin
-
nur offene / auch geschlossene
-
Nur brauche ich halt leider Hilfe, mit lesen alleine komme ich nicht mehr weiter, bzw. ist es auf die Dauer sehr zeitraubend.
LG, mxa
-
-
Naja, so richtig habe ich auch keine Ahnung, habe vor 20 Jahren mal Datenbanken programmiert in einer basic-artigen Sprache. Auch irgendwas mit einem dynarray().
Da ging es auch (für mich) "einfacher" indem ich mit locate() in einer Tabelle gesucht hatte. Das wäre hier entsprechend mit den States.
Leider bräuchte man wahrscheinlich wegen der rotierenden Reihenfolge dann genauso viele "Hilfsstates" wie eigentliche States.Das schlimme ist ich habe soooo viele Ideen, bin aber durch mein NichtKönnen an der Lösung gehindert.
Dein Endziel entspricht in weiten Teilen meinem, evtl. schieße ich da noch drüber hinaus:
- kein Parser(Adapter) notwendig - KLAR!
- zum Einstellen
** Längen und Breitengrad - nöö, das steht doch im js-Adapter
*** Und da würde ich gerne noch einen draufsetzen wenn die Tanke nicht unter den ersten 5 ist, eine bis 4 weitere Abfragen mit Verschiebung des Zentrums um den halben Radius in 4 Himmelsrichtungen
@metaxa sagte in Skripten des E-Control Spritpreisrechners:
alleine komme ich nicht mehr weiter, bzw. ist es auf die Dauer sehr zeitraubend.
und deswegen reizt es mich so, obwohl ich "nichts davon habe".
Leider falle ich die nächste Zeit aus, so dass ich erst mal nicht weitermachen kann.
Vielleicht kommt morgen abend beim Gespräch in Kassel was raus. -
Hat wer eine Idee wie man den Fehler abfangen kann wenn kein Preis vorhanden ist?
-
@Georgius sagte in Skripten des E-Control Spritpreisrechners:
wie man den Fehler abfangen kann wenn kein Preis vorhanden ist?
Mehrere - was wäre denn sinnvoll?
1.) einen Wert angeben mit >1.217 wenn der teuerste unter den Top5 1.217 wäre und die gewünschte Tanke nunter Top 6-10 liegt und somit teurer sein muss.
2.) einen anderen Weg finden doch noch den Preis herauszubekommen
3.) "geschlossen" angeben weil sie zu ist? -
Da reden wir von unterschiedlichen Sachen. Tankstelle 6 kann auch einen Preis haben, wenn mehrere Tankstellen den selben Preis haben.
Wenn kein Preis vorhanden ist bekomme ich einen error und das Programm bricht ab.
if ((gasStation[index].prices[0].amount)!=null){
Noch eine Frage:
setState("javascript.0.Sprit.Tankstelle_"+index+".adresse", gasStation[index].location.address + "\n" +gasStation[index].location.postalCode + " "+ gasStation[index].location.city); }
Bekomme ich keinen Zeilenumbruch in den Datenpunkt und auch nicht im Vis (getestet mit Basic/Strings)
-
@Georgius sagte in Skripten des E-Control Spritpreisrechners:
Da reden wir von unterschiedlichen Sachen.
Nein!
@Georgius sagte in Skripten des E-Control Spritpreisrechners:
Tankstelle 6 kann auch einen Preis haben, wenn mehrere Tankstellen den selben Preis haben.
Genau, kann, muss aber nicht. Das ist ein Sonderfall
-
@Georgius
Frage 1 gelöst:if ((gasStation[index].prices[0])!=undefined){
führt die nächsten Zeilen nur aus wenn ein Preis vorhanden ist.
Langsam macht die ganze Sache und JS Spaß
-
Hallo,
Wie kann man den Preis als Punkt statt Komma bekommen?
Kann ich das wo umstellen?
1,169 / 1.169Warum das? Weil einige Widget das Komma nicht erkennen............
-
Das
.toString().replace(".",",")
in Zeile 11 des Startbeitrag weglassen.
Nicht vergessen dass dann der Datenpunkt "number" und nicht "string" sein darf.
-
@Homoran sagte in Skripten des E-Control Spritpreisrechners:
und deswegen reizt es mich so, obwohl ich "nichts davon habe".
Lieber Rainer, du hast den schier unerschöpflich, ewigen Dank, deiner unmittelbaren Nachbarn, den Ösis +
Aber eine praktische Feststellung, wie ich es sehe und seit Jahren handhabe:
-
Wenn ich unterwegs tanken muss, dann muss ich sehr demnächst tanken. Ist es sehr, sehr dringend, dan nehme ich die nächste Diskontstelle
-
Bin ich zu Hause und sollte am nächsten Tag tanken dann fahre ich bis jetzt immer zu meinem Lieblingsdiskonter auf dem Weg ins Büro. Sicher mache ich keinen Umweg wegen einer 2. oder 3. Kommastelle. Die ich auch vorab nicht wusste.
-
Ich werde die Preisinfos künftig dafür verwenden, festzustellen wie weit vorne oder wie weit hinten im Ranking mein Diskonter auf dem Weg ins Büro ist. Sollte es eklatant sein, kann ich später, morgen oder wo anders hinfahren. In der Praxis - seit Jahren beobachtet - ist mein Diskonter meist ganz vorne, also passte es für mich. Wenn diese Tankstelle geschlossen hat und ich ganz dringend wegmüssen, dann ist meist der Preis auch sekundär.
Deswegen werde ich MEINE Tankstelle auf Grund von Koordinaten hoffentlich unter den Top 10 "offenen" oder den Top 10 "mit geschlossenen" finden und darstellen. Die Top 5 werden mir nur als Info dienen.
justmy2cents
LG, mxa -
-
@metaxa Wo finde ich den Baustein result?
-
Blocklybaustein? Unter Variablen anlegen!
-
Ja, nur unter welcher Rubrik