Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Ölpreis

NEWS

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

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

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

Ölpreis

Geplant Angeheftet Gesperrt Verschoben Gelöst ioBroker Allgemein
javascript
65 Beiträge 15 Kommentatoren 15.0k Aufrufe 13 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • AtifanA Offline
    AtifanA Offline
    Atifan
    schrieb am zuletzt editiert von
    #61

    Bzw.wenn ich das richtig verstehe, brauche ich doch eigentlich nur
    Script1 zum Anlegen der States
    Script3 zum automatisch Aktualisieren des Ölpreises an meiner PLZ
    Script5 zum automatischen Aktualisieren des allgemeinen Ölpreises

    Und das müsste doch auch ohne Änderungen am Script eigentlich funktionieren, oder nicht?

    O 1 Antwort Letzte Antwort
    0
    • AtifanA Atifan

      Bzw.wenn ich das richtig verstehe, brauche ich doch eigentlich nur
      Script1 zum Anlegen der States
      Script3 zum automatisch Aktualisieren des Ölpreises an meiner PLZ
      Script5 zum automatischen Aktualisieren des allgemeinen Ölpreises

      Und das müsste doch auch ohne Änderungen am Script eigentlich funktionieren, oder nicht?

      O Online
      O Online
      Oli
      schrieb am zuletzt editiert von Oli
      #62

      @Atifan

      versuche mal das scheudle aus Script 3 außerhalb der Klammer zu setzen.

      Ansonsten würde ich gerne alles was meine Scripte betrifft, in meinem Beitrag weiterschreiben.

      Gruß
      Oliver

      AtifanA 1 Antwort Letzte Antwort
      0
      • O Oli

        @Atifan

        versuche mal das scheudle aus Script 3 außerhalb der Klammer zu setzen.

        Ansonsten würde ich gerne alles was meine Scripte betrifft, in meinem Beitrag weiterschreiben.

        AtifanA Offline
        AtifanA Offline
        Atifan
        schrieb am zuletzt editiert von
        #63

        Hi,
        habe hier das Script die ganze Zeit genutzt, aber seit einiger Zeit funktioniert es nicht mehr. Weiss einer warum?
        Danke!

        /* Ölpreis abfragen
        Auf diese Anfrage hin: http://forum.iobroker.net/viewtopic.php?f=8&t=3455
        am 4.11.2016 getestet, nach Änderung der Webseite nun Fehler
        Quelle: heizoel24.de
        Basis: solar-wetter Skript
        {1}
        erstellt: 03.08.2016 von pix
        12.11.2016 Webseite liefert nicht mehr Prognose, sondern Ist-Preis. Skript angepasst
        29.08.2017 SKRIPT AUSGESCHALTET, DA NICHT IN GEBRAUCH
        */
         
        var logging = false;
        var link = 'http://www.heizoel24.de/heizoelpreise';
         
        // ab hier nix mehr ändern, solange die Webseite die Daten nicht ändert
        var request = require('request');
        var idPrice =   'Heizoel.Ist.Price',
           idPercent = 'Heizoel.Ist.Percent',
           idDate =    'Heizoel.Ist.Date';
           
        createState(idPrice, {
           name: 'HeizOel24.de Preis',
           desc: 'Heizölpreis für heute',
           type: 'number',
           def: 0,
           min: 0,
           unit: '€/100l'
        });
        createState(idPercent, {
           name: 'HeizOel24.de Änderung in Prozent zum Vortag',
           desc: 'Heizölpreisänderung zum Vortag',
           type: 'number',
           def: 0,
           min: 0,
           max: 100,
           unit: '%'
        });
        createState(idDate, {
           name: 'HeizOel24.de Datum',
           desc: 'Heizölpreis Zeitstempel (als String)',
           type: 'string',
           def: ''
        });
         
        function extractText(body,text1,text2) {
           var start = body.indexOf(text1) + text1.length;
           var ende = body.indexOf(text2,start);
           if (logging) log('Startposition: ' + start);
           if (logging) log('Endposition: ' + ende);
           var zwischenspeicher;
           if (((start != -1) && (ende != -1)) && (start<ende)) {                      // Fehler abfangen
               zwischenspeicher = body.slice(start,ende);
               zwischenspeicher = zwischenspeicher.trim();
               if (logging) log(zwischenspeicher);
               return(zwischenspeicher);
           } else {
               zwischenspeicher = 'Fehler beim Ausschneiden';
               log(zwischenspeicher, 'error');
               return(0);
           }
        }
         
        //ok
        function findPrice (body) {   
           var text1 = 'class="middle">', // erstes Auftauchen
               text2 = '<span class="currency">€</span>';  // erstes Auftauchen
           var price = extractText(body,text1,text2); // 50,54 
           var price_array = price.split(',');
           price = price_array[0] + '.' + price_array[1];
           price = parseFloat(price);
           if (logging) log('Heizöl Preis: ' + price + ' EUR');
           setState(idPrice, parseFloat(price,10));                                 // Wert in Objekt schreiben
        }
         
        function findPercent (body) {   
           var text1 = '<span class="lower"><span class=" red">', // erstes Auftauchen
               text2 = '%</span> zum Vortag</span>';  // erstes Auftauchen
           var percent = extractText(body,text1,text2); // 50,54 
           var percent_array = percent.split(',');
           percent = percent_array[0] + '.' + percent_array[1];
           percent = parseFloat(percent);
           if (logging) log('Heizöl Prozent: ' + percent.toFixed(2) + '%');
           setState(idPercent, percent);                                 // Wert in Objekt schreiben
        }
         
        function findDate (body) {   
           var text1 = 'class="upper">', // erstes Auftauchen + 1 Tag
               text2 = 'class="middle">';                        // erstes Auftauchen
           var day = extractText(body,text1,text2); // &empty; 100l, 12.11.2016</span>
           if (logging) log('Heizöl Datum: ' + day);
           var pdatum = findeDatum(day);
           setState(idDate, pdatum);                                 // Wert in Objekt schreiben
        }
         
        function findeDatum (body) {   
           if (logging) log(body);
           var stringdatum_array = body.split('.'); // &empty; 100l, 12.11.2016
           var stringjahr = stringdatum_array[2].trim(); // 2016
           var stringmonat = stringdatum_array[1].trim(); // 11
           var stringtag_string = stringdatum_array[0].trim(); // &empty; 100l, 12
           var stringtag_array = stringtag_string.split(','); // bei Komma trennen
           var stringtag = stringtag_array[1].trim(); // 12
           var stringdatum = stringtag + '.' + stringmonat + '.' + parseInt(stringjahr,10);
           if (logging) log('Datum: ' + stringdatum);
           return(stringdatum);
        }
         
        function leseWebseite () {
           try {
               request(link, function (error, response, body) {
                   if (!error && response.statusCode == 200) {              // kein Fehler, Inhalt in body
                       findPrice(body);
                       findPercent(body);
                       findDate(body);
                       log('Heizöl-Preis von heizoel24.de eingelesen');
                   } else log(error,'error');                               // Error beim Einlesen
               });
           } catch (e) {
               log('Fehler (try) leseWebseite: ' + e, 'error');
           }   
        }
         
        // bei Skriptstart
        leseWebseite();
         
        // Schedule
        schedule("59 * * * *", leseWebseite);
         
        
        
        A 1 Antwort Letzte Antwort
        0
        • AtifanA Atifan

          Hi,
          habe hier das Script die ganze Zeit genutzt, aber seit einiger Zeit funktioniert es nicht mehr. Weiss einer warum?
          Danke!

          /* Ölpreis abfragen
          Auf diese Anfrage hin: http://forum.iobroker.net/viewtopic.php?f=8&t=3455
          am 4.11.2016 getestet, nach Änderung der Webseite nun Fehler
          Quelle: heizoel24.de
          Basis: solar-wetter Skript
          {1}
          erstellt: 03.08.2016 von pix
          12.11.2016 Webseite liefert nicht mehr Prognose, sondern Ist-Preis. Skript angepasst
          29.08.2017 SKRIPT AUSGESCHALTET, DA NICHT IN GEBRAUCH
          */
           
          var logging = false;
          var link = 'http://www.heizoel24.de/heizoelpreise';
           
          // ab hier nix mehr ändern, solange die Webseite die Daten nicht ändert
          var request = require('request');
          var idPrice =   'Heizoel.Ist.Price',
             idPercent = 'Heizoel.Ist.Percent',
             idDate =    'Heizoel.Ist.Date';
             
          createState(idPrice, {
             name: 'HeizOel24.de Preis',
             desc: 'Heizölpreis für heute',
             type: 'number',
             def: 0,
             min: 0,
             unit: '€/100l'
          });
          createState(idPercent, {
             name: 'HeizOel24.de Änderung in Prozent zum Vortag',
             desc: 'Heizölpreisänderung zum Vortag',
             type: 'number',
             def: 0,
             min: 0,
             max: 100,
             unit: '%'
          });
          createState(idDate, {
             name: 'HeizOel24.de Datum',
             desc: 'Heizölpreis Zeitstempel (als String)',
             type: 'string',
             def: ''
          });
           
          function extractText(body,text1,text2) {
             var start = body.indexOf(text1) + text1.length;
             var ende = body.indexOf(text2,start);
             if (logging) log('Startposition: ' + start);
             if (logging) log('Endposition: ' + ende);
             var zwischenspeicher;
             if (((start != -1) && (ende != -1)) && (start<ende)) {                      // Fehler abfangen
                 zwischenspeicher = body.slice(start,ende);
                 zwischenspeicher = zwischenspeicher.trim();
                 if (logging) log(zwischenspeicher);
                 return(zwischenspeicher);
             } else {
                 zwischenspeicher = 'Fehler beim Ausschneiden';
                 log(zwischenspeicher, 'error');
                 return(0);
             }
          }
           
          //ok
          function findPrice (body) {   
             var text1 = 'class="middle">', // erstes Auftauchen
                 text2 = '<span class="currency">€</span>';  // erstes Auftauchen
             var price = extractText(body,text1,text2); // 50,54 
             var price_array = price.split(',');
             price = price_array[0] + '.' + price_array[1];
             price = parseFloat(price);
             if (logging) log('Heizöl Preis: ' + price + ' EUR');
             setState(idPrice, parseFloat(price,10));                                 // Wert in Objekt schreiben
          }
           
          function findPercent (body) {   
             var text1 = '<span class="lower"><span class=" red">', // erstes Auftauchen
                 text2 = '%</span> zum Vortag</span>';  // erstes Auftauchen
             var percent = extractText(body,text1,text2); // 50,54 
             var percent_array = percent.split(',');
             percent = percent_array[0] + '.' + percent_array[1];
             percent = parseFloat(percent);
             if (logging) log('Heizöl Prozent: ' + percent.toFixed(2) + '%');
             setState(idPercent, percent);                                 // Wert in Objekt schreiben
          }
           
          function findDate (body) {   
             var text1 = 'class="upper">', // erstes Auftauchen + 1 Tag
                 text2 = 'class="middle">';                        // erstes Auftauchen
             var day = extractText(body,text1,text2); // &empty; 100l, 12.11.2016</span>
             if (logging) log('Heizöl Datum: ' + day);
             var pdatum = findeDatum(day);
             setState(idDate, pdatum);                                 // Wert in Objekt schreiben
          }
           
          function findeDatum (body) {   
             if (logging) log(body);
             var stringdatum_array = body.split('.'); // &empty; 100l, 12.11.2016
             var stringjahr = stringdatum_array[2].trim(); // 2016
             var stringmonat = stringdatum_array[1].trim(); // 11
             var stringtag_string = stringdatum_array[0].trim(); // &empty; 100l, 12
             var stringtag_array = stringtag_string.split(','); // bei Komma trennen
             var stringtag = stringtag_array[1].trim(); // 12
             var stringdatum = stringtag + '.' + stringmonat + '.' + parseInt(stringjahr,10);
             if (logging) log('Datum: ' + stringdatum);
             return(stringdatum);
          }
           
          function leseWebseite () {
             try {
                 request(link, function (error, response, body) {
                     if (!error && response.statusCode == 200) {              // kein Fehler, Inhalt in body
                         findPrice(body);
                         findPercent(body);
                         findDate(body);
                         log('Heizöl-Preis von heizoel24.de eingelesen');
                     } else log(error,'error');                               // Error beim Einlesen
                 });
             } catch (e) {
                 log('Fehler (try) leseWebseite: ' + e, 'error');
             }   
          }
           
          // bei Skriptstart
          leseWebseite();
           
          // Schedule
          schedule("59 * * * *", leseWebseite);
           
          
          
          A Offline
          A Offline
          Adnim
          schrieb am zuletzt editiert von
          #64

          Hi!
          bei mir das gleiche, es gibt auch eine Fehlermeldung im LOG dazu, kann jemand helfen?

          javascript.0	2020-08-24 09:43:26.086	error	(680) Error in request callback: TypeError: body.split is not a function
          javascript.0	2020-08-24 09:43:26.086	error	(680) script.js.common.oelpreis: Fehler beim Ausschneiden
          

          Danke!

          AtifanA 1 Antwort Letzte Antwort
          0
          • A Adnim

            Hi!
            bei mir das gleiche, es gibt auch eine Fehlermeldung im LOG dazu, kann jemand helfen?

            javascript.0	2020-08-24 09:43:26.086	error	(680) Error in request callback: TypeError: body.split is not a function
            javascript.0	2020-08-24 09:43:26.086	error	(680) script.js.common.oelpreis: Fehler beim Ausschneiden
            

            Danke!

            AtifanA Offline
            AtifanA Offline
            Atifan
            schrieb am zuletzt editiert von Atifan
            #65

            hier stand Müll

            1 Antwort Letzte Antwort
            0
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate
            FAQ Cloud / IOT
            HowTo: Node.js-Update
            HowTo: Backup/Restore
            Downloads
            BLOG

            888

            Online

            32.4k

            Benutzer

            81.5k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Anmelden

            • Du hast noch kein Konto? Registrieren

            • Anmelden oder registrieren, um zu suchen
            • Erster Beitrag
              Letzter Beitrag
            0
            • Home
            • Aktuell
            • Tags
            • Ungelesen 0
            • Kategorien
            • Unreplied
            • Beliebt
            • GitHub
            • Docu
            • Hilfe