Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Skripten des E-Control Spritpreisrechners

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.4k

Skripten des E-Control Spritpreisrechners

Scheduled Pinned Locked Moved JavaScript
javascriptmonitoring
292 Posts 21 Posters 45.7k Views 16 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • metaxaM Offline
    metaxaM Offline
    metaxa
    wrote on last edited by metaxa
    #40

    Sodala, hier nun mit jeweiliger Adresse, vielleicht kanns jemand brauchen:

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    //  START SETUP:
    //  finaler Inhalt der Datenpunkte:
    //  1 = name_preis | 2 = name_preis_plz_ort_strasse | 3 = (id_Preis_xx) name_preis & (id_Adresse_xx) PLZ_Ort_Strasse
        var InhaltDP = 2;
    
    //  Datenpunktadressen vollständig eintragen (z.B."javascript.0.Aktueller_Spritpreis_01"), müssen manuell erstellt werden
        var id_Preis_01 = "";
        var id_Preis_02 = "";
        var id_Preis_03 = "";
        var id_Preis_04 = "";
        var id_Preis_05 = "";
    
    //  Achtung, wurde oben bei "InhaltDP" 3 ausgewählt (Daten in 2 Felder gesplittet), dann müssen folgende Felder befüllt werden!
    //  Datenpunktadressen vollständig eintragen (z.B."javascript.0.Aktueller_Spritpreis_Adresse_01"), müssen manuell erstellt werden
        var id_Adresse_01 = "";
        var id_Adresse_02 = "";
        var id_Adresse_03 = "";
        var id_Adresse_04 = "";
        var id_Adresse_05 = "";
    
    // Ende Setup
    //////////////////////////////////////////////////////////////////////////////////////////////
    
    //////////////////////////////////////////////////////////////////////////////////////////////
    // Eigentliches Script, ab hier nichts mehr ändern
    
    on({id: "parser.0.Spritpreisrechner"/*Spritpreisrechner*/, change: 'any'}, function(obj)
    {
    
    //  Variablen werden mit "" als objekt(string) deklariert, ohne "" als number:
        var pricehit_01 = "undefiniert";
        var pricehit_address_01 = "undefiniert";
        var pricehit_02 = "undefiniert";
        var pricehit_address_02 = "undefiniert";
        var pricehit_03 = "undefiniert";
        var pricehit_address_03 = "undefiniert";
        var pricehit_04 = "undefiniert";
        var pricehit_address_04 = "undefiniert";
        var pricehit_05 = "undefiniert";
        var pricehit_address_05 = "undefiniert";
        var index = 0;
        var gasStation = JSON.parse(obj.state.val);
        
        if (gasStation.length === 0) return;
    
        for (index = 0; index < gasStation.length; ++index) {
    
    //  Variablen werden befüllt:
        pricehit_01 = gasStation[0].name + " € " + (gasStation[0].prices[0].amount).toString().replace(".",",");
        pricehit_address_01 = (gasStation[0].location.postalCode) + " " + (gasStation[0].location.city) + ", " + (gasStation[0].location.address);
        pricehit_02 = gasStation[1].name + " € " + (gasStation[1].prices[0].amount).toString().replace(".",",");
        pricehit_address_02 = (gasStation[1].location.postalCode) + " " + (gasStation[1].location.city) + ", " + (gasStation[1].location.address);
        pricehit_03 = gasStation[2].name + " € " + (gasStation[2].prices[0].amount).toString().replace(".",",");
        pricehit_address_03 = (gasStation[2].location.postalCode) + " " + (gasStation[2].location.city) + ", " + (gasStation[2].location.address);
        pricehit_04 = gasStation[3].name + " € " + (gasStation[3].prices[0].amount).toString().replace(".",",");
        pricehit_address_04 = (gasStation[3].location.postalCode) + " " + (gasStation[3].location.city) + ", " + (gasStation[3].location.address);
        pricehit_05 = gasStation[4].name + " € " + (gasStation[4].prices[0].amount).toString().replace(".",",");
        pricehit_address_05 = (gasStation[4].location.postalCode) + " " + (gasStation[4].location.city) + ", " + (gasStation[4].location.address);
        }
    
    if (InhaltDP == 1) {    //Name und Preis
        setState(id_Preis_01, pricehit_01);
        setState(id_Preis_02, pricehit_02);
        setState(id_Preis_03, pricehit_03);
        setState(id_Preis_04, pricehit_04);
        setState(id_Preis_05, pricehit_05);
    }
    
    if (InhaltDP == 2) {    //Name, Preis und Adresse
        setState(id_Preis_01, pricehit_01 + " - " + pricehit_address_01);
        setState(id_Preis_02, pricehit_02 + " - " + pricehit_address_02);
        setState(id_Preis_03, pricehit_03 + " - " + pricehit_address_03);
        setState(id_Preis_04, pricehit_04 + " - " + pricehit_address_04);
        setState(id_Preis_05, pricehit_05 + " - " + pricehit_address_05);
    }
    
    if (InhaltDP == 3) {    //1.Feld: Name, Preis 2.Feld: Adresse
        setState(id_Preis_01, pricehit_01);
        setState(id_Preis_02, pricehit_02);
        setState(id_Preis_03, pricehit_03);
        setState(id_Preis_04, pricehit_04);
        setState(id_Preis_05, pricehit_05);
        setState(id_Adresse_01, pricehit_address_01);
        setState(id_Adresse_02, pricehit_address_02);
        setState(id_Adresse_03, pricehit_address_03);
        setState(id_Adresse_04, pricehit_address_04);
        setState(id_Adresse_05, pricehit_address_05);
    }
    
    log('Ende Spritvergleich');
    });
    

    Schönen Restsonntag noch!
    LG, mxa

    Edit_01: Optische Korrekturen durchgeführt

    1 Reply Last reply
    2
    • SmarthomeMFS Offline
      SmarthomeMFS Offline
      SmarthomeMF
      wrote on last edited by
      #41

      Ich bin einfach zu blöd für Java!!
      Bekomme das nicht zum laufen.
      Das erste Skript hat ein mal die Daten abgefragt und das wars dann.
      Es läuft nicht mehr!!
      Nun habe ich das neue ausprobiert!!
      Es werden keine Daten übertragen.
      Mein Skript

      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       
      //  START SETUP:
      //  finaler Inhalt der Datenpunkte:
      //  1 = name_preis | 2 = name_preis_plz_ort_strasse | 3 = (id_Preis_xx) name_preis & (id_Adresse_xx) PLZ_Ort_Strasse
          var InhaltDP = 3;
       
      //  Datenpunktadressen vollständig eintragen (z.B."javascript.0.Aktueller_Spritpreis_01"), müssen manuell erstellt werden
          var id_Preis_01 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle1'/*Tankstelle1*/;
          var id_Preis_02 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle2'/*Tankstelle2*/;
          var id_Preis_03 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle3'/*Tankstelle3*/;
          var id_Preis_04 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle4'/*Tankstelle4*/;
          var id_Preis_05 = "'javascript.0.Treibstoffpreise.Benzin.Tankstelle5'/*Tankstelle5*/";
       
      //  Achtung, wurde oben bei "InhaltDP" 3 ausgewählt (Daten in 2 Felder gesplittet), dann müssen folgende Felder befüllt werden!
      //  Datenpunktadressen vollständig eintragen (z.B."javascript.0.Aktueller_Spritpreis_Adresse_01"), müssen manuell erstellt werden
          var id_Adresse_01 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_1_Adresse_1'/*Tankstelle 1 Adresse 1*/;
          var id_Adresse_02 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_2_Adresse_2'/*Tankstelle 2 Adresse 2*/;
          var id_Adresse_03 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_3_Adresse_3'/*Tankstelle 3 Adresse 3*/;
          var id_Adresse_04 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_4_Adresse_4'/*Tankstelle 4 Adresse 4*/;
          var id_Adresse_05 = "'javascript.0.Treibstoffpreise.Benzin.Tankstelle_5_Adresse_5'/*Tankstelle 5 Adresse 5*/";
       
      // Ende Setup
      //////////////////////////////////////////////////////////////////////////////////////////////
       
      //////////////////////////////////////////////////////////////////////////////////////////////
      // Eigentliches Script, ab hier nichts mehr ändern
       
      on({id: 'parser.0.Sprit'/*Sprit*/, change: 'any'}, function(obj)
      {
       
      //  Variablen werden mit "" als objekt(string) deklariert, ohne "" als number:
          var pricehit_01 = "undefiniert";
          var pricehit_address_01 = "undefiniert";
          var pricehit_02 = "undefiniert";
          var pricehit_address_02 = "undefiniert";
          var pricehit_03 = "undefiniert";
          var pricehit_address_03 = "undefiniert";
          var pricehit_04 = "undefiniert";
          var pricehit_address_04 = "undefiniert";
          var pricehit_05 = "undefiniert";
          var pricehit_address_05 = "undefiniert";
          var index = 0;
          var gasStation = JSON.parse(obj.state.val);
          
          if (gasStation.length === 0) return;
       
          for (index = 0; index < gasStation.length; ++index) {
       
      //  Variablen werden befüllt:
          pricehit_01 = gasStation[0].name + " € " + (gasStation[0].prices[0].amount).toString().replace(".",",");
          pricehit_address_01 = (gasStation[0].location.postalCode) + " " + (gasStation[0].location.city) + ", " + (gasStation[0].location.address);
          pricehit_02 = gasStation[1].name + " € " + (gasStation[1].prices[0].amount).toString().replace(".",",");
          pricehit_address_02 = (gasStation[1].location.postalCode) + " " + (gasStation[1].location.city) + ", " + (gasStation[1].location.address);
          pricehit_03 = gasStation[2].name + " € " + (gasStation[2].prices[0].amount).toString().replace(".",",");
          pricehit_address_03 = (gasStation[2].location.postalCode) + " " + (gasStation[2].location.city) + ", " + (gasStation[2].location.address);
          pricehit_04 = gasStation[3].name + " € " + (gasStation[3].prices[0].amount).toString().replace(".",",");
          pricehit_address_04 = (gasStation[3].location.postalCode) + " " + (gasStation[3].location.city) + ", " + (gasStation[3].location.address);
          pricehit_05 = gasStation[4].name + " € " + (gasStation[4].prices[0].amount).toString().replace(".",",");
          pricehit_address_05 = (gasStation[4].location.postalCode) + " " + (gasStation[4].location.city) + ", " + (gasStation[4].location.address);
          }
       
      if (InhaltDP == 1) {    //Name und Preis
          setState(id_Preis_01, pricehit_01);
          setState(id_Preis_02, pricehit_02);
          setState(id_Preis_03, pricehit_03);
          setState(id_Preis_04, pricehit_04);
          setState(id_Preis_05, pricehit_05);
      }
       
      if (InhaltDP == 2) {    //Name, Preis und Adresse
          setState(id_Preis_01, pricehit_01 + " - " + pricehit_address_01);
          setState(id_Preis_02, pricehit_02 + " - " + pricehit_address_02);
          setState(id_Preis_03, pricehit_03 + " - " + pricehit_address_03);
          setState(id_Preis_04, pricehit_04 + " - " + pricehit_address_04);
          setState(id_Preis_05, pricehit_05 + " - " + pricehit_address_05);
      }
       
      if (InhaltDP == 3) {    //1.Feld: Name, Preis 2.Feld: Adresse
          setState(id_Preis_01, pricehit_01);
          setState(id_Preis_02, pricehit_02);
          setState(id_Preis_03, pricehit_03);
          setState(id_Preis_04, pricehit_04);
          setState(id_Preis_05, pricehit_05);
          setState(id_Adresse_01, pricehit_address_01);
          setState(id_Adresse_02, pricehit_address_02);
          setState(id_Adresse_03, pricehit_address_03);
          setState(id_Adresse_04, pricehit_address_04);
          setState(id_Adresse_05, pricehit_address_05);
      }
       
      log('Ende Spritvergleich');
      });
      

      Die Datenpunkte sind da! aber bleiben leer
      001.PNG ```
      wo habe ich da einen murks gemacht.

      Max

      ioBroker auf einem NUC ,16GB RAM, 120GB SSD) mit Proxmox
      Cloud Pro, iot, Alexa, Sonos, sonoff, Fronius, Harmony, Doorbird, Shelly, Hue, Loxone, Mihome, …

      NegaleinN 1 Reply Last reply
      0
      • SmarthomeMFS SmarthomeMF

        Ich bin einfach zu blöd für Java!!
        Bekomme das nicht zum laufen.
        Das erste Skript hat ein mal die Daten abgefragt und das wars dann.
        Es läuft nicht mehr!!
        Nun habe ich das neue ausprobiert!!
        Es werden keine Daten übertragen.
        Mein Skript

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
         
        //  START SETUP:
        //  finaler Inhalt der Datenpunkte:
        //  1 = name_preis | 2 = name_preis_plz_ort_strasse | 3 = (id_Preis_xx) name_preis & (id_Adresse_xx) PLZ_Ort_Strasse
            var InhaltDP = 3;
         
        //  Datenpunktadressen vollständig eintragen (z.B."javascript.0.Aktueller_Spritpreis_01"), müssen manuell erstellt werden
            var id_Preis_01 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle1'/*Tankstelle1*/;
            var id_Preis_02 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle2'/*Tankstelle2*/;
            var id_Preis_03 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle3'/*Tankstelle3*/;
            var id_Preis_04 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle4'/*Tankstelle4*/;
            var id_Preis_05 = "'javascript.0.Treibstoffpreise.Benzin.Tankstelle5'/*Tankstelle5*/";
         
        //  Achtung, wurde oben bei "InhaltDP" 3 ausgewählt (Daten in 2 Felder gesplittet), dann müssen folgende Felder befüllt werden!
        //  Datenpunktadressen vollständig eintragen (z.B."javascript.0.Aktueller_Spritpreis_Adresse_01"), müssen manuell erstellt werden
            var id_Adresse_01 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_1_Adresse_1'/*Tankstelle 1 Adresse 1*/;
            var id_Adresse_02 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_2_Adresse_2'/*Tankstelle 2 Adresse 2*/;
            var id_Adresse_03 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_3_Adresse_3'/*Tankstelle 3 Adresse 3*/;
            var id_Adresse_04 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_4_Adresse_4'/*Tankstelle 4 Adresse 4*/;
            var id_Adresse_05 = "'javascript.0.Treibstoffpreise.Benzin.Tankstelle_5_Adresse_5'/*Tankstelle 5 Adresse 5*/";
         
        // Ende Setup
        //////////////////////////////////////////////////////////////////////////////////////////////
         
        //////////////////////////////////////////////////////////////////////////////////////////////
        // Eigentliches Script, ab hier nichts mehr ändern
         
        on({id: 'parser.0.Sprit'/*Sprit*/, change: 'any'}, function(obj)
        {
         
        //  Variablen werden mit "" als objekt(string) deklariert, ohne "" als number:
            var pricehit_01 = "undefiniert";
            var pricehit_address_01 = "undefiniert";
            var pricehit_02 = "undefiniert";
            var pricehit_address_02 = "undefiniert";
            var pricehit_03 = "undefiniert";
            var pricehit_address_03 = "undefiniert";
            var pricehit_04 = "undefiniert";
            var pricehit_address_04 = "undefiniert";
            var pricehit_05 = "undefiniert";
            var pricehit_address_05 = "undefiniert";
            var index = 0;
            var gasStation = JSON.parse(obj.state.val);
            
            if (gasStation.length === 0) return;
         
            for (index = 0; index < gasStation.length; ++index) {
         
        //  Variablen werden befüllt:
            pricehit_01 = gasStation[0].name + " € " + (gasStation[0].prices[0].amount).toString().replace(".",",");
            pricehit_address_01 = (gasStation[0].location.postalCode) + " " + (gasStation[0].location.city) + ", " + (gasStation[0].location.address);
            pricehit_02 = gasStation[1].name + " € " + (gasStation[1].prices[0].amount).toString().replace(".",",");
            pricehit_address_02 = (gasStation[1].location.postalCode) + " " + (gasStation[1].location.city) + ", " + (gasStation[1].location.address);
            pricehit_03 = gasStation[2].name + " € " + (gasStation[2].prices[0].amount).toString().replace(".",",");
            pricehit_address_03 = (gasStation[2].location.postalCode) + " " + (gasStation[2].location.city) + ", " + (gasStation[2].location.address);
            pricehit_04 = gasStation[3].name + " € " + (gasStation[3].prices[0].amount).toString().replace(".",",");
            pricehit_address_04 = (gasStation[3].location.postalCode) + " " + (gasStation[3].location.city) + ", " + (gasStation[3].location.address);
            pricehit_05 = gasStation[4].name + " € " + (gasStation[4].prices[0].amount).toString().replace(".",",");
            pricehit_address_05 = (gasStation[4].location.postalCode) + " " + (gasStation[4].location.city) + ", " + (gasStation[4].location.address);
            }
         
        if (InhaltDP == 1) {    //Name und Preis
            setState(id_Preis_01, pricehit_01);
            setState(id_Preis_02, pricehit_02);
            setState(id_Preis_03, pricehit_03);
            setState(id_Preis_04, pricehit_04);
            setState(id_Preis_05, pricehit_05);
        }
         
        if (InhaltDP == 2) {    //Name, Preis und Adresse
            setState(id_Preis_01, pricehit_01 + " - " + pricehit_address_01);
            setState(id_Preis_02, pricehit_02 + " - " + pricehit_address_02);
            setState(id_Preis_03, pricehit_03 + " - " + pricehit_address_03);
            setState(id_Preis_04, pricehit_04 + " - " + pricehit_address_04);
            setState(id_Preis_05, pricehit_05 + " - " + pricehit_address_05);
        }
         
        if (InhaltDP == 3) {    //1.Feld: Name, Preis 2.Feld: Adresse
            setState(id_Preis_01, pricehit_01);
            setState(id_Preis_02, pricehit_02);
            setState(id_Preis_03, pricehit_03);
            setState(id_Preis_04, pricehit_04);
            setState(id_Preis_05, pricehit_05);
            setState(id_Adresse_01, pricehit_address_01);
            setState(id_Adresse_02, pricehit_address_02);
            setState(id_Adresse_03, pricehit_address_03);
            setState(id_Adresse_04, pricehit_address_04);
            setState(id_Adresse_05, pricehit_address_05);
        }
         
        log('Ende Spritvergleich');
        });
        

        Die Datenpunkte sind da! aber bleiben leer
        001.PNG ```
        wo habe ich da einen murks gemacht.

        NegaleinN Offline
        NegaleinN Offline
        Negalein
        Global Moderator
        wrote on last edited by Negalein
        #42

        @SmarthomeMF sagte in Skripten des E-Control Spritpreisrechners:

        wo habe ich da einen murks gemacht.

        hast du im Parser wieder auf JSON retour gestellt?

        Im Script hast du jeweils 5 Datenpunkte, aber angelegt hast du jeweils 9 Datenpunkte.

        ° Node.js: 20.17.0 NPM: 10.8.2
        ° Proxmox, Ubuntu 22.04.3 LTS
        ° Fixer ---> iob fix

        1 Reply Last reply
        0
        • SmarthomeMFS Offline
          SmarthomeMFS Offline
          SmarthomeMF
          wrote on last edited by
          #43

          @Negalein sagte in Skripten des E-Control Spritpreisrechners:

          hast du im Parser wieder auf JSON retour gestellt?

          ja

          @Negalein sagte in Skripten des E-Control Spritpreisrechners:

          Im Script hast du jeweils 5 Datenpunkte, aber angelegt hast du jeweils 9 Datenpunkte.

          ja ich möchte 9 Tankstellen angezeigt bekommen.
          aber ich bin schon den halben tag am Probieren......

          Ich hatte das Skript schon fertig für 9 Tankstellen.
          nun habe ich das Skript gelöscht und noch mal mit von vorne begonnen.
          Dafür habe ich im Skript nur 4 Werte eingetragen.......
          Aber während dem ganzen probieren haben sich die 4 Werte nun doch eingetragen.....
          also dachte ich perfekt dann kann ich weiter machen und habe noch zwei Datenpunkte im Skript ergänzt.
          Wie schon vorhin werden die Daten nun wieder nicht mehr aktualisiert!!
          Was mach ich FALSCH?
          nochmal mein Skript

          ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
           
          //  START SETUP:
          //  finaler Inhalt der Datenpunkte:
          //  1 = name_preis | 2 = name_preis_plz_ort_strasse | 3 = (id_Preis_xx) name_preis & (id_Adresse_xx) PLZ_Ort_Strasse
              var InhaltDP = 3;
           
          //  Datenpunktadressen vollständig eintragen (z.B."javascript.0.Aktueller_Spritpreis_01"), müssen manuell erstellt werden
              var id_Preis_01 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle1'/*Tankstelle1*/;
              var id_Preis_02 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle2'/*Tankstelle2*/;
              var id_Preis_03 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle3'/*Tankstelle3*/;
              var id_Preis_04 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle4'/*Tankstelle4*/;
              var id_Preis_05 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle5'/*Tankstelle5*/;
              var id_Preis_06 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle6'/*Tankstelle6*/;
           
          //  Achtung, wurde oben bei "InhaltDP" 3 ausgewählt (Daten in 2 Felder gesplittet), dann müssen folgende Felder befüllt werden!
          //  Datenpunktadressen vollständig eintragen (z.B."javascript.0.Aktueller_Spritpreis_Adresse_01"), müssen manuell erstellt werden
              var id_Adresse_01 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_1_Adresse_1'/*Tankstelle 1 Adresse 1*/;
              var id_Adresse_02 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_2_Adresse_2'/*Tankstelle 2 Adresse 2*/;
              var id_Adresse_03 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_3_Adresse_3'/*Tankstelle 3 Adresse 3*/;
              var id_Adresse_04 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_4_Adresse_4'/*Tankstelle 4 Adresse 4*/;
              var id_Adresse_05 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_5_Adresse_5'/*Tankstelle 5 Adresse 5*/;
              var id_Adresse_06 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_6_Adresse_6'/*Tankstelle 6 Adresse 6*/;
           
          // Ende Setup
          //////////////////////////////////////////////////////////////////////////////////////////////
           
          //////////////////////////////////////////////////////////////////////////////////////////////
          // Eigentliches Script, ab hier nichts mehr ändern
           
          on({id: 'parser.0.Sprit'/*Sprit*/, change: 'any'}, function(obj)
          {
           
          //  Variablen werden mit "" als objekt(string) deklariert, ohne "" als number:
              var pricehit_01 = "undefiniert";
              var pricehit_address_01 = "undefiniert";
              var pricehit_02 = "undefiniert";
              var pricehit_address_02 = "undefiniert";
              var pricehit_03 = "undefiniert";
              var pricehit_address_03 = "undefiniert";
              var pricehit_04 = "undefiniert";
              var pricehit_address_04 = "undefiniert";
              var pricehit_05 = "undefiniert";
              var pricehit_address_05 = "undefiniert";
              var pricehit_06 = "undefiniert";
              var pricehit_address_06 = "undefiniert";
              var index = 0;
              var gasStation = JSON.parse(obj.state.val);
              
              if (gasStation.length === 0) return;
           
              for (index = 0; index < gasStation.length; ++index) {
           
          //  Variablen werden befüllt:
              pricehit_01 = gasStation[0].name + " € " + (gasStation[0].prices[0].amount).toString().replace(".",",");
              pricehit_address_01 = (gasStation[0].location.postalCode) + " " + (gasStation[0].location.city) + ", " + (gasStation[0].location.address);
              pricehit_02 = gasStation[1].name + " € " + (gasStation[1].prices[0].amount).toString().replace(".",",");
              pricehit_address_02 = (gasStation[1].location.postalCode) + " " + (gasStation[1].location.city) + ", " + (gasStation[1].location.address);
              pricehit_03 = gasStation[2].name + " € " + (gasStation[2].prices[0].amount).toString().replace(".",",");
              pricehit_address_03 = (gasStation[2].location.postalCode) + " " + (gasStation[2].location.city) + ", " + (gasStation[2].location.address);
              pricehit_04 = gasStation[3].name + " € " + (gasStation[3].prices[0].amount).toString().replace(".",",");
              pricehit_address_04 = (gasStation[3].location.postalCode) + " " + (gasStation[3].location.city) + ", " + (gasStation[3].location.address);
              pricehit_05 = gasStation[4].name + " € " + (gasStation[4].prices[0].amount).toString().replace(".",",");
              pricehit_address_05 = (gasStation[4].location.postalCode) + " " + (gasStation[4].location.city) + ", " + (gasStation[4].location.address);
              pricehit_06 = gasStation[5].name + " € " + (gasStation[5].prices[0].amount).toString().replace(".",",");
              pricehit_address_06 = (gasStation[5].location.postalCode) + " " + (gasStation[5].location.city) + ", " + (gasStation[5].location.address);
              }
           
          if (InhaltDP == 1) {    //Name und Preis
              setState(id_Preis_01, pricehit_01);
              setState(id_Preis_02, pricehit_02);
              setState(id_Preis_03, pricehit_03);
              setState(id_Preis_04, pricehit_04);
              setState(id_Preis_05, pricehit_05);
              setState(id_Preis_06, pricehit_06);
          }
           
          if (InhaltDP == 2) {    //Name, Preis und Adresse
              setState(id_Preis_01, pricehit_01 + " - " + pricehit_address_01);
              setState(id_Preis_02, pricehit_02 + " - " + pricehit_address_02);
              setState(id_Preis_03, pricehit_03 + " - " + pricehit_address_03);
              setState(id_Preis_04, pricehit_04 + " - " + pricehit_address_04);
              setState(id_Preis_05, pricehit_05 + " - " + pricehit_address_05);
              setState(id_Preis_06, pricehit_06 + " - " + pricehit_address_06);
          }
           
          if (InhaltDP == 3) {    //1.Feld: Name, Preis 2.Feld: Adresse
              setState(id_Preis_01, pricehit_01);
              setState(id_Preis_02, pricehit_02);
              setState(id_Preis_03, pricehit_03);
              setState(id_Preis_04, pricehit_04);
              setState(id_Preis_05, pricehit_05);
              setState(id_Preis_06, pricehit_06);
              setState(id_Adresse_01, pricehit_address_01);
              setState(id_Adresse_02, pricehit_address_02);
              setState(id_Adresse_03, pricehit_address_03);
              setState(id_Adresse_04, pricehit_address_04);
              setState(id_Adresse_05, pricehit_address_05);
              setState(id_Adresse_06, pricehit_address_06);
          }
           
          log('Ende Spritvergleich');
          });
          

          und im Log auch alles OK

          javascript.0	2019-04-01 18:49:58.542	info	script.js.common.Treibstoffpreise_1: registered 1 subscription and 0 schedules
          javascript.0	2019-04-01 18:49:58.537	info	Start javascript script.js.common.Treibstoffpreise_1
          javascript.0	2019-04-01 18:49:54.686	info	Stop script script.js.common.Treibstoffpreise_1
          javascript.0	2019-04-01 18:49:39.926	info	Stop script script.js.common.Treibstoffpreise_1
          

          Max

          ioBroker auf einem NUC ,16GB RAM, 120GB SSD) mit Proxmox
          Cloud Pro, iot, Alexa, Sonos, sonoff, Fronius, Harmony, Doorbird, Shelly, Hue, Loxone, Mihome, …

          G NegaleinN 2 Replies Last reply
          0
          • SmarthomeMFS SmarthomeMF

            @Negalein sagte in Skripten des E-Control Spritpreisrechners:

            hast du im Parser wieder auf JSON retour gestellt?

            ja

            @Negalein sagte in Skripten des E-Control Spritpreisrechners:

            Im Script hast du jeweils 5 Datenpunkte, aber angelegt hast du jeweils 9 Datenpunkte.

            ja ich möchte 9 Tankstellen angezeigt bekommen.
            aber ich bin schon den halben tag am Probieren......

            Ich hatte das Skript schon fertig für 9 Tankstellen.
            nun habe ich das Skript gelöscht und noch mal mit von vorne begonnen.
            Dafür habe ich im Skript nur 4 Werte eingetragen.......
            Aber während dem ganzen probieren haben sich die 4 Werte nun doch eingetragen.....
            also dachte ich perfekt dann kann ich weiter machen und habe noch zwei Datenpunkte im Skript ergänzt.
            Wie schon vorhin werden die Daten nun wieder nicht mehr aktualisiert!!
            Was mach ich FALSCH?
            nochmal mein Skript

            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
             
            //  START SETUP:
            //  finaler Inhalt der Datenpunkte:
            //  1 = name_preis | 2 = name_preis_plz_ort_strasse | 3 = (id_Preis_xx) name_preis & (id_Adresse_xx) PLZ_Ort_Strasse
                var InhaltDP = 3;
             
            //  Datenpunktadressen vollständig eintragen (z.B."javascript.0.Aktueller_Spritpreis_01"), müssen manuell erstellt werden
                var id_Preis_01 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle1'/*Tankstelle1*/;
                var id_Preis_02 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle2'/*Tankstelle2*/;
                var id_Preis_03 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle3'/*Tankstelle3*/;
                var id_Preis_04 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle4'/*Tankstelle4*/;
                var id_Preis_05 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle5'/*Tankstelle5*/;
                var id_Preis_06 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle6'/*Tankstelle6*/;
             
            //  Achtung, wurde oben bei "InhaltDP" 3 ausgewählt (Daten in 2 Felder gesplittet), dann müssen folgende Felder befüllt werden!
            //  Datenpunktadressen vollständig eintragen (z.B."javascript.0.Aktueller_Spritpreis_Adresse_01"), müssen manuell erstellt werden
                var id_Adresse_01 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_1_Adresse_1'/*Tankstelle 1 Adresse 1*/;
                var id_Adresse_02 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_2_Adresse_2'/*Tankstelle 2 Adresse 2*/;
                var id_Adresse_03 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_3_Adresse_3'/*Tankstelle 3 Adresse 3*/;
                var id_Adresse_04 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_4_Adresse_4'/*Tankstelle 4 Adresse 4*/;
                var id_Adresse_05 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_5_Adresse_5'/*Tankstelle 5 Adresse 5*/;
                var id_Adresse_06 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_6_Adresse_6'/*Tankstelle 6 Adresse 6*/;
             
            // Ende Setup
            //////////////////////////////////////////////////////////////////////////////////////////////
             
            //////////////////////////////////////////////////////////////////////////////////////////////
            // Eigentliches Script, ab hier nichts mehr ändern
             
            on({id: 'parser.0.Sprit'/*Sprit*/, change: 'any'}, function(obj)
            {
             
            //  Variablen werden mit "" als objekt(string) deklariert, ohne "" als number:
                var pricehit_01 = "undefiniert";
                var pricehit_address_01 = "undefiniert";
                var pricehit_02 = "undefiniert";
                var pricehit_address_02 = "undefiniert";
                var pricehit_03 = "undefiniert";
                var pricehit_address_03 = "undefiniert";
                var pricehit_04 = "undefiniert";
                var pricehit_address_04 = "undefiniert";
                var pricehit_05 = "undefiniert";
                var pricehit_address_05 = "undefiniert";
                var pricehit_06 = "undefiniert";
                var pricehit_address_06 = "undefiniert";
                var index = 0;
                var gasStation = JSON.parse(obj.state.val);
                
                if (gasStation.length === 0) return;
             
                for (index = 0; index < gasStation.length; ++index) {
             
            //  Variablen werden befüllt:
                pricehit_01 = gasStation[0].name + " € " + (gasStation[0].prices[0].amount).toString().replace(".",",");
                pricehit_address_01 = (gasStation[0].location.postalCode) + " " + (gasStation[0].location.city) + ", " + (gasStation[0].location.address);
                pricehit_02 = gasStation[1].name + " € " + (gasStation[1].prices[0].amount).toString().replace(".",",");
                pricehit_address_02 = (gasStation[1].location.postalCode) + " " + (gasStation[1].location.city) + ", " + (gasStation[1].location.address);
                pricehit_03 = gasStation[2].name + " € " + (gasStation[2].prices[0].amount).toString().replace(".",",");
                pricehit_address_03 = (gasStation[2].location.postalCode) + " " + (gasStation[2].location.city) + ", " + (gasStation[2].location.address);
                pricehit_04 = gasStation[3].name + " € " + (gasStation[3].prices[0].amount).toString().replace(".",",");
                pricehit_address_04 = (gasStation[3].location.postalCode) + " " + (gasStation[3].location.city) + ", " + (gasStation[3].location.address);
                pricehit_05 = gasStation[4].name + " € " + (gasStation[4].prices[0].amount).toString().replace(".",",");
                pricehit_address_05 = (gasStation[4].location.postalCode) + " " + (gasStation[4].location.city) + ", " + (gasStation[4].location.address);
                pricehit_06 = gasStation[5].name + " € " + (gasStation[5].prices[0].amount).toString().replace(".",",");
                pricehit_address_06 = (gasStation[5].location.postalCode) + " " + (gasStation[5].location.city) + ", " + (gasStation[5].location.address);
                }
             
            if (InhaltDP == 1) {    //Name und Preis
                setState(id_Preis_01, pricehit_01);
                setState(id_Preis_02, pricehit_02);
                setState(id_Preis_03, pricehit_03);
                setState(id_Preis_04, pricehit_04);
                setState(id_Preis_05, pricehit_05);
                setState(id_Preis_06, pricehit_06);
            }
             
            if (InhaltDP == 2) {    //Name, Preis und Adresse
                setState(id_Preis_01, pricehit_01 + " - " + pricehit_address_01);
                setState(id_Preis_02, pricehit_02 + " - " + pricehit_address_02);
                setState(id_Preis_03, pricehit_03 + " - " + pricehit_address_03);
                setState(id_Preis_04, pricehit_04 + " - " + pricehit_address_04);
                setState(id_Preis_05, pricehit_05 + " - " + pricehit_address_05);
                setState(id_Preis_06, pricehit_06 + " - " + pricehit_address_06);
            }
             
            if (InhaltDP == 3) {    //1.Feld: Name, Preis 2.Feld: Adresse
                setState(id_Preis_01, pricehit_01);
                setState(id_Preis_02, pricehit_02);
                setState(id_Preis_03, pricehit_03);
                setState(id_Preis_04, pricehit_04);
                setState(id_Preis_05, pricehit_05);
                setState(id_Preis_06, pricehit_06);
                setState(id_Adresse_01, pricehit_address_01);
                setState(id_Adresse_02, pricehit_address_02);
                setState(id_Adresse_03, pricehit_address_03);
                setState(id_Adresse_04, pricehit_address_04);
                setState(id_Adresse_05, pricehit_address_05);
                setState(id_Adresse_06, pricehit_address_06);
            }
             
            log('Ende Spritvergleich');
            });
            

            und im Log auch alles OK

            javascript.0	2019-04-01 18:49:58.542	info	script.js.common.Treibstoffpreise_1: registered 1 subscription and 0 schedules
            javascript.0	2019-04-01 18:49:58.537	info	Start javascript script.js.common.Treibstoffpreise_1
            javascript.0	2019-04-01 18:49:54.686	info	Stop script script.js.common.Treibstoffpreise_1
            javascript.0	2019-04-01 18:49:39.926	info	Stop script script.js.common.Treibstoffpreise_1
            
            G Offline
            G Offline
            Georgius
            wrote on last edited by
            #44

            @SmarthomeMF Zeig mal die Einstellungen im Parseradapter

            1 Reply Last reply
            0
            • SmarthomeMFS SmarthomeMF

              @Negalein sagte in Skripten des E-Control Spritpreisrechners:

              hast du im Parser wieder auf JSON retour gestellt?

              ja

              @Negalein sagte in Skripten des E-Control Spritpreisrechners:

              Im Script hast du jeweils 5 Datenpunkte, aber angelegt hast du jeweils 9 Datenpunkte.

              ja ich möchte 9 Tankstellen angezeigt bekommen.
              aber ich bin schon den halben tag am Probieren......

              Ich hatte das Skript schon fertig für 9 Tankstellen.
              nun habe ich das Skript gelöscht und noch mal mit von vorne begonnen.
              Dafür habe ich im Skript nur 4 Werte eingetragen.......
              Aber während dem ganzen probieren haben sich die 4 Werte nun doch eingetragen.....
              also dachte ich perfekt dann kann ich weiter machen und habe noch zwei Datenpunkte im Skript ergänzt.
              Wie schon vorhin werden die Daten nun wieder nicht mehr aktualisiert!!
              Was mach ich FALSCH?
              nochmal mein Skript

              ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
               
              //  START SETUP:
              //  finaler Inhalt der Datenpunkte:
              //  1 = name_preis | 2 = name_preis_plz_ort_strasse | 3 = (id_Preis_xx) name_preis & (id_Adresse_xx) PLZ_Ort_Strasse
                  var InhaltDP = 3;
               
              //  Datenpunktadressen vollständig eintragen (z.B."javascript.0.Aktueller_Spritpreis_01"), müssen manuell erstellt werden
                  var id_Preis_01 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle1'/*Tankstelle1*/;
                  var id_Preis_02 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle2'/*Tankstelle2*/;
                  var id_Preis_03 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle3'/*Tankstelle3*/;
                  var id_Preis_04 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle4'/*Tankstelle4*/;
                  var id_Preis_05 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle5'/*Tankstelle5*/;
                  var id_Preis_06 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle6'/*Tankstelle6*/;
               
              //  Achtung, wurde oben bei "InhaltDP" 3 ausgewählt (Daten in 2 Felder gesplittet), dann müssen folgende Felder befüllt werden!
              //  Datenpunktadressen vollständig eintragen (z.B."javascript.0.Aktueller_Spritpreis_Adresse_01"), müssen manuell erstellt werden
                  var id_Adresse_01 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_1_Adresse_1'/*Tankstelle 1 Adresse 1*/;
                  var id_Adresse_02 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_2_Adresse_2'/*Tankstelle 2 Adresse 2*/;
                  var id_Adresse_03 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_3_Adresse_3'/*Tankstelle 3 Adresse 3*/;
                  var id_Adresse_04 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_4_Adresse_4'/*Tankstelle 4 Adresse 4*/;
                  var id_Adresse_05 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_5_Adresse_5'/*Tankstelle 5 Adresse 5*/;
                  var id_Adresse_06 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle_6_Adresse_6'/*Tankstelle 6 Adresse 6*/;
               
              // Ende Setup
              //////////////////////////////////////////////////////////////////////////////////////////////
               
              //////////////////////////////////////////////////////////////////////////////////////////////
              // Eigentliches Script, ab hier nichts mehr ändern
               
              on({id: 'parser.0.Sprit'/*Sprit*/, change: 'any'}, function(obj)
              {
               
              //  Variablen werden mit "" als objekt(string) deklariert, ohne "" als number:
                  var pricehit_01 = "undefiniert";
                  var pricehit_address_01 = "undefiniert";
                  var pricehit_02 = "undefiniert";
                  var pricehit_address_02 = "undefiniert";
                  var pricehit_03 = "undefiniert";
                  var pricehit_address_03 = "undefiniert";
                  var pricehit_04 = "undefiniert";
                  var pricehit_address_04 = "undefiniert";
                  var pricehit_05 = "undefiniert";
                  var pricehit_address_05 = "undefiniert";
                  var pricehit_06 = "undefiniert";
                  var pricehit_address_06 = "undefiniert";
                  var index = 0;
                  var gasStation = JSON.parse(obj.state.val);
                  
                  if (gasStation.length === 0) return;
               
                  for (index = 0; index < gasStation.length; ++index) {
               
              //  Variablen werden befüllt:
                  pricehit_01 = gasStation[0].name + " € " + (gasStation[0].prices[0].amount).toString().replace(".",",");
                  pricehit_address_01 = (gasStation[0].location.postalCode) + " " + (gasStation[0].location.city) + ", " + (gasStation[0].location.address);
                  pricehit_02 = gasStation[1].name + " € " + (gasStation[1].prices[0].amount).toString().replace(".",",");
                  pricehit_address_02 = (gasStation[1].location.postalCode) + " " + (gasStation[1].location.city) + ", " + (gasStation[1].location.address);
                  pricehit_03 = gasStation[2].name + " € " + (gasStation[2].prices[0].amount).toString().replace(".",",");
                  pricehit_address_03 = (gasStation[2].location.postalCode) + " " + (gasStation[2].location.city) + ", " + (gasStation[2].location.address);
                  pricehit_04 = gasStation[3].name + " € " + (gasStation[3].prices[0].amount).toString().replace(".",",");
                  pricehit_address_04 = (gasStation[3].location.postalCode) + " " + (gasStation[3].location.city) + ", " + (gasStation[3].location.address);
                  pricehit_05 = gasStation[4].name + " € " + (gasStation[4].prices[0].amount).toString().replace(".",",");
                  pricehit_address_05 = (gasStation[4].location.postalCode) + " " + (gasStation[4].location.city) + ", " + (gasStation[4].location.address);
                  pricehit_06 = gasStation[5].name + " € " + (gasStation[5].prices[0].amount).toString().replace(".",",");
                  pricehit_address_06 = (gasStation[5].location.postalCode) + " " + (gasStation[5].location.city) + ", " + (gasStation[5].location.address);
                  }
               
              if (InhaltDP == 1) {    //Name und Preis
                  setState(id_Preis_01, pricehit_01);
                  setState(id_Preis_02, pricehit_02);
                  setState(id_Preis_03, pricehit_03);
                  setState(id_Preis_04, pricehit_04);
                  setState(id_Preis_05, pricehit_05);
                  setState(id_Preis_06, pricehit_06);
              }
               
              if (InhaltDP == 2) {    //Name, Preis und Adresse
                  setState(id_Preis_01, pricehit_01 + " - " + pricehit_address_01);
                  setState(id_Preis_02, pricehit_02 + " - " + pricehit_address_02);
                  setState(id_Preis_03, pricehit_03 + " - " + pricehit_address_03);
                  setState(id_Preis_04, pricehit_04 + " - " + pricehit_address_04);
                  setState(id_Preis_05, pricehit_05 + " - " + pricehit_address_05);
                  setState(id_Preis_06, pricehit_06 + " - " + pricehit_address_06);
              }
               
              if (InhaltDP == 3) {    //1.Feld: Name, Preis 2.Feld: Adresse
                  setState(id_Preis_01, pricehit_01);
                  setState(id_Preis_02, pricehit_02);
                  setState(id_Preis_03, pricehit_03);
                  setState(id_Preis_04, pricehit_04);
                  setState(id_Preis_05, pricehit_05);
                  setState(id_Preis_06, pricehit_06);
                  setState(id_Adresse_01, pricehit_address_01);
                  setState(id_Adresse_02, pricehit_address_02);
                  setState(id_Adresse_03, pricehit_address_03);
                  setState(id_Adresse_04, pricehit_address_04);
                  setState(id_Adresse_05, pricehit_address_05);
                  setState(id_Adresse_06, pricehit_address_06);
              }
               
              log('Ende Spritvergleich');
              });
              

              und im Log auch alles OK

              javascript.0	2019-04-01 18:49:58.542	info	script.js.common.Treibstoffpreise_1: registered 1 subscription and 0 schedules
              javascript.0	2019-04-01 18:49:58.537	info	Start javascript script.js.common.Treibstoffpreise_1
              javascript.0	2019-04-01 18:49:54.686	info	Stop script script.js.common.Treibstoffpreise_1
              javascript.0	2019-04-01 18:49:39.926	info	Stop script script.js.common.Treibstoffpreise_1
              
              NegaleinN Offline
              NegaleinN Offline
              Negalein
              Global Moderator
              wrote on last edited by Negalein
              #45

              @SmarthomeMF sagte in Skripten des E-Control Spritpreisrechners:

              Was mach ich FALSCH?

              hat es beim 1. Versuch mit 9 Tankstellen funktioniert?

              Eventuell liegt es an der API?
              Auf spritpreisrechner.at werden auch nur die ersten 5 mit Preisen angezeigt.

              PS:
              Eventuell liegt es an den Anführungszeichen.

              Bei mir sieht es so aus

              var id_Preis_01 = "javascript.0.Sprit.Aktueller_Spritpreis_01";
              

              bei dir so

              var id_Preis_01 = 'javascript.0.Treibstoffpreise.Benzin.Tankstelle1'
              

              Ich hab " und du hast '

              ° Node.js: 20.17.0 NPM: 10.8.2
              ° Proxmox, Ubuntu 22.04.3 LTS
              ° Fixer ---> iob fix

              1 Reply Last reply
              0
              • SmarthomeMFS Offline
                SmarthomeMFS Offline
                SmarthomeMF
                wrote on last edited by
                #46

                @Negalein sagte in Skripten des E-Control Spritpreisrechners:

                hat es beim 1. Versuch mit 9 Tankstellen funktioniert?

                nur beim ersten versuch mit 4...
                dann haben sich die Werte nicht Aktualisiert! habe ich erst Später gemerkt
                Danach habe ich auf 9 Tankstellen erweitert.....
                ging nicht.

                die "" Zeichen habe ich auch schon geändert aber bringt nix....
                werde aber noch mal probieren

                @Georgius sagte in Skripten des E-Control Spritpreisrechners:

                Zeig mal die Einstellungen im Parseradapter

                001.PNG

                Max

                ioBroker auf einem NUC ,16GB RAM, 120GB SSD) mit Proxmox
                Cloud Pro, iot, Alexa, Sonos, sonoff, Fronius, Harmony, Doorbird, Shelly, Hue, Loxone, Mihome, …

                HomoranH 1 Reply Last reply
                0
                • SmarthomeMFS SmarthomeMF

                  @Negalein sagte in Skripten des E-Control Spritpreisrechners:

                  hat es beim 1. Versuch mit 9 Tankstellen funktioniert?

                  nur beim ersten versuch mit 4...
                  dann haben sich die Werte nicht Aktualisiert! habe ich erst Später gemerkt
                  Danach habe ich auf 9 Tankstellen erweitert.....
                  ging nicht.

                  die "" Zeichen habe ich auch schon geändert aber bringt nix....
                  werde aber noch mal probieren

                  @Georgius sagte in Skripten des E-Control Spritpreisrechners:

                  Zeig mal die Einstellungen im Parseradapter

                  001.PNG

                  HomoranH Offline
                  HomoranH Offline
                  Homoran
                  Global Moderator Administrators
                  wrote on last edited by
                  #47

                  @SmarthomeMF
                  Ihr lieben,
                  ich habe diesen Thread nur eben quergelesen.
                  Wenn ich alles richtig verstanden habe sollte da doch vereinfachungspotential drin sein.

                  Stimmt folgendes:

                  • Ihr holt euch bei der API einen URL
                  • wenn man diesen URL aufruft bekommt man "etwas" zurück
                  • dieses Etwas ist Info von 10 Tankstellen

                  und ihr wollt die Daten dazu in Datenpunkten haben?
                  Was genau ?

                  Wenn das alles so stimmt:
                  kann mit jemand mal einen solchen URL geben

                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  NegaleinN 1 Reply Last reply
                  1
                  • HomoranH Homoran

                    @SmarthomeMF
                    Ihr lieben,
                    ich habe diesen Thread nur eben quergelesen.
                    Wenn ich alles richtig verstanden habe sollte da doch vereinfachungspotential drin sein.

                    Stimmt folgendes:

                    • Ihr holt euch bei der API einen URL
                    • wenn man diesen URL aufruft bekommt man "etwas" zurück
                    • dieses Etwas ist Info von 10 Tankstellen

                    und ihr wollt die Daten dazu in Datenpunkten haben?
                    Was genau ?

                    Wenn das alles so stimmt:
                    kann mit jemand mal einen solchen URL geben

                    NegaleinN Offline
                    NegaleinN Offline
                    Negalein
                    Global Moderator
                    wrote on last edited by Negalein
                    #48

                    @Homoran sagte in Skripten des E-Control Spritpreisrechners:

                    kann mit jemand mal einen solchen URL geben

                    Ich schicks dir beim Chat

                    PS: bei mir funktioniert es mit Parser und Javascript.
                    Ich bekomme mit obigen Script 5 Tankstellen inkl. Adressen und Preisen.

                    ° Node.js: 20.17.0 NPM: 10.8.2
                    ° Proxmox, Ubuntu 22.04.3 LTS
                    ° Fixer ---> iob fix

                    HomoranH 1 Reply Last reply
                    0
                    • NegaleinN Negalein

                      @Homoran sagte in Skripten des E-Control Spritpreisrechners:

                      kann mit jemand mal einen solchen URL geben

                      Ich schicks dir beim Chat

                      PS: bei mir funktioniert es mit Parser und Javascript.
                      Ich bekomme mit obigen Script 5 Tankstellen inkl. Adressen und Preisen.

                      HomoranH Offline
                      HomoranH Offline
                      Homoran
                      Global Moderator Administrators
                      wrote on last edited by
                      #49

                      @Negalein
                      ich habe inzwischen einen URL erzeugt - weiß der Teufel wo das ist, ich bin keine Alpenländler.

                      So ganz einfach wie ich es mir vorgestellt habe wird es fast nicht.
                      Ich hatte die Regionensuche bemüht und ein json zurückbekommen.
                      Das kann man wie ich es wollte schnell mit regex auseinandernehmen - ganz ohne javascript.

                      Bedingung ist, die Reihenfolge in dem json bleibt unverändert, und man will nur wenige Stationen monitoren.

                      Dann kann mal alleine mit dem Parser mit wenigen Zeilen zu einem Ergebnis kommen.

                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                      HomoranH 1 Reply Last reply
                      0
                      • NegaleinN Offline
                        NegaleinN Offline
                        Negalein
                        Global Moderator
                        wrote on last edited by
                        #50

                        @SmarthomeMF
                        Ich hab mir gerade die Ausgabe des Links in einem Editor angeschaut.

                        Wie ich bereits vermutet habe, werden sowieso nur bei den ersten 5 billigsten Tankstellen die Preise angezeigt.

                        ° Node.js: 20.17.0 NPM: 10.8.2
                        ° Proxmox, Ubuntu 22.04.3 LTS
                        ° Fixer ---> iob fix

                        HomoranH sigi234S 2 Replies Last reply
                        0
                        • HomoranH Homoran

                          @Negalein
                          ich habe inzwischen einen URL erzeugt - weiß der Teufel wo das ist, ich bin keine Alpenländler.

                          So ganz einfach wie ich es mir vorgestellt habe wird es fast nicht.
                          Ich hatte die Regionensuche bemüht und ein json zurückbekommen.
                          Das kann man wie ich es wollte schnell mit regex auseinandernehmen - ganz ohne javascript.

                          Bedingung ist, die Reihenfolge in dem json bleibt unverändert, und man will nur wenige Stationen monitoren.

                          Dann kann mal alleine mit dem Parser mit wenigen Zeilen zu einem Ergebnis kommen.

                          HomoranH Offline
                          HomoranH Offline
                          Homoran
                          Global Moderator Administrators
                          wrote on last edited by
                          #51

                          Hier mal das Vorgehen:

                          Voraussetzung ist, dass sich die Reihenfolge bei den Abfragen NICHT ändert. sonst braucht es eine weitere Zeile je Tankstelle

                          URL und REGEX eingeben wie gehabt.
                          regex_Tanken.png
                          Name entspricht der Tankstelle
                          NUM ist die Position dieser Tankstelle im JSON (-1)

                          fertig
                          regex_Tanken02.png

                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          1 Reply Last reply
                          0
                          • NegaleinN Negalein

                            @SmarthomeMF
                            Ich hab mir gerade die Ausgabe des Links in einem Editor angeschaut.

                            Wie ich bereits vermutet habe, werden sowieso nur bei den ersten 5 billigsten Tankstellen die Preise angezeigt.

                            HomoranH Offline
                            HomoranH Offline
                            Homoran
                            Global Moderator Administrators
                            wrote on last edited by
                            #52

                            @Negalein
                            so ist es.
                            Heisst das , dass sich die Reihenfolge ändert?

                            Dann muss jeweils eine weiter Zeile, gleicher URL, gleiche NUM mit Regex

                            me":"(\D+)","
                            

                            Typ Text
                            Der gibt dann den Namen der Tankstelle aus

                            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                            NegaleinN 1 Reply Last reply
                            0
                            • NegaleinN Negalein

                              @SmarthomeMF
                              Ich hab mir gerade die Ausgabe des Links in einem Editor angeschaut.

                              Wie ich bereits vermutet habe, werden sowieso nur bei den ersten 5 billigsten Tankstellen die Preise angezeigt.

                              sigi234S Online
                              sigi234S Online
                              sigi234
                              Forum Testing Most Active
                              wrote on last edited by
                              #53

                              @Negalein

                              Hallo, kann ich das auch haben? Wie bekomme ich die Url für meinen Ort heraus?

                              Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                              Immer Daten sichern!

                              NegaleinN 1 Reply Last reply
                              0
                              • HomoranH Homoran

                                @Negalein
                                so ist es.
                                Heisst das , dass sich die Reihenfolge ändert?

                                Dann muss jeweils eine weiter Zeile, gleicher URL, gleiche NUM mit Regex

                                me":"(\D+)","
                                

                                Typ Text
                                Der gibt dann den Namen der Tankstelle aus

                                NegaleinN Offline
                                NegaleinN Offline
                                Negalein
                                Global Moderator
                                wrote on last edited by
                                #54

                                @Homoran sagte in Skripten des E-Control Spritpreisrechners:

                                Heisst das , dass sich die Reihenfolge ändert?

                                Ja!
                                Es werden 10 Tankstellen angezeigt, aber nur bei den 5 günstigsten scheint der Preis auf.
                                Siehe auch www.spritpreisrechner.at
                                Kannst ja mal meinen Ort (Schärding) eingeben.

                                ° Node.js: 20.17.0 NPM: 10.8.2
                                ° Proxmox, Ubuntu 22.04.3 LTS
                                ° Fixer ---> iob fix

                                1 Reply Last reply
                                0
                                • SmarthomeMFS Offline
                                  SmarthomeMFS Offline
                                  SmarthomeMF
                                  wrote on last edited by SmarthomeMF
                                  #55

                                  @Negalein sagte in Skripten des E-Control Spritpreisrechners:

                                  Ja!
                                  Es werden 10 Tankstellen angezeigt, aber nur bei den 5 günstigsten scheint der Preis auf.
                                  Siehe auch www.spritpreisrechner.at
                                  Kannst ja mal meinen Ort (Schärding) eingeben.

                                  ja ich brauche immer etwas länger....
                                  habe es auch schon gemerkt.
                                  Es sind 10 da aber nur 5 mit Preise.
                                  Ich brauche aber mehr als die 5.
                                  Aber mal schauen was da vom @Homoran noch kommt.
                                  Ich bin froh für jede Lösung den ich kenne mich nicht aus.
                                  Danke für die Tolle Arbeit!

                                  Max

                                  ioBroker auf einem NUC ,16GB RAM, 120GB SSD) mit Proxmox
                                  Cloud Pro, iot, Alexa, Sonos, sonoff, Fronius, Harmony, Doorbird, Shelly, Hue, Loxone, Mihome, …

                                  NegaleinN HomoranH 2 Replies Last reply
                                  0
                                  • sigi234S sigi234

                                    @Negalein

                                    Hallo, kann ich das auch haben? Wie bekomme ich die Url für meinen Ort heraus?

                                    NegaleinN Offline
                                    NegaleinN Offline
                                    Negalein
                                    Global Moderator
                                    wrote on last edited by Negalein
                                    #56

                                    @sigi234 sagte in Skripten des E-Control Spritpreisrechners:

                                    Hallo, kann ich das auch haben? Wie bekomme ich die Url für meinen Ort heraus?

                                    Dieser Link ist für meine Koordinaten. Und Treibstoff DIE (Diesel)!
                                    https://api.e-control.at/sprit/1.0/search/gas-stations/by-address?latitude=XX.XXXXXX&longitude=XX.XXXXXX&fuelType=DIE&includeClosed=false

                                    Koordinaten bekommst du hier raus.

                                    Dann den erzeugten Link in Parser als JSON eintragen.
                                    Datenpunkte unter javascript. erzeugen.
                                    Script anpassen
                                    fertig

                                    ° Node.js: 20.17.0 NPM: 10.8.2
                                    ° Proxmox, Ubuntu 22.04.3 LTS
                                    ° Fixer ---> iob fix

                                    1 Reply Last reply
                                    0
                                    • SmarthomeMFS Offline
                                      SmarthomeMFS Offline
                                      SmarthomeMF
                                      wrote on last edited by
                                      #57

                                      @sigi234 sagte in Skripten des E-Control Spritpreisrechners:

                                      Wie bekomme ich die Url für meinen Ort heraus?

                                      wurde oben schon von den Kollegen genau beschrieben.
                                      das habe sogar ich geschafft!
                                      dann schaffst du das auch.

                                      Max

                                      ioBroker auf einem NUC ,16GB RAM, 120GB SSD) mit Proxmox
                                      Cloud Pro, iot, Alexa, Sonos, sonoff, Fronius, Harmony, Doorbird, Shelly, Hue, Loxone, Mihome, …

                                      sigi234S 1 Reply Last reply
                                      0
                                      • SmarthomeMFS SmarthomeMF

                                        @Negalein sagte in Skripten des E-Control Spritpreisrechners:

                                        Ja!
                                        Es werden 10 Tankstellen angezeigt, aber nur bei den 5 günstigsten scheint der Preis auf.
                                        Siehe auch www.spritpreisrechner.at
                                        Kannst ja mal meinen Ort (Schärding) eingeben.

                                        ja ich brauche immer etwas länger....
                                        habe es auch schon gemerkt.
                                        Es sind 10 da aber nur 5 mit Preise.
                                        Ich brauche aber mehr als die 5.
                                        Aber mal schauen was da vom @Homoran noch kommt.
                                        Ich bin froh für jede Lösung den ich kenne mich nicht aus.
                                        Danke für die Tolle Arbeit!

                                        NegaleinN Offline
                                        NegaleinN Offline
                                        Negalein
                                        Global Moderator
                                        wrote on last edited by
                                        #58

                                        @SmarthomeMF sagte in Skripten des E-Control Spritpreisrechners:

                                        Ich brauche aber mehr als die 5.

                                        Dann musst du mit 2 unterschiedlichen Gebieten/Links arbeiten.
                                        Im Umkreis von deinen Koordinaten werden nur 5 mit Preisen angezeigt.

                                        ° Node.js: 20.17.0 NPM: 10.8.2
                                        ° Proxmox, Ubuntu 22.04.3 LTS
                                        ° Fixer ---> iob fix

                                        1 Reply Last reply
                                        0
                                        • SmarthomeMFS SmarthomeMF

                                          @sigi234 sagte in Skripten des E-Control Spritpreisrechners:

                                          Wie bekomme ich die Url für meinen Ort heraus?

                                          wurde oben schon von den Kollegen genau beschrieben.
                                          das habe sogar ich geschafft!
                                          dann schaffst du das auch.

                                          sigi234S Online
                                          sigi234S Online
                                          sigi234
                                          Forum Testing Most Active
                                          wrote on last edited by
                                          #59

                                          @SmarthomeMF sagte in Skripten des E-Control Spritpreisrechners:

                                          @sigi234 sagte in Skripten des E-Control Spritpreisrechners:

                                          Wie bekomme ich die Url für meinen Ort heraus?

                                          wurde oben schon von den Kollegen genau beschrieben.
                                          das habe sogar ich geschafft!
                                          dann schaffst du das auch.

                                          Ja, Danke überlesen........funktioniert schon, diese stehen ja eigentlich auch im Admin Adapter drinnen.
                                          Welches ist jetzt das aktuelle Skript?

                                          Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                          Immer Daten sichern!

                                          NegaleinN 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          485

                                          Online

                                          32.4k

                                          Users

                                          81.5k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe