Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Skripten des E-Control Spritpreisrechners

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Skripten des E-Control Spritpreisrechners

    This topic has been deleted. Only users with topic management privileges can see it.
    • metaxa
      metaxa last edited by metaxa

      Blocklybaustein? Unter Variablen anlegen!

      G 1 Reply Last reply Reply Quote 0
      • G
        Georgius @metaxa last edited by

        @metaxa

        Ja, nur unter welcher Rubrik

        metaxa Homoran 2 Replies Last reply Reply Quote 0
        • metaxa
          metaxa @Georgius last edited by

          @Georgius sorry, siehe oben. Variable --> erstellen

          1 Reply Last reply Reply Quote 1
          • Homoran
            Homoran Global Moderator Administrators @Georgius last edited by

            @Georgius variable

            1 Reply Last reply Reply Quote 1
            • Homoran
              Homoran Global Moderator Administrators @metaxa last edited by

              @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.

              1 Reply Last reply Reply Quote 0
              • G
                Georgius last edited by

                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.

                metaxa 1 Reply Last reply Reply Quote 2
                • metaxa
                  metaxa @Georgius last edited by

                  @Georgius Hm, ich krieg nur "0"
                  4b81ac34-6fad-4413-80d4-7d9fa751bcb8-grafik.png
                  Bei dir hagelts aber einmal keine Fehlermeldungen .....

                  1 Reply Last reply Reply Quote 0
                  • G
                    Georgius last edited by

                    Beim 2. Durchlauf sollte es dann funktionieren.

                    Ich verwende das Blocky zum einlesen des JSON

                    1 Reply Last reply Reply Quote 0
                    • sigi234
                      sigi234 Forum Testing Most Active @metaxa last edited by

                      @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....☺

                      1 Reply Last reply Reply Quote 0
                      • sigi234
                        sigi234 Forum Testing Most Active @Georgius last edited by sigi234

                        @Georgius

                        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)

                        Screenshot (2775).png

                        metaxa 1 Reply Last reply Reply Quote 1
                        • G
                          Georgius last edited by Georgius

                          Ö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.

                          sigi234 1 Reply Last reply Reply Quote 0
                          • metaxa
                            metaxa @sigi234 last edited by

                            @sigi234
                            ((Math.round((gasStation[index].distance)*100)/100).toString().replace(".",","))
                            (gasStation[index].open).toString()
                            LG, mxa

                            1 Reply Last reply Reply Quote 1
                            • sigi234
                              sigi234 Forum Testing Most Active @Georgius last edited by

                              @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.........

                              Screenshot (2777).png

                              Q Negalein 2 Replies Last reply Reply Quote 1
                              • G
                                gerald123 last edited by

                                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. Gerald

                                sigi234 1 Reply Last reply Reply Quote 0
                                • sigi234
                                  sigi234 Forum Testing Most Active @gerald123 last edited by sigi234

                                  @gerald123

                                  Leider nein.............

                                  Screenshot (3741).png

                                  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                  //  "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");
                                  });
                                  

                                  Screenshot (3743).png

                                  https://api.e-control.at/sprit/1.0/search/gas-stations/by-address?latitude=xx.xxxxx&longitude=xx.xxxxx&fuelType=DIE&includeClosed=false

                                  Die XXX mit deinen ersetzten........

                                  G 1 Reply Last reply Reply Quote 0
                                  • G
                                    gerald123 @sigi234 last edited by

                                    @sigi234
                                    Kannst du mir trotzdem noch sagen welches Script du verwendest?

                                    Negalein 1 Reply Last reply Reply Quote 0
                                    • Negalein
                                      Negalein Global Moderator @gerald123 last edited by

                                      @gerald123 sagte in Skripten des E-Control Spritpreisrechners:

                                      @sigi234
                                      Kannst du mir trotzdem noch sagen welches Script du verwendest?

                                      hat er 1 Beitrag über dir gepostet

                                      1 Reply Last reply Reply Quote 0
                                      • G
                                        gerald123 last edited by

                                        Super Danke, habs bei mir jetzt auch am laufen.

                                        1 Reply Last reply Reply Quote 0
                                        • Negalein
                                          Negalein Global Moderator last edited by

                                          @metaxa

                                          Ich bekomm von Zeit zu Zeit immer wieder Fehlermeldungen im Log.
                                          Das Script bleibt dann mit einem gelben Pausezeichen stehen.

                                          2019-11-25 12:07:35.026  - error: javascript.0 (608) Error in callback: TypeError: Cannot read property 'amount' of undefined
                                          2019-11-25 12:07:35.027  - error: javascript.0 (608)     at Object.<anonymous> (script.js.common.Spritpreisrechner:34:107)
                                          2019-11-25 12:07:35.027  - error: javascript.0 (608)     at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1101:38)
                                          2019-11-25 12:07:35.027  - error: javascript.0 (608)     at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:439:25)
                                          2019-11-25 12:07:35.027  - error: javascript.0 (608)     at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4744:37)
                                          2019-11-25 12:07:35.027  - error: javascript.0 (608)     at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:226:41)
                                          2019-11-25 12:07:35.028  - error: javascript.0 (608)     at runCallback (timers.js:705:18)
                                          2019-11-25 12:07:35.028  - error: javascript.0 (608)     at tryOnImmediate (timers.js:676:5)
                                          2019-11-25 12:07:35.028  - error: javascript.0 (608)     at processImmediate (timers.js:658:5)
                                          

                                          Liegt das an der e-Control?

                                          1 Reply Last reply Reply Quote 0
                                          • metaxa
                                            metaxa last edited by

                                            Servus, da tue ich mir schwer was dazu zu sagen. Bin kein Scripter, mehr der Kopierer. Bei mir läuft das Script nach Umstieg auf JS Controller 2.1.0 & JS Script Engine 4.3.2 fehlerfrei.
                                            LG, mxa

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            530
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript monitoring
                                            21
                                            292
                                            31876
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo