NEWS
Skripten des E-Control Spritpreisrechners
-
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............
-
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............
-
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.@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 -
@Georgius variable
-
@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
sehe ich auch wie du.
Als ich eure "Preisunterschiede" im Zehntelcentbereich gesehen hatte musste ich fast lachen.Bei uns gab es Unterschiede von bis zu 30 CT im Umkreis von 2 km.
Da war es sinnvoll sich zu informieren.
ein Jahr nach Einführung der Transparenzstelle war es dann nur noch 10ct.
-
-
Also so schaut mal meine Lösung aus:
on({id: 'javascript.0.Sprit.Sprit_JSON'/*Sprit JSON*/, change: 'any'}, function(obj) { var index = 0; /*var gasStation = JSON.parse('parser.0.Tanken');*/ var gasStation = JSON.parse(obj.state.val); /*if (gasStation.length === 0) return;*/ console.log((String('Durchlauf'))); createState("javascript.0.Sprit.Tankstelle_Test.Index", false,{type: 'number',name: 'index', read: true,write: true}); for (index = 0; index < gasStation.length; ++index) { createState("javascript.0.Sprit.Tankstelle_"+index+".Index", 0,{type: 'number',name: 'index', read: true,write: true}); setState("javascript.0.Sprit.Tankstelle_"+index+".Index", gasStation[index].id); createState("javascript.0.Sprit.Tankstelle_"+index+".name", 0,{type: 'string',name: 'name', read: true,write: true}); setState("javascript.0.Sprit.Tankstelle_"+index+".name", gasStation[index].name); createState("javascript.0.Sprit.Tankstelle_"+index+".prices", 0,{type: 'string',name: 'Preis ges', read: true,write: true}); if ((gasStation[index].prices[0])!=undefined){ setState("javascript.0.Sprit.Tankstelle_"+index+".prices", (gasStation[index].prices[0].amount).toString().replace(".",",")); }; createState("javascript.0.Sprit.Tankstelle_"+index+".adresse", 0,{type: 'string',name: 'name', read: true,write: true}); setState("javascript.0.Sprit.Tankstelle_"+index+".adresse", gasStation[index].location.address); createState("javascript.0.Sprit.Tankstelle_"+index+".adresse2", 0,{type: 'string',name: 'name', read: true,write: true}); setState("javascript.0.Sprit.Tankstelle_"+index+".adresse2", gasStation[index].location.postalCode + " "+ gasStation[index].location.city); } });Sortiert nur nach billigst zu teuer.
-
Also so schaut mal meine Lösung aus:
on({id: 'javascript.0.Sprit.Sprit_JSON'/*Sprit JSON*/, change: 'any'}, function(obj) { var index = 0; /*var gasStation = JSON.parse('parser.0.Tanken');*/ var gasStation = JSON.parse(obj.state.val); /*if (gasStation.length === 0) return;*/ console.log((String('Durchlauf'))); createState("javascript.0.Sprit.Tankstelle_Test.Index", false,{type: 'number',name: 'index', read: true,write: true}); for (index = 0; index < gasStation.length; ++index) { createState("javascript.0.Sprit.Tankstelle_"+index+".Index", 0,{type: 'number',name: 'index', read: true,write: true}); setState("javascript.0.Sprit.Tankstelle_"+index+".Index", gasStation[index].id); createState("javascript.0.Sprit.Tankstelle_"+index+".name", 0,{type: 'string',name: 'name', read: true,write: true}); setState("javascript.0.Sprit.Tankstelle_"+index+".name", gasStation[index].name); createState("javascript.0.Sprit.Tankstelle_"+index+".prices", 0,{type: 'string',name: 'Preis ges', read: true,write: true}); if ((gasStation[index].prices[0])!=undefined){ setState("javascript.0.Sprit.Tankstelle_"+index+".prices", (gasStation[index].prices[0].amount).toString().replace(".",",")); }; createState("javascript.0.Sprit.Tankstelle_"+index+".adresse", 0,{type: 'string',name: 'name', read: true,write: true}); setState("javascript.0.Sprit.Tankstelle_"+index+".adresse", gasStation[index].location.address); createState("javascript.0.Sprit.Tankstelle_"+index+".adresse2", 0,{type: 'string',name: 'name', read: true,write: true}); setState("javascript.0.Sprit.Tankstelle_"+index+".adresse2", gasStation[index].location.postalCode + " "+ gasStation[index].location.city); } });Sortiert nur nach billigst zu teuer.
-
@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 sagte in Skripten des E-Control Spritpreisrechners:
Lieber Rainer, du hast den schier unerschöpflich, ewigen Dank, deiner unmittelbaren Nachbarn, den Ösis +
Auch von mir ein Danke..............ein Ösi....

-
-
Das
.toString().replace(".",",")in Zeile 11 des Startbeitrag weglassen.
Nicht vergessen dass dann der Datenpunkt "number" und nicht "string" sein darf.
Danke, erledigt, arbeite schon daran mit Vis.
Da ist noch Feintuning angesagt....
Was habe ich noch vor, tja wenn es geht möchte ich noch folgendes einblenden:-
Öffnungszeiten
-
Geöffnet/Geschlossen
-
Kilometer zur Tankstelle
-
Logo der Tankstelle (geht sicher mit Sichtbarkeit)

-
-
Öffnungszeiten sind aufwendig. Für jeden Tag gibt es ein Von und ein Endefeld +Feiertage.
Logo der Tankstelle geht in meinen Augen nicht über die Sichtbarkeit. Da würde ich für jede Tankstelle bzw. Kette ein Logo ablegen und dann einen Link erzeugen auf das Bild. Wie das im VIS geht weiß ich (noch) nicht.Geöffnet/geschlossen und km sind jeweils ein eigenes Feld.
Man kann auch auf offene Tankstellen filtern im Weblink
Wenn mir fad ist baue ich noch einen Durchschnittspreis der letzten 30 Tage ein.
-
Danke, erledigt, arbeite schon daran mit Vis.
Da ist noch Feintuning angesagt....
Was habe ich noch vor, tja wenn es geht möchte ich noch folgendes einblenden:-
Öffnungszeiten
-
Geöffnet/Geschlossen
-
Kilometer zur Tankstelle
-
Logo der Tankstelle (geht sicher mit Sichtbarkeit)

