Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Material Design Widgets: Skript Status

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Material Design Widgets: Skript Status

    This topic has been deleted. Only users with topic management privileges can see it.
    • Scrounger
      Scrounger Developer last edited by Scrounger

      Skript zur Anzeige des Status aller Skripte mit dem Material Design IconList Widget

      Mit diesem Skript wird ein json string erzeugt mit dem Status aller Skripte. Diese Daten (Datenpunkt) kann dann im Material Design IconList Widget verwendet werden, um den Status der Skripte im VIS anzuzeigen.

      letzte Aktualierung: 04.03.2020

      Skript_Status.gif

      Voraussetzung:

      • Material Design Widgets v0.2.62

      Funktionen:

      • Anzeige des Status aller Skripte (Aktiviert, Deakitivert, Fehler)
      • Anzeige von Werten der Skripte(Sprache, letzte Änderung, Ordner)
      • Neustarten / Starten / Stoppen von Skripten
      • Sortier und Filter Funktion
      • Einstellungen, siehe im Skript Sektion Einstellungen, Funktion der Einstellungen ist dort als Kommentar beschrieben.

      Ist auch im Online Beispiel enthalten

      View zum importieren:

      {
        "settings": {
          "style": {
            "background_class": ""
          },
          "theme": "redmond",
          "sizex": "",
          "sizey": "",
          "gridSize": "",
          "snapType": null
        },
        "widgets": {
          "e00001": {
            "tpl": "tplVis-materialdesign-Icon-List",
            "data": {
              "g_fixed": false,
              "g_visibility": false,
              "g_css_font_text": false,
              "g_css_background": false,
              "g_css_shadow_padding": false,
              "g_css_border": false,
              "g_gestures": false,
              "g_signals": false,
              "g_last_change": false,
              "visibility-cond": "==",
              "visibility-val": 1,
              "visibility-groups-action": "hide",
              "wrapItems": true,
              "listItemDataMethod": "jsonStringObject",
              "countListItems": "1",
              "vibrateOnMobilDevices": "50",
              "listLayout": "card",
              "itemLayout": "horizontal",
              "listType0": "text",
              "showValueLabel0": "true",
              "listType1": "text",
              "showValueLabel1": "true",
              "signals-cond-0": "==",
              "signals-val-0": true,
              "signals-icon-0": "/vis/signals/lowbattery.png",
              "signals-icon-size-0": 0,
              "signals-blink-0": false,
              "signals-horz-0": 0,
              "signals-vert-0": 0,
              "signals-hide-edit-0": false,
              "signals-cond-1": "==",
              "signals-val-1": true,
              "signals-icon-1": "/vis/signals/lowbattery.png",
              "signals-icon-size-1": 0,
              "signals-blink-1": false,
              "signals-horz-1": 0,
              "signals-vert-1": 0,
              "signals-hide-edit-1": false,
              "signals-cond-2": "==",
              "signals-val-2": true,
              "signals-icon-2": "/vis/signals/lowbattery.png",
              "signals-icon-size-2": 0,
              "signals-blink-2": false,
              "signals-horz-2": 0,
              "signals-vert-2": 0,
              "signals-hide-edit-2": false,
              "lc-type": "last-change",
              "lc-is-interval": true,
              "lc-is-moment": false,
              "lc-format": "",
              "lc-position-vert": "top",
              "lc-position-horz": "right",
              "lc-offset-vert": 0,
              "lc-offset-horz": 0,
              "lc-font-size": "12px",
              "lc-font-family": "",
              "lc-font-style": "",
              "lc-bkg-color": "",
              "lc-color": "",
              "lc-border-width": "0",
              "lc-border-style": "",
              "lc-border-color": "",
              "lc-border-radius": 10,
              "lc-zindex": 0,
              "json_string_oid": "0_userdata.0.vis.SkriptStatus.jsonList",
              "maxItemsperRow": "6",
              "iconItemMinWidth": "280",
              "iconHeight": "35",
              "buttonHeight": "70",
              "labelFontSize": "22",
              "subLabelFontSize": "14",
              "subLabelFontColor": "#000000",
              "labelFontFamily": "RobotoCondensed-Regular",
              "subLabelFontFamily": "RobotoCondensed-Light",
              "horizontalIconContainerWidth": "70"
            },
            "style": {
              "left": "0px",
              "top": "50px",
              "width": "100%",
              "height": "calc(100% - 50px)",
              "overflow-x": "",
              "overflow-y": "auto",
              "z-index": "1"
            },
            "widgetSet": "materialdesign"
          },
          "e00002": {
            "tpl": "tplHtml",
            "data": {
              "g_fixed": false,
              "g_visibility": false,
              "g_css_font_text": false,
              "g_css_background": true,
              "g_css_shadow_padding": false,
              "g_css_border": false,
              "g_gestures": false,
              "g_signals": false,
              "g_last_change": false,
              "visibility-cond": "==",
              "visibility-val": 1,
              "visibility-groups-action": "hide",
              "refreshInterval": "0",
              "signals-cond-0": "==",
              "signals-val-0": true,
              "signals-icon-0": "/vis/signals/lowbattery.png",
              "signals-icon-size-0": 0,
              "signals-blink-0": false,
              "signals-horz-0": 0,
              "signals-vert-0": 0,
              "signals-hide-edit-0": false,
              "signals-cond-1": "==",
              "signals-val-1": true,
              "signals-icon-1": "/vis/signals/lowbattery.png",
              "signals-icon-size-1": 0,
              "signals-blink-1": false,
              "signals-horz-1": 0,
              "signals-vert-1": 0,
              "signals-hide-edit-1": false,
              "signals-cond-2": "==",
              "signals-val-2": true,
              "signals-icon-2": "/vis/signals/lowbattery.png",
              "signals-icon-size-2": 0,
              "signals-blink-2": false,
              "signals-horz-2": 0,
              "signals-vert-2": 0,
              "signals-hide-edit-2": false,
              "lc-type": "last-change",
              "lc-is-interval": true,
              "lc-is-moment": false,
              "lc-format": "",
              "lc-position-vert": "top",
              "lc-position-horz": "right",
              "lc-offset-vert": 0,
              "lc-offset-horz": 0,
              "lc-font-size": "12px",
              "lc-font-family": "",
              "lc-font-style": "",
              "lc-bkg-color": "",
              "lc-color": "",
              "lc-border-width": "0",
              "lc-border-style": "",
              "lc-border-color": "",
              "lc-border-radius": 10,
              "lc-zindex": 0
            },
            "style": {
              "left": "0",
              "top": "0",
              "width": "100%",
              "height": "50px",
              "background-color": "#44739e"
            },
            "widgetSet": "basic"
          },
          "e00003": {
            "tpl": "tplVis-materialdesign-Select",
            "data": {
              "oid": "0_userdata.0.vis.SkriptStatus.sortMode",
              "g_fixed": false,
              "g_visibility": false,
              "g_css_font_text": false,
              "g_css_background": false,
              "g_css_shadow_padding": false,
              "g_css_border": false,
              "g_gestures": false,
              "g_signals": false,
              "g_last_change": false,
              "visibility-cond": "==",
              "visibility-val": 1,
              "visibility-groups-action": "hide",
              "inputType": "text",
              "inputLayout": "regular",
              "showInputMessageAlways": "true",
              "showInputCounter": false,
              "clearIconShow": false,
              "listDataMethod": "jsonStringObject",
              "countSelectItems": "1",
              "listPosition": "bottom",
              "showSelectedIcon": "prepend-inner",
              "showValue": false,
              "signals-cond-0": "==",
              "signals-val-0": true,
              "signals-icon-0": "/vis/signals/lowbattery.png",
              "signals-icon-size-0": 0,
              "signals-blink-0": false,
              "signals-horz-0": 0,
              "signals-vert-0": 0,
              "signals-hide-edit-0": false,
              "signals-cond-1": "==",
              "signals-val-1": true,
              "signals-icon-1": "/vis/signals/lowbattery.png",
              "signals-icon-size-1": 0,
              "signals-blink-1": false,
              "signals-horz-1": 0,
              "signals-vert-1": 0,
              "signals-hide-edit-1": false,
              "signals-cond-2": "==",
              "signals-val-2": true,
              "signals-icon-2": "/vis/signals/lowbattery.png",
              "signals-icon-size-2": 0,
              "signals-blink-2": false,
              "signals-horz-2": 0,
              "signals-vert-2": 0,
              "signals-hide-edit-2": false,
              "lc-type": "last-change",
              "lc-is-interval": true,
              "lc-is-moment": false,
              "lc-format": "",
              "lc-position-vert": "top",
              "lc-position-horz": "right",
              "lc-offset-vert": 0,
              "lc-offset-horz": 0,
              "lc-font-size": "12px",
              "lc-font-family": "",
              "lc-font-style": "",
              "lc-bkg-color": "",
              "lc-color": "",
              "lc-border-width": "0",
              "lc-border-style": "",
              "lc-border-color": "",
              "lc-border-radius": 10,
              "lc-zindex": 0,
              "inputLabelText": "Sortieren nach",
              "inputLabelColor": "#ffffff",
              "inputLabelFontFamily": "RobotoCondensed-LightItalic",
              "collapseIconColor": "#ffffff",
              "collapseIconSize": "",
              "jsonStringObject": "[\n\t{\n\t\t\"text\": \"Skriptname\",\n\t\t\"value\": \"name\",\n\t\t\"icon\": \"sort-alphabetical\"\n\t},\n\t{\n\t\t\"text\": \"letzte Änderung\",\n\t\t\"value\": \"lastChange\",\n\t\t\"icon\": \"clock-outline\"\n\t},\n\t{\n\t\t\"text\": \"Status\",\n\t\t\"value\": \"status\",\n\t\t\"icon\": \"information-variant\"\n\t},\n\t{\n\t\t\"text\": \"Ordner\",\n\t\t\"value\": \"folder\",\n\t\t\"icon\": \"folder\"\n\t}\t\n]",
              "listPositionOffset": true,
              "inputLayoutBackgroundColor": "transparent",
              "inputLabelColorSelected": "#ffffff",
              "inputTranslateX": "-15",
              "clearIcon": "",
              "inputLayoutBorderColorHover": "#ffffff",
              "inputLayoutBorderColorSelected": "#ffffff",
              "inputLayoutBorderColor": "#a1a1a1",
              "listItemFontColor": "",
              "inputTextColor": "#ffffff",
              "inputTextFontFamily": "RobotoCondensed-LightItalic",
              "prepandIcon": "",
              "prepandIconColor": "",
              "prepandIconSize": "",
              "prepandInnerIcon": "",
              "prepandInnerIconColor": "#ffffff",
              "prepandInnerIconSize": "18",
              "collapseIcon": "",
              "inputTranslateY": "-12",
              "listIconSelectedColor": "#44739e",
              "listIconColor": "",
              "appendOuterIcon": "",
              "appendOuterIconSize": "2",
              "listItemFont": "RobotoCondensed-Regular",
              "listItemRippleEffectColor": "",
              "inputLayoutBackgroundColorSelected": "",
              "inputLayoutBackgroundColorHover": ""
            },
            "style": {
              "left": "10px",
              "top": "0px",
              "z-index": "1",
              "width": "calc(50% - 20px)",
              "height": "40px"
            },
            "widgetSet": "materialdesign"
          },
          "e00004": {
            "tpl": "tplVis-materialdesign-Select",
            "data": {
              "oid": "0_userdata.0.vis.SkriptStatus.filterMode",
              "g_fixed": false,
              "g_visibility": false,
              "g_css_font_text": false,
              "g_css_background": false,
              "g_css_shadow_padding": false,
              "g_css_border": false,
              "g_gestures": false,
              "g_signals": false,
              "g_last_change": false,
              "visibility-cond": "==",
              "visibility-val": 1,
              "visibility-groups-action": "hide",
              "inputType": "text",
              "inputLayout": "regular",
              "showInputMessageAlways": "true",
              "showInputCounter": false,
              "clearIconShow": true,
              "listDataMethod": "jsonStringObject",
              "countSelectItems": "1",
              "listPosition": "bottom",
              "showSelectedIcon": "prepend-inner",
              "showValue": false,
              "signals-cond-0": "==",
              "signals-val-0": true,
              "signals-icon-0": "/vis/signals/lowbattery.png",
              "signals-icon-size-0": 0,
              "signals-blink-0": false,
              "signals-horz-0": 0,
              "signals-vert-0": 0,
              "signals-hide-edit-0": false,
              "signals-cond-1": "==",
              "signals-val-1": true,
              "signals-icon-1": "/vis/signals/lowbattery.png",
              "signals-icon-size-1": 0,
              "signals-blink-1": false,
              "signals-horz-1": 0,
              "signals-vert-1": 0,
              "signals-hide-edit-1": false,
              "signals-cond-2": "==",
              "signals-val-2": true,
              "signals-icon-2": "/vis/signals/lowbattery.png",
              "signals-icon-size-2": 0,
              "signals-blink-2": false,
              "signals-horz-2": 0,
              "signals-vert-2": 0,
              "signals-hide-edit-2": false,
              "lc-type": "last-change",
              "lc-is-interval": true,
              "lc-is-moment": false,
              "lc-format": "",
              "lc-position-vert": "top",
              "lc-position-horz": "right",
              "lc-offset-vert": 0,
              "lc-offset-horz": 0,
              "lc-font-size": "12px",
              "lc-font-family": "",
              "lc-font-style": "",
              "lc-bkg-color": "",
              "lc-color": "",
              "lc-border-width": "0",
              "lc-border-style": "",
              "lc-border-color": "",
              "lc-border-radius": 10,
              "lc-zindex": 0,
              "inputLabelText": "Filtern nach",
              "inputLabelColor": "#ffffff",
              "inputLabelFontFamily": "RobotoCondensed-LightItalic",
              "collapseIconColor": "#ffffff",
              "collapseIconSize": "",
              "jsonStringObject": "[\n\t{\n\t\t\"text\": \"Fehler\",\n\t\t\"value\": \"error\",\n\t\t\"icon\": \"alert-box-outline\"\n\t},\n\t{\n\t\t\"text\": \"deaktiviert\",\n\t\t\"value\": \"deactivated\",\n\t\t\"icon\": \"checkbox-blank-outline\"\n\t},\t\n\t{\n\t\t\"text\": \"aktiviert\",\n\t\t\"value\": \"activated\",\n\t\t\"icon\": \"checkbox-intermediate\"\n\t}\n]",
              "listPositionOffset": true,
              "inputLayoutBackgroundColor": "transparent",
              "inputLabelColorSelected": "#ffffff",
              "inputTranslateX": "-15",
              "clearIcon": "",
              "inputLayoutBorderColorHover": "#ffffff",
              "inputLayoutBorderColorSelected": "#ffffff",
              "inputLayoutBorderColor": "#a1a1a1",
              "listItemFontColor": "",
              "inputTextColor": "#ffffff",
              "inputTextFontFamily": "RobotoCondensed-LightItalic",
              "prepandIcon": "",
              "prepandIconColor": "",
              "prepandIconSize": "",
              "prepandInnerIcon": "",
              "prepandInnerIconColor": "#ffffff",
              "prepandInnerIconSize": "18",
              "collapseIcon": "",
              "inputTranslateY": "-12",
              "listIconSelectedColor": "#44739e",
              "listIconColor": "",
              "appendOuterIcon": "",
              "appendOuterIconSize": "2",
              "listItemFont": "RobotoCondensed-Regular",
              "listItemRippleEffectColor": "",
              "inputLayoutBackgroundColorSelected": "",
              "inputLayoutBackgroundColorHover": "",
              "clearIconColor": "#ffffff"
            },
            "style": {
              "left": "calc(50% + 10px)",
              "top": "0px",
              "z-index": "1",
              "width": "calc(50% - 20px)",
              "height": "40px"
            },
            "widgetSet": "materialdesign"
          }
        },
        "name": "SkriptStatus",
        "filterList": []
      }
      

      Hier hab ich beschrieben, wie man das layout am besten einstellt:
      https://forum.iobroker.net/topic/30661/material-design-widgets-adapter-status/5

      Skript:

      const moment = require("moment");
      
      // Skript Einstellungen *************************************************************************************************************************************************
      
      let dpList = '0_userdata.0.vis.SkriptStatus.jsonList';                      // Datenpunkt für IconList Widget (Typ: Zeichenkette (String))
      let dpskriptRestart = '0_userdata.0.vis.SkriptStatus.restart';              // Datenpunkt für Skript restart (Typ: Zeichenkette (String))
      
      let dpSortMode = '0_userdata.0.vis.SkriptStatus.sortMode';                  // Datenpunkt für Sortieren (Typ: Zeichenkette (String))
      let dpFilterMode = '0_userdata.0.vis.SkriptStatus.filterMode';              // Datenpunkt für Filter (Typ: Zeichenkette (String))
      
      const checkInterval = 30;                                                   // Interval wie oft Status der Skripte aktualisiert werden soll (in Sekunden)
      
      let sprache = 'de';                                                         // Sprache für formatierung letzte Änderung
      let formatierungLastChange = "ddd DD.MM - HH:mm";                           // Formatierung letzte Änderung -> siehe momentjs library
      
      let neustarten = true;                                                      // true: Skript wird neugestartet, false: Skript wird gestoppt oder gestartet
      
      let farbeSkriptAktiv = 'green';                                             // Status Bar Farbe wenn Skript aktiv ist
      let farbeSkriptDeaktiviert = 'darkgrey';                                    // Status Bar Farbe wenn Skript deaktiviert ist
      let farbeSkriptProblem = 'FireBrick';                                       // Status Bar Farbe wenn Skript Problem hat
      
      let sortResetAfter = 120;                                                   // Sortierung nach X Sekunden auf sortReset zurücksetzen (0=deaktiviert)
      let sortReset = 'name'                                                      // Sortierung auf die zurückgesetzt werden soll
      
      let filterResetAfter = 120;                                                 // Filter nach X Sekunden zurücksetzen (0=deaktiviert)
      
      // **********************************************************************************************************************************************************************
      
      // Fomate für moment Lib
      moment.locale(sprache);
      
      // auf Änderungen aktiver Skripts hören
      let enableSelector = `[id=javascript.*.scriptEnabled.*]`;
      let skriptEnableList = $(enableSelector);
      if (skriptEnableList.length === 0) {
          // Fehlermeldung ausgeben, wenn selector kein result liefert
          console.error(`no result for selector '${enableSelector}'`)
      } else {
          // listener nur für Änderung bei alive
          skriptEnableList.on(skriptStatus);
      }
      
      // auf Änderungen Skripts mit Problemen hören
      let problemSelector = `[id=javascript.*.scriptProblem.*]`;
      let skriptProblemList = $(problemSelector);
      if (skriptProblemList.length === 0) {
          // Fehlermeldung ausgeben, wenn selector kein result liefert
          console.error(`no result for selector '${problemSelector}'`)
      } else {
          // listener nur für Änderung bei alive
          skriptProblemList.on(skriptStatus);
      }
      
      
      // auf Änderungen der Sortieung hören
      on({ id: dpSortMode, change: 'any' }, skriptStatus);
      on({ id: dpSortMode, change: 'any' }, resetSort);
      
      // auf Änderungen der Filter hören
      on({ id: dpFilterMode, change: 'any' }, skriptStatus);
      on({ id: dpFilterMode, change: 'any' }, resetFilter);
      
      
      // Funktion adapterStatus alle x Sekunden ausführen
      schedule('*/' + checkInterval + ' * * * * *', skriptStatus);
      
      function skriptStatus() {
          try {
              skriptList = [];
      
              for (var i = 0; i <= skriptEnableList.length - 1; i++) {
                  let id = skriptEnableList[i];
                  let obj = getObject(id);
      
                  let scriptObj = undefined;
                  let scriptName = '';
                  let engineType = '';
                  let lastChangeText = '';
                  let lastChange = 0;
                  let image = 'image-off-outline';
                  let imageColor = '';
                  let statusBarColor = farbeSkriptDeaktiviert;
                  let status = 1;
      
      
                  if (obj && obj !== null && obj.native && obj.native.script) {
                      scriptObj = getObject(obj.native.script);
      
                      if (scriptObj && scriptObj.common) {
                          if (scriptObj.common.name) {
                              scriptName = scriptObj.common.name;
                          }
      
                          if (scriptObj.common.engineType) {
                              engineType = scriptObj.common.engineType.replace('/js', '').replace('/ts', '');
      
                              if (engineType.toLowerCase() === 'Javascript'.toLowerCase()) {
                                  image = 'language-javascript';
                                  imageColor = '#ffca28';
                              } else if (engineType.toLowerCase() === 'TypeScript'.toLowerCase()) {
                                  image = 'language-typescript';
                                  imageColor = '#007acc';
                              } else if (engineType.toLowerCase() === 'Blockly'.toLowerCase()) {
                                  image = 'puzzle';
                                  imageColor = '#5a80a6';
                              }
                          }
      
                          if (scriptObj.ts) {
                              lastChange = scriptObj.ts;
                              lastChangeText = moment(scriptObj.ts).format(formatierungLastChange);
                          }
      
                          if (scriptObj.common.enabled) {
                              statusBarColor = farbeSkriptAktiv;
                              status = 0;
                          }
      
                          if (myHelper().getStateValueIfExist(id) === 'true') {
                              statusBarColor = farbeSkriptAktiv;
                              status = 0;
                          }
      
                          if (myHelper().getStateValueIfExist(id.replace('.scriptEnabled.', '.scriptProblem.'), false) === 'true') {
                              statusBarColor = farbeSkriptProblem;
                              status = 2;
                          }
      
                          let folder = '-';
                          let folderList = id.replace('javascript.0.scriptEnabled.').split(".");
                          if (folderList.length > 1) {
                              folder = id.replace('javascript.0.scriptEnabled.', '').replace('.' + folderList[folderList.length - 1], '');
                          }
      
                          let text = scriptName;
                          if (status === 2) {
                              text = `<span class="mdi mdi-alert-box-outline" style="color: #ec0909;"></span> ${scriptName}`
                          }
      
                          let subText = `<div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px; align-items: center;">
                                              <div style="flex: 1;">Sprache</div>
                                              <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic; text-align: right;">${engineType}</div>
                                          </div>
                                          <div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px; align-items: center;">
                                              <div style="flex: 1;">letzte Änderung</div>
                                              <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic; text-align: right;">${lastChangeText}</div>
                                          </div>
                                          <div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px;">
                                              <div style="flex: 1;">Ordner</div>
                                              <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic; text-overflow: ellipsis; white-space: normal; text-align: right;">${folder}</div>
                                          </div>`
      
                          skriptList.push({
                              text: text,
                              subText: subText,
                              statusBarColor: statusBarColor,
                              image: image,
                              imageColor: imageColor,
                              listType: "buttonState",
                              objectId: dpskriptRestart,
                              buttonStateValue: (obj && obj !== null && obj.native && obj.native.script) ? obj.native.script : '',
                              showValueLabel: false,
                              name: scriptName,
                              lastChange: lastChange,
                              status: status,
                              folder: folder
                          });
                      }
                  }
              }
      
              let sortMode = myHelper().getStateValueIfExist(dpSortMode, 'name');
      
              if (sortMode === 'name') {
                  skriptList.sort(function (a, b) {
                      return a[sortMode].toLowerCase() == b[sortMode].toLowerCase() ? 0 : +(a[sortMode].toLowerCase() > b[sortMode].toLowerCase()) || -1;
                  });
              } else if (sortMode === 'lastChange' || sortMode === 'status' || sortMode === 'folder') {
                  skriptList.sort(function (a, b) {
                      return a[sortMode] == b[sortMode] ? 0 : +(a[sortMode] < b[sortMode]) || -1;
                  });
              } else {
                  // default: nach name sortieren
                  sortMode = 'name'
                  skriptList.sort(function (a, b) {
                      return a[sortMode].toLowerCase() == b[sortMode].toLowerCase() ? 0 : +(a[sortMode].toLowerCase() > b[sortMode].toLowerCase()) || -1;
                  });
              }
      
      
              let filterMode = myHelper().getStateValueIfExist(dpFilterMode, null);
      
              if (filterMode && filterMode !== null && filterMode !== '') {
                  if (filterMode === 'error') {
                      skriptList = skriptList.filter(function (item) {
                          return item.status === 2;
                      });
                  } else if (filterMode === 'deactivated') {
                      skriptList = skriptList.filter(function (item) {
                          return item.status === 1;
                      });
                  } else if (filterMode === 'activated') {
                      skriptList = skriptList.filter(function (item) {
                          return item.status === 0;
                      });
                  }
              }
      
      
              let result = JSON.stringify(skriptList);
              if (existsState(dpList) && getState(dpList).val !== result) {
                  setState(dpList, result, true);
              } else {
                  setState(dpList, result, true);
              }
      
          } catch (err) {
              console.error(`[skriptStatus] error: ${err.message}, stack: ${err.stack}`);
          }
      }
      
      
      // // Funktion um Skript starten / Stoppen
      on({ id: dpskriptRestart }, function (obj) {
          var scriptObj = getObject(obj.state.val.toString());
      
          if (neustarten) {
              scriptObj.common.enabled = true;
              setObject(obj.state.val.toString(), scriptObj);
          }
          else {
              if (scriptObj && scriptObj.common) {
      
                  if (scriptObj.common.enabled) {
                      scriptObj.common.enabled = false;
                  } else {
                      scriptObj.common.enabled = true;
                  }
      
                  setObject(obj.state.val.toString(), scriptObj);
              }
          }
      });
      
      function resetSort() {
          let sortMode = myHelper().getStateValueIfExist(dpSortMode, null);
      
          if (sortResetAfter > 0) {
              setTimeout(function () {
                  if (sortMode !== null && sortMode === myHelper().getStateValueIfExist(dpSortMode, null)) {
                      setState(dpSortMode, sortReset);
                  }
              }, sortResetAfter * 1000);
          }
      }
      
      function resetFilter() {
          let filterMode = myHelper().getStateValueIfExist(dpFilterMode, null);
      
          if (filterResetAfter > 0) {
              setTimeout(function () {
                  if (filterMode !== null && filterMode === myHelper().getStateValueIfExist(dpFilterMode, null)) {
                      setState(dpFilterMode, '');
                  }
              }, filterResetAfter * 1000);
          }
      }
      
      // Beim Staren des Skriptes Adapter Status abrufen
      skriptStatus();
      
      function myHelper() {
          return {
              getStateValueIfExist: function (id, nullValue = undefined, prepand = '', append = '') {
                  if (existsState(id)) {
                      return prepand + getState(id).val + append;
                  } else {
                      return nullValue;
                  }
              },
              getCommonPropertyIfExist: function (object, prop, nullValue = undefined, prepand = '', append = '') {
                  if (myHelper().checkCommonPropertyExist(object, prop)) {
                      return prepand + object.common[prop] + append;
                  } else {
                      return nullValue;
                  }
              },
              checkCommonPropertyExist: function (object, prop) {
                  if (object && object.common && object.common[prop]) {
                      return true;
                  } else {
                      return false;
                  }
              }
          }
      }
      

      Benötigte libraries & Einstellungen im Javascript Adapter:
      6222b915-4e9e-4025-98ec-0baedcaed5b1-grafik.png

      sigi234 ub.privat D3ltoroxp Gargano 4 Replies Last reply Reply Quote 6
      • Negalein
        Negalein Global Moderator last edited by

        Danke für das Script.

        läuft so perfekt wie die Adapterliste!

        vis (41).png

        1 Reply Last reply Reply Quote 0
        • sigi234
          sigi234 Forum Testing Most Active @Scrounger last edited by sigi234

          @Scrounger

          Wie kann ich die Schriftgröße vom Adaptername ändern?

          Erledigt.

          1 Reply Last reply Reply Quote 0
          • ub.privat
            ub.privat @Scrounger last edited by ub.privat

            @Scrounger

            Hallo Scrounger,

            in der javasript-Adaptereinstellung, ist der Dateipfad "Spiegeln von Scripten in Dateipfad" willkürlich gewählt? (D:\iobroker\devBroker\scripts)
            Oder ist es ein fest definiert Pfad? Auf meinem RP4 ist dieser nicht vorhanden.
            Er ist sicherlich anzulegen???

            Daher kommt bestimmt auch meine Warnmeldung im Script:

            3.3.2020, 19:09:30.235	[warn ]: javascript.0 (13979)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:211:13)
            3.3.2020, 19:09:30.240	[warn ]: javascript.0 (13979)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:212:13)
            3.3.2020, 19:09:41.022	[info ]: javascript.0 (13979) Stop script script.js.ScriptStatus_MaterialDesignWidget
            3.3.2020, 19:09:41.175	[info ]: javascript.0 (13979) Start javascript script.js.ScriptStatus_MaterialDesignWidget
            3.3.2020, 19:09:41.217	[warn ]: javascript.0 (13979)     at skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:211:13)
            3.3.2020, 19:09:41.217	[warn ]: javascript.0 (13979)     at script.js.ScriptStatus_MaterialDesignWidget:268:1
            3.3.2020, 19:09:41.219	[warn ]: javascript.0 (13979)     at skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:212:13)
            3.3.2020, 19:09:41.219	[warn ]: javascript.0 (13979)     at script.js.ScriptStatus_MaterialDesignWidget:268:1
            3.3.2020, 19:09:41.219	[info ]: javascript.0 (13979) script.js.ScriptStatus_MaterialDesignWidget: registered 34 subscriptions and 1 schedule
            

            04af3732-20cc-4856-b391-08eec326d270-grafik.png

            Hoffe nicht, dass es wieder "Schreibfehler" sind... 🙄 😖

            Hier die DP's

            13504f39-cd78-4a9f-8505-9e7b71ccb570-grafik.png
            Leider ohne Werte????

            Scrounger Glasfaser 2 Replies Last reply Reply Quote 0
            • Scrounger
              Scrounger Developer @ub.privat last edited by

              @ub-privat
              Schreib Mal irgend einen Wert in dentanepumkt jsonList, dann müsste es gehen.

              ub.privat 1 Reply Last reply Reply Quote 0
              • ub.privat
                ub.privat @Scrounger last edited by ub.privat

                @Scrounger

                geschrieben und getan.
                Hab mal "100" eingetragen, ist ja irgendein Wert, aber so wirklich tut sich nichts. Leider...

                Scripte laufen aber:
                c3dacb8a-0320-4555-ad01-2ab462c05729-grafik.png

                Scrounger 1 Reply Last reply Reply Quote 0
                • Scrounger
                  Scrounger Developer @ub.privat last edited by

                  @ub-privat
                  Skript hast du danach neugestartet?

                  Glasfaser ub.privat 2 Replies Last reply Reply Quote 0
                  • Glasfaser
                    Glasfaser @Scrounger last edited by Glasfaser

                    @Scrounger

                    Leider bricht mein System zusammen , sobald ich das Skript starte .

                    Ein haufen Warnmeldungen kommen regelmäßig .. die Tabelle wird träge gefüllt
                    und wenn man im VIS EDITOR ist auf der View , bricht das System auch zusammen .
                    Das Umschalten ist auch sehr träge bzw . funktioniert nicht .

                    Habe schon alles versucht , finde aber kein Fehler .

                    Auszug :

                    1.JPG

                    Da kommen Ordner , die kenne ich gar nicht :

                    2.JPG

                    Hier nach Zeit x , aber danach ist nichts mehr möglich , muß das Skript stoppen !
                    .
                    4.JPG

                    Scrounger 1 Reply Last reply Reply Quote 0
                    • Scrounger
                      Scrounger Developer @Glasfaser last edited by Scrounger

                      @Glasfaser

                      Test mal bitte das skript:

                      const moment = require("moment");
                      
                      // Skript Einstellungen *************************************************************************************************************************************************
                      
                      let dpList = '0_userdata.0.vis.SkriptStatus.jsonList';                      // Datenpunkt für IconList Widget (Typ: Zeichenkette (String))
                      let dpskriptRestart = '0_userdata.0.vis.SkriptStatus.restart';              // Datenpunkt für Skript restart (Typ: Zeichenkette (String))
                      
                      let dpSortMode = '0_userdata.0.vis.SkriptStatus.sortMode';                  // Datenpunkt für Sortieren (Typ: Zeichenkette (String))
                      let dpFilterMode = '0_userdata.0.vis.SkriptStatus.filterMode';              // Datenpunkt für Filter (Typ: Zeichenkette (String))
                      
                      const checkInterval = 30;                                                   // Interval wie oft Status der Skripte aktualisiert werden soll (in Sekunden)
                      
                      let sprache = 'de';                                                         // Sprache für formatierung letzte Änderung
                      let formatierungLastChange = "ddd DD.MM - HH:mm";                           // Formatierung letzte Änderung -> siehe momentjs library
                      
                      let neustarten = true;                                                      // true: Skript wird neugestartet, false: Skript wird gestoppt oder gestartet
                      
                      let farbeSkriptAktiv = 'green';                                             // Status Bar Farbe wenn Skript aktiv ist
                      let farbeSkriptDeaktiviert = 'darkgrey';                                    // Status Bar Farbe wenn Skript deaktiviert ist
                      let farbeSkriptProblem = 'FireBrick';                                       // Status Bar Farbe wenn Skript Problem hat
                      
                      let sortResetAfter = 120;                                                   // Sortierung nach X Sekunden auf sortReset zurücksetzen (0=deaktiviert)
                      let sortReset = 'name'                                                      // Sortierung auf die zurückgesetzt werden soll
                      
                      let filterResetAfter = 120;                                                 // Filter nach X Sekunden zurücksetzen (0=deaktiviert)
                      
                      // **********************************************************************************************************************************************************************
                      
                      // Fomate für moment Lib
                      moment.locale(sprache);
                      
                      // auf Änderungen aktiver Skripts hören
                      let enableSelector = `[id=javascript.*.scriptEnabled.*]`;
                      let skriptEnableList = $(enableSelector);
                      if (skriptEnableList.length === 0) {
                          // Fehlermeldung ausgeben, wenn selector kein result liefert
                          console.error(`no result for selector '${enableSelector}'`)
                      } else {
                          // listener nur für Änderung bei alive
                          skriptEnableList.on(skriptStatus);
                      }
                      
                      // auf Änderungen Skripts mit Problemen hören
                      let problemSelector = `[id=javascript.*.scriptProblem.*]`;
                      let skriptProblemList = $(problemSelector);
                      if (skriptProblemList.length === 0) {
                          // Fehlermeldung ausgeben, wenn selector kein result liefert
                          console.error(`no result for selector '${problemSelector}'`)
                      } else {
                          // listener nur für Änderung bei alive
                          skriptProblemList.on(skriptStatus);
                      }
                      
                      
                      // auf Änderungen der Sortieung hören
                      on({ id: dpSortMode, change: 'any' }, skriptStatus);
                      on({ id: dpSortMode, change: 'any' }, resetSort);
                      
                      // auf Änderungen der Filter hören
                      on({ id: dpFilterMode, change: 'any' }, skriptStatus);
                      on({ id: dpFilterMode, change: 'any' }, resetFilter);
                      
                      
                      // Funktion adapterStatus alle x Sekunden ausführen
                      schedule('*/' + checkInterval + ' * * * * *', skriptStatus);
                      
                      function skriptStatus() {
                          try {
                              skriptList = [];
                      
                              for (var i = 0; i <= skriptEnableList.length - 1; i++) {
                                  let id = skriptEnableList[i];
                                  let obj = getObject(id);
                      
                                  let scriptObj = undefined;
                                  let scriptName = '';
                                  let engineType = '';
                                  let lastChangeText = '';
                                  let lastChange = 0;
                                  let image = 'image-off-outline';
                                  let imageColor = '';
                                  let statusBarColor = farbeSkriptDeaktiviert;
                                  let status = 1;
                      
                      
                                  if (obj && obj !== null && obj.native && obj.native.script) {
                                      scriptObj = getObject(obj.native.script);
                      
                                      if (scriptObj && scriptObj.common) {
                                          if (scriptObj.common.name) {
                                              scriptName = scriptObj.common.name;
                                          }
                      
                                          if (scriptObj.common.engineType) {
                                              engineType = scriptObj.common.engineType.replace('/js', '').replace('/ts', '');
                      
                                              if (engineType.toLowerCase() === 'Javascript'.toLowerCase()) {
                                                  image = 'language-javascript';
                                                  imageColor = '#ffca28';
                                              } else if (engineType.toLowerCase() === 'TypeScript'.toLowerCase()) {
                                                  image = 'language-typescript';
                                                  imageColor = '#007acc';
                                              } else if (engineType.toLowerCase() === 'Blockly'.toLowerCase()) {
                                                  image = 'puzzle';
                                                  imageColor = '#5a80a6';
                                              }
                                          }
                      
                                          if (scriptObj.ts) {
                                              lastChange = scriptObj.ts;
                                              lastChangeText = moment(scriptObj.ts).format(formatierungLastChange);
                                          }
                      
                                          if (scriptObj.common.enabled) {
                                              statusBarColor = farbeSkriptAktiv;
                                              status = 0;
                                          }
                      
                                          if (myHelper().getStateValueIfExist(id) === 'true') {
                                              statusBarColor = farbeSkriptAktiv;
                                              status = 0;
                                          }
                              
                                          if (myHelper().getStateValueIfExist(id.replace('.scriptEnabled.', '.scriptProblem.'), false) === 'true') {
                                              statusBarColor = farbeSkriptProblem;
                                              status = 2;
                                          }
                              
                                          let folder = '-';
                                          let folderList = id.replace('javascript.0.scriptEnabled.').split(".");
                                          if (folderList.length > 1) {
                                              folder = id.replace('javascript.0.scriptEnabled.', '').replace('.' + folderList[folderList.length - 1], '');
                                          }
                              
                                          let text = scriptName;
                                          if (status === 2) {
                                              text = `<span class="mdi mdi-alert-box-outline" style="color: #ec0909;"></span> ${scriptName}`
                                          }
                              
                                          let subText = `<div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px; align-items: center;">
                                                              <div style="flex: 1;">Sprache</div>
                                                              <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic; text-align: right;">${engineType}</div>
                                                          </div>
                                                          <div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px; align-items: center;">
                                                              <div style="flex: 1;">letzte Änderung</div>
                                                              <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic; text-align: right;">${lastChangeText}</div>
                                                          </div>
                                                          <div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px;">
                                                              <div style="flex: 1;">Ordner</div>
                                                              <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic; text-overflow: ellipsis; white-space: normal; text-align: right;">${folder}</div>
                                                          </div>`
                              
                                          skriptList.push({
                                              text: text,
                                              subText: subText,
                                              statusBarColor: statusBarColor,
                                              image: image,
                                              imageColor: imageColor,
                                              listType: "buttonState",
                                              objectId: dpskriptRestart,
                                              buttonStateValue: (obj && obj !== null && obj.native && obj.native.script) ? obj.native.script : '',
                                              showValueLabel: false,
                                              name: scriptName,
                                              lastChange: lastChange,
                                              status: status,
                                              folder: folder
                                          });
                                      }
                                  }
                              }
                      
                              let sortMode = myHelper().getStateValueIfExist(dpSortMode, 'name');
                      
                              if (sortMode === 'name') {
                                  skriptList.sort(function (a, b) {
                                      return a[sortMode].toLowerCase() == b[sortMode].toLowerCase() ? 0 : +(a[sortMode].toLowerCase() > b[sortMode].toLowerCase()) || -1;
                                  });
                              } else if (sortMode === 'lastChange' || sortMode === 'status' || sortMode === 'folder') {
                                  skriptList.sort(function (a, b) {
                                      return a[sortMode] == b[sortMode] ? 0 : +(a[sortMode] < b[sortMode]) || -1;
                                  });
                              } else {
                                  // default: nach name sortieren
                                  sortMode = 'name'
                                  skriptList.sort(function (a, b) {
                                      return a[sortMode].toLowerCase() == b[sortMode].toLowerCase() ? 0 : +(a[sortMode].toLowerCase() > b[sortMode].toLowerCase()) || -1;
                                  });
                              }
                      
                      
                              let filterMode = myHelper().getStateValueIfExist(dpFilterMode, null);
                      
                              if (filterMode && filterMode !== null && filterMode !== '') {
                                  if (filterMode === 'error') {
                                      skriptList = skriptList.filter(function (item) {
                                          return item.status === 2;
                                      });
                                  } else if (filterMode === 'deactivated') {
                                      skriptList = skriptList.filter(function (item) {
                                          return item.status === 1;
                                      });
                                  } else if (filterMode === 'activated') {
                                      skriptList = skriptList.filter(function (item) {
                                          return item.status === 0;
                                      });
                                  }
                              }
                      
                      
                              let result = JSON.stringify(skriptList);
                              if (getState(dpList) !== result) {
                                  setState(dpList, result, true);
                              }
                      
                          } catch (err) {
                              console.error(`[skriptStatus] error: ${err.message}, stack: ${err.stack}`);
                          }
                      }
                      
                      
                      // // Funktion um Skript starten / Stoppen
                      on({ id: dpskriptRestart }, function (obj) {
                          var scriptObj = getObject(obj.state.val.toString());
                      
                          if (neustarten) {
                              scriptObj.common.enabled = true;
                              setObject(obj.state.val.toString(), scriptObj);
                          }
                          else {
                              if (scriptObj && scriptObj.common) {
                      
                                  if (scriptObj.common.enabled) {
                                      scriptObj.common.enabled = false;
                                  } else {
                                      scriptObj.common.enabled = true;
                                  }
                      
                                  setObject(obj.state.val.toString(), scriptObj);
                              }
                          }
                      });
                      
                      function resetSort() {
                          let sortMode = myHelper().getStateValueIfExist(dpSortMode, null);
                      
                          if (sortResetAfter > 0) {
                              setTimeout(function () {
                                  if (sortMode !== null && sortMode === myHelper().getStateValueIfExist(dpSortMode, null)) {
                                      setState(dpSortMode, sortReset);
                                  }
                              }, sortResetAfter * 1000);
                          }
                      }
                      
                      function resetFilter() {
                          let filterMode = myHelper().getStateValueIfExist(dpFilterMode, null);
                      
                          if (filterResetAfter > 0) {
                              setTimeout(function () {
                                  if (filterMode !== null && filterMode === myHelper().getStateValueIfExist(dpFilterMode, null)) {
                                      setState(dpFilterMode, '');
                                  }
                              }, filterResetAfter * 1000);
                          }
                      }
                      
                      // Beim Staren des Skriptes Adapter Status abrufen
                      skriptStatus();
                      
                      function myHelper() {
                          return {
                              getStateValueIfExist: function (id, nullValue = undefined, prepand = '', append = '') {
                                  if (existsState(id)) {
                                      return prepand + getState(id).val + append;
                                  } else {
                                      return nullValue;
                                  }
                              },
                              getCommonPropertyIfExist: function (object, prop, nullValue = undefined, prepand = '', append = '') {
                                  if (myHelper().checkCommonPropertyExist(object, prop)) {
                                      return prepand + object.common[prop] + append;
                                  } else {
                                      return nullValue;
                                  }
                              },
                              checkCommonPropertyExist: function (object, prop) {
                                  if (object && object.common && object.common[prop]) {
                                      return true;
                                  } else {
                                      return false;
                                  }
                              }
                          }
                      }
                      
                      
                      Glasfaser 1 Reply Last reply Reply Quote 0
                      • Glasfaser
                        Glasfaser @Scrounger last edited by

                        @Scrounger
                        Keine Meldungen im LOG , aber genauso träge .. mußte gerade Neustarte .
                        Keine Ahnung was das ist , sonst funktionieren alle anderen Skripts von dir !!

                        Hier das Ergebnis , auf umschalten Reagiert es auch nicht .

                        1.JPG

                        2.JPG

                        1 Reply Last reply Reply Quote 0
                        • ub.privat
                          ub.privat @Scrounger last edited by ub.privat

                          @Scrounger

                          JA, habe ich. Probiere nochmal das Script, was Du @Glasfaser gesendet hast.

                          Wird nicht besser:

                          4.3.2020, 18:34:46.230	[info ]: javascript.0 (17282) Stop script script.js.ScriptStatus_MaterialDesignWidget
                          4.3.2020, 18:34:46.385	[info ]: javascript.0 (17282) Start javascript script.js.ScriptStatus_MaterialDesignWidget
                          4.3.2020, 18:34:46.485	[warn ]: javascript.0 (17282)     at skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:211:13)
                          4.3.2020, 18:34:46.486	[warn ]: javascript.0 (17282)     at script.js.ScriptStatus_MaterialDesignWidget:268:1
                          4.3.2020, 18:34:46.486	[warn ]: javascript.0 (17282)     at skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:212:13)
                          4.3.2020, 18:34:46.487	[warn ]: javascript.0 (17282)     at script.js.ScriptStatus_MaterialDesignWidget:268:1
                          4.3.2020, 18:34:46.487	[info ]: javascript.0 (17282) script.js.ScriptStatus_MaterialDesignWidget: registered 31 subscriptions and 1 schedule
                          4.3.2020, 18:35:00.020	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:211:13)
                          4.3.2020, 18:35:00.023	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:212:13)
                          4.3.2020, 18:35:30.330	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:211:13)
                          4.3.2020, 18:35:30.336	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:212:13)
                          4.3.2020, 18:36:00.062	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:211:13)
                          4.3.2020, 18:36:00.065	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:212:13)
                          4.3.2020, 18:36:30.223	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:211:13)
                          4.3.2020, 18:36:30.227	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:212:13)
                          4.3.2020, 18:37:00.080	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:211:13)
                          4.3.2020, 18:37:00.088	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:212:13)
                          4.3.2020, 18:37:30.314	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:211:13)
                          4.3.2020, 18:37:30.319	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:212:13)
                          4.3.2020, 18:38:00.039	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:211:13)
                          4.3.2020, 18:38:00.041	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:212:13)
                          4.3.2020, 18:38:30.248	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:211:13)
                          4.3.2020, 18:38:30.254	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:212:13)
                          4.3.2020, 18:39:00.044	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:211:13)
                          4.3.2020, 18:39:00.048	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:212:13)
                          4.3.2020, 18:39:30.330	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:211:13)
                          4.3.2020, 18:39:30.336	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:212:13)
                          4.3.2020, 18:40:00.047	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:211:13)
                          4.3.2020, 18:40:00.051	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:212:13)
                          4.3.2020, 18:40:30.276	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:211:13)
                          4.3.2020, 18:40:30.282	[warn ]: javascript.0 (17282)     at Object.skriptStatus (script.js.ScriptStatus_MaterialDesignWidget:212:13)
                          

                          Trage ich in den DP jsonList einen beliebigen Wert ein, dann geht im Widget die Fehlermeldung weg. Jedoch keine Spur von Scriptanzeige im View....
                          a2c4d479-1d4c-48c5-87fb-c4106c3516ea-grafik.png

                          1 Reply Last reply Reply Quote 0
                          • Glasfaser
                            Glasfaser @ub.privat last edited by Glasfaser

                            @ub-privat

                            Hier die DP's

                            13504f39-cd78-4a9f-8505-9e7b71ccb570-grafik.png
                            Leider ohne Werte????

                            deine Datenpunkte bei "Script" mit c geschrieben

                            0_userdata.0.vis.ScriptStatus.
                            

                            die vom Scrounger Skript sind mit k geschrieben :

                            0_userdata.0.vis.SkriptStatus.
                            

                            Hast du es auch im Skript geändert !!?

                            ub.privat 1 Reply Last reply Reply Quote 0
                            • Scrounger
                              Scrounger Developer last edited by Scrounger

                              Hab noch einen kleinen Fehler gefunden und das skript in Post 1 aktualisiert.

                              @ub-privat
                              Laut Fehlermeldung gibt es den Datenpunkt nicht, prüf nochmal die DPs im Skript, so wie @Glasfaser schreibt.

                              Glasfaser 1 Reply Last reply Reply Quote 0
                              • Glasfaser
                                Glasfaser @Scrounger last edited by

                                @Scrounger

                                Das neue Skript eingefügt und gestartet .

                                Wieder LOG Warnmeldungen und der Javascript Adapter bricht zusammen .

                                Dann startet der Javascript neu und das LOG wird von Warnmeldungen überflutet !!

                                muß das Skript stoppen sonst läuft mein System nicht mehr .

                                1.JPG

                                Scrounger 1 Reply Last reply Reply Quote 0
                                • Scrounger
                                  Scrounger Developer @Glasfaser last edited by Scrounger

                                  @Glasfaser

                                  Prüf mal ob die Skripte die in den Warn Meldungen stehen überhaupt existieren.
                                  Hatte auch mal so ein Problem, dass in der objects.json noch alte skripte existierten.

                                  Lösung dafür wäre, die skripte mit exakt dem gleichen namen im gleichen Ordner nochmal zu erstellen, starten und dann löschen. Anschließend den Javascript Adapter neustarten.

                                  Glasfaser 2 Replies Last reply Reply Quote 0
                                  • Glasfaser
                                    Glasfaser @Scrounger last edited by

                                    @Scrounger

                                    Danke ..... 🤔

                                    Jipp... 320 Script Leichen 😕

                                    Habe ein Thread aufgemacht , da sie nicht gelöscht werden können .

                                    Script Leichen in objects.json können nicht gelöscht werden

                                    1 Reply Last reply Reply Quote 0
                                    • ub.privat
                                      ub.privat @Glasfaser last edited by

                                      @Glasfaser
                                      @Scrounger

                                      Jupps, das wars! Und schon wieder hat ein kleines "c" so eine Auswirkung...

                                      DANKE!!!👍 👍

                                      1 Reply Last reply Reply Quote 0
                                      • Glasfaser
                                        Glasfaser @Scrounger last edited by Glasfaser

                                        @Scrounger

                                        So alle 320 Script Leichen sind weg ...

                                        Ich habe das aktuelle Skript vom 04.03 genommen .

                                        So sieht es dann aus , es Fehler viele Werte bzw. Karte hinter Karte aufgebaut in der Ansicht :

                                        1.JPG

                                        Keine Fehlermeldung in LOG , er aktualisiert auch alle Datenpunkte

                                        O Scrounger 2 Replies Last reply Reply Quote 0
                                        • O
                                          Oli @Glasfaser last edited by

                                          @Glasfaser

                                          da sind die Namen von den Scripten zu lang, war bei mir auch, Namen ändern, oder kleinere Schriftgröße sollte helfen.

                                          1 Reply Last reply Reply Quote 1
                                          • Scrounger
                                            Scrounger Developer @Glasfaser last edited by

                                            @Glasfaser sagte in Material Design Widgets: Skript Status:

                                            @Scrounger

                                            So alle 320 Script Leichen sind weg ...

                                            Ich habe das aktuelle Skript vom 04.03 genommen .

                                            So sieht es dann aus , es Fehler viele Werte bzw. Karte hinter Karte aufgebaut in der Ansicht :

                                            1.JPG

                                            Keine Fehlermeldung in LOG , er aktualisiert auch alle Datenpunkte

                                            Hier hab ich beschrieben, wie man das layout am besten einstellt:
                                            https://forum.iobroker.net/topic/30661/material-design-widgets-adapter-status/6

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            991
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            adapter iconlist material design widgets statusanzeige view view adapter vis
                                            13
                                            56
                                            10119
                                            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