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. Skripten / Logik
  4. JavaScript
  5. Script geht zeitweise auf Pause

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    508

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

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

Script geht zeitweise auf Pause

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
32 Beiträge 7 Kommentatoren 1.6k Aufrufe 5 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.
  • NegaleinN Negalein

    @AlCalzone

    gestern ist das Script wieder in Pause gegangen.
    Diesmal mit einem anderen Fehler (filter is not a function).
    Das ganze ist von 03:26 bis 06:54 (hab nicht alles angehänt, da immer die gleiche Meldung) aufgetreten.

    Kann man das irgendwie beheben? Oder liegt es an der zu parsenden Seite?

    Falls es nicht zu beheben/umgehen ist, gibt es eine Möglichkeit ein Script zu überwachen, damit ich zumindest eine Benachrichtigung auf Telegram/Alexa bekomme?

    Danke dir

    2020-01-22 03:26:02.812  - info: javascript.0 (22538) script.js.common.Spritpreisrechner: Start Spritvergleich
    2020-01-22 03:26:02.814  - error: javascript.0 (22538) Error in callback: TypeError: gasStation.filter is not a function
    2020-01-22 03:26:02.814  - error: javascript.0 (22538)     at Object.<anonymous> (script.js.common.Spritpreisrechner:19:29)
    2020-01-22 03:26:02.814  - error: javascript.0 (22538)     at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1101:38)
    2020-01-22 03:26:02.814  - error: javascript.0 (22538)     at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:439:25)
    2020-01-22 03:26:02.814  - error: javascript.0 (22538)     at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4745:37)
    2020-01-22 03:26:02.814  - error: javascript.0 (22538)     at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:226:41)
    2020-01-22 03:26:02.815  - error: javascript.0 (22538)     at runCallback (timers.js:705:18)
    2020-01-22 03:26:02.815  - error: javascript.0 (22538)     at tryOnImmediate (timers.js:676:5)
    2020-01-22 03:26:02.815  - error: javascript.0 (22538)     at processImmediate (timers.js:658:5)
    2020-01-22 03:26:52.805  - info: javascript.0 (22538) script.js.common.Spritpreisrechner: Start Spritvergleich
    2020-01-22 03:26:52.806  - error: javascript.0 (22538) Error in callback: TypeError: gasStation.filter is not a function
    2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at Object.<anonymous> (script.js.common.Spritpreisrechner:19:29)
    2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1101:38)
    2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:439:25)
    2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4745:37)
    2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:226:41)
    2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at runCallback (timers.js:705:18)
    2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at tryOnImmediate (timers.js:676:5)
    2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at processImmediate (timers.js:658:5)
    2020-01-22 03:27:02.804  - info: javascript.0 (22538) script.js.common.Spritpreisrechner: Start Spritvergleich
    2020-01-22 03:27:02.805  - error: javascript.0 (22538) Error in callback: TypeError: gasStation.filter is not a function
    2020-01-22 03:27:02.805  - error: javascript.0 (22538)     at Object.<anonymous> (script.js.common.Spritpreisrechner:19:29)
    2020-01-22 03:27:02.805  - error: javascript.0 (22538)     at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1101:38)
    2020-01-22 03:27:02.806  - error: javascript.0 (22538)     at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:439:25)
    2020-01-22 03:27:02.806  - error: javascript.0 (22538)     at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4745:37)
    2020-01-22 03:27:02.806  - error: javascript.0 (22538)     at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:226:41)
    2020-01-22 03:27:02.806  - error: javascript.0 (22538)     at runCallback (timers.js:705:18)
    2020-01-22 03:27:02.806  - error: javascript.0 (22538)     at tryOnImmediate (timers.js:676:5)
    2020-01-22 03:27:02.806  - error: javascript.0 (22538)     at processImmediate (timers.js:658:5)
    2020-01-22 03:27:32.803  - info: javascript.0 (22538) script.js.common.Spritpreisrechner: Start Spritvergleich
    2020-01-22 03:27:32.804  - error: javascript.0 (22538) Error in callback: TypeError: gasStation.filter is not a function
    2020-01-22 03:27:32.805  - error: javascript.0 (22538)     at Object.<anonymous> (script.js.common.Spritpreisrechner:19:29)
    2020-01-22 03:27:32.805  - error: javascript.0 (22538)     at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1101:38)
    2020-01-22 03:27:32.808  - error: javascript.0 (22538)     at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:439:25)
    2020-01-22 03:27:32.808  - error: javascript.0 (22538)     at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4745:37)
    2020-01-22 03:27:32.808  - error: javascript.0 (22538)     at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:226:41)
    2020-01-22 03:27:32.808  - error: javascript.0 (22538)     at runCallback (timers.js:705:18)
    2020-01-22 03:27:32.808  - error: javascript.0 (22538)     at tryOnImmediate (timers.js:676:5)
    2020-01-22 03:27:32.809  - error: javascript.0 (22538)     at processImmediate (timers.js:658:5)
    

    sigi234S Online
    sigi234S Online
    sigi234
    Forum Testing Most Active
    schrieb am zuletzt editiert von
    #18

    @Negalein sagte in Script geht zeitweise auf Pause:

    gestern ist das Script wieder in Pause gegangen.

    Jupp, hatte ich Heute auch.

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

    1 Antwort Letzte Antwort
    0
    • NegaleinN Negalein

      @AlCalzone

      gestern ist das Script wieder in Pause gegangen.
      Diesmal mit einem anderen Fehler (filter is not a function).
      Das ganze ist von 03:26 bis 06:54 (hab nicht alles angehänt, da immer die gleiche Meldung) aufgetreten.

      Kann man das irgendwie beheben? Oder liegt es an der zu parsenden Seite?

      Falls es nicht zu beheben/umgehen ist, gibt es eine Möglichkeit ein Script zu überwachen, damit ich zumindest eine Benachrichtigung auf Telegram/Alexa bekomme?

      Danke dir

      2020-01-22 03:26:02.812  - info: javascript.0 (22538) script.js.common.Spritpreisrechner: Start Spritvergleich
      2020-01-22 03:26:02.814  - error: javascript.0 (22538) Error in callback: TypeError: gasStation.filter is not a function
      2020-01-22 03:26:02.814  - error: javascript.0 (22538)     at Object.<anonymous> (script.js.common.Spritpreisrechner:19:29)
      2020-01-22 03:26:02.814  - error: javascript.0 (22538)     at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1101:38)
      2020-01-22 03:26:02.814  - error: javascript.0 (22538)     at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:439:25)
      2020-01-22 03:26:02.814  - error: javascript.0 (22538)     at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4745:37)
      2020-01-22 03:26:02.814  - error: javascript.0 (22538)     at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:226:41)
      2020-01-22 03:26:02.815  - error: javascript.0 (22538)     at runCallback (timers.js:705:18)
      2020-01-22 03:26:02.815  - error: javascript.0 (22538)     at tryOnImmediate (timers.js:676:5)
      2020-01-22 03:26:02.815  - error: javascript.0 (22538)     at processImmediate (timers.js:658:5)
      2020-01-22 03:26:52.805  - info: javascript.0 (22538) script.js.common.Spritpreisrechner: Start Spritvergleich
      2020-01-22 03:26:52.806  - error: javascript.0 (22538) Error in callback: TypeError: gasStation.filter is not a function
      2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at Object.<anonymous> (script.js.common.Spritpreisrechner:19:29)
      2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1101:38)
      2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:439:25)
      2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4745:37)
      2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:226:41)
      2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at runCallback (timers.js:705:18)
      2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at tryOnImmediate (timers.js:676:5)
      2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at processImmediate (timers.js:658:5)
      2020-01-22 03:27:02.804  - info: javascript.0 (22538) script.js.common.Spritpreisrechner: Start Spritvergleich
      2020-01-22 03:27:02.805  - error: javascript.0 (22538) Error in callback: TypeError: gasStation.filter is not a function
      2020-01-22 03:27:02.805  - error: javascript.0 (22538)     at Object.<anonymous> (script.js.common.Spritpreisrechner:19:29)
      2020-01-22 03:27:02.805  - error: javascript.0 (22538)     at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1101:38)
      2020-01-22 03:27:02.806  - error: javascript.0 (22538)     at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:439:25)
      2020-01-22 03:27:02.806  - error: javascript.0 (22538)     at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4745:37)
      2020-01-22 03:27:02.806  - error: javascript.0 (22538)     at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:226:41)
      2020-01-22 03:27:02.806  - error: javascript.0 (22538)     at runCallback (timers.js:705:18)
      2020-01-22 03:27:02.806  - error: javascript.0 (22538)     at tryOnImmediate (timers.js:676:5)
      2020-01-22 03:27:02.806  - error: javascript.0 (22538)     at processImmediate (timers.js:658:5)
      2020-01-22 03:27:32.803  - info: javascript.0 (22538) script.js.common.Spritpreisrechner: Start Spritvergleich
      2020-01-22 03:27:32.804  - error: javascript.0 (22538) Error in callback: TypeError: gasStation.filter is not a function
      2020-01-22 03:27:32.805  - error: javascript.0 (22538)     at Object.<anonymous> (script.js.common.Spritpreisrechner:19:29)
      2020-01-22 03:27:32.805  - error: javascript.0 (22538)     at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1101:38)
      2020-01-22 03:27:32.808  - error: javascript.0 (22538)     at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:439:25)
      2020-01-22 03:27:32.808  - error: javascript.0 (22538)     at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4745:37)
      2020-01-22 03:27:32.808  - error: javascript.0 (22538)     at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:226:41)
      2020-01-22 03:27:32.808  - error: javascript.0 (22538)     at runCallback (timers.js:705:18)
      2020-01-22 03:27:32.808  - error: javascript.0 (22538)     at tryOnImmediate (timers.js:676:5)
      2020-01-22 03:27:32.809  - error: javascript.0 (22538)     at processImmediate (timers.js:658:5)
      

      T Nicht stören
      T Nicht stören
      ticaki
      schrieb am zuletzt editiert von ticaki
      #19

      @Negalein

      if (!isScriptActive("Test")) {
          runScript("Test");
      // oder sende msg.
      }
      

      Hoffe das hilft.

      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

      Spenden

      NegaleinN 1 Antwort Letzte Antwort
      0
      • T ticaki

        @Negalein

        if (!isScriptActive("Test")) {
            runScript("Test");
        // oder sende msg.
        }
        

        Hoffe das hilft.

        NegaleinN Offline
        NegaleinN Offline
        Negalein
        Global Moderator
        schrieb am zuletzt editiert von
        #20

        @ticaki sagte in Script geht zeitweise auf Pause:

        Hoffe das hilft.

        Danke

        Das wird als eigenes Script angelegt?

        ° Node.js Update ---> iob nodejs-update
        ° Fixer ---> iob fix

        T 1 Antwort Letzte Antwort
        0
        • NegaleinN Negalein

          @ticaki sagte in Script geht zeitweise auf Pause:

          Hoffe das hilft.

          Danke

          Das wird als eigenes Script angelegt?

          T Nicht stören
          T Nicht stören
          ticaki
          schrieb am zuletzt editiert von ticaki
          #21

          @Negalein

          Ja. Weiß nur nicht wie das Trennzeichen für Unterordner aussieht. :)

          EDIT: must du alle x Zeiteinheiten per Cron ausführen lassen.

          var gasStation = JSON.parse(obj.state.val); 
          if (gasStation.length === 0) return;
          gasStation = gasStation.filter(g => g.prices.length > 0);
          

          sieht das in deinem Script so aus?

          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

          Spenden

          NegaleinN 1 Antwort Letzte Antwort
          0
          • T ticaki

            @Negalein

            Ja. Weiß nur nicht wie das Trennzeichen für Unterordner aussieht. :)

            EDIT: must du alle x Zeiteinheiten per Cron ausführen lassen.

            var gasStation = JSON.parse(obj.state.val); 
            if (gasStation.length === 0) return;
            gasStation = gasStation.filter(g => g.prices.length > 0);
            

            sieht das in deinem Script so aus?

            NegaleinN Offline
            NegaleinN Offline
            Negalein
            Global Moderator
            schrieb am zuletzt editiert von
            #22

            @ticaki sagte in Script geht zeitweise auf Pause:

            sieht das in deinem Script so aus?

            So schaut das Script aus

            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //  "Spritpreise_AT v.0.5"                                                                                                              //
            //  e-control Spritpreise                                                                                                               //    
            //  ursprüngl. Script von steinejo_io vom                                                                                               //
            //                                                                                                                                      //
            //  Zwingend erforderlich sind der Parser Adapter und die URL aus der API. Links und Hilfe zum Erstellemn findet ihr im Folgenden Lnk:  //
            //  https://forum.iobroker.net/topic/20314/skripten-des-e-control-spritpreisrechners                                                    //
            //  Das manuelle Anlegen von Daenpunkten ist nicht mehr notwendig. erledigt das Script beim ersten Aufruf.                              //
            //  Auf das "E" Zeichen habe ich verzichtet, da es in VIS genz einfach an der jeweils gewünschten Stelle produzierbar ist.              //
            //                                                                                                                                      //
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
             
            on({id: "parser.0.Spritpreisrechner"/*Spritpreisrechner*/, change: 'any'}, function(obj)
            {
            log("Start Spritvergleich");
             
                var gasStation = JSON.parse(obj.state.val);
                gasStation = gasStation.filter(g => g.prices.length > 0);
                if (gasStation.length === 0) return;
                //Aral=1, eni=2, Shell=3, OMV=4, avanti=5, bp=6, JET=7, Turmöl=8, Lagerhaus=9, AVIA=10, A1=11, Diskont=12, IQ=13
                var arrMarke = ['Aral', 'eni', 'Shell', 'OMV', 'avanti', 'BP', 'JET', 'Turmöl', 'Lagerhaus', 'AVIA', 'A1', 'Diskont', 'DISKONT', 'IQ', 'SB-Tankstelle', 'bp', 'Land', 'Bp'];
            	var i = 0;
                for (var i = 1; i <= 5; i++) {
                    // console.log(i);
                    // console.log("javascript.0.Sprit_AT.name_"+i);
                    createState("javascript.0.Sprit_AT.Treffer_"+i+".Name_"+i, {type: "string", name: "Platz "+i, read: true, write: true});
                    createState("javascript.0.Sprit_AT.Treffer_"+i+".Preis_"+i, {type: "string", name: "Platz "+i, read: true, write: true});
                    createState("javascript.0.Sprit_AT.Treffer_"+i+".PreisP_"+i, {type: "string", name: "Platz "+i, read: true, write: true});
            		createState("javascript.0.Sprit_AT.Treffer_"+i+".Strasse_"+i, {type: "string", name: "Platz "+i, read: true, write: true});
                    createState("javascript.0.Sprit_AT.Treffer_"+i+".PLZ_Ort_"+i, {type: "string", name: "Platz "+i, read: true, write: true});
                    createState("javascript.0.Sprit_AT.Treffer_"+i+".Logo_"+i, {type: "number", name: "Logo "+i, read: true, write: true});
            		createState("javascript.0.Sprit_AT.Treffer_"+i+".Latitude_"+i, {type: "number", name: "Latitude "+i, read: true, write: true});
            		createState("javascript.0.Sprit_AT.Treffer_"+i+".Longitude_"+i, {type: "number", name: "Longitude "+i, read: true, write: true});
            		createState("javascript.0.Sprit_AT.Treffer_"+i+".offen_"+i, {type: "boolean", name: "offen "+i, read: true, write: true});
            	}
            	
             
                var index = 0;
                //for (index = 0; index < gasStation.length; ++index) {
                for (index = 0; index <= 4; ++index) {
            	if (gasStation[index].prices.length < 1) continue;
            	var arrname = gasStation[index].name.split(' ');
            		if (arrname.length > 0) {
            				var markenname = arrname[0];
            			}
            			else
            			{
            				var markenname = gasStation[index].name;
            			}
            		var station = gasStation[index].name;
                setState("javascript.0.Sprit_AT.Treffer_"+(index+1)+".Name_"+(index+1), gasStation[index].name);
                setState("javascript.0.Sprit_AT.Treffer_"+(index+1)+".Preis_"+(index+1), (gasStation[index].prices[0].amount).toString().replace(".",","));
                setState("javascript.0.Sprit_AT.Treffer_"+(index+1)+".PreisP_"+(index+1), (gasStation[index].prices[0].amount).toString().replace(".","."));
            	setState("javascript.0.Sprit_AT.Treffer_"+(index+1)+".Strasse_"+(index+1), (gasStation[index].location.address));
                setState("javascript.0.Sprit_AT.Treffer_"+(index+1)+".PLZ_Ort_"+(index+1), (gasStation[index].location.postalCode) + " " + (gasStation[index].location.city));
                setState("javascript.0.Sprit_AT.Treffer_"+(index+1)+".Latitude_"+(index+1), (gasStation[index].location.latitude));
            	setState("javascript.0.Sprit_AT.Treffer_"+(index+1)+".Longitude_"+(index+1), (gasStation[index].location.longitude));
            	setState("javascript.0.Sprit_AT.Treffer_"+(index+1)+".offen_"+(index+1), (gasStation[index].open));
            	
            	//Aral=1, eni=2, Shell=3, OMV=4, avanti=5, bp=6, JET=7, Turmöl=8, Lagerhaus=9, AVIA=10, A1=11, Diskont=12, IQ=13
            	
            	var markennameklein=markenname.toLowerCase();
            	var x= 0;
            	for (x=0; x < arrMarke.length; x++) {
            		var arrMklein=arrMarke[x].toLowerCase();
            		//console.log("x=" + x + "/ Markennameklein =" + markennameklein + "/ Array =" + arrMklein);
            		if (arrMklein == markennameklein) {
            			setState("javascript.0.Sprit_AT.Treffer_"+(index+1)+".Logo_"+(index+1), (x+1));
            		}
            	}
            	
            	}
             
            log("Ende Spritvergleich");
            });
            

            must du alle x Zeiteinheiten per Cron ausführen lassen.

            Das wird vom Parser geregelt. Der fragt die Adresse alle 10 Sek. ab und das Script reagiert darauf.

            ° Node.js Update ---> iob nodejs-update
            ° Fixer ---> iob fix

            T 1 Antwort Letzte Antwort
            0
            • NegaleinN Negalein

              @ticaki sagte in Script geht zeitweise auf Pause:

              sieht das in deinem Script so aus?

              So schaut das Script aus

              //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
              //  "Spritpreise_AT v.0.5"                                                                                                              //
              //  e-control Spritpreise                                                                                                               //    
              //  ursprüngl. Script von steinejo_io vom                                                                                               //
              //                                                                                                                                      //
              //  Zwingend erforderlich sind der Parser Adapter und die URL aus der API. Links und Hilfe zum Erstellemn findet ihr im Folgenden Lnk:  //
              //  https://forum.iobroker.net/topic/20314/skripten-des-e-control-spritpreisrechners                                                    //
              //  Das manuelle Anlegen von Daenpunkten ist nicht mehr notwendig. erledigt das Script beim ersten Aufruf.                              //
              //  Auf das "E" Zeichen habe ich verzichtet, da es in VIS genz einfach an der jeweils gewünschten Stelle produzierbar ist.              //
              //                                                                                                                                      //
              //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
               
              on({id: "parser.0.Spritpreisrechner"/*Spritpreisrechner*/, change: 'any'}, function(obj)
              {
              log("Start Spritvergleich");
               
                  var gasStation = JSON.parse(obj.state.val);
                  gasStation = gasStation.filter(g => g.prices.length > 0);
                  if (gasStation.length === 0) return;
                  //Aral=1, eni=2, Shell=3, OMV=4, avanti=5, bp=6, JET=7, Turmöl=8, Lagerhaus=9, AVIA=10, A1=11, Diskont=12, IQ=13
                  var arrMarke = ['Aral', 'eni', 'Shell', 'OMV', 'avanti', 'BP', 'JET', 'Turmöl', 'Lagerhaus', 'AVIA', 'A1', 'Diskont', 'DISKONT', 'IQ', 'SB-Tankstelle', 'bp', 'Land', 'Bp'];
              	var i = 0;
                  for (var i = 1; i <= 5; i++) {
                      // console.log(i);
                      // console.log("javascript.0.Sprit_AT.name_"+i);
                      createState("javascript.0.Sprit_AT.Treffer_"+i+".Name_"+i, {type: "string", name: "Platz "+i, read: true, write: true});
                      createState("javascript.0.Sprit_AT.Treffer_"+i+".Preis_"+i, {type: "string", name: "Platz "+i, read: true, write: true});
                      createState("javascript.0.Sprit_AT.Treffer_"+i+".PreisP_"+i, {type: "string", name: "Platz "+i, read: true, write: true});
              		createState("javascript.0.Sprit_AT.Treffer_"+i+".Strasse_"+i, {type: "string", name: "Platz "+i, read: true, write: true});
                      createState("javascript.0.Sprit_AT.Treffer_"+i+".PLZ_Ort_"+i, {type: "string", name: "Platz "+i, read: true, write: true});
                      createState("javascript.0.Sprit_AT.Treffer_"+i+".Logo_"+i, {type: "number", name: "Logo "+i, read: true, write: true});
              		createState("javascript.0.Sprit_AT.Treffer_"+i+".Latitude_"+i, {type: "number", name: "Latitude "+i, read: true, write: true});
              		createState("javascript.0.Sprit_AT.Treffer_"+i+".Longitude_"+i, {type: "number", name: "Longitude "+i, read: true, write: true});
              		createState("javascript.0.Sprit_AT.Treffer_"+i+".offen_"+i, {type: "boolean", name: "offen "+i, read: true, write: true});
              	}
              	
               
                  var index = 0;
                  //for (index = 0; index < gasStation.length; ++index) {
                  for (index = 0; index <= 4; ++index) {
              	if (gasStation[index].prices.length < 1) continue;
              	var arrname = gasStation[index].name.split(' ');
              		if (arrname.length > 0) {
              				var markenname = arrname[0];
              			}
              			else
              			{
              				var markenname = gasStation[index].name;
              			}
              		var station = gasStation[index].name;
                  setState("javascript.0.Sprit_AT.Treffer_"+(index+1)+".Name_"+(index+1), gasStation[index].name);
                  setState("javascript.0.Sprit_AT.Treffer_"+(index+1)+".Preis_"+(index+1), (gasStation[index].prices[0].amount).toString().replace(".",","));
                  setState("javascript.0.Sprit_AT.Treffer_"+(index+1)+".PreisP_"+(index+1), (gasStation[index].prices[0].amount).toString().replace(".","."));
              	setState("javascript.0.Sprit_AT.Treffer_"+(index+1)+".Strasse_"+(index+1), (gasStation[index].location.address));
                  setState("javascript.0.Sprit_AT.Treffer_"+(index+1)+".PLZ_Ort_"+(index+1), (gasStation[index].location.postalCode) + " " + (gasStation[index].location.city));
                  setState("javascript.0.Sprit_AT.Treffer_"+(index+1)+".Latitude_"+(index+1), (gasStation[index].location.latitude));
              	setState("javascript.0.Sprit_AT.Treffer_"+(index+1)+".Longitude_"+(index+1), (gasStation[index].location.longitude));
              	setState("javascript.0.Sprit_AT.Treffer_"+(index+1)+".offen_"+(index+1), (gasStation[index].open));
              	
              	//Aral=1, eni=2, Shell=3, OMV=4, avanti=5, bp=6, JET=7, Turmöl=8, Lagerhaus=9, AVIA=10, A1=11, Diskont=12, IQ=13
              	
              	var markennameklein=markenname.toLowerCase();
              	var x= 0;
              	for (x=0; x < arrMarke.length; x++) {
              		var arrMklein=arrMarke[x].toLowerCase();
              		//console.log("x=" + x + "/ Markennameklein =" + markennameklein + "/ Array =" + arrMklein);
              		if (arrMklein == markennameklein) {
              			setState("javascript.0.Sprit_AT.Treffer_"+(index+1)+".Logo_"+(index+1), (x+1));
              		}
              	}
              	
              	}
               
              log("Ende Spritvergleich");
              });
              

              must du alle x Zeiteinheiten per Cron ausführen lassen.

              Das wird vom Parser geregelt. Der fragt die Adresse alle 10 Sek. ab und das Script reagiert darauf.

              T Nicht stören
              T Nicht stören
              ticaki
              schrieb am zuletzt editiert von ticaki
              #23

              @Negalein
              Dein letzter Fehler sieht so aus als wenn der Parser keine Daten geliefert hat und deshalb Zeile 18 gescheitert ist

              Versuche bitte mal folgendes: 2 Zeilen vertauschen und gasStation auf array/object prüfen.

              var gasStation = JSON.parse(obj.state.val);
              if (typeof gasStation != 'object' || gasStation.length === 0) return;
              gasStation = gasStation.filter(g => g.prices.length > 0);
              if (gasStation.length === 0) return;
              

              EDIT: ups

              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

              Spenden

              NegaleinN 1 Antwort Letzte Antwort
              0
              • T ticaki

                @Negalein
                Dein letzter Fehler sieht so aus als wenn der Parser keine Daten geliefert hat und deshalb Zeile 18 gescheitert ist

                Versuche bitte mal folgendes: 2 Zeilen vertauschen und gasStation auf array/object prüfen.

                var gasStation = JSON.parse(obj.state.val);
                if (typeof gasStation != 'object' || gasStation.length === 0) return;
                gasStation = gasStation.filter(g => g.prices.length > 0);
                if (gasStation.length === 0) return;
                

                EDIT: ups

                NegaleinN Offline
                NegaleinN Offline
                Negalein
                Global Moderator
                schrieb am zuletzt editiert von
                #24

                @ticaki sagte in Script geht zeitweise auf Pause:

                Versuche bitte mal folgendes: 2 Zeilen vertauschen und gasStation auf array/object prüfen.

                Danke
                Habs eingefügt/vertauscht und werde es die nächsten Tage beobachten.

                ° Node.js Update ---> iob nodejs-update
                ° Fixer ---> iob fix

                T 1 Antwort Letzte Antwort
                0
                • NegaleinN Negalein

                  @ticaki sagte in Script geht zeitweise auf Pause:

                  Versuche bitte mal folgendes: 2 Zeilen vertauschen und gasStation auf array/object prüfen.

                  Danke
                  Habs eingefügt/vertauscht und werde es die nächsten Tage beobachten.

                  T Nicht stören
                  T Nicht stören
                  ticaki
                  schrieb am zuletzt editiert von
                  #25

                  @Negalein
                  hab editiert bitte beachten

                  Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                  Spenden

                  NegaleinN 1 Antwort Letzte Antwort
                  0
                  • T ticaki

                    @Negalein
                    hab editiert bitte beachten

                    NegaleinN Offline
                    NegaleinN Offline
                    Negalein
                    Global Moderator
                    schrieb am zuletzt editiert von
                    #26

                    @ticaki sagte in Script geht zeitweise auf Pause:

                    hab editiert bitte beachten

                    Also

                        var gasStation = JSON.parse(obj.state.val);
                        gasStation = gasStation.filter(g => g.prices.length > 0);
                        if (gasStation.length === 0) return;
                    

                    gegen

                    var gasStation = JSON.parse(obj.state.val);
                    if (typeof gasStation != 'object' || gasStation.length === 0) return;
                    gasStation = gasStation.filter(g => g.prices.length > 0);
                    if (gasStation.length === 0) return;
                    

                    tauschen

                    ° Node.js Update ---> iob nodejs-update
                    ° Fixer ---> iob fix

                    T 1 Antwort Letzte Antwort
                    0
                    • NegaleinN Negalein

                      @ticaki sagte in Script geht zeitweise auf Pause:

                      hab editiert bitte beachten

                      Also

                          var gasStation = JSON.parse(obj.state.val);
                          gasStation = gasStation.filter(g => g.prices.length > 0);
                          if (gasStation.length === 0) return;
                      

                      gegen

                      var gasStation = JSON.parse(obj.state.val);
                      if (typeof gasStation != 'object' || gasStation.length === 0) return;
                      gasStation = gasStation.filter(g => g.prices.length > 0);
                      if (gasStation.length === 0) return;
                      

                      tauschen

                      T Nicht stören
                      T Nicht stören
                      ticaki
                      schrieb am zuletzt editiert von ticaki
                      #27

                      @Negalein
                      Jup, habs nochmal verbessert. Mache zwar viel mit Arrays, mußte aber bis dato noch nicht prüfen, ob es auch eines ist :)

                      var gasStation = JSON.parse(obj.state.val);
                      if (!Array.isArray(gasStation) || gasStation.length === 0) return;
                      gasStation = gasStation.filter(g => g.prices.length > 0);
                      if (gasStation.length === 0) return;
                      

                      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                      Spenden

                      NegaleinN 1 Antwort Letzte Antwort
                      0
                      • T ticaki

                        @Negalein
                        Jup, habs nochmal verbessert. Mache zwar viel mit Arrays, mußte aber bis dato noch nicht prüfen, ob es auch eines ist :)

                        var gasStation = JSON.parse(obj.state.val);
                        if (!Array.isArray(gasStation) || gasStation.length === 0) return;
                        gasStation = gasStation.filter(g => g.prices.length > 0);
                        if (gasStation.length === 0) return;
                        
                        NegaleinN Offline
                        NegaleinN Offline
                        Negalein
                        Global Moderator
                        schrieb am zuletzt editiert von
                        #28

                        @ticaki sagte in Script geht zeitweise auf Pause:

                        habs nochmal verbessert

                        Thx

                        ° Node.js Update ---> iob nodejs-update
                        ° Fixer ---> iob fix

                        sigi234S 1 Antwort Letzte Antwort
                        0
                        • NegaleinN Negalein

                          @ticaki sagte in Script geht zeitweise auf Pause:

                          habs nochmal verbessert

                          Thx

                          sigi234S Online
                          sigi234S Online
                          sigi234
                          Forum Testing Most Active
                          schrieb am zuletzt editiert von sigi234
                          #29

                          @Negalein sagte in Script geht zeitweise auf Pause:

                          @ticaki sagte in Script geht zeitweise auf Pause:

                          habs nochmal verbessert

                          Thx

                          Kann man das Skript jetzt oben benutzen? Ist das das aktuelle.

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

                          NegaleinN 1 Antwort Letzte Antwort
                          0
                          • sigi234S sigi234

                            @Negalein sagte in Script geht zeitweise auf Pause:

                            @ticaki sagte in Script geht zeitweise auf Pause:

                            habs nochmal verbessert

                            Thx

                            Kann man das Skript jetzt oben benutzen? Ist das das aktuelle.

                            NegaleinN Offline
                            NegaleinN Offline
                            Negalein
                            Global Moderator
                            schrieb am zuletzt editiert von
                            #30

                            @sigi234 sagte in Script geht zeitweise auf Pause:

                            Kann man das Skript jetzt oben benutzen? Ist das das aktuelle.

                            Ja, diese 4 Zeilen

                            var gasStation = JSON.parse(obj.state.val);
                            if (!Array.isArray(gasStation) || gasStation.length === 0) return;
                            gasStation = gasStation.filter(g => g.prices.length > 0);
                            if (gasStation.length === 0) return;
                            

                            statt diesen nehmen

                            var gasStation = JSON.parse(obj.state.val);
                            gasStation = gasStation.filter(g => g.prices.length > 0);
                            if (gasStation.length === 0) return;
                            

                            ° Node.js Update ---> iob nodejs-update
                            ° Fixer ---> iob fix

                            1 Antwort Letzte Antwort
                            0
                            • NegaleinN Negalein

                              @AlCalzone

                              gestern ist das Script wieder in Pause gegangen.
                              Diesmal mit einem anderen Fehler (filter is not a function).
                              Das ganze ist von 03:26 bis 06:54 (hab nicht alles angehänt, da immer die gleiche Meldung) aufgetreten.

                              Kann man das irgendwie beheben? Oder liegt es an der zu parsenden Seite?

                              Falls es nicht zu beheben/umgehen ist, gibt es eine Möglichkeit ein Script zu überwachen, damit ich zumindest eine Benachrichtigung auf Telegram/Alexa bekomme?

                              Danke dir

                              2020-01-22 03:26:02.812  - info: javascript.0 (22538) script.js.common.Spritpreisrechner: Start Spritvergleich
                              2020-01-22 03:26:02.814  - error: javascript.0 (22538) Error in callback: TypeError: gasStation.filter is not a function
                              2020-01-22 03:26:02.814  - error: javascript.0 (22538)     at Object.<anonymous> (script.js.common.Spritpreisrechner:19:29)
                              2020-01-22 03:26:02.814  - error: javascript.0 (22538)     at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1101:38)
                              2020-01-22 03:26:02.814  - error: javascript.0 (22538)     at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:439:25)
                              2020-01-22 03:26:02.814  - error: javascript.0 (22538)     at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4745:37)
                              2020-01-22 03:26:02.814  - error: javascript.0 (22538)     at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:226:41)
                              2020-01-22 03:26:02.815  - error: javascript.0 (22538)     at runCallback (timers.js:705:18)
                              2020-01-22 03:26:02.815  - error: javascript.0 (22538)     at tryOnImmediate (timers.js:676:5)
                              2020-01-22 03:26:02.815  - error: javascript.0 (22538)     at processImmediate (timers.js:658:5)
                              2020-01-22 03:26:52.805  - info: javascript.0 (22538) script.js.common.Spritpreisrechner: Start Spritvergleich
                              2020-01-22 03:26:52.806  - error: javascript.0 (22538) Error in callback: TypeError: gasStation.filter is not a function
                              2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at Object.<anonymous> (script.js.common.Spritpreisrechner:19:29)
                              2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1101:38)
                              2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:439:25)
                              2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4745:37)
                              2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:226:41)
                              2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at runCallback (timers.js:705:18)
                              2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at tryOnImmediate (timers.js:676:5)
                              2020-01-22 03:26:52.807  - error: javascript.0 (22538)     at processImmediate (timers.js:658:5)
                              2020-01-22 03:27:02.804  - info: javascript.0 (22538) script.js.common.Spritpreisrechner: Start Spritvergleich
                              2020-01-22 03:27:02.805  - error: javascript.0 (22538) Error in callback: TypeError: gasStation.filter is not a function
                              2020-01-22 03:27:02.805  - error: javascript.0 (22538)     at Object.<anonymous> (script.js.common.Spritpreisrechner:19:29)
                              2020-01-22 03:27:02.805  - error: javascript.0 (22538)     at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1101:38)
                              2020-01-22 03:27:02.806  - error: javascript.0 (22538)     at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:439:25)
                              2020-01-22 03:27:02.806  - error: javascript.0 (22538)     at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4745:37)
                              2020-01-22 03:27:02.806  - error: javascript.0 (22538)     at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:226:41)
                              2020-01-22 03:27:02.806  - error: javascript.0 (22538)     at runCallback (timers.js:705:18)
                              2020-01-22 03:27:02.806  - error: javascript.0 (22538)     at tryOnImmediate (timers.js:676:5)
                              2020-01-22 03:27:02.806  - error: javascript.0 (22538)     at processImmediate (timers.js:658:5)
                              2020-01-22 03:27:32.803  - info: javascript.0 (22538) script.js.common.Spritpreisrechner: Start Spritvergleich
                              2020-01-22 03:27:32.804  - error: javascript.0 (22538) Error in callback: TypeError: gasStation.filter is not a function
                              2020-01-22 03:27:32.805  - error: javascript.0 (22538)     at Object.<anonymous> (script.js.common.Spritpreisrechner:19:29)
                              2020-01-22 03:27:32.805  - error: javascript.0 (22538)     at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1101:38)
                              2020-01-22 03:27:32.808  - error: javascript.0 (22538)     at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:439:25)
                              2020-01-22 03:27:32.808  - error: javascript.0 (22538)     at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4745:37)
                              2020-01-22 03:27:32.808  - error: javascript.0 (22538)     at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:226:41)
                              2020-01-22 03:27:32.808  - error: javascript.0 (22538)     at runCallback (timers.js:705:18)
                              2020-01-22 03:27:32.808  - error: javascript.0 (22538)     at tryOnImmediate (timers.js:676:5)
                              2020-01-22 03:27:32.809  - error: javascript.0 (22538)     at processImmediate (timers.js:658:5)
                              

                              AlCalzoneA Offline
                              AlCalzoneA Offline
                              AlCalzone
                              Developer
                              schrieb am zuletzt editiert von
                              #31

                              @Negalein Du hast zwar inzwischen die Lösung, aber generell sollte man lieber Fehler abfangen, als Skripte mit Fehlern einfach neu zu starten ;)

                              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                              Z 1 Antwort Letzte Antwort
                              1
                              • AlCalzoneA AlCalzone

                                @Negalein Du hast zwar inzwischen die Lösung, aber generell sollte man lieber Fehler abfangen, als Skripte mit Fehlern einfach neu zu starten ;)

                                Z Offline
                                Z Offline
                                zanabria
                                schrieb am zuletzt editiert von
                                #32

                                @AlCalzone
                                hallo habe aktuell auch das Problem, dass viele Scripte auf Pause gehen. Woran kann das liegen? Habe alles gecheckt und keinen Fehler gefunden. Das Run Sript wurde kopiert aus dem Pause Script und nur angepasst. Es scheint das Bessere zu sein, siehe Bild.
                                543a46d4-1b5a-40ec-ad68-dc3d81648b81-grafik.png

                                Ich habe mal die beiden Scripte angehängt.
                                Pause-Script.txt
                                Run-Script.txt.
                                Kann man mir hier weiterhelfen.
                                LG Zanabria

                                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

                                772

                                Online

                                32.5k

                                Benutzer

                                81.8k

                                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