-
-
Öffnungszeiten sind aufwendig. Für jeden Tag gibt es ein Von und ein Endefeld +Feiertage.
Logo der Tankstelle geht in meinen Augen nicht über die Sichtbarkeit. Da würde ich für jede Tankstelle bzw. Kette ein Logo ablegen und dann einen Link erzeugen auf das Bild. Wie das im VIS geht weiß ich (noch) nicht.Geöffnet/geschlossen und km sind jeweils ein eigenes Feld.
Man kann auch auf offene Tankstellen filtern im Weblink
Wenn mir fad ist baue ich noch einen Durchschnittspreis der letzten 30 Tage ein.
@Georgius sagte in Skripten des E-Control Spritpreisrechners:
Logo der Tankstelle geht in meinen Augen nicht über die Sichtbarkeit.
Denke vielleicht mit Signalbilder und Text besteht aus : Name Tankstelle (avanti)
Da spiele ich mal ein bisschen damit.........
-
Hallo sigi234,
Mich würde interessieren ob du das mit den Logos schon im Vis hinbekommen hast?
Welches Script verwendest du jetzt, hab irgendwann beim Lesen den Faden verloren welches jetzt das Aktuelle ist.
Sg. GeraldLeider nein.............

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // "Spritpreise_AT v.0.5" // // e-control Spritpreise // // ursprüngl. Script von steinejo_io vom // // // // Zwingend erforderlich sind der Parser Adapter und die URL aus der API. Links und Hilfe zum Erstellemn findet ihr im Folgenden Lnk: // // https://forum.iobroker.net/topic/20314/skripten-des-e-control-spritpreisrechners // // Das manuelle Anlegen von Daenpunkten ist nicht mehr notwendig. erledigt das Script beim ersten Aufruf. // // Auf das "E" Zeichen habe ich verzichtet, da es in VIS genz einfach an der jeweils gewünschten Stelle produzierbar ist. // // // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// on({id: "parser.0.Spritpreisrechner", change: 'any'}, function(obj) { log("Start Spritvergleich"); var gasStation = JSON.parse(obj.state.val); if (gasStation.length === 0) return; var i = 0; for (var i = 1; i <= 5; i++) { console.log(i); console.log("scriptDatenPunkte.Sprit_AT.name_"+i); createState("scriptDatenPunkte.Sprit_AT.Treffer_"+i+".Name_"+i, {type: "string", name: "Platz "+i, read: true, write: true}); createState("scriptDatenPunkte.Sprit_AT.Treffer_"+i+".Preis_"+i, {type: "number", name: "Platz "+i, read: true, write: true}); createState("scriptDatenPunkte.Sprit_AT.Treffer_"+i+".Strasse_"+i, {type: "string", name: "Platz "+i, read: true, write: true}); createState("scriptDatenPunkte.Sprit_AT.Treffer_"+i+".PLZ_Ort_"+i, {type: "string", name: "Platz "+i, read: true, write: true}); } var index = 0; //for (index = 0; index < gasStation.length; ++index) { for (index = 0; index <= 4; ++index) { setState("scriptDatenPunkte.Sprit_AT.Treffer_"+(index+1)+".Name_"+(index+1), gasStation[index].name); setState("scriptDatenPunkte.Sprit_AT.Treffer_"+(index+1)+".Preis_"+(index+1), (gasStation[index].prices[0].amount)); setState("scriptDatenPunkte.Sprit_AT.Treffer_"+(index+1)+".Strasse_"+(index+1), (gasStation[index].location.address)); setState("scriptDatenPunkte.Sprit_AT.Treffer_"+(index+1)+".PLZ_Ort_"+(index+1), (gasStation[index].location.postalCode) + " " + (gasStation[index].location.city)); } log("Ende Spritvergleich"); });
Die XXX mit deinen ersetzten........
-
Leider nein.............

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // "Spritpreise_AT v.0.5" // // e-control Spritpreise // // ursprüngl. Script von steinejo_io vom // // // // Zwingend erforderlich sind der Parser Adapter und die URL aus der API. Links und Hilfe zum Erstellemn findet ihr im Folgenden Lnk: // // https://forum.iobroker.net/topic/20314/skripten-des-e-control-spritpreisrechners // // Das manuelle Anlegen von Daenpunkten ist nicht mehr notwendig. erledigt das Script beim ersten Aufruf. // // Auf das "E" Zeichen habe ich verzichtet, da es in VIS genz einfach an der jeweils gewünschten Stelle produzierbar ist. // // // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// on({id: "parser.0.Spritpreisrechner", change: 'any'}, function(obj) { log("Start Spritvergleich"); var gasStation = JSON.parse(obj.state.val); if (gasStation.length === 0) return; var i = 0; for (var i = 1; i <= 5; i++) { console.log(i); console.log("scriptDatenPunkte.Sprit_AT.name_"+i); createState("scriptDatenPunkte.Sprit_AT.Treffer_"+i+".Name_"+i, {type: "string", name: "Platz "+i, read: true, write: true}); createState("scriptDatenPunkte.Sprit_AT.Treffer_"+i+".Preis_"+i, {type: "number", name: "Platz "+i, read: true, write: true}); createState("scriptDatenPunkte.Sprit_AT.Treffer_"+i+".Strasse_"+i, {type: "string", name: "Platz "+i, read: true, write: true}); createState("scriptDatenPunkte.Sprit_AT.Treffer_"+i+".PLZ_Ort_"+i, {type: "string", name: "Platz "+i, read: true, write: true}); } var index = 0; //for (index = 0; index < gasStation.length; ++index) { for (index = 0; index <= 4; ++index) { setState("scriptDatenPunkte.Sprit_AT.Treffer_"+(index+1)+".Name_"+(index+1), gasStation[index].name); setState("scriptDatenPunkte.Sprit_AT.Treffer_"+(index+1)+".Preis_"+(index+1), (gasStation[index].prices[0].amount)); setState("scriptDatenPunkte.Sprit_AT.Treffer_"+(index+1)+".Strasse_"+(index+1), (gasStation[index].location.address)); setState("scriptDatenPunkte.Sprit_AT.Treffer_"+(index+1)+".PLZ_Ort_"+(index+1), (gasStation[index].location.postalCode) + " " + (gasStation[index].location.city)); } log("Ende Spritvergleich"); });
Die XXX mit deinen ersetzten........


