Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x

    This topic has been deleted. Only users with topic management privileges can see it.
    • AxelF1977
      AxelF1977 @Garfonso last edited by AxelF1977

      @Garfonso sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

      @AxelF1977
      fang mal mit error an. 😉
      Am besten die, die oben in den logs die Fehler erzeugt haben.

      ok, zu diesen Fehlern

      javascript.0	2020-05-03 18:19:35.039	error	(28611) at script.js.Schwellwerte.Schwellwerte:754:1
      javascript.0	2020-05-03 18:19:35.039	error	(28611) at dpAnlegen (script.js.Schwellwerte.Schwellwerte:684:9)
      javascript.0	2020-05-03 18:19:35.039	error	(28611) ReferenceError: logs is not defined
      javascript.0	2020-05-03 18:19:35.039	error	(28611) ^
      javascript.0	2020-05-03 18:19:35.039	error	(28611) logs(pfad + schwellwerte[geraet].datenpunkt + " wurde angelegt","debug");
      javascript.0	2020-05-03 18:19:35.038	error	(28611) script.js.Schwellwerte.Schwellwerte: script.js.Schwellwerte.Schwellwerte:684
      

      ist dass das Script

      // todo: onAnlegen() Funktion in Funktion
      
      var loglevel = "warn";  // Loglevel des Scriptes (debug,info,warn,error) - benutzt die Funktion logs()
      
      var pfad = "Schwellwerte.";
      
      
      // -----------------------------------------------------------------------------
      // Datenpunkte, für die Schwellwerte angelegt werden sollen
      // -----------------------------------------------------------------------------
      
      // datenpunkt:  Name des Datenpunkt für die Schwellwerte
      // liste:       Verweis auf die entspechende Schwellwerteliste in diesem Script
      
      
      var schwellwerte = {
          "hm-rpc.3.0001D8A98C373C.6.POWER" : {
              "datenpunkt": "Strom.Fernseher.Nik",
              "liste":      "wattFernseherNik"
          },
          "hm-rpc.2.LEQ0847294.4.ACTUAL_TEMPERATURE"/*Nik Klima.TEMPERATURE*/ : {
              "datenpunkt": "Klima.Temperatur.Nik",
              "liste":      "raumKlimaTemperatur"
          },
          "hm-rpc.2.KEQ0509273.4.ACTUAL_TEMPERATURE"/*Küche Klima.TEMPERATURE*/ : {
              "datenpunkt": "Klima.Temperatur.Küche",
              "liste":      "raumKlimaTemperatur"
          },
          "hm-rpc.2.LEQ0999580.1.TEMPERATURE"/*Theo:1.TEMPERATURE*/ : {
              "datenpunkt": "Klima.Temperatur.Theo",
              "liste":      "raumKlimaTemperatur"
          },
          "hm-rpc.2.MEQ1587955.4.ACTUAL_TEMPERATURE"/*Wohnzimmer Klima.TEMPERATURE*/ : {
              "datenpunkt": "Klima.Temperatur.Wohnzimmer",
              "liste":      "raumKlimaTemperatur"
          },
          "hm-rpc.2.OEQ0578299.1.TEMPERATURE"/*Schlafzimmer Klima:1.TEMPERATURE*/ : {
              "datenpunkt": "Klima.Temperatur.Schlafzimmer",
              "liste":      "raumKlimaTemperatur"
          },
          "hm-rpc.2.OEQ0578951.1.TEMPERATURE"/*Bad Klima.TEMPERATURE*/ : {
              "datenpunkt": "Klima.Temperatur.Bad",
              "liste":      "raumKlimaTemperatur"
          },
          "hm-rpc.2.OEQ0578951.1.HUMIDITY"/*Bad Klima.HUMIDITY*/ : {
              "datenpunkt": "Klima.Luftfeuchtigkeit.Bad",
              "liste":      "raumKlimaLuftfeuchtigkeit"
          },
          "hm-rpc.2.OEQ0578299.1.HUMIDITY"/*Schlafzimmer Klima:1.HUMIDITY*/ : {
              "datenpunkt": "Klima.Luftfeuchtigkeit.Schlafzimmer",
              "liste":      "raumKlimaLuftfeuchtigkeit"
          },
          "hm-rpc.2.LEQ0999580.1.HUMIDITY"/*Theo Klima.HUMIDITY*/ : {
              "datenpunkt": "Klima.Luftfeuchtigkeit.Theo",
              "liste":      "raumKlimaLuftfeuchtigkeit"
          },
          "hm-rpc.2.OEQ1016368.1.TEMPERATURE"/*Balkon gr. Klima:1.TEMPERATURE*/ : {
              "datenpunkt": "Klima.Temperatur.Balkon",
              "liste":      "draussenKlimaTemperatur"
          },
          "hm-rpc.2.OEQ1016368.1.HUMIDITY"/*Balkon gr. Klima:1.HUMIDITY*/ : {
              "datenpunkt": "Klima.Luftfeuchtigkeit.Balkon",
              "liste":      "raumKlimaLuftfeuchtigkeit"
          },
          "hm-rpc.2.OEQ0700027.1.HUMIDITY"/*Küche Klima.HUMIDITY*/ : {
              "datenpunkt": "Klima.Luftfeuchtigkeit.Küche",
              "liste":      "raumKlimaLuftfeuchtigkeit"
          },
          "hm-rpc.2.OEQ0699199.1.HUMIDITY"/*Nik Klima.HUMIDITY*/ : {
              "datenpunkt": "Klima.Luftfeuchtigkeit.Nik",
              "liste":      "raumKlimaLuftfeuchtigkeit"
          },
          "hm-rpc.2.OEQ0699871.1.HUMIDITY"/*Wohnzimmer Klima.HUMIDITY*/ : {
              "datenpunkt": "Klima.Luftfeuchtigkeit.Wohnzimmer",
              "liste":      "raumKlimaLuftfeuchtigkeit"
          }            
      };
      
      
      
      //load2core
      
      
      // -----------------------------------------------------------------------------
      // Schwellwertelisten
      // -----------------------------------------------------------------------------
      
      
      
      var liste = {
          "raumKlimaTemperatur": {
              "obereGrenzeBezeichnung":   "sehr heiss",
              "obereGrenzeZahl":          4,
              "ogColor":                  "white",
              "ogBackgroundColor":        "red",
              "schwellwerte": [
                  {"wert":            15,
                      "bezeichnung":     "kalt",
                      "zahl":            -2,
                      "color":           "white",
                      "backgroundColor": "dodgerblue"
                  },
                  {"wert":            18,
                      "bezeichnung":     "kühl",
                      "zahl":            -1,
                      "color":           "black",
                      "backgroundColor": "deepskyblue"
                  },
                  {"wert":            22,
                      "bezeichnung":     "normal",
                      "zahl":            0,
                      "color":           "black",
                      "backgroundColor": "lime"
      
                  },
                  {"wert":            24,
                      "bezeichnung":     "warm",
                      "zahl":            1,
                      "color":           "black",
                      "backgroundColor": "limegreen"
      
                  },
                  {"wert":            26,
                      "bezeichnung":     "warm",
                      "zahl":            2,
                      "color":           "black",
                      "backgroundColor": "orange"
      
                  },
                  {"wert":            30,
                      "bezeichnung":     "sehr warm",
                      "zahl":            3,
                      "color":           "black",
                      "backgroundColor": "orangered"
                  }
              ]
          },
          "raumKlimaLuftfeuchtigkeit": {
              "obereGrenzeBezeichnung":   "Schimmel",
              "obereGrenzeZahl":          3,
              "ogColor":                  "white",
              "ogBackgroundColor":        "dodgerblue",
              "schwellwerte": [
                  {"wert":            37,
                      "bezeichnung":     "trocken",
                      "zahl":            -1,
                      "color":           "black",
                      "backgroundColor": "orange"
                  },
                  {"wert":            60,
                      "bezeichnung":     "normal",
                      "zahl":            0,
                      "color":           "black",
                      "backgroundColor": "lime"
                  },
                  {"wert":            70,
                      "bezeichnung":     "feucht",
                      "zahl":            1,
                      "color":           "black",
                      "backgroundColor": "deepskyblue"
      
                  }
              ]
          },
          "draussenKlimaTemperatur": {
              "obereGrenzeBezeichnung":   "sehr heiss",
              "obereGrenzeZahl":          3,
              "ogColor":                  "white",
              "ogBackgroundColor":        "orangered",
              "schwellwerte": [
                  {"wert":            0,
                      "bezeichnung":     "eisig",
                      "zahl":            -2,
                      "color":           "white",
                      "backgroundColor": "dodgerblue"
                  },
                  {"wert":            4,
                      "bezeichnung":     "kalt",
                      "zahl":            -1,
                      "color":           "black",
                      "backgroundColor": "deepskyblue"
                  },
                  {"wert":            12,
                      "bezeichnung":     "kühl",
                      "zahl":            -1,
                      "color":           "black",
                      "backgroundColor": "#94fff4"
                  },            
                  {"wert":            18,
                      "bezeichnung":     "lauwarm",
                      "zahl":            0,
                      "color":           "black",
                      "backgroundColor": "#9dfd9d"
                  },
                  {"wert":            24,
                      "bezeichnung":     "kühl",
                      "zahl":            0,
                      "color":           "black",
                      "backgroundColor": "limegreen"
                  },
                  {"wert":            30,
                      "bezeichnung":     "warm",
                      "zahl":            1,
                      "color":           "black",
                      "backgroundColor": "orange"
      
                  },
                  {"wert":            35,
                      "bezeichnung":     "warm",
                      "zahl":            2,
                      "color":           "black",
                      "backgroundColor": "orange"
      
                  }
              ]
          },
          "wattFernseherNik": {
              "obereGrenzeBezeichnung":   "Fernseher an",
              "obereGrenzeZahl":          3,
              "ogColor":                  "white",
              "ogBackgroundColor":        "red",
              "schwellwerte": [
                  {"wert":            0,
                      "bezeichnung":     "Alles aus",
                      "zahl":            0,
                      "color":           "black",
                      "backgroundColor": "lime"
                  },
                  {"wert":            20,
                      "bezeichnung":     "Standby OK",
                      "zahl":            1,
                      "color":           "black",
                      "backgroundColor": "limegreen"
                  },
                  {"wert":            50,
                      "bezeichnung":     "Standby ohne Sub",
                      "zahl":            1,
                      "color":           "black",
                      "backgroundColor": "yellow"
                  },
                  {"wert":            100,
                      "bezeichnung":     "TV aus, Sub noch an",
                      "zahl":            2,
                      "color":           "black",
                      "backgroundColor": "orange"
                  }
              ]
          },
          "wattUSV": {
              "obereGrenzeBezeichnung":   "hoher Verbrauch",
              "obereGrenzeZahl":          3,
              "ogColor":                  "white",
              "ogBackgroundColor":        "red",
              "schwellwerte": [
                  {"wert":            0,
                      "bezeichnung":     "Alles aus",
                      "zahl":            -1,
                      "color":           "white",
                      "backgroundColor": "red"
                  },
                  {"wert":            60,
                      "bezeichnung":     "optimierter Verbrauch",
                      "zahl":            0,
                      "color":           "black",
                      "backgroundColor": "lime"
                  },
                  {"wert":            80,
                      "bezeichnung":     "niedriger Verbrauch",
                      "zahl":            1,
                      "color":           "black",
                      "backgroundColor": "limegreen"
                  },
                  {"wert":            110,
                      "bezeichnung":     "normaler Verrauch",
                      "zahl":            1,
                      "color":           "black",
                      "backgroundColor": "yellow"
                  },
                  {"wert":            120,
                      "bezeichnung":     "erhöhter Verbrauch",
                      "zahl":            2,
                      "color":           "black",
                      "backgroundColor": "orange"
                  }
              ]
          },
          "wattSonos": {
              "obereGrenzeBezeichnung":   "hoher Verbrauch",
              "obereGrenzeZahl":          3,
              "ogColor":                  "white",
              "ogBackgroundColor":        "red",
              "schwellwerte": [
                  {"wert":            0,
                      "bezeichnung":     "Sonos aus",
                      "zahl":            0,
                      "color":           "black",
                      "backgroundColor": "lime"
                  },
                  {"wert":            9,
                      "bezeichnung":     "Standby",
                      "zahl":            1,
                      "color":           "black",
                      "backgroundColor": "yellow"
                  },
                  {"wert":            20,
                      "bezeichnung":     "Sonos ist an",
                      "zahl":            2,
                      "color":           "black",
                      "backgroundColor": "orange"
                  }
              ]
          },
          "wattEsxi": {
              "obereGrenzeBezeichnung":   "sehr hoch",
              "obereGrenzeZahl":          3,
              "ogColor":                  "white",
              "ogBackgroundColor":        "red",
              "schwellwerte": [
                  {"wert":            13,
                      "bezeichnung":     "normal",
                      "zahl":            0,
                      "color":           "black",
                      "backgroundColor": "lime"
                  },
                  {"wert":            14,
                      "bezeichnung":     "erhöht",
                      "zahl":            1,
                      "color":           "black",
                      "backgroundColor": "yellow"
                  },
                  {"wert":            15,
                      "bezeichnung":     "hoch",
                      "zahl":            2,
                      "color":           "black",
                      "backgroundColor": "orange"
                  }
              ]
          },
          "sonosVol": {
              "obereGrenzeBezeichnung":   "sehr laut",
              "obereGrenzeZahl":          5,
              "ogColor":                  "white",
              "ogBackgroundColor":        "red",
              "schwellwerte": [
                  {"wert":            0,
                      "bezeichnung":     "aus",
                      "zahl":            0,
                      "color":           "black",
                      "backgroundColor": "lime"
                  },
                  {"wert":            9,
                      "bezeichnung":     "leise",
                      "zahl":            1,
                      "color":           "black",
                      "backgroundColor": "limegreen"
                  },
                  {"wert":            40,
                      "bezeichnung":     "normal",
                      "zahl":            2,
                      "color":           "black",
                      "backgroundColor": "rgb(204,204,204)"
                  },
                  {"wert":            50,
                      "bezeichnung":     "etwas lauter",
                      "zahl":            3,
                      "color":           "black",
                      "backgroundColor": "yellow"
                  },
                  {"wert":            60,
                      "bezeichnung":     "laut",
                      "zahl":            4,
                      "color":           "black",
                      "backgroundColor": "orange"
                  }
              ]
          },
          "windstaerke": {
              "obereGrenzeBezeichnung":   "Orkan",
              "obereGrenzeZahl":          12,
              "ogColor":                  "white",
              "ogBackgroundColor":        "red",
              "schwellwerte": [
                  {"wert":            1,
                      "bezeichnung":     "Windstill",
                      "zahl":            0,
                      "color":           "black",
                      "backgroundColor": "rgb(204,204,204)"
                  },
                  {"wert":            5,
                      "bezeichnung":     "leiser Zug",
                      "zahl":            1,
                      "color":           "black",
                      "backgroundColor": "rgb(204,204,204)"
                  },
                  {"wert":            11,
                      "bezeichnung":     "leichte Briese",
                      "zahl":            2,
                      "color":           "black",
                      "backgroundColor": "rgb(204,204,204)"
                  },
                  {"wert":            19,
                      "bezeichnung":     "schwacher Wind",
                      "zahl":            3,
                      "color":           "black",
                      "backgroundColor": "rgb(204,204,204)"
                  },
                  {"wert":            28,
                      "bezeichnung":     "mäßiger Wind",
                      "zahl":            4,
                      "color":           "black",
                      "backgroundColor": "rgb(204,204,204)"
                  },
                  {"wert":            38,
                      "bezeichnung":     "frischer Wind",
                      "zahl":            5,
                      "color":           "black",
                      "backgroundColor": "rgb(204,204,204)"
                  },
                  {"wert":            49,
                      "bezeichnung":     "starker Wind",
                      "zahl":            6,
                      "color":           "black",
                      "backgroundColor": "yellow"
                  },
                  {"wert":            61,
                      "bezeichnung":     "steifer Wind",
                      "zahl":            7,
                      "color":           "black",
                      "backgroundColor": "gold"
                  },
                  {"wert":            74,
                      "bezeichnung":     "stürmischer Wind",
                      "zahl":            8,
                      "color":           "black",
                      "backgroundColor": "orange"
                  },
                  {"wert":            88,
                      "bezeichnung":     "Sturm",
                      "zahl":            9,
                      "color":           "black",
                      "backgroundColor": "darkorange"
                  },
                  {"wert":            102,
                      "bezeichnung":     "schwerer Sturm",
                      "zahl":            10,
                      "color":           "black",
                      "backgroundColor": "red"
                  },
                  {"wert":            88,
                      "bezeichnung":     "orkanartiger Sturm",
                      "zahl":            11,
                      "color":           "white",
                      "backgroundColor": "darkorange"
                  }
              ]
          },
          "hdFreiProzent": {
              "obereGrenzeBezeichnung":   "voll",
              "obereGrenzeZahl":          4,
              "ogColor":                  "white",
              "ogBackgroundColor":        "red",
              "schwellwerte": [
                  {"wert":            85,
                      "bezeichnung":     "viel frei",
                      "zahl":            0,
                      "color":           "black",
                      "backgroundColor": "lime"
                  },
                  {"wert":            90,
                      "bezeichnung":     "gut",
                      "zahl":            1,
                      "color":           "black",
                      "backgroundColor": "limegreen"
                  },
                  {"wert":            95,
                      "bezeichnung":     "erhöht",
                      "zahl":            2,
                      "color":           "black",
                      "backgroundColor": "yellow"
                  },
                  {"wert":            98,
                      "bezeichnung":     "fast voll",
                      "zahl":            3,
                      "color":           "black",
                      "backgroundColor": "orange"
                  }
              ]
          },
          "uv-index": {
              "obereGrenzeBezeichnung":   "UV Index nicht bekannt",
              "obereGrenzeZahl":          0,
              "ogColor":                  "gray",
              "ogBackgroundColor":        "rgb(204,204,204)",
              "schwellwerte": [
                  {"wert":            2,
                      "bezeichnung":     "keine bis gering, UV Schutz nicht erforderlich",
                      "zahl":            0,
                      "color":           "black",
                      "backgroundColor": "rgb(204,204,204)"
                  },
                  {"wert":            5,
                      "bezeichnung":     "mittel, UV Schutz sehr empfehlenswert",
                      "zahl":            1,
                      "color":           "black",
                      "backgroundColor": "rgb(204,204,204)"
                  },
                  {"wert":            7,
                      "bezeichnung":     "hoch, UV Schutz erforderlich",
                      "zahl":            2,
                      "color":           "red",
                      "backgroundColor": "yellow"
                  },
                  {"wert":            10,
                      "bezeichnung":     "sehr hoch, UV Schutz unbedingt erforderlich",
                      "zahl":            3,
                      "color":           "black",
                      "backgroundColor": "orange"
                  },
                  {"wert":            99,
                      "bezeichnung":     "extrem, UV Schutz ist ein muss",
                      "zahl":            4,
                      "color":           "white",
                      "backgroundColor": "red"
                  }
              ]
          },
          "updates": {
              "obereGrenzeBezeichnung":   "viele Updates",
              "obereGrenzeZahl":          4,
              "ogColor":                  "white",
              "ogBackgroundColor":        "red",
              "schwellwerte": [
                  {"wert":            0,
                      "bezeichnung":     "Alles aktuell",
                      "zahl":            0,
                      "color":           "black",
                      "backgroundColor": "lime"
                  },
                  {"wert":            3,
                      "bezeichnung":     "Update verfügbar",
                      "zahl":            1,
                      "color":           "black",
                      "backgroundColor": "yellow"
                  },
                  {"wert":            5,
                      "bezeichnung":     "updates verfügbar",
                      "zahl":            2,
                      "color":           "black",
                      "backgroundColor": "orange"
                  },
                  {"wert":            10,
                      "bezeichnung":     "mehrere updates",
                      "zahl":            3,
                      "color":           "black",
                      "backgroundColor": "darkorange"
                  }
              ]
          },
          "load2core": {
              "obereGrenzeBezeichnung":   "Überlast",
              "obereGrenzeZahl":          5,
              "ogColor":                  "white",
              "ogBackgroundColor":        "red",
              "schwellwerte": [
                  {"wert":            0.5,
                      "bezeichnung":     "Last niedrig",
                      "zahl":            0,
                      "color":           "black",
                      "backgroundColor": "lime"
                  },
                  {"wert":            1.0,
                      "bezeichnung":     "Last norrmal",
                      "zahl":            1,
                      "color":           "black",
                      "backgroundColor": "limegreen"
                  },
                  {"wert":            1.2,
                      "bezeichnung":     "erhöhte Last",
                      "zahl":            2,
                      "color":           "black",
                      "backgroundColor": "yellow"
                  },
                  {"wert":            1.6,
                      "bezeichnung":     "Hohe Last",
                      "zahl":            3,
                      "color":           "black",
                      "backgroundColor": "orange"
                  },
                  {"wert":            2.0,
                      "bezeichnung":     "sehr hohe Last",
                      "zahl":            4,
                      "color":           "black",
                      "backgroundColor": "darkorange"
                  }
              ]
          },
          "load1core": {
              "obereGrenzeBezeichnung":   "Überlast",
              "obereGrenzeZahl":          5,
              "ogColor":                  "white",
              "ogBackgroundColor":        "red",
              "schwellwerte": [
                  {"wert":            0.4,
                      "bezeichnung":     "Last niedrig",
                      "zahl":            0,
                      "color":           "black",
                      "backgroundColor": "lime"
                  },
                  {"wert":            0.6,
                      "bezeichnung":     "Last norrmal",
                      "zahl":            1,
                      "color":           "black",
                      "backgroundColor": "limegreen"
                  },
                  {"wert":            0.7,
                      "bezeichnung":     "erhöhte Last",
                      "zahl":            2,
                      "color":           "black",
                      "backgroundColor": "yellow"
                  },
                  {"wert":            0.8,
                      "bezeichnung":     "Hohe Last",
                      "zahl":            3,
                      "color":           "black",
                      "backgroundColor": "orange"
                  },
                  {"wert":            1.0,
                      "bezeichnung":     "sehr hohe Last",
                      "zahl":            4,
                      "color":           "black",
                      "backgroundColor": "darkorange"
                  }
              ]
          },
          "alarme": {
              "obereGrenzeBezeichnung":   "Alarme stehen an",
              "obereGrenzeZahl":          1,
              "ogColor":                  "white",
              "ogBackgroundColor":        "red",
              "schwellwerte": [
                  {"wert":            0,
                      "bezeichnung":     "keine Alarme",
                      "zahl":            0,
                      "color":           "black",
                      "backgroundColor": "lime"
                  }
              ]
          },
          "gruenGelb": {
              "obereGrenzeBezeichnung":   "erhöht",
              "obereGrenzeZahl":          1,
              "ogColor":                  "black",
              "ogBackgroundColor":        "yellow",
              "schwellwerte": [
                  {"wert":            0,
                      "bezeichnung":     "normal",
                      "zahl":            0,
                      "color":           "black",
                      "backgroundColor": "lime"
                  }
              ]
          }
      };
      
      /*
       UV-Index
       Gefährdung (UV-Gefahrenindex
       Schutzmaßnahmen
       0-2	keine bis gering	nicht erforderlich
       3-5	mittel	sehr empfehlenswert
       6-7	hoch	erforderlich
       8-10	sehr hoch	unbedingt erforderlich
       ab 11	extrem	sind ein Muss
       */
      
      
      
      function dpAnlegen() {
          for (var geraet in schwellwerte) {
              createState(pfad + schwellwerte[geraet].datenpunkt + ".text","initalisiert");
              createState(pfad + schwellwerte[geraet].datenpunkt + ".zahl",0);
              createState(pfad + schwellwerte[geraet].datenpunkt + ".color","black");
              createState(pfad + schwellwerte[geraet].datenpunkt + ".backgroundColor","silver");
              logs(pfad + schwellwerte[geraet].datenpunkt + " wurde angelegt","debug");
          }
      }
      
      
      //var reg = new RegExp("^javascript\\.\\d+\\." + hueSzenenApapterPfad.replace('.', '\\.') + ".*\\.szene");
      //on(reg , function (obj) {
      
      function setSchwellwerte(obj) {
                  if(liste[schwellwerte[obj.id].liste]){
                      //log("Liste: " + schwellwerte[obj.id].liste);
      
                      logs("Anzahl Schwellwerte: " + liste[schwellwerte[obj.id].liste].schwellwerte.length),"debug";
                      //var schwellwerteListe = liste
                      var bezeichnung =       liste[schwellwerte[obj.id].liste].obereGrenzeBezeichnung;
                      var zahl =              liste[schwellwerte[obj.id].liste].obereGrenzeZahl;
                      var color =             liste[schwellwerte[obj.id].liste].ogColor;
                      var backgroundColor =   liste[schwellwerte[obj.id].liste].ogBackgroundColor;
                      var test = 9999;
                      for (var i = 0; i < liste[schwellwerte[obj.id].liste].schwellwerte.length; i++) {
                          if (obj.state.val <= liste[schwellwerte[obj.id].liste].schwellwerte[i].wert) {
                              bezeichnung = liste[schwellwerte[obj.id].liste].schwellwerte[i].bezeichnung;
                              zahl = liste[schwellwerte[obj.id].liste].schwellwerte[i].zahl;
                              test = liste[schwellwerte[obj.id].liste].schwellwerte[i].wert;
                              color = liste[schwellwerte[obj.id].liste].schwellwerte[i].color;
                              backgroundColor = liste[schwellwerte[obj.id].liste].schwellwerte[i].backgroundColor;
                              break;
                          }
                      }
                      setState(pfad + schwellwerte[obj.id].datenpunkt + ".text",bezeichnung);
                      setState(pfad + schwellwerte[obj.id].datenpunkt + ".zahl",zahl);
                      setState(pfad + schwellwerte[obj.id].datenpunkt + ".color",color);
                      setState(pfad + schwellwerte[obj.id].datenpunkt + ".backgroundColor",backgroundColor);
                      //logs (schwellwerte[obj.id].datenpunkt + " - State: " + obj.state.val + " ist kleiner/gleich: " + test + " - Bezeichnung: " + bezeichnung + " - Zahl: "+ zahl, "debug");
                  } else {
                      log("Schwellwertliste für " + obj.id + " nicht vorhanden","error");
                  }
      }
      
      
      // TODO: die Subscription nicht im Loop anlegen!
      
      function onAnlegen() {
          for (var geraet in schwellwerte) {
              logs("Schedule angelegt: " + geraet,"debug");
      
              on({id: geraet}, function(obj) {
                  //log(obj.id + ": " + obj.state.val);
                  setSchwellwerte(obj);
              });
          }
      }
      
      function getSchwellwerte() {
          for (var geraet in schwellwerte) {
              var val = getState(geraet).val;
              var obj = { 
                  "id":geraet,
                  "state": {
                          "val":val
                  }
              };
              setSchwellwerte(obj);
          }
      }
      
      
      // main - Hauptprogramm (wird beim Scriptstart ausgeführt)
      // =============================================================================
      
      dpAnlegen(); // Datenpunkte anlegen
      onAnlegen(); // Subscribes  anlegen
      
      
      function main() {
          // Hauptprogramm
          getSchwellwerte();
      }
      setTimeout(main, 500);
      

      Ich würde die Scripte nach und nach posten, wenn die Fehler weg sind das nächste. Sonst komme ich da durcheinander.

      Danke nochmal an alle für die riesen Hilfe!

      J.A.R.V.I.S. 1 Reply Last reply Reply Quote 0
      • J.A.R.V.I.S.
        J.A.R.V.I.S. Developer @AxelF1977 last edited by

        @AxelF1977

        ersetz mal bitte folgendes in Zeile 684:

        logs(pfad + schwellwerte[geraet].datenpunkt + " wurde angelegt","debug");
        

        durch

        log(pfad + schwellwerte[geraet].datenpunkt + " wurde angelegt","debug");
        
        AxelF1977 1 Reply Last reply Reply Quote 1
        • AxelF1977
          AxelF1977 @J.A.R.V.I.S. last edited by

          @J-A-R-V-I-S sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

          @AxelF1977

          ersetz mal bitte folgendes in Zeile 684:

          logs(pfad + schwellwerte[geraet].datenpunkt + " wurde angelegt","debug");
          

          durch

          log(pfad + schwellwerte[geraet].datenpunkt + " wurde angelegt","debug");
          

          Erledigt, nun kommen im Log noch andere Meldungen dazu

          javascript.0	2020-05-03 20:02:56.770	error	(31056) at Script.runInContext (vm.js:133:20)
          javascript.0	2020-05-03 20:02:56.770	error	(31056) at script.js.Schwellwerte.Schwellwerte:755:1
          javascript.0	2020-05-03 20:02:56.770	error	(31056) at onAnlegen (script.js.Schwellwerte.Schwellwerte:728:9)
          javascript.0	2020-05-03 20:02:56.770	error	(31056) ReferenceError: logs is not defined
          javascript.0	2020-05-03 20:02:56.770	error	(31056) ^
          javascript.0	2020-05-03 20:02:56.770	error	(31056) logs("Schedule angelegt: " + geraet,"debug");
          javascript.0	2020-05-03 20:02:56.770	error	(31056) script.js.Schwellwerte.Schwellwerte: script.js.Schwellwerte.Schwellwerte:728
          
          J.A.R.V.I.S. 1 Reply Last reply Reply Quote 0
          • J.A.R.V.I.S.
            J.A.R.V.I.S. Developer @AxelF1977 last edited by

            @AxelF1977 sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

            javascript.0 2020-05-03 20:02:56.770 error (31056) ReferenceError: logs is not defined

            Du musst logs überall durch log ersetzen.

            AxelF1977 1 Reply Last reply Reply Quote 0
            • AxelF1977
              AxelF1977 @J.A.R.V.I.S. last edited by

              @J-A-R-V-I-S sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

              @AxelF1977 sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

              javascript.0 2020-05-03 20:02:56.770 error (31056) ReferenceError: logs is not defined

              Du musst logs überall durch log ersetzen.

              Ist erledigt. Das Log gibt jetzt keine Fehler error Meldungen mehr aus. Allerdings auch keine, die nicht dieses Script betrafen.

              Da waren ja etliche andere

              Thomas Braun J 2 Replies Last reply Reply Quote 0
              • Thomas Braun
                Thomas Braun Most Active @AxelF1977 last edited by

                Jetzt kommen die JS-Helden zur Hilfe... Da muss ich mich ausklinken, da bin ich zu doof für. 🙂

                1 Reply Last reply Reply Quote 0
                • J
                  Jan1 @AxelF1977 last edited by

                  @AxelF1977
                  Einer der Gründe, warum ich nur ungern fertige Scripte bei mir im Einsatz habe. Ich habe da einfach zu wenig Plan was die machen um mir selber bei Problemen helfen zu können. Aber schön wenn bei Dir das Problem nun auch erledigt ist, da früher oder später wohl eh auf 3 hoch solltest.

                  AxelF1977 1 Reply Last reply Reply Quote 0
                  • AxelF1977
                    AxelF1977 @Jan1 last edited by AxelF1977

                    So, ich bin jetzt nochmal auf den js-Controller 3 hoch,

                    und, wieder geht nichts... Scheint leider doch mehr zu sein

                    folgende error tauchen jetzt wieder auf

                    javascript.0	2020-05-03 20:51:52.503	error	(5830) at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
                    javascript.0	2020-05-03 20:51:52.503	error	(5830) at maybeClose (internal/child_process.js:982:16)
                    javascript.0	2020-05-03 20:51:52.503	error	(5830) at ChildProcess.EventEmitter.emit (domain.js:448:20)
                    javascript.0	2020-05-03 20:51:52.503	error	(5830) at ChildProcess.emit (events.js:198:13)
                    javascript.0	2020-05-03 20:51:52.503	error	(5830) at ChildProcess.exithandler (child_process.js:285:7)
                    javascript.0	2020-05-03 20:51:52.503	error	(5830) at script.js.System.Updates:381:59
                    javascript.0	2020-05-03 20:51:52.503	error	(5830) script.js.System.Updates: TypeError: Cannot read property 'toString' of null
                    javascript.0	2020-05-03 20:51:50.686	error	(5830) script.js.Heos.Heos: [Heos] Error: connect ECONNREFUSED 192.168.178.50:1255
                    javascript.0	2020-05-03 20:51:49.493	error	(5830) script.js.Robbi.Map_Valetudo_rotate: TypeScript compilation failed: import axios from "axios"; ^ ERROR: Cannot find module 'axios'.
                    javascript.0	2020-05-03 20:51:37.149	error	(5336) at Pipe._handle.close (net.js:607:12)
                    javascript.0	2020-05-03 20:51:37.149	error	(5336) at Socket.EventEmitter.emit (domain.js:448:20)
                    javascript.0	2020-05-03 20:51:37.149	error	(5336) at Socket.emit (events.js:198:13)
                    javascript.0	2020-05-03 20:51:37.149	error	(5336) at Socket.stream.socket.on (internal/child_process.js:389:11)
                    javascript.0	2020-05-03 20:51:37.149	error	(5336) at maybeClose (internal/child_process.js:982:16)
                    javascript.0	2020-05-03 20:51:37.149	error	(5336) at ChildProcess.EventEmitter.emit (domain.js:448:20)
                    javascript.0	2020-05-03 20:51:37.149	error	(5336) at ChildProcess.emit (events.js:198:13)
                    javascript.0	2020-05-03 20:51:37.149	error	(5336) at ChildProcess.exithandler (child_process.js:285:7)
                    javascript.0	2020-05-03 20:51:37.148	error	(5336) at script.js.System.Updates:381:59
                    javascript.0	2020-05-03 20:51:37.148	error	(5336) script.js.System.Updates: TypeError: Cannot read property 'toString' of null
                    javascript.0	2020-05-03 20:51:34.528	error	(5336) script.js.Robbi.Map_Valetudo_rotate: TypeScript compilation failed: import axios from "axios"; ^ ERROR: Cannot find module 'axios'.
                    javascript.0	2020-05-03 20:51:21.826	error	(4829) at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
                    javascript.0	2020-05-03 20:51:21.826	error	(4829) at maybeClose (internal/child_process.js:982:16)
                    javascript.0	2020-05-03 20:51:21.826	error	(4829) at ChildProcess.EventEmitter.emit (domain.js:448:20)
                    javascript.0	2020-05-03 20:51:21.826	error	(4829) at ChildProcess.emit (events.js:198:13)
                    javascript.0	2020-05-03 20:51:21.826	error	(4829) at ChildProcess.exithandler (child_process.js:285:7)
                    javascript.0	2020-05-03 20:51:21.826	error	(4829) at script.js.System.Updates:381:59
                    javascript.0	2020-05-03 20:51:21.826	error	(4829) script.js.System.Updates: TypeError: Cannot read property 'toString' of null
                    javascript.0	2020-05-03 20:51:18.690	error	(4829) script.js.Robbi.Map_Valetudo_rotate: TypeScript compilation failed: import axios from "axios"; ^ ERROR: Cannot find module 'axios'.
                    javascript.0	2020-05-03 20:51:06.391	error	(4317) at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
                    javascript.0	2020-05-03 20:51:06.391	error	(4317) at maybeClose (internal/child_process.js:982:16)
                    javascript.0	2020-05-03 20:51:06.390	error	(4317) at ChildProcess.EventEmitter.emit (domain.js:448:20)
                    javascript.0	2020-05-03 20:51:06.390	error	(4317) at ChildProcess.emit (events.js:198:13)
                    javascript.0	2020-05-03 20:51:06.390	error	(4317) at ChildProcess.exithandler (child_process.js:285:7)
                    javascript.0	2020-05-03 20:51:06.390	error	(4317) at script.js.System.Updates:381:59
                    javascript.0	2020-05-03 20:51:06.389	error	(4317) script.js.System.Updates: TypeError: Cannot read property 'toString' of null
                    javascript.0	2020-05-03 20:51:03.205	error	(4317) script.js.Robbi.Map_Valetudo_rotate: TypeScript compilation failed: import axios from "axios"; ^ ERROR: Cannot find module 'axios'.
                    javascript.0	2020-05-03 20:50:51.076	error	(4040) at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
                    javascript.0	2020-05-03 20:50:51.076	error	(4040) at maybeClose (internal/child_process.js:982:16)
                    javascript.0	2020-05-03 20:50:51.076	error	(4040) at ChildProcess.EventEmitter.emit (domain.js:448:20)
                    javascript.0	2020-05-03 20:50:51.075	error	(4040) at ChildProcess.emit (events.js:198:13)
                    javascript.0	2020-05-03 20:50:51.075	error	(4040) at ChildProcess.exithandler (child_process.js:285:7)
                    javascript.0	2020-05-03 20:50:51.075	error	(4040) at script.js.System.Updates:381:59
                    javascript.0	2020-05-03 20:50:51.075	error	(4040) script.js.System.Updates: TypeError: Cannot read property 'toString' of null
                    javascript.0	2020-05-03 20:50:49.258	error	(4040) script.js.Heos.Heos: [Heos] parseResponse: Unexpected end of JSON input
                    javascript.0	2020-05-03 20:50:48.007	error	(4040) script.js.Robbi.Map_Valetudo_rotate: TypeScript compilation failed: import axios from "axios"; ^ ERROR: Cannot find module 'axios'.
                    javascript.0	2020-05-03 20:50:35.639	error	(3541) at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
                    javascript.0	2020-05-03 20:50:35.639	error	(3541) at maybeClose (internal/child_process.js:982:16)
                    javascript.0	2020-05-03 20:50:35.639	error	(3541) at ChildProcess.EventEmitter.emit (domain.js:448:20)
                    javascript.0	2020-05-03 20:50:35.639	error	(3541) at ChildProcess.emit (events.js:198:13)
                    javascript.0	2020-05-03 20:50:35.638	error	(3541) at ChildProcess.exithandler (child_process.js:285:7)
                    javascript.0	2020-05-03 20:50:35.638	error	(3541) at script.js.System.Updates:381:59
                    javascript.0	2020-05-03 20:50:35.638	error	(3541) script.js.System.Updates: TypeError: Cannot read property 'toString' of null
                    
                    J.A.R.V.I.S. 1 Reply Last reply Reply Quote 0
                    • J.A.R.V.I.S.
                      J.A.R.V.I.S. Developer @AxelF1977 last edited by

                      @AxelF1977 sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

                      script.js.System.Updates: TypeError: Cannot read property 'toString' of null

                      Da scheint irgendwo ein null oder undefined zu sein, das du nicht abfängst. Zeig mal das Skript her.

                      @AxelF1977 sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

                      script.js.Robbi.Map_Valetudo_rotate: TypeScript compilation failed: import axios from "axios"; ^ ERROR: Cannot find module 'axios'.

                      Zeig auch bitte das Skript einmal.

                      AxelF1977 1 Reply Last reply Reply Quote 0
                      • AxelF1977
                        AxelF1977 @J.A.R.V.I.S. last edited by

                        @J-A-R-V-I-S sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

                        @AxelF1977 sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

                        script.js.System.Updates: TypeError: Cannot read property 'toString' of null

                        Da scheint irgendwo ein null oder undefined zu sein, das du nicht abfängst. Zeig mal das Skript her.

                        // fragt die angebotenen Updates von ioBroker ab
                        // Abfrage dauert etwas (ca. 1 Minute)
                        //
                        // Repository muss in den ioBroker Einstellungen richtig gepflegt sein
                         
                        // Übersicht der ioBroker Consolen-Kommandos:
                        // https://github.com/ioBroker/ioBroker/wiki/Console-commands
                         
                        var master          = true; // true: Parse Fehler und Adapter, die nciht in der Repo sind werden mit in der Update-Liste ausgegeben
                         
                        var logOn           = true; // Logausgabe im Skript
                        var forecreation    = false; // true: Datenpunkte werden überschrieben (ween z.B. Bezeichnungen geändert wurden)
                         
                         
                        var pfad            = "Systeminfos.iobroker" + "."; // Pfad in dem die Datenpunkte angelegt werden
                         
                         
                        // #### ab hier kann bei Änderungen der Code in die Slaves kopiert werden ####
                         
                        // Datenpunktnamen:
                        var idListOK            = pfad + 'update_liste_verfuegbar';
                        var idUpdateList        = pfad + "update_liste";
                        var idUpdateCount       = pfad + "Adapter_updates";
                        var idStatusTime        = pfad + "status_datum";
                        var idAvailableCount    = pfad + "Adapter_verfuegbar";
                        var idInstalledCount    = pfad + "Adapter_installiert";
                        var idAktivRepo         = pfad + "Repo_aktiv";
                        var idAktivRepoUrl      = pfad + "Repo_url";
                        var idHostUpdate        = pfad + "Host_Update_verfuegbar";
                        var idBeta              = pfad + "Adapter_Anzahl_Betaversionen";
                        var idparseErr          = pfad + "Adapter_Anzahl_Parse_Error";
                        var idAdapterGesamt     = pfad + "Adapter_installiert_gesamt";
                        var idAdapterGesamtJSON = pfad + "Adapter_installiert_gesamt_json";
                        var idAdapterErrorJSON  = pfad + "Adapter_mit_parse_error_json";
                        var idAdapterNotInRepoJSON  = pfad + "Adapter_nicht_in_Repo_json";
                         
                        // regelmässige Wiederholungen der Abfrage
                        var cronStr         = "57 */2 * * *";
                         
                        var abfrageUpdates       = 'iobroker update';
                        var abfrageRepo          = 'iobroker repo';
                        var abfrageAdapter       = 'iobroker list adapters';
                         
                         
                         
                        // -----------------------------------------------------------------------------
                         
                         
                        createState(idListOK, false, forecreation, {
                             name: 'iobroker update Liste konnte gelesen werden',
                             desc: 'iobroker update Liste konnte gelesen werden',
                             type: 'boolean',
                             unit: '',
                             role: 'value'
                        });
                         
                        createState(idUpdateList, "initalisiert", forecreation, {
                             name: 'Liste der verfügbaren Updates aus Repo',
                             desc: 'Liste der verfügbaren Updates aus Repo',
                             type: 'string',
                             unit: '',
                             role: 'value'
                        });
                         
                        createState(idUpdateCount, 0, forecreation, {
                             name: 'Anzahl verfügbarer Updates aus Repo',
                             desc: 'Anzahl verfügbarer Updates der installierten Adapter aus Repo',
                             type: 'number',
                             unit: '',
                             role: 'value'
                        });
                         
                        createState(idAvailableCount, 0, forecreation, {
                             name: 'Anzahl verfügbarer Adapter im Repo',
                             desc: 'Anzahl verfügbarer Adapter im Repo',
                             type: 'number',
                             unit: '',
                             role: 'value'
                        });
                         
                        createState(idInstalledCount, 0, forecreation, {
                             name: 'Anzahl installierter Adapter aus Repo',
                             desc: 'Anzahl installierter Adapter aus Repo',
                             type: 'number',
                             unit: '',
                             role: 'value'
                        });
                         
                        createState(idStatusTime, now(), forecreation, {
                             name: 'Zeitpunkt der letzten Statusabfrage',
                             desc: 'Zeitpunkt der letzten Statusabfrage',
                             type: 'string',
                             unit: '',
                             role: 'value'
                        });
                         
                        createState(idAktivRepo, "initalisiert", forecreation, {
                             name: 'Als aktiv eingestelltes Repo',
                             desc: 'Als aktiv eingestelltes Repo',
                             type: 'string',
                             unit: '',
                             role: 'value'
                        });
                         
                        createState(idAktivRepoUrl, "initalisiert", forecreation, {
                             name: 'url des aktiven Repo',
                             desc: 'url des aktiven Repo',
                             type: 'string',
                             unit: '',
                             role: 'value'
                        });
                         
                        createState(idHostUpdate, false, forecreation, {
                             name: 'iobroker Host update verfügbar',
                             desc: 'iobroker Host update verfügbar',
                             type: 'boolean',
                             unit: '',
                             role: 'value'
                        });
                         
                        createState(idBeta, 0, forecreation, {
                             name: 'Anzahl installierte Betaversionen',
                             desc: 'Anzahl installierte Betaversionen',
                             type: 'number',
                             unit: '',
                             role: 'value'
                        });
                         
                        createState(idAdapterGesamt, 0, forecreation, {
                             name: 'Anzahl installierter Adapter gesamt (Repo und Sonstige)',
                             desc: 'Anzahl installierter Adapter gesamt (Repo und Sonstige)',
                             type: 'number',
                             unit: '',
                             role: 'value'
                        });
                         
                        createState(idAdapterGesamtJSON, "initalisiert", forecreation, {
                             name: 'Liste der installierten Adapter gesamt (Repo und Sonstige)',
                             desc: 'Liste der installierten Adapter gesamt (Repo und Sonstige)',
                             type: 'string',
                             unit: '',
                             role: 'value'
                        });
                         
                        createState(idparseErr, 0, forecreation, {
                             name: 'Anzahl Adapter mit Parse Error',
                             desc: 'Anzahl Adapter mit Parse Error (Cannot read or parse)',
                             type: 'number',
                             unit: '',
                             role: 'value'
                        });
                         
                        createState(idAdapterErrorJSON, "initalisiert", forecreation, {
                             name: 'Liste der Adapter mit Parse Error',
                             desc: 'Liste der Adapter mit Parse Error (cannot read or parse)',
                             type: 'string',
                             unit: '',
                             role: 'value'
                        });
                         
                        createState(idAdapterNotInRepoJSON, "initalisiert", forecreation, {
                             name: 'Liste der installierten Adapter, die nicht in der Repo sind',
                             desc: 'Liste der installierten Adapter, die nicht in der Repo sind',
                             type: 'string',
                             unit: '',
                             role: 'value'
                        });
                         
                         
                        // -----------------------------------------------------------------------------
                         
                        function now() {
                            return formatDate(new Date(), "hh:mm:ss, YYYY-MM-DD");
                        }
                         
                        function writeJson(json) {
                            return JSON.stringify(json);    // JSON in String umwandeln, damit das JSON in einem Datenpunkt geschrieben werden kann
                        }
                         
                        function readJson(dp) {                     // lese ein JSON aus einem Datenpunkt
                            var json = getState(dp).val;
                            if (json === "") return [];
                            try {
                                list = JSON.parse(json);
                            } catch (ex) {
                                list = [];
                            }
                            if(!list) list = [];
                            return list;
                        }
                         
                        function checkBeta(installiertStr,updateStr) {
                            var installiertArr = /(\d+).(\d+).(\d+)/g.exec(installiertStr);
                            var updateArr      = /(\d+).(\d+).(\d+)/g.exec(updateStr);
                            var i;
                            for ( i=1; i<4; i++ ) {
                                if(parseInt(updateArr[i]) < parseInt(installiertArr[i])) return true;
                                if(parseInt(updateArr[i]) > parseInt(installiertArr[i])) return false;
                            }
                            return false;
                        }
                         
                        function findAdapter(json,name) {
                            for (var i=0; i < json.length; i++) {
                                if (json[i].adapter == name) return true;
                            }
                            return false;
                        }
                         
                        function checkInRepo(repoJson,installJson) {
                            if(installJson === 'undefined' || installJson === null || installJson.length < 1) {
                                log("keine Daten für Adapter in der Installation vorhanden","warn");
                                return;
                            }
                            if(repoJson === 'undefined' || repoJson === null || repoJson.length < 1) {
                                log("keine Daten für Adapter in der Repo vorhanden","warn");
                                return;
                            }
                            var adapterNichtInRepoJson = [];
                            for ( i=0; i<installJson.length; i++ ) {
                                if(!findAdapter(repoJson,installJson[i].adapter)) {
                                    adapterNichtInRepoJson.push({
                                        adapter:    installJson[i].adapter,
                                        update:     "-",
                                        version:    installJson[i].version,
                                        beta:       "nicht in Repo"
                                    });
                                }
                            }
                            return adapterNichtInRepoJson;
                        }
                         
                         
                        // fragt die möglichen Updates ab
                        function abfrageConsoleUpdates() {
                            exec(abfrageUpdates, function(err, stdout, stderr) {
                                if(logOn) log("Abfrage: "+abfrageUpdates);
                                if (err) {
                                    log("Fehler ioBroker Statusabfrage: " + err,"error");
                                    return;
                                }
                                var out = stdout.toString();
                                //log(out);
                                if(out.match("Error: 404: Not Found") || out.match("Cannot download json")) {
                                    setState(idUpdateList,"ioBroker Repository nicht gefunden");
                                    log("ioBroker Repository nicht gefunden","warn");
                                    setState(idListOK,false);
                                    return;
                                }
                                var arrInstalled    = out.match(/.+installed.+\n/g);
                                var arrUpdates      = out.match(/Adapter.+Updateable.+\n/g);
                                var arrContrUpdate  = out.match(/Controller.+Updateable.+\n/g);
                                var arrAvailable    = out.match(/Adapter /g);
                                var arrRepo         = out.match(/Adapter.+: \d+\.\d+\.\d+/g);
                                var arrParseErr     = out.match(/Cannot read or parse.+\n/g);
                                
                         
                                var updates         = 0;
                                var ContrUpdate     = 0;
                                var installiert     = -1;
                                var verfuegbar      = -1;
                                var updateJson      = [];
                                var repoJson        = [];
                                var parsErrJson     = [];
                                var beta            = 0;
                                var parseErr        = 0;
                                
                                var i;
                                
                                if(typeof arrInstalled !== 'undefined' && arrInstalled !== null && arrInstalled.length > 0) installiert = arrInstalled.length;
                                if(typeof arrUpdates !== 'undefined' && arrUpdates !== null && arrUpdates.length > 0)  updates = arrUpdates.length;
                                if(typeof arrContrUpdate !== 'undefined' && arrContrUpdate !== null && arrContrUpdate.length > 0)  ContrUpdate = 1;
                                if(typeof arrAvailable !== 'undefined' && arrAvailable !== null && arrAvailable.length > 0) verfuegbar = arrAvailable.length;
                                if(typeof arrParseErr !== 'undefined' && arrParseErr !== null && arrParseErr.length > 0) parseErr = arrParseErr.length;
                         
                                // ermittelt Adapter, die einen Fehler (parse error) erzeugt haben
                                // Beispiel:
                                // Cannot read or parse /opt/iobroker/node_modules/iobroker.js-controller/lib/../node_modules/iobroker.daswetter/io-package.json: SyntaxError: Unexpected token 
                                if(parseErr > 0) {
                                    for ( i=0; i<parseErr; i++ ) {
                                        var arrParseErrLine = /Cannot read or parse.+\/(.+)\/io-.+:.(.+)\n/g.exec(arrParseErr[i]);
                         
                                        parsErrJson.push({
                                            adapter:    arrParseErrLine[1],
                                            update:     "-",
                                            error:      arrParseErrLine[2],
                                            beta:       "parse error"
                                        });
                                    }
                                }
                         
                                if(logOn) log(writeJson(parsErrJson),"warn");
                         
                                // ermittelt das JSON für die im Repo enthaltenen Adapter
                                for ( i=0; i<arrRepo.length; i++ ) {
                                    var arrInRepo = /Adapter.+"(.+)".+(\d+\.\d+\.\d+)/g.exec(arrRepo[i]);
                                    repoJson.push({
                                        adapter:    arrInRepo[1],
                                        version:    arrInRepo[2]
                                    });
                                }
                         
                         
                                if(ContrUpdate > 0) {
                                    if(logOn) log("** HOST Update verfügbar **");
                                    if(logOn) log("arrContrUpdate: " + arrContrUpdate);
                                    var arrController = /.+"(.+)".+(\d+.\d+.\d+).+(\d+.\d+.\d+)/g.exec(arrContrUpdate[0]);
                                    if(logOn) log("arrController: " + arrController);
                         
                                    if(checkBeta(arrController[3],arrController[2])) beta = beta +1;
                         
                                    updateJson.push({
                                        adapter:    arrController[1],
                                        update:     arrController[2],
                                        version:    arrController[3],
                                        beta:       (checkBeta(arrController[3],arrController[2]) ? "beta" : "UPDATE")
                                        
                                    });
                                    
                                }
                                
                                if(updates > 0) {
                                    for ( i=0; i<updates; i++ ) {
                                        var arrUpdate = /.+"(.+)".+(\d+.\d+.\d+).+(\d+.\d+.\d+)/g.exec(arrUpdates[i]);
                         
                                        if(checkBeta(arrUpdate[3],arrUpdate[2])) beta = beta +1;
                         
                                        updateJson.push({
                                            adapter:    arrUpdate[1],
                                            update:     arrUpdate[2],
                                            version:    arrUpdate[3],
                                            beta:       (checkBeta(arrUpdate[3],arrUpdate[2]) ? "Beta" : "")
                                        });
                                    }
                                }
                                
                                updates = updates + ContrUpdate - beta;
                                
                                var notInRepoJson = checkInRepo(repoJson,readJson(idAdapterGesamtJSON));
                                
                                setState(idUpdateCount      ,updates);
                                setState(idAvailableCount   ,verfuegbar);
                                setState(idInstalledCount   ,installiert);
                                
                                if(updateJson.length === 0) updateJson.push({adapter:"",update:"",version:""});
                                
                                setState(idUpdateList       ,(master ? writeJson(updateJson.concat(parsErrJson,notInRepoJson)) : writeJson(updateJson)));
                                setState(idListOK           ,true);
                                setState(idStatusTime       ,now());
                                setState(idHostUpdate,      (ContrUpdate > 0 ? true : false));
                                setState(idBeta,            beta);
                                setState(idparseErr,        parseErr);
                                setState(idAdapterErrorJSON,writeJson(parsErrJson));
                                setState(idAdapterNotInRepoJSON,writeJson(notInRepoJson));
                         
                                log("Anzahl Adapter mit Fehler (Cannot read or parse): " + parseErr,"warn");
                                if(logOn) log("Anzahl Adapter in Repo verfügbar:   " + verfuegbar);
                                if(logOn) log("Anzahl Adapter aus Repo installiert: " + installiert);
                                if(logOn) log("Anzahl Adapter mit Updates: " + updates);
                                if(logOn) log("Anzahl Adapter als Beta installiert: " + beta);
                                
                            });
                        }
                         
                        // fragt das aktive Repository ab
                        function abfrageConsoleRepo() {
                            exec(abfrageRepo, function(err, stdout, stderr) {
                                if(logOn) log("Abfrage: "+abfrageRepo);
                                if (err) {
                                    log("Fehler ioBroker Statusabfrage: " + err,"error");
                                    return;
                                }
                                var out = stdout.toString();
                         
                         
                                if(logOn) log(stdout);
                                var aktivRepo = stdout.match(/Active repo: (.+)/)[1];
                                if(logOn) log("Aktive Repo: " + aktivRepo);
                         
                                var regex = new RegExp("^"+aktivRepo+": (.+)", "gm");
                                var aktivRepoUrl = stdout.match(/^online: (.+)/gm).toString().replace(aktivRepo+": ","");
                                if(logOn) log("Aktive Repo url: " + aktivRepoUrl);
                         
                                setState(idAktivRepo,aktivRepo);
                                setState(idAktivRepoUrl,aktivRepoUrl);
                         
                            });
                        }
                         
                         
                         
                        // fragt alle installiertenAdapter ab, auch die, die nicht in der Repo vorhanden sind
                        function abfrageInstallierteAdapter() {
                            exec(abfrageAdapter, function(err, stdout, stderr) {
                                if(logOn) log("Abfrage: "+ abfrageAdapter);
                                if (err) {
                                    log("Fehler ioBroker Abfrage installierte Adapter: " + err,"error");
                                    return;
                                }
                                var out = stdout.toString();
                                //if(logOn) log(stdout);
                         
                                var arrAdapter  = out.match(/:.+\n/g);
                                var installJSON = [];       
                                       
                                
                                var i;
                                for ( i=0; i<arrAdapter.length; i++ ) {
                                    var arrInstall = /: (\S+) +- (\d+\.\d+\.\d+)/g.exec(arrAdapter[i]);
                         
                                    installJSON.push({
                                        adapter:    arrInstall[1],
                                        version:    arrInstall[2]
                                    });
                                }
                                
                        //        if(logOn) log("arrAdapter: " + arrAdapter);
                                if(logOn) log("arrAdapter.length: " + arrAdapter.length);
                        //        if(logOn) log("installJSON: " + writeJson(installJSON));
                                
                                setState(idAdapterGesamt,       arrAdapter.length);
                                setState(idAdapterGesamtJSON,   writeJson(installJSON));
                            });
                        }
                         
                         
                         
                        function abfragen() {
                            abfrageConsoleRepo();
                            abfrageInstallierteAdapter();
                            setTimeout(abfrageConsoleUpdates,2000);
                        }
                         
                        // regelmässige Wiederholungen
                        // -----------------------------------------------------------------------------
                        schedule(cronStr, abfragen);
                         
                         
                        // main
                        // -----------------------------------------------------------------------------
                        function main() {
                            abfragen();
                        }
                         
                         
                        // Start Skript:
                        // -----------------------------------------------------------------------------
                         
                        setTimeout(main,    500);
                        

                        @J-A-R-V-I-S sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

                        @AxelF1977 sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

                        script.js.System.Updates: TypeError: Cannot read property 'toString' of null

                        @AxelF1977 sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

                        script.js.Robbi.Map_Valetudo_rotate: TypeScript compilation failed: import axios from "axios"; ^ ERROR: Cannot find module 'axios'.

                        Zeig auch bitte das Skript einmal.

                        import axios from "axios";
                         
                        // Hier den Hostnamen und Zugangsdaten eintragen, unter dem Valetudo erreichbar ist
                        const roboHostname = "192.168.178.61";
                        const valetudoAuth = {
                        	username: 'valetudo-username',
                        	password: 'valetudo-password'
                        }
                        // Hier den State eintragen, der den aktuellen Sauger-Status angibt
                        const idVacuumState = "mihome-vacuum.0.info.state";
                         
                        const center: Point = [25600, 25600];
                        // Koordiaten zählen von unten links (0,0) nach oben rechts (51200,51200)
                        // Die folgenden Koordinaten gehen von nicht rotierter Karte (Winkel 0) aus
                        const rooms: Record<string, Rectangle[]> = {
                            "Küche": [[21600, 29100, 23500, 33100]],
                            "Flur": [[18400, 24000, 22200, 27100], [19500, 27100, 21600, 30400]],
                            "Wohnzimmer": [[17600, 20000, 21600, 24000], [21600, 19200, 24200, 23200]],
                            "Schlafzimmer": [[24100, 23200, 26100, 27400], [22100, 23800, 24100, 27400]],
                            "Bad": [[21500, 27500, 23200, 29000]],
                        };
                         
                        // ===============================================================================
                         
                        type Rectangle = [number, number, number, number];
                        type Point = [number, number];
                         
                        /** rotates a rectangle by 90° around the absolute origin */
                        function rotate90([x1, y1, x2, y2]: Rectangle): Rectangle {
                            return [-y2, x1, -y1, x2];
                        }
                         
                        /** rotates a rectangle by 180° around the absolute origin */
                        function rotate180([x1, y1, x2, y2]: Rectangle): Rectangle {
                            return [-x2, -y2, -x1, -y1];
                        }
                         
                        /** Rotates a rectangle around the given center by the given angle */
                        function rotate(rect: Rectangle, center: Point, angle: number) {
                            rect = [rect[0] - center[0], rect[1] - center[1], rect[2] - center[0], rect[3] - center[1]];
                            if (angle % 180 === 90) {
                                rect = rotate90(rect);
                                angle -= 90;
                            }
                            if (angle === 180) {
                                rect = rotate180(rect);
                            }
                            rect = [rect[0] + center[0], rect[1] + center[1], rect[2] + center[0], rect[3] + center[1]];
                            return rect;
                        }
                         
                        for (const room of Object.keys(rooms) as (keyof typeof rooms)[]) {
                            createState(`Staubsauger.${room}`, {
                                type: "boolean",
                                read: true,
                                write: true,
                                role: "switch",
                                name: `${room} saugen`,
                            });
                            on({ id: `javascript.${instance}.Staubsauger.${room}`, val: true, ack: false }, async () => {
                                if (getState(idVacuumState).val !== 8) await cancelCurrentAction();
                         
                                if (getMapRotation() === -1 /* unbekannt */) {
                                    // We need to test the map rotation
                                    const rotation = await testMapRotation();
                                    log(`Die Karte ist ${rotation !== 0 ? `um ${rotation}° ` : "nicht "}rotiert.`);
                                    await rememberMapRotation(rotation);
                                }
                         
                                // Now that we know how the map is rotated, we can clean the room
                                cleanRoom(room);
                            });
                        }
                         
                        createState(`Staubsauger.stop`, {
                            type: "boolean",
                            read: true,
                            write: true,
                            role: "switch",
                            name: `Staubsauger anhalten`,
                        });
                        on({ id: `javascript.${instance}.Staubsauger.stop`, val: true, ack: false }, () => {
                            stopCleanup();
                        });
                         
                        const idMapRotated = "Staubsauger.info.mapRotated";
                        createState(idMapRotated, {
                            type: "number",
                            read: true,
                            write: false,
                            role: "indicator",
                            states: {
                                "-1": "unknown",
                                "0": "Robo links vom Dock",
                                "90": "Robo unten vom Dock",
                                "180": "Robo rechts vom Dock",
                                "270": "Robo oben vom Dock",
                            },
                            name: `Wie die Karte rotiert ist`,
                        });
                         
                        /** 
                         * Bestimmt die Kartenrotation wenn der Staubsauger neben dem Dock steht
                         * 0 Grad bedeutet, der Sauger steht links
                         */
                        async function testMapRotation(): Promise<number> {
                            log("Teste Kartenorientierung...");
                            const { data: { charger, robot } } = await axios({
                                url: `http://${roboHostname}/api/map/latest`,
                                auth: valetudoAuth
                            });
                         
                            // Valetudo zählt von oben links nach unten rechts, d.h. die Y-Koordinaten
                            // sind entgegengesetzt der mathematischen Definition
                            let c2r = [robot[0] - charger[0], charger[1] - robot[1]];
                            const angle = Math.atan2(c2r[1], c2r[0]) * 180 / Math.PI;
                            if (angle <= 45 && angle >= -45) {
                                // Sauger steht rechts
                                return 180;
                            } else if (angle > 45 && angle < 135) {
                                // Sauger steht oben
                                return 270;
                            } else if (angle < -45 && angle > -135) {
                                // Sauger steht unten
                                return 90;
                            } else {
                                return 0;
                            }
                        }
                         
                        function rememberMapRotation(rotation: number): Promise<void> {
                            return setStateAsync(idMapRotated, rotation);
                        }
                        function getMapRotation(): number {
                            return getState(idMapRotated).val;
                        }
                         
                        // "Forget" map rotation when the vacuum starts charging
                        on({ id: idVacuumState, val: 8 /* charging */ }, (obj) => {
                            setState(idMapRotated, -1 /* unknown */);
                            // And reset all control states
                            for (const room of Object.keys(rooms) as (keyof typeof rooms)[]) {
                                setState(`Staubsauger.${room}`, false, true);
                            }
                            setState(`Staubsauger.stop`, false, true);
                        });
                         
                        async function beginCleanup(): Promise<void> {
                        }
                         
                        async function cancelCurrentAction(): Promise<void> {
                            setState("mihome-vacuum.0.control.pause", true);
                            // wait for the "paused" status before going home
                            await waitForPauseOrSleep();
                        }
                         
                        async function stopCleanup(): Promise<void> {
                            log(`Saugvorgang abgebrochen!`);
                            setState(`Staubsauger.stop`, true, true);
                         
                            if (getState(idVacuumState).val !== 8) {
                                await cancelCurrentAction();
                         
                                await setStateAsync('mihome-vacuum.0.control.home', true);
                                // wait for the "charging" status before resolving
                                await waitFor(idVacuumState, 8);
                            }
                         
                            log(`Staubsauger ist in der Basis`);
                         
                            setState(`Staubsauger.stop`, false, true);
                        }
                         
                        async function cleanRoom(room: keyof typeof rooms): Promise<void> {
                            log(`Saugvorgang für ${room} gestartet!`);
                            setState(`Staubsauger.${room}`, true, true);
                         
                            const mapRotation = getMapRotation();
                            const originalCoords = rooms[room];
                            log(`original coordinates: ${JSON.stringify(originalCoords)}`);
                            const roomCoords = rooms[room].map(rect => rotate(rect, center, mapRotation));
                            log(`rotated coordinates: ${JSON.stringify(roomCoords)}`);
                         
                            const coords = roomCoords[0];
                            const targetCoords = [
                                ((coords[0] + coords[2]) / 2).toFixed(0),
                                ((coords[1] + coords[3]) / 2).toFixed(0),
                            ]
                         
                            // go to center of first zone
                            const gotoString = targetCoords.join(",");
                            await setStateAsync("mihome-vacuum.0.control.goTo", gotoString);
                            log(`Fahre zur Mitte von ${room}`);
                            await wait(10000);
                            await waitForPauseOrSleep();
                         
                            if (getState("Staubsauger.stop").val) return;
                         
                            const zoneCleanString = roomCoords.map(zone => {
                                return "[" + zone.concat(1).map(coord => coord.toString()).join(",") + "]";
                            }).join(",");
                         
                            log("Starte Zonenreinigung...");
                            await setStateAsync("mihome-vacuum.0.control.zoneClean", zoneCleanString);
                            // wait for the cleanup to finish
                            await waitFor(idVacuumState, 6);
                        }
                         
                        async function waitForPauseOrSleep(): Promise<void> {
                            log("Warte auf Zustand schlafen oder Pause...");
                            switch (getState(idVacuumState).val) {
                                case 3:
                                case 10:
                                    log(" => Zustand bereits aktiv!");
                                    return;
                                default:
                                    await Promise.race([
                                        waitFor(idVacuumState, 10),
                                        waitFor(idVacuumState, 3),
                                    ]);
                                    log(" => Zustand erreicht!");
                            }
                        }
                         
                        function wait(ms: number): Promise<void> {
                            return new Promise(resolve => {
                                setTimeout(resolve, ms);
                            });
                        }
                         
                        function waitFor(stateID: string, value: any): Promise<void> {
                            return new Promise(resolve => {
                                const handler = (obj: iobJS.ChangedStateObject) => {
                                    if (obj.newState.val === value) {
                                        unsubscribe(handler);
                                        resolve();
                                    }
                                }
                                subscribe(stateID, handler);
                            })
                        }
                         
                        function setStateAsync(id: string, state: any): Promise<void> {
                            return new Promise(res => {
                                setState(id, state, () => res());
                            });
                        }
                        
                        J.A.R.V.I.S. 2 Replies Last reply Reply Quote 0
                        • J.A.R.V.I.S.
                          J.A.R.V.I.S. Developer @AxelF1977 last edited by

                          @AxelF1977 ersetz im ersten Skript mal bitte alle var out = stdout.toString(); durch var out = stdout ? stdout.toString() : '';

                          Und ersetze im zweiten mal die erste Zeile durch const axios = require('axios');

                          AxelF1977 2 Replies Last reply Reply Quote 1
                          • AxelF1977
                            AxelF1977 @J.A.R.V.I.S. last edited by AxelF1977

                            @J-A-R-V-I-S sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

                            @AxelF1977 ersetz im ersten Skript mal bitte alle var out = stdout.toString(); durch var out = stdout ? stdout.toString() : '';

                            Und ersetze im zweiten mal die erste Zeile durch const axios = require('axios');

                            Erledigt,

                            folgende error zeigt der Log noch, aber es werden weniger

                            javascript.0	2020-05-03 21:18:00.732	error	(6892) at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
                            javascript.0	2020-05-03 21:18:00.732	error	(6892) at maybeClose (internal/child_process.js:982:16)
                            javascript.0	2020-05-03 21:18:00.732	error	(6892) at ChildProcess.EventEmitter.emit (domain.js:448:20)
                            javascript.0	2020-05-03 21:18:00.732	error	(6892) at ChildProcess.emit (events.js:198:13)
                            javascript.0	2020-05-03 21:18:00.731	error	(6892) at ChildProcess.exithandler (child_process.js:285:7)
                            javascript.0	2020-05-03 21:18:00.731	error	(6892) at script.js.System.Updates:381:59
                            javascript.0	2020-05-03 21:18:00.730	error	(6892) script.js.System.Updates: TypeError: Cannot read property 'toString' of null
                            javascript.0	2020-05-03 21:16:28.340	error	(3977) at Pipe._handle.close (net.js:607:12)
                            javascript.0	2020-05-03 21:16:28.340	error	(3977) at Socket.EventEmitter.emit (domain.js:448:20)
                            javascript.0	2020-05-03 21:16:28.340	error	(3977) at Socket.emit (events.js:198:13)
                            javascript.0	2020-05-03 21:16:28.340	error	(3977) at Socket.stream.socket.on (internal/child_process.js:389:11)
                            javascript.0	2020-05-03 21:16:28.340	error	(3977) at maybeClose (internal/child_process.js:982:16)
                            javascript.0	2020-05-03 21:16:28.340	error	(3977) at ChildProcess.EventEmitter.emit (domain.js:448:20)
                            javascript.0	2020-05-03 21:16:28.340	error	(3977) at ChildProcess.emit (events.js:198:13)
                            javascript.0	2020-05-03 21:16:28.340	error	(3977) at ChildProcess.exithandler (child_process.js:285:7)
                            javascript.0	2020-05-03 21:16:28.340	error	(3977) at script.js.System.Updates:381:59
                            javascript.0	2020-05-03 21:16:28.340	error	(3977) script.js.System.Updates: TypeError: Cannot read property 'toString' of null
                            javascript.0	2020-05-03 21:16:12.023	error	(3405) at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
                            javascript.0	2020-05-03 21:16:12.023	error	(3405) at maybeClose (internal/child_process.js:982:16)
                            javascript.0	2020-05-03 21:16:12.022	error	(3405) at ChildProcess.EventEmitter.emit (domain.js:448:20)
                            javascript.0	2020-05-03 21:16:12.022	error	(3405) at ChildProcess.emit (events.js:198:13)
                            javascript.0	2020-05-03 21:16:12.022	error	(3405) at ChildProcess.exithandler (child_process.js:285:7)
                            javascript.0	2020-05-03 21:16:12.022	error	(3405) at script.js.System.Updates:381:59
                            javascript.0	2020-05-03 21:16:12.022	error	(3405) script.js.System.Updates: TypeError: Cannot read property 'toString' of null
                            
                            wendy2702 1 Reply Last reply Reply Quote 0
                            • wendy2702
                              wendy2702 @AxelF1977 last edited by

                              @AxelF1977 sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

                              System.Updates

                              Das Script auch bearbeitet?

                              1 Reply Last reply Reply Quote 0
                              • AxelF1977
                                AxelF1977 @J.A.R.V.I.S. last edited by AxelF1977

                                @wendy2702 sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

                                @AxelF1977 sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

                                System.Updates

                                Das Script auch bearbeitet?

                                In dem Script habe ich diese stellen bearbeitet, wie von @J-A-R-V-I-S empfohlen

                                @AxelF1977 ersetz im ersten Skript mal bitte alle var out = stdout.toString(); durch var out = stdout ? stdout.toString() : '';

                                Im Script selber gibt es folgenden error

                                21:47:25.279	error	javascript.0 (30954) script.js.System.Updates: TypeError: Cannot read property 'toString' of null
                                21:47:25.279	error	javascript.0 (30954) at script.js.System.Updates:381:59
                                21:47:25.323	error	host.ioBrokerPC Caught by controller[0]: at script.js.System.Updates:381:59
                                

                                01ef1a01-9700-4a4b-a08f-50b61e07f445-image.png

                                ÜBRIGENS: sobald dieses Script Updates deaktiviert ist, läuft alles. Wahnsinn, nur wegen diesem einen Script.

                                Das kam hier aus dem Forum

                                1 Reply Last reply Reply Quote 0
                                • J.A.R.V.I.S.
                                  J.A.R.V.I.S. Developer @AxelF1977 last edited by

                                  @AxelF1977 sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

                                  stdout.match(/^online: (.+)/gm).toString()

                                  Dann ändere diese Stelle bitte auch noch ab

                                  var aktivRepoUrl = stdout.match(/^online: (.+)/gm).toString().replace(aktivRepo+": ","");
                                  

                                  in

                                  var aktivRepoUrl = (stdout.match(/^online: (.+)/gm) || '').toString().replace(aktivRepo+": ","");
                                  
                                  AxelF1977 1 Reply Last reply Reply Quote 1
                                  • AxelF1977
                                    AxelF1977 @J.A.R.V.I.S. last edited by

                                    @J-A-R-V-I-S sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

                                    @AxelF1977 sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

                                    stdout.match(/^online: (.+)/gm).toString()

                                    Dann ändere diese Stelle bitte auch noch ab

                                    var aktivRepoUrl = stdout.match(/^online: (.+)/gm).toString().replace(aktivRepo+": ","");
                                    

                                    in

                                    var aktivRepoUrl = (stdout.match(/^online: (.+)/gm) || '').toString().replace(aktivRepo+": ","");
                                    

                                    Hab ich gemacht, aber Fehler bleiben immer noch bestehen. Das ist ja zum verrückt werden mit dem Script. Ich finde es nur gerade nicht auf die Schnelle im Forum wieder.

                                    22:11:24.239	error	javascript.0 (12632) script.js.System.Updates: TypeError: Cannot read property '1' of null
                                    22:11:24.239	error	javascript.0 (12632) at script.js.System.Updates:412:39
                                    22:11:24.288	error	host.ioBrokerPC Caught by controller[0]: at script.js.System.Updates:412:39
                                    
                                    J.A.R.V.I.S. 1 Reply Last reply Reply Quote 0
                                    • J.A.R.V.I.S.
                                      J.A.R.V.I.S. Developer @AxelF1977 last edited by J.A.R.V.I.S.

                                      @AxelF1977 sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

                                      script.js.System.Updates:412:39

                                      Hier steht auch immer die Zeile, in der der Fehler auftritt, in diesem Fall Zeile 412.

                                      Setz da mal folgendes hin, um den Fehler abzufangen:

                                      var arrInstall = /: (\S+) +- (\d+\.\d+\.\d+)/g.exec(arrAdapter[i]);
                                       
                                      if (arrInstall && arrInstall.length >= 3) {
                                                  installJSON.push({
                                                      adapter:    arrInstall[1],
                                                      version:    arrInstall[2]
                                                  });
                                      } 
                                      

                                      Mir scheint als hätte da jemand ein Skript geschrieben, im guten Glauben, dass er immer die richtigen Werte erhält und deshalb nicht prüft.

                                      Naja, im Js-controller 3 werden die Fehler nicht mehr ignoriert.

                                      AxelF1977 1 Reply Last reply Reply Quote 2
                                      • AxelF1977
                                        AxelF1977 @J.A.R.V.I.S. last edited by

                                        @J-A-R-V-I-S sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

                                        @AxelF1977 sagte in Scripte laufen nicht mehr seit Update auf JS-Controler 3.0x:

                                        script.js.System.Updates:412:39

                                        Hier steht auch immer die Zeile, in der der Fehler auftritt, in diesem Fall Zeile 412.

                                        Setz da mal folgendes hin, um den Fehler abzufangen:

                                        var arrInstall = /: (\S+) +- (\d+\.\d+\.\d+)/g.exec(arrAdapter[i]);
                                         
                                        if (arrInstall && arrInstall.length >= 3) {
                                                    installJSON.push({
                                                        adapter:    arrInstall[1],
                                                        version:    arrInstall[2]
                                                    });
                                        } 
                                        

                                        Mir scheint als hätte da jemand ein Skript geschrieben, im guten Glauben, dass er immer die richtigen Werte erhält und deshalb nicht prüft.

                                        Naja, im Js-controller 3 werden die Fehler nicht mehr ignoriert.

                                        Das hat auf jeden Fall was verändert. Mein anderen Scripte gehen jetzt, auch mit js-controller 3. Wie als wenn ich das Script deaktiviert habe. Top, Danke.

                                        Eine kleine Ausgabe hat das Script noch. Nicht mehr im Log, "nur noch" im Script selber

                                        22:24:15.728	warn	javascript.0 (28978) script.js.System.Updates: []
                                        22:24:15.729	warn	javascript.0 (28978) script.js.System.Updates: keine Daten für Adapter in der Installation vorhanden
                                        22:24:15.730	warn	javascript.0 (28978) at script.js.System.Updates:354:9
                                        22:24:15.730	error	javascript.0 (28978) script.js.System.Updates: setForeignState: undefined is not a valid state value
                                        22:24:15.730	warn	javascript.0 (28978) script.js.System.Updates: Anzahl Adapter mit Fehler (Cannot read or parse): 0
                                        
                                        AxelF1977 J.A.R.V.I.S. 2 Replies Last reply Reply Quote 0
                                        • AxelF1977
                                          AxelF1977 @AxelF1977 last edited by

                                          Ich verneige mich an dieser Stelle vor dem unglaublichen Wissen das hier versammelt ist.

                                          Danke für Eure Hilfe.

                                          Echt der Wahnsinn

                                          Garfonso 1 Reply Last reply Reply Quote 0
                                          • joergfrde
                                            joergfrde @AxelF1977 last edited by

                                            @AxelF1977 Ich habe auch ein Problem mit meinen Scripten. Keine Benachrichtung durch Telegram. Ich habe allerdings noch die 10ner Version von node und nodejs. Telegram hat das neueste Update.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

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

                                            582
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly javascript javascript adapter js-controler 3.0x skripte update
                                            14
                                            126
                                            7703
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo