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. (gelöst) javascript läuft nicht

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    844

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

(gelöst) javascript läuft nicht

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
18 Beiträge 3 Kommentatoren 3.6k Aufrufe
  • Ä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.
  • DirkKD Offline
    DirkKD Offline
    DirkK
    schrieb am zuletzt editiert von
    #8

    Hallo Rainer, hier mal das Skript, ich hab meine Finger nicht drann gehabt,… Ehrenwort

    <code>[code]/* Ölpreis abfragen
    Auf diese Anfrage hin: http://forum.iobroker.net/viewtopic.php?f=8&t=3455
    
    Quelle: heizoel24.de
    Basis: solar-wetter Skript
    
    erstellt: 03.08.2016 von pix
    
    */
    
    var logging = false;
    var link = 'http://www.heizoel24.de/heizoelpreise';
    
    // ab hier nix mehr ändern, solange die Webseite die Daten nicht ändert
    
    var idProgPrice =   'Heizoel.Forecast.Price',
        idProgText =    'Heizoel.Forecast.Text',
        idProgPercent = 'Heizoel.Forecast.Percent',
        idProgDate =    'Heizoel.Forecast.Date';
    
    createState(idProgPrice, {
        name: 'HeizOel24.de Vorhersage Preis',
        desc: 'Heizölpreis Prognose für den nächsten Werktag',
        type: 'number',
        def: 0,
        min: 0,
        unit: '€/100l'
    });
    createState(idProgText, {
        name: 'HeizOel24.de Vorhersage Text',
        desc: 'Heizölpreis Prognose für den nächsten Werktag',
        type: 'string',
        def: ''
    });
    createState(idProgPercent, {
        name: 'HeizOel24.de Vorhersage Änderung in Prozent',
        desc: 'Heizölpreis Prognose für den nächsten Werktag',
        type: 'number',
        def: 0,
        min: 0,
        max: 100,
        unit: '%'
    });
    createState(idProgDate, {
        name: 'HeizOel24.de Vorhersage Datum',
        desc: 'Heizölpreis Prognose für den nächsten Werktag, dieses Datum',
        type: 'string',
        def: ''
    });
    
    var request = require('request');
    
    function extractPrice(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)) 1/{/fehler/abfangen/zwischenspeicher="body.slice(start,ende);" if/(logging)/log(zwischenspeicher);/var/zwischenspeicher_array="zwischenspeicher.split(',');" teilen/vorm/komma/zwischenspeicher_vorn="zwischenspeicher_array[0];" log(zwischenspeicher_vorn);/zwischenspeicher_array_hinten="zwischenspeicher_array[1].slice(0,2);" zwei/stellen/nach/dem/log(zwischenspeicher_array_hinten);/rueckgabe="parseFloat(zwischenspeicher_vorn" +/'.'/zwischenspeicher_array_hinten);/log(rueckgabe);/return(rueckgabe);/}/else/;/log(zwischenspeicher,/'error');/return(0);/function/extracttrend(body,text1,text2)/start="body.indexOf(text1)" text1.length;/ende="body.indexOf(text2,start);" log('startposition:/'/start);/log('endposition:/ende);/zwischenspeicher;/(((start/!="-1)" &&/(ende/(start<ende))/zwischenspeicher_array_vorn="zwischenspeicher_array[0].slice(zwischenspeicher_array[0].length-2,zwischenspeicher_array[0].length);" =="1)" ?/parseint(zwischenspeicher_vorn,10)/*/(-1)/:/parseint(zwischenspeicher_vorn,10);/');/zwischenspeicher_vorzeichen="zwischenspeicher_vorn[0];" oder/-/(logging)log('vorzeichen:/zwischenspeicher_vorzeichen);/zwischenspeicher_ganzzahl="zwischenspeicher_vorn[1];" zb/zwischenspeicher_ganzzahl;/(logging)log('ganzzahl:/zwischenspeicher_vorn);/(logging)log(rueckgabe);/extracttext(body,text1,text2)/return(zwischenspeicher);/findforecastprice/(body)/text1="<div class=&quot;forecast-value&quot;>" ,/erstes/auftauchen/text2="</div>" price="extractPrice(body,text1,text2);" log('prognose/preis:/eur');/setstate(idprogprice,/parsefloat(price,10));/wert/in/objekt/schreiben/findforecasttext/text="extractText(body,text1,text2);" text:/text);/setstate(idprogtext,/findforecastpercent/percent="extractTrend(body,text1,text2);" prozent:/'%');/setstate(idprogpercent,/percent);/findforecastdate/tag/day="extractText(body,text1,text2);" datum:/day);/pdatum="findeDatum(day);" setstate(idprogdate,/pdatum);/findedatum/stringdatum="body.split(',');" stringjahr="stringdatum[0].trim();" stringzeit="stringdatum[1].trim();" log('datum:/);/return(stringjahr/stringzeit);/lesewebseite/()/try/request(link,/(error,/response,/body)/(!error/response.statuscode="=" 200)/kein/fehler,/inhalt/body/findforecastprice(body);/findforecasttext(body);/findforecastpercent(body);/findforecastdate(body);/log('heizöl/prognose/von/heizoel24.de/eingelesen');/log(error,'error');/error/beim/einlesen/});/catch/(e)/log('fehler/(try)/lesewebseite:/e,/bei/skriptstart/lesewebseite();/schedule/schedule("59/*",/lesewebseite);<e="">[/code]</ende))></code>
    

    ! /* Ölpreis abfragen
    ! Auf diese Anfrage hin: http://forum.iobroker.net/viewtopic.php?f=8&t=3455
    ! Quelle: heizoel24.de
    ! Basis: solar-wetter Skript
    ! erstellt: 03.08.2016 von pix
    ! */
    ! var logging = false;
    ! var link = 'http://www.heizoel24.de/heizoelpreise';
    ! // ab hier nix mehr ändern, solange die Webseite die Daten nicht ändert
    ! var idProgPrice = 'Heizoel.Forecast.Price',
    ! idProgText = 'Heizoel.Forecast.Text',
    ! idProgPercent = 'Heizoel.Forecast.Percent',
    ! idProgDate = 'Heizoel.Forecast.Date';
    ! createState(idProgPrice, {
    ! name: 'HeizOel24.de Vorhersage Preis',
    ! desc: 'Heizölpreis Prognose für den nächsten Werktag',
    ! type: 'number',
    ! def: 0,
    ! min: 0,
    ! unit: '€/100l'
    ! });
    ! createState(idProgText, {
    ! name: 'HeizOel24.de Vorhersage Text',
    ! desc: 'Heizölpreis Prognose für den nächsten Werktag',
    ! type: 'string',
    ! def: ''
    ! });
    ! createState(idProgPercent, {
    ! name: 'HeizOel24.de Vorhersage Änderung in Prozent',
    ! desc: 'Heizölpreis Prognose für den nächsten Werktag',
    ! type: 'number',
    ! def: 0,
    ! min: 0,
    ! max: 100,
    ! unit: '%'
    ! });
    ! createState(idProgDate, {
    ! name: 'HeizOel24.de Vorhersage Datum',
    ! desc: 'Heizölpreis Prognose für den nächsten Werktag, dieses Datum',
    ! type: 'string',
    ! def: ''
    ! });
    ! var request = require('request');
    ! function extractPrice(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<br="">zwischenspeicher = body.slice(start,ende);
    ! zwischenspeicher = zwischenspeicher.trim();
    ! if (logging) log(zwischenspeicher);
    ! var zwischenspeicher_array = zwischenspeicher.split(','); // Teilen vorm Komma
    ! var zwischenspeicher_vorn = zwischenspeicher_array[0];
    ! if (logging) log(zwischenspeicher_vorn);
    ! var zwischenspeicher_array_hinten = zwischenspeicher_array[1].slice(0,2); // zwei Stellen nach dem Komma
    ! if (logging) log(zwischenspeicher_array_hinten);
    ! var rueckgabe = parseFloat(zwischenspeicher_vorn + '.' + zwischenspeicher_array_hinten);
    ! if (logging) log(rueckgabe);
    ! return(rueckgabe);
    ! } else {
    ! zwischenspeicher = 'Fehler beim Ausschneiden';
    ! log(zwischenspeicher, 'error');
    ! return(0);
    ! }
    ! }
    ! function extractTrend(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<br="">zwischenspeicher = body.slice(start,ende);
    ! zwischenspeicher = zwischenspeicher.trim();
    ! if (logging) log(zwischenspeicher);
    ! var zwischenspeicher_array = zwischenspeicher.split(','); // Teilen vorm Komma
    ! //var zwischenspeicher_array_vorn = zwischenspeicher_array[0].slice(zwischenspeicher_array[0].length-2,zwischenspeicher_array[0].length); // zwei Stellen vorm Komma
    ! var zwischenspeicher_vorn = zwischenspeicher_array[0];
    ! //zwischenspeicher_vorn = (zwischenspeicher_vorn.indexOf('+') == 1) ? parseInt(zwischenspeicher_vorn,10) * (-1) : parseInt(zwischenspeicher_vorn,10);
    ! if (logging) log(zwischenspeicher_vorn);
    ! zwischenspeicher_vorn = zwischenspeicher_vorn.split(' ');
    ! var zwischenspeicher_vorzeichen = zwischenspeicher_vorn[0]; // + oder -
    ! if (logging)log('Vorzeichen: ' + zwischenspeicher_vorzeichen);
    ! var zwischenspeicher_ganzzahl = zwischenspeicher_vorn[1]; // zB 1
    ! zwischenspeicher_vorn = zwischenspeicher_vorzeichen + zwischenspeicher_ganzzahl;
    ! if (logging)log('Ganzzahl: ' + zwischenspeicher_vorn);
    ! var zwischenspeicher_array_hinten = zwischenspeicher_array[1].slice(0,2); // zwei Stellen nach dem Komma
    ! if (logging) log(zwischenspeicher_array_hinten);
    ! var rueckgabe = parseFloat(zwischenspeicher_vorn + '.' + zwischenspeicher_array_hinten);
    ! if (logging)log(rueckgabe);
    ! return(rueckgabe);
    ! } else {
    ! zwischenspeicher = 'Fehler beim Ausschneiden';
    ! log(zwischenspeicher, 'error');
    ! return(0);
    ! }
    ! }
    ! 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<br="">zwischenspeicher = body.slice(start,ende);
    ! zwischenspeicher = zwischenspeicher.trim();
    ! if (logging) log(zwischenspeicher);
    ! return(zwischenspeicher);
    ! } else {
    ! zwischenspeicher = 'Fehler beim Ausschneiden';
    ! log(zwischenspeicher, 'error');
    ! return(0);
    ! }
    ! }
    ! function findForecastPrice (body) {
    ! var text1 = '', // erstes Auftauchen
    ! text2 = ''; // erstes Auftauchen
    ! var price = extractPrice(body,text1,text2);
    ! if (logging) log('Prognose Preis: ' + price + ' EUR');
    ! setState(idProgPrice, parseFloat(price,10)); // Wert in Objekt schreiben
    ! }
    ! function findForecastText (body) {
    ! var text1 = '', // erstes Auftauchen
    ! text2 = ''; // erstes Auftauchen
    ! var text = extractText(body,text1,text2);
    ! if (logging) log('Prognose Text: ' + text);
    ! setState(idProgText, text); // Wert in Objekt schreiben
    ! }
    ! function findForecastPercent (body) {
    ! var text1 = '', // erstes Auftauchen
    ! text2 = ''; // erstes Auftauchen
    ! var percent = extractTrend(body,text1,text2);
    ! if (logging) log('Prognose Prozent: ' + percent + '%');
    ! setState(idProgPercent, percent); // Wert in Objekt schreiben
    ! }
    ! function findForecastDate (body) {
    ! var text1 = '(', // erstes Auftauchen + 1 Tag
    ! text2 = ')'; // erstes Auftauchen
    ! var day = extractText(body,text1,text2);
    ! if (logging) log('Prognose Datum: ' + day);
    ! var pdatum = findeDatum(day);
    ! setState(idProgDate, pdatum); // Wert in Objekt schreiben
    ! }
    ! function findeDatum (body) {
    ! var stringdatum = body.split(',');
    ! var stringjahr = stringdatum[0].trim();
    ! var stringzeit = stringdatum[1].trim();
    ! if (logging) log('Datum: ' + stringjahr + ' ' + stringzeit );
    ! return(stringjahr + ' ' + stringzeit);
    ! }
    ! function leseWebseite () {
    ! try {
    ! request(link, function (error, response, body) {
    ! if (!error && response.statusCode == 200) { // kein Fehler, Inhalt in body
    ! findForecastPrice(body);
    ! findForecastText(body);
    ! findForecastPercent(body);
    ! findForecastDate(body);
    ! log('Heizöl Prognose 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);</ende))></ende))></ende))>

    Gruß Dirk

    Raspi3 CCU

    1 Antwort Letzte Antwort
    0
    • P Offline
      P Offline
      pix
      schrieb am zuletzt editiert von
      #9

      Hallo,

      habe jetzt nur mal schnell drüber gesehen über den Chaos Post :lol:

      Bei mir wirft das Skript den gleichen Fehler aus. Vermutlich ist der Code der geparsten geparste Webseite vom Betreiber geändert worden.

      Ich schaue mir das mal an. Kann ein paar Tage dauern. Hoffe, dein Tank ist nicht leer.

      Gruß

      Pix

      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

      1 Antwort Letzte Antwort
      0
      • P Offline
        P Offline
        pix
        schrieb am zuletzt editiert von
        #10

        Hab mir die Quellseite nochmal angesehen.

        Wenn es reicht, werde ich dir Daten rausparsen, die auf Tafel angezeigt werden, welche der langhaarige Ire hält, okay?

        Gruß

        Pix

        ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

        1 Antwort Letzte Antwort
        0
        • DirkKD Offline
          DirkKD Offline
          DirkK
          schrieb am zuletzt editiert von
          #11

          Jo, danke dir pix,

          die Tanks sind voll der Winter kann kommen, also keinen Stress,

          aber was meinst du mit Chaos Post, ich hab versucht alles richtig zu machen (… er war stets bemüht)

          und was meinst du mit
          @pix:

          Wenn es reicht, werde ich dir Daten rausparsen, die auf Tafel angezeigt werden, welche der langhaarige Ire hält, okay? `

          aber ich freue mich das du mir hilfst, mochmals Danke

          Gruß Dirk

          Raspi3 CCU

          1 Antwort Letzte Antwort
          0
          • P Offline
            P Offline
            pix
            schrieb am zuletzt editiert von
            #12

            Hallo,

            Sorry für das "Chaos Post", du bist bei den Code- und Spoiler Tags etwas durcheinander gekommen. Nicht schlimm.

            Der langhaarige Ire ist Joey Kelly. Er ist auf der Hauptseite von heizoel24.de zu sehen. Er hält eine Tafel. Die Tafel zeigt einige Werte.

            Gruß

            Pix

            ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

            1 Antwort Letzte Antwort
            0
            • HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #13

              @pix:

              Der langhaarige Ire ist Joey Kelly. Er ist auf der Hauptseite von heizoel24.de zu sehen. Er hält eine Tafel. Die Tafel zeigt einige Werte. `
              So etwas hatte ich erwartet.

              Aber ich hatte nur einen fast Glatzköpfigen mit einer Tafel auf den Seiten gesehen :o

              Gruß

              Rainer

              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 Antwort Letzte Antwort
              0
              • DirkKD Offline
                DirkKD Offline
                DirkK
                schrieb am zuletzt editiert von
                #14

                Tut mir leid,

                ich konnte mich an beide nicht erinnern, liegt wohl an der Reizüberflutung :D

                Gruß Dirk

                Raspi3 CCU

                1 Antwort Letzte Antwort
                0
                • HomoranH Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von
                  #15

                  Habe mir das jetzt nochmal am Monitor angesehen.

                  Das ist tatsächlich Joey Kelly. :oops:

                  Am Tablet habe ich ihn echt nicht erkannt.

                  Gruß

                  Rainer

                  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 Antwort Letzte Antwort
                  0
                  • P Offline
                    P Offline
                    pix
                    schrieb am zuletzt editiert von
                    #16

                    Hallo,

                    nochmal um sicherzugehen:

                    Das sind die Werte, die du brauchst, oder? 261_bildschirmfoto_2016-11-08_um_19.52.33.jpg

                    Preis, Datum, Prozent

                    Gruß

                    Pix

                    ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                    1 Antwort Letzte Antwort
                    0
                    • P Offline
                      P Offline
                      pix
                      schrieb am zuletzt editiert von
                      #17

                      Hallo,

                      hier zeigt sich wieder, warum ein Adapter für das Einlesen diverser Informationen von einer Webseite ungünstig ist: Ein Änderung in der Struktur der Quellseite und das Skript/Adapter läuft nicht mehr und muss angepasst werden. Ein Skript können doch tendenziell mehr User anpassen, als einen Adapter.

                      Hier nun die neue Version:

                      <u>Änderungen</u>

                      • Keine Prognose mehr, sondern Ist-Preise

                      • Datenpunkt Text fällt weg

                      • Pfad zu den drei Datenpunkten geändert (ggf. in VIS anpassen)

                        • javascript.INSTANZ.Heizoel.Ist.Price

                        • javascript.INSTANZ.Heizoel.Ist.Percent

                        • javascript.INSTANZ.Heizoel.Ist.Date (ist Zeichenkette, kein Datumsformat)

                      Skript:

                      ! ````
                      /* Ö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
                      ! erstellt: 03.08.2016 von pix
                      12.11.2016 Webseite liefert nicht mehr Prognose, sondern Ist-Preis.
                      Skript angepasst
                      */
                      ! 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);" if/(logging)/log(zwischenspeicher);/return(zwischenspeicher);/}/else/;/log(zwischenspeicher,/'error');/return(0);/ok/function/findprice/(body)/var/text1="class="middle">" ,/erstes/auftauchen/text2="<span class="currency">€</span>" price="extractText(body,text1,text2);" 50,54/price_array="price.split(',');" +/'.'/price_array[1];/log('heizöl/preis:/'/eur');/setstate(idprice,/parsefloat(price,10));/wert/in/objekt/schreiben/findpercent/percent="extractText(body,text1,text2);" percent_array="percent.split(',');" percent_array[1];/prozent:/percent.tofixed(2)/'%');/setstate(idpercent,/percent);/finddate/day="extractText(body,text1,text2);" ∅/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('.'); // ∅ 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(); // ∅ 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);</ende))>

                      
                      Gruß
                      
                      Pix

                      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                      1 Antwort Letzte Antwort
                      0
                      • DirkKD Offline
                        DirkKD Offline
                        DirkK
                        schrieb am zuletzt editiert von
                        #18

                        Hallo Pix, genau das wollte ich, hab das aber schon im anderen Beitrag bestätigt, ich setze das mal auf gelöst, danke nochmals

                        Gruß Dirk

                        Raspi3 CCU

                        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

                        656

                        Online

                        32.6k

                        Benutzer

                        82.1k

                        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