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
    553

  • 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

    @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

                      881

                      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