Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. View Adapter Status

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.3k

View Adapter Status

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
view adapterview
212 Beiträge 31 Kommentatoren 37.0k Aufrufe 52 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • ScroungerS Scrounger

    @Glasfaser
    Das dropdown wird hinter dem popup nach dem öffnen angezeigt.
    Bin mir sicher das des ein z-index thema ist.

    Bei mir gehts, auch mit ContainerIconDialog

    AdapterStatus_popup.gif

    GlasfaserG Offline
    GlasfaserG Offline
    Glasfaser
    schrieb am zuletzt editiert von
    #156

    @Scrounger

    Danke ... dein Popup Video hat mich gerade darauf gebracht ...

    Ich habe ein anderes Design von Material Design CSS V1 ,
    dort ist mir gerade aufgefallen , das im Skript der Fehler liegt , da wenn ich es entferne dann wird der Select-Widget richtig geöffnet .

    1.JPG

    Habe mal zum Test das neue Material Design CSS V2 Skript eingefügt , dort ist der Fehler auch

    Hast du eine Idee wo der Fehler sein könnte ??
    .
    SKRIPT :

    /* -----
      Material Design JS for ioBroker.vis
      (c) 2017 Uhula, MIT License
      https://github.com/Uhula/ioBroker-Material-Design-Style
      V1.7 28.12.2017
      o Korrektur mdui-lnav/rnav. Funktionierte mit mdui-toggle nicht korrekt  
      V1.6 16.10.2017 
      O _toggleFullscreen geändert, damit die function auch im ioBroker
                      fullscreen Mode funktioniert
      o Delegator-Eventhandler für body gesetzt (bisher #vis_container, wirkten dann aber in Dialogen nicht)
      V1.5 11.10.2017 
      o MDUI.handleTables fertig
      V1.3 24.09.2017 
      + MDUI.handleTables hinzu (in Entwicklung)
      V1.0 01.09.2017
      ----- */
    
    // Zur sicheren CSS-Erkennung der Runtime eine CSS-Klasse anlegen
    document.documentElement.className +=  " mdui-runtime";
    
    // Überprüfen ob touch zur Verfügung steht und entsprechend eine 
    // CSS Klasse touch bzw no-touch erzeugen 
    document.documentElement.className += 
       (("ontouchstart" in document.documentElement) ? " mdui-touch" : " mdui-notouch");
    
    
    /* -----
      MDUI
      ----- 
      Sammlung von JS-Funktionen für das Material Design
      (c) 2017 Uhula, MIT License
    */
    
    var MDUI = (function () {
    
    
    var isSubtreeModified = false;
    
    // liefert den suffix einer gegeben class zurück-Navigieren
    // Bsp: mdui-target-w00002 -> w00002
    //      mdui-zoom-to-200 -> 200
    function _getClassSuffix( $ele, classname ) {
       var suf = "";
       if ($ele) {
           var c = $ele.attr( "class" );
           suf = c.substr(c.indexOf(classname)+classname.length,1000)+" ";
           suf = suf.substr(0,suf.indexOf(" "));
       }
       return suf;    
    }
    
    //
    function _getGroupID( ele ) { return _getClassSuffix(ele, "mdui-group-" ); }
    //
    function _getTargetID( ele ) { return _getClassSuffix(ele, "mdui-target-" ); }
    
    //
    function _getScrollbarWidth() {
       var $outer = $('<div>').css({visibility: 'hidden', width: 100, overflow: 'scroll'}).appendTo('body'),
           widthWithScroll = $('<div>').css({width: '100%'}).appendTo($outer).outerWidth();
       $outer.remove();
       return 100 - widthWithScroll;
    }
    //
    function _getScrollbarHeight() {
       var $outer = $('<div>').css({visibility: 'hidden', height: 100, overflow: 'scroll'}).appendTo('body'),
           heightWithScroll = $('<div>').css({height: '100%'}).appendTo($outer).outerHeight();
       $outer.remove();
       return 100 - heightWithScroll;
    }
    
    function _formatDatetime(date, format) {
       function fill(comp) {
           return ((parseInt(comp) < 10) ? ('0' + comp) : comp)
       }
           
       var months = ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'];
       var d = format;
       var o = {
               "y+": date.getFullYear(), // year
               "m+": fill(date.getMonth()+1), //month
               "M+": months[date.getMonth()], //month
               "d+": fill(date.getDate()), //day
               "H+": fill((date.getHours() > 12) ? date.getHours() % 12 : date.getHours()), //hour
               "h+": fill(date.getHours()), //hour
               "n+": fill(date.getMinutes()), //minute
               "s+": fill(date.getSeconds()), //second
               "S+": fill(date.getMilliseconds()), //millisecond,
               "b+": (date.getHours() >= 12) ? 'PM' : 'AM'
           };
       for (var k in o) {
           if (new RegExp("(" + k + ")").test(format)) {
               d = d.replace(RegExp.$1, o[k]);
           }
       }
       return d;
    }
    
    
    
    // alle Elemente mit class "mdui-group-XXX" togglen, in denen 
    // XXX aus class "mdui-group-XXX" des ele ist UND
    // alle Elemente mit class "mdui-target-XXX" togglen, in denen 
    // XXX aus class "mdui-target-XXX" des ele ist
    function _toggleVisibility( $ele ) {
       $ele.toggleClass("ui-state-active");
       var id = _getGroupID( $ele );
       if (id!=="") 
           $("[class*='mdui-group-"+id+"']").not("[class*='mdui-toggle']").each( function (index) {
               $(this).toggleClass("mdui-hide");
           });    
       id = _getTargetID( $ele );
       if (id!=="") 
           $( "[class*='mdui-target-"+id+"']").not("[class*='mdui-toggle']").each( function (index) {
               $(this).toggleClass("mdui-hide");
           });
    }
    
    // das in ele class \"mdui-target-XXX\" angegeben Element mit der id \"XXX\"  wird 
    // - fullscreen angezeigt, wenn es noch nicht fullscreen ist
    // - wieder normal angezeigt, wenn es fullscreen ist
    function _toggleFullscreen( $ele ){
       if (!$ele) return;
       var $target = $ele.closest(".vis-view");
       if (!$target) return;
       var styleold = $target.attr("styleold");
       if (styleold) {
           $target.attr("style",styleold);
           $target.removeAttr("styleold");
           $target.appendTo(".mdui-id-"+$target.attr("id"));
           } else {
               $target.parent().addClass("mdui-id-"+$target.attr("id"));
               $target.attr("styleold",$target.attr("style"));
               $target.attr("style","position:fixed; left:0; top:0; width:100%; height:100%; z-index: 2147483647 !important;background:#212121 !important; ");
               $target.appendTo( "body" );
               //$target.appendTo( "body #vis_container" );
               }
    }
    
    
    // ele muss class Einträge für das Target und den Skalierungsmodus haben
    // "mdui-target-(id) mdui-scale-(scalemode)" 
    // id: Ziel-Element mit id=id, welches ein zu skalierendes img enthält
    // scalemode: fit / hfit / vfit / in / out / (number)
    // number: Zahl in %
    function _scale( ele ) {
       var id = _getTargetID( ele );
       var $img = $( "#"+id+" img" );
       if ($img) {
           var scale = _getClassSuffix(ele, "mdui-scale-" );
           $img.width("1px"); // Scrollbars entfernen um die echte Höhe zu bekommen
           $img.height("1px");
           var dim = {
               pw : $img.parent().width(), 
               ph : $img.parent().height(), 
               w  : $img[0].naturalWidth, 
               h  : $img[0].naturalHeight
           };
           switch(scale) {
               case "fit":
                   if (dim.pw / dim.w < dim.ph / dim.h ) scale = dim.pw / dim.w;  
                   else scale = dim.ph / dim.h;
                   break;
               case "hfit":
                   if (dim.pw / dim.w < dim.ph / dim.h ) scale = dim.pw / dim.w;
                   else scale = (dim.pw - _getScrollbarWidth() - 4  ) / dim.w;
                   break;
               case "vfit":
                   if ( dim.pw / dim.w > dim.ph / dim.h ) scale = dim.ph / dim.h;
                   else scale = (dim.ph - _getScrollbarHeight() - 4  ) / dim.h;
                   break;
               case "in":
               case "out":
                   var old = $img.attr( "style" );
                   old = old.substr(old.indexOf("scale(")+6,20);  
                   old = old.substr(0,old.indexOf(")"));  
                   if (old * 1==0) scale = 1;
                   else if (scale=="in") scale = old * 1.41;
                        else scale = old / 1.41;
                   break;
               default:
                   if (scale<=0 || scale>10000)
                       scale = 100;
                   scale = scale/100;
           }
           scale = Math.round(scale*100)/100;
           $img.attr( "style", "position:absolute;top:0;left:0;transform-origin:0 0;transition: transform 0.3s ease-out; transform:scale("+scale+");" );
           }
    }
    
    // ersetzt im src-Attribute des Unter-Elements von (id) den "&range=& 
    // durch den Wert des in ele angegebenen (span). Für flot-Diagramme
    // "mdui-target-(id) mdui-timespan-(span)" 
    // id: Ziel-Element mit id=id, welches das flot (src) enthält
    // span: inc / dec / (number)
    // number: Zahl in Minuten
    function _timespan( ele ) {
       var id = _getTargetID( ele );
       var target = $( "#"+id+" [src]" );
       if (target) {
           var timespan = _getClassSuffix(ele, "mdui-timespan-" );
           var src = target.attr( "src" );
           var min = src.substr(src.indexOf("&range=")+7,20);  
           min = min.substr(0,min.indexOf("&"));  
           switch(timespan) {
               case "inc":
                   min = min * 2;
                   break;
               case "dec":
                   min = min / 2;
                   break;
               default:
                   if ( timespan<=0 )
                       timespan = 1440;
                   min = timespan;
           }
           src = src.replace(/&range=[0-9]*&/g, "&range="+min+"&");
           target.attr("src",src);
       }
    }
    
    /*  */
    function _resetTable( $ele, $table ) {
       $ele.removeClass("mdui-table-tile");
       $ele.removeClass("mdui-table-card");
       $ele.removeClass("mdui-table-list");
       $table.find("tbody>tr").each( function(index) {
           $(this).width("auto");
           $(this).height("auto");
           $(this).find("td").each( function(index) {
               $(this).attr("labelth","");
           });  
       });
    }
    
    /*  */
    function _handleTable( $ele, $table, opt ) {
    
       function setColWidth( colwidth ) {
           $table.find("tbody>tr").each( function(index) {
               $(this).outerWidth(colwidth);
           });
       }
       function setColHeight() {
           var height = 0;
           $table.find("tbody>tr").each( function(index) {
               if ($(this).height() > height ) height = $(this).height();
           });
           if ( height > 0 )
               $table.find("tbody>tr").each( function(index) {
                   $(this).height( height );
               });
       }
       
       var innerWidth = $ele.innerWidth();
    
       _resetTable($ele, $table);
       $ele.addClass("mdui-table-"+opt.type);
       if (opt.label) {
           // Zellen mit Labels aus <th> ergänzen ?    
           var labels = [];
           $table.find("thead>tr>th").each( function(index) {
               labels[index] = $(this).text();
           });
           $table.find("tbody>tr").each( function(index) {
               $(this).find("td").each( function(index) {
                   if (index < labels.length) 
                       $(this).attr("labelth",labels[index]);
               });  
           });
       }
    
       if (opt.colwidth>1) setColWidth(opt.colwidth);
       if (opt.colwidth>2) setColHeight();
    
       return true;    
    }
    
    
    /* Alle mdui-table durchlaufen und überprüfen, ob die minimale Width erreicht
    wurde um sie in den responsive State zu überführen 
    mdui-table-(mode)(-opt1)(-opt2)...(-optn)
    mdui-table-ascard-r600-w200-l */
    function _handleTables( ) {
       $("[class*='mdui-table ']").each( function (index) {
           var $ele = $(this);
           var $table;
           $table = $ele;
           if (!$table.is("table")) $table=$table.find("table");
           if (!$table.is("table")) return true; // next each 
           
           var innerWidth = $ele.innerWidth();
           var classes = $ele.attr("class")
               .split(" ")
               .filter( function ( ele ) { 
                       return  (ele.indexOf("mdui-table-ascard") > -1)
                            || (ele.indexOf("mdui-table-astile") > -1)
                            || (ele.indexOf("mdui-table-aslist") > -1); });
           var opts = [];
           var opt;
           for (var i = 0; i < classes.length; i++) {
               opts[i] = [];
               opts[i].reswidth = 9999;
               opts[i].colwidth = 0;
               opts[i].label = false;
               opts[i].type = classes[i].substr(13,4); 
               opt = classes[i].substr(18,200).split("-"); 
               for (var j = 0; j < opt.length; j++) {
                   switch(opt[j][0]) {
                   case "r":
                       opts[i].reswidth = parseInt(opt[j].substr(1,5));
                       break;
                   case "w":
                       opts[i].colwidth = parseInt(opt[j].substr(1,5));
                       break;
                   case "c":
                       opts[i].colwidth = parseInt(opt[j].substr(1,5));
                       if (opts[i].colwidth>0) opts[i].colwidth = (innerWidth-_getScrollbarWidth()-8) / opts[i].colwidth;
                       break;
                   case "l":
                       opts[i].label = true;
                       break;
                   default:    
                   }                       
               }
           }
           opts.sort(function(a, b){return a.reswidth-b.reswidth});
    //console.log(opts);
           if (opts.length === 0) return true; // next each 
           var handled = false;
           for (i = 0; i < opts.length; i++) {
               if ( innerWidth < opts[i].reswidth )
                  handled = _handleTable( $ele, $table, opts[i]);
               if (handled) break;   
           }
           if (!handled) _resetTable($ele, $table);
       }); 
    
    }
    
    
    
    
    // DOM SubTree-Änderungen einmalig alle 500ms auswerten (diese Events werden 
    // u.U. 1000-fach gefeuert und müssen deswegen verzögert ausgeführt werden)
    function _onSubTreeModified( $ele ) {
       if (!isSubtreeModified) {
           isSubtreeModified = true;
           setTimeout(function () {
               _handleTables();
               isSubtreeModified=false;
           }, 500);
       }
    }
    
    return {
       toggleVisibility: _toggleVisibility,
       toggleFullscreen: _toggleFullscreen,
       scale: _scale,
       timespan: _timespan,
       handleTables: _handleTables,
       onSubTreeModified : _onSubTreeModified
    };
    
    })();
    
    
    // Eventhandler für body-Delegators setzen (früher:#vis_container) 
    setTimeout(function () {
       // click-Event für das left-nav Element zum Öffnen
       $("body").on( "click", ".mdui-lnavbutton", function() { 
           $( ".mdui-lnav" ).addClass( "mdui-lnav-open" );
       } );
       // click-Event für die left-nav zum Schließen
       $("body").on( "click", ".mdui-lnav", function() { 
           $( ".mdui-lnav" ).removeClass( "mdui-lnav-open" ); 
       } );
       // click-Event für das right-nav Element zum Öffnen
       $("body").on( "click", ".mdui-rnavbutton", function() { 
           $( ".mdui-rnav" ).addClass( "mdui-rnav-open" );
       } );
       // click-Event für die right-nav zum Schließen
       $("body").on( "click", ".mdui-rnav", function() { 
           $( ".mdui-rnav" ).removeClass( "mdui-rnav-open" ); 
       } );
    
       // click-Eventhandler für "mdui-scale-" setzen
       $("body").on( "click", "[class*='mdui-scale-']", function(event) { 
           MDUI.scale( $(this) );
       } );
    
       // click-Handler für "mdui-toggle"  
       $("body").on( "click", ".mdui-toggle", function(event) { 
           event.preventDefault();
           event.stopImmediatePropagation();
           MDUI.toggleVisibility( $(this) );
       } );
    
       // click-Handler für "mdui-fullscreen" 
       $("body").on( "click", ".mdui-fullscreen", function(event) { 
           MDUI.toggleFullscreen( $(this) );
       } );
    
       // click-Handler für "mdui-timepsan-" 
       $("body").on( "click", "[class*='mdui-timespan-']", function(event) { 
           MDUI.timespan( $(this) );
       } );
    
       $( window ).on("resize", function() {
         MDUI.handleTables();
       });
    
       // Überwachen des #vis_containers auf Änderungen (z.B. wenn views nachgeladen
       // werden)
       $( "#vis_container" ).on( "DOMSubtreeModified", function(event) { 
           MDUI.onSubTreeModified( $(this) );
       } );
       // für den ersten load einmal aufrufen
       MDUI.onSubTreeModified( );
    
    }, 1000); 
    
    
    
    

    Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

    ScroungerS 1 Antwort Letzte Antwort
    0
    • GlasfaserG Glasfaser

      @Scrounger

      Danke ... dein Popup Video hat mich gerade darauf gebracht ...

      Ich habe ein anderes Design von Material Design CSS V1 ,
      dort ist mir gerade aufgefallen , das im Skript der Fehler liegt , da wenn ich es entferne dann wird der Select-Widget richtig geöffnet .

      1.JPG

      Habe mal zum Test das neue Material Design CSS V2 Skript eingefügt , dort ist der Fehler auch

      Hast du eine Idee wo der Fehler sein könnte ??
      .
      SKRIPT :

      /* -----
        Material Design JS for ioBroker.vis
        (c) 2017 Uhula, MIT License
        https://github.com/Uhula/ioBroker-Material-Design-Style
        V1.7 28.12.2017
        o Korrektur mdui-lnav/rnav. Funktionierte mit mdui-toggle nicht korrekt  
        V1.6 16.10.2017 
        O _toggleFullscreen geändert, damit die function auch im ioBroker
                        fullscreen Mode funktioniert
        o Delegator-Eventhandler für body gesetzt (bisher #vis_container, wirkten dann aber in Dialogen nicht)
        V1.5 11.10.2017 
        o MDUI.handleTables fertig
        V1.3 24.09.2017 
        + MDUI.handleTables hinzu (in Entwicklung)
        V1.0 01.09.2017
        ----- */
      
      // Zur sicheren CSS-Erkennung der Runtime eine CSS-Klasse anlegen
      document.documentElement.className +=  " mdui-runtime";
      
      // Überprüfen ob touch zur Verfügung steht und entsprechend eine 
      // CSS Klasse touch bzw no-touch erzeugen 
      document.documentElement.className += 
         (("ontouchstart" in document.documentElement) ? " mdui-touch" : " mdui-notouch");
      
      
      /* -----
        MDUI
        ----- 
        Sammlung von JS-Funktionen für das Material Design
        (c) 2017 Uhula, MIT License
      */
      
      var MDUI = (function () {
      
      
      var isSubtreeModified = false;
      
      // liefert den suffix einer gegeben class zurück-Navigieren
      // Bsp: mdui-target-w00002 -> w00002
      //      mdui-zoom-to-200 -> 200
      function _getClassSuffix( $ele, classname ) {
         var suf = "";
         if ($ele) {
             var c = $ele.attr( "class" );
             suf = c.substr(c.indexOf(classname)+classname.length,1000)+" ";
             suf = suf.substr(0,suf.indexOf(" "));
         }
         return suf;    
      }
      
      //
      function _getGroupID( ele ) { return _getClassSuffix(ele, "mdui-group-" ); }
      //
      function _getTargetID( ele ) { return _getClassSuffix(ele, "mdui-target-" ); }
      
      //
      function _getScrollbarWidth() {
         var $outer = $('<div>').css({visibility: 'hidden', width: 100, overflow: 'scroll'}).appendTo('body'),
             widthWithScroll = $('<div>').css({width: '100%'}).appendTo($outer).outerWidth();
         $outer.remove();
         return 100 - widthWithScroll;
      }
      //
      function _getScrollbarHeight() {
         var $outer = $('<div>').css({visibility: 'hidden', height: 100, overflow: 'scroll'}).appendTo('body'),
             heightWithScroll = $('<div>').css({height: '100%'}).appendTo($outer).outerHeight();
         $outer.remove();
         return 100 - heightWithScroll;
      }
      
      function _formatDatetime(date, format) {
         function fill(comp) {
             return ((parseInt(comp) < 10) ? ('0' + comp) : comp)
         }
             
         var months = ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'];
         var d = format;
         var o = {
                 "y+": date.getFullYear(), // year
                 "m+": fill(date.getMonth()+1), //month
                 "M+": months[date.getMonth()], //month
                 "d+": fill(date.getDate()), //day
                 "H+": fill((date.getHours() > 12) ? date.getHours() % 12 : date.getHours()), //hour
                 "h+": fill(date.getHours()), //hour
                 "n+": fill(date.getMinutes()), //minute
                 "s+": fill(date.getSeconds()), //second
                 "S+": fill(date.getMilliseconds()), //millisecond,
                 "b+": (date.getHours() >= 12) ? 'PM' : 'AM'
             };
         for (var k in o) {
             if (new RegExp("(" + k + ")").test(format)) {
                 d = d.replace(RegExp.$1, o[k]);
             }
         }
         return d;
      }
      
      
      
      // alle Elemente mit class "mdui-group-XXX" togglen, in denen 
      // XXX aus class "mdui-group-XXX" des ele ist UND
      // alle Elemente mit class "mdui-target-XXX" togglen, in denen 
      // XXX aus class "mdui-target-XXX" des ele ist
      function _toggleVisibility( $ele ) {
         $ele.toggleClass("ui-state-active");
         var id = _getGroupID( $ele );
         if (id!=="") 
             $("[class*='mdui-group-"+id+"']").not("[class*='mdui-toggle']").each( function (index) {
                 $(this).toggleClass("mdui-hide");
             });    
         id = _getTargetID( $ele );
         if (id!=="") 
             $( "[class*='mdui-target-"+id+"']").not("[class*='mdui-toggle']").each( function (index) {
                 $(this).toggleClass("mdui-hide");
             });
      }
      
      // das in ele class \"mdui-target-XXX\" angegeben Element mit der id \"XXX\"  wird 
      // - fullscreen angezeigt, wenn es noch nicht fullscreen ist
      // - wieder normal angezeigt, wenn es fullscreen ist
      function _toggleFullscreen( $ele ){
         if (!$ele) return;
         var $target = $ele.closest(".vis-view");
         if (!$target) return;
         var styleold = $target.attr("styleold");
         if (styleold) {
             $target.attr("style",styleold);
             $target.removeAttr("styleold");
             $target.appendTo(".mdui-id-"+$target.attr("id"));
             } else {
                 $target.parent().addClass("mdui-id-"+$target.attr("id"));
                 $target.attr("styleold",$target.attr("style"));
                 $target.attr("style","position:fixed; left:0; top:0; width:100%; height:100%; z-index: 2147483647 !important;background:#212121 !important; ");
                 $target.appendTo( "body" );
                 //$target.appendTo( "body #vis_container" );
                 }
      }
      
      
      // ele muss class Einträge für das Target und den Skalierungsmodus haben
      // "mdui-target-(id) mdui-scale-(scalemode)" 
      // id: Ziel-Element mit id=id, welches ein zu skalierendes img enthält
      // scalemode: fit / hfit / vfit / in / out / (number)
      // number: Zahl in %
      function _scale( ele ) {
         var id = _getTargetID( ele );
         var $img = $( "#"+id+" img" );
         if ($img) {
             var scale = _getClassSuffix(ele, "mdui-scale-" );
             $img.width("1px"); // Scrollbars entfernen um die echte Höhe zu bekommen
             $img.height("1px");
             var dim = {
                 pw : $img.parent().width(), 
                 ph : $img.parent().height(), 
                 w  : $img[0].naturalWidth, 
                 h  : $img[0].naturalHeight
             };
             switch(scale) {
                 case "fit":
                     if (dim.pw / dim.w < dim.ph / dim.h ) scale = dim.pw / dim.w;  
                     else scale = dim.ph / dim.h;
                     break;
                 case "hfit":
                     if (dim.pw / dim.w < dim.ph / dim.h ) scale = dim.pw / dim.w;
                     else scale = (dim.pw - _getScrollbarWidth() - 4  ) / dim.w;
                     break;
                 case "vfit":
                     if ( dim.pw / dim.w > dim.ph / dim.h ) scale = dim.ph / dim.h;
                     else scale = (dim.ph - _getScrollbarHeight() - 4  ) / dim.h;
                     break;
                 case "in":
                 case "out":
                     var old = $img.attr( "style" );
                     old = old.substr(old.indexOf("scale(")+6,20);  
                     old = old.substr(0,old.indexOf(")"));  
                     if (old * 1==0) scale = 1;
                     else if (scale=="in") scale = old * 1.41;
                          else scale = old / 1.41;
                     break;
                 default:
                     if (scale<=0 || scale>10000)
                         scale = 100;
                     scale = scale/100;
             }
             scale = Math.round(scale*100)/100;
             $img.attr( "style", "position:absolute;top:0;left:0;transform-origin:0 0;transition: transform 0.3s ease-out; transform:scale("+scale+");" );
             }
      }
      
      // ersetzt im src-Attribute des Unter-Elements von (id) den "&range=& 
      // durch den Wert des in ele angegebenen (span). Für flot-Diagramme
      // "mdui-target-(id) mdui-timespan-(span)" 
      // id: Ziel-Element mit id=id, welches das flot (src) enthält
      // span: inc / dec / (number)
      // number: Zahl in Minuten
      function _timespan( ele ) {
         var id = _getTargetID( ele );
         var target = $( "#"+id+" [src]" );
         if (target) {
             var timespan = _getClassSuffix(ele, "mdui-timespan-" );
             var src = target.attr( "src" );
             var min = src.substr(src.indexOf("&range=")+7,20);  
             min = min.substr(0,min.indexOf("&"));  
             switch(timespan) {
                 case "inc":
                     min = min * 2;
                     break;
                 case "dec":
                     min = min / 2;
                     break;
                 default:
                     if ( timespan<=0 )
                         timespan = 1440;
                     min = timespan;
             }
             src = src.replace(/&range=[0-9]*&/g, "&range="+min+"&");
             target.attr("src",src);
         }
      }
      
      /*  */
      function _resetTable( $ele, $table ) {
         $ele.removeClass("mdui-table-tile");
         $ele.removeClass("mdui-table-card");
         $ele.removeClass("mdui-table-list");
         $table.find("tbody>tr").each( function(index) {
             $(this).width("auto");
             $(this).height("auto");
             $(this).find("td").each( function(index) {
                 $(this).attr("labelth","");
             });  
         });
      }
      
      /*  */
      function _handleTable( $ele, $table, opt ) {
      
         function setColWidth( colwidth ) {
             $table.find("tbody>tr").each( function(index) {
                 $(this).outerWidth(colwidth);
             });
         }
         function setColHeight() {
             var height = 0;
             $table.find("tbody>tr").each( function(index) {
                 if ($(this).height() > height ) height = $(this).height();
             });
             if ( height > 0 )
                 $table.find("tbody>tr").each( function(index) {
                     $(this).height( height );
                 });
         }
         
         var innerWidth = $ele.innerWidth();
      
         _resetTable($ele, $table);
         $ele.addClass("mdui-table-"+opt.type);
         if (opt.label) {
             // Zellen mit Labels aus <th> ergänzen ?    
             var labels = [];
             $table.find("thead>tr>th").each( function(index) {
                 labels[index] = $(this).text();
             });
             $table.find("tbody>tr").each( function(index) {
                 $(this).find("td").each( function(index) {
                     if (index < labels.length) 
                         $(this).attr("labelth",labels[index]);
                 });  
             });
         }
      
         if (opt.colwidth>1) setColWidth(opt.colwidth);
         if (opt.colwidth>2) setColHeight();
      
         return true;    
      }
      
      
      /* Alle mdui-table durchlaufen und überprüfen, ob die minimale Width erreicht
      wurde um sie in den responsive State zu überführen 
      mdui-table-(mode)(-opt1)(-opt2)...(-optn)
      mdui-table-ascard-r600-w200-l */
      function _handleTables( ) {
         $("[class*='mdui-table ']").each( function (index) {
             var $ele = $(this);
             var $table;
             $table = $ele;
             if (!$table.is("table")) $table=$table.find("table");
             if (!$table.is("table")) return true; // next each 
             
             var innerWidth = $ele.innerWidth();
             var classes = $ele.attr("class")
                 .split(" ")
                 .filter( function ( ele ) { 
                         return  (ele.indexOf("mdui-table-ascard") > -1)
                              || (ele.indexOf("mdui-table-astile") > -1)
                              || (ele.indexOf("mdui-table-aslist") > -1); });
             var opts = [];
             var opt;
             for (var i = 0; i < classes.length; i++) {
                 opts[i] = [];
                 opts[i].reswidth = 9999;
                 opts[i].colwidth = 0;
                 opts[i].label = false;
                 opts[i].type = classes[i].substr(13,4); 
                 opt = classes[i].substr(18,200).split("-"); 
                 for (var j = 0; j < opt.length; j++) {
                     switch(opt[j][0]) {
                     case "r":
                         opts[i].reswidth = parseInt(opt[j].substr(1,5));
                         break;
                     case "w":
                         opts[i].colwidth = parseInt(opt[j].substr(1,5));
                         break;
                     case "c":
                         opts[i].colwidth = parseInt(opt[j].substr(1,5));
                         if (opts[i].colwidth>0) opts[i].colwidth = (innerWidth-_getScrollbarWidth()-8) / opts[i].colwidth;
                         break;
                     case "l":
                         opts[i].label = true;
                         break;
                     default:    
                     }                       
                 }
             }
             opts.sort(function(a, b){return a.reswidth-b.reswidth});
      //console.log(opts);
             if (opts.length === 0) return true; // next each 
             var handled = false;
             for (i = 0; i < opts.length; i++) {
                 if ( innerWidth < opts[i].reswidth )
                    handled = _handleTable( $ele, $table, opts[i]);
                 if (handled) break;   
             }
             if (!handled) _resetTable($ele, $table);
         }); 
      
      }
      
      
      
      
      // DOM SubTree-Änderungen einmalig alle 500ms auswerten (diese Events werden 
      // u.U. 1000-fach gefeuert und müssen deswegen verzögert ausgeführt werden)
      function _onSubTreeModified( $ele ) {
         if (!isSubtreeModified) {
             isSubtreeModified = true;
             setTimeout(function () {
                 _handleTables();
                 isSubtreeModified=false;
             }, 500);
         }
      }
      
      return {
         toggleVisibility: _toggleVisibility,
         toggleFullscreen: _toggleFullscreen,
         scale: _scale,
         timespan: _timespan,
         handleTables: _handleTables,
         onSubTreeModified : _onSubTreeModified
      };
      
      })();
      
      
      // Eventhandler für body-Delegators setzen (früher:#vis_container) 
      setTimeout(function () {
         // click-Event für das left-nav Element zum Öffnen
         $("body").on( "click", ".mdui-lnavbutton", function() { 
             $( ".mdui-lnav" ).addClass( "mdui-lnav-open" );
         } );
         // click-Event für die left-nav zum Schließen
         $("body").on( "click", ".mdui-lnav", function() { 
             $( ".mdui-lnav" ).removeClass( "mdui-lnav-open" ); 
         } );
         // click-Event für das right-nav Element zum Öffnen
         $("body").on( "click", ".mdui-rnavbutton", function() { 
             $( ".mdui-rnav" ).addClass( "mdui-rnav-open" );
         } );
         // click-Event für die right-nav zum Schließen
         $("body").on( "click", ".mdui-rnav", function() { 
             $( ".mdui-rnav" ).removeClass( "mdui-rnav-open" ); 
         } );
      
         // click-Eventhandler für "mdui-scale-" setzen
         $("body").on( "click", "[class*='mdui-scale-']", function(event) { 
             MDUI.scale( $(this) );
         } );
      
         // click-Handler für "mdui-toggle"  
         $("body").on( "click", ".mdui-toggle", function(event) { 
             event.preventDefault();
             event.stopImmediatePropagation();
             MDUI.toggleVisibility( $(this) );
         } );
      
         // click-Handler für "mdui-fullscreen" 
         $("body").on( "click", ".mdui-fullscreen", function(event) { 
             MDUI.toggleFullscreen( $(this) );
         } );
      
         // click-Handler für "mdui-timepsan-" 
         $("body").on( "click", "[class*='mdui-timespan-']", function(event) { 
             MDUI.timespan( $(this) );
         } );
      
         $( window ).on("resize", function() {
           MDUI.handleTables();
         });
      
         // Überwachen des #vis_containers auf Änderungen (z.B. wenn views nachgeladen
         // werden)
         $( "#vis_container" ).on( "DOMSubtreeModified", function(event) { 
             MDUI.onSubTreeModified( $(this) );
         } );
         // für den ersten load einmal aufrufen
         MDUI.onSubTreeModified( );
      
      }, 1000); 
      
      
      
      

      ScroungerS Offline
      ScroungerS Offline
      Scrounger
      Developer
      schrieb am zuletzt editiert von
      #157

      @Glasfaser
      Nee sorry, hab mich mit Material Design CSS noch nie beschäftigt.

      <a href="https://github.com/Scrounger/ioBroker.linkeddevices">LinkedDevices Adapter</a>

      <a href="https://github.com/Scrounger/ioBroker.vis-materialdesign">Material Design Widgets</a>

      GlasfaserG 1 Antwort Letzte Antwort
      1
      • ScroungerS Scrounger

        @Glasfaser
        Nee sorry, hab mich mit Material Design CSS noch nie beschäftigt.

        GlasfaserG Offline
        GlasfaserG Offline
        Glasfaser
        schrieb am zuletzt editiert von Glasfaser
        #158

        @Scrounger

        Kein Problem , aber trotzdem wurde der Fehler dadurch eingekreißt .

        Danke ....für deine Mühe :)

        Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

        1 Antwort Letzte Antwort
        0
        • ub.privatU Offline
          ub.privatU Offline
          ub.privat
          schrieb am zuletzt editiert von
          #159

          @Scrounger

          Guten entspannten Guten Abend!

          Mit meinem langsam wachsendem Verständnis in der Anwendung deiner MEISTERWERKE versuche ich mich wieder mal.
          Der Adapter-View ist ganz großes Kino. Leider verende ich beim "Trailer".
          Was habe ich bisher gemacht:

          1. notwendige Einstellungen im JS Adapter vorgenommen:
            636f2623-a41a-4cb3-9d92-74154a05890a-grafik.png

          2. Script eingestellt:
            8dc9c5a6-9444-406b-9893-ff3085e48816-grafik.png
            Leider mit Warnungen...

          3. Datenpunkte angelegt:
            e43630b0-51fd-45da-bb06-73d650def20c-grafik.png
            f1a758b3-22cb-45af-a95f-02f71bbb4c93-grafik.png
            Leider werden keine Werte erzeugt.

          4. View importiert:
            70e9844b-fb88-4b82-b2d1-0696d71594e4-grafik.png
            Mit entsprechender Warnung.

          5. NUN IST GUTER RAT TEUER - wo mache ich wie weiter????
            Lesse den Tread hoch und runter, aber die Erleeuchtung will sich nicht einstellen...

          sigi234S ScroungerS GlasfaserG 3 Antworten Letzte Antwort
          0
          • ub.privatU ub.privat

            @Scrounger

            Guten entspannten Guten Abend!

            Mit meinem langsam wachsendem Verständnis in der Anwendung deiner MEISTERWERKE versuche ich mich wieder mal.
            Der Adapter-View ist ganz großes Kino. Leider verende ich beim "Trailer".
            Was habe ich bisher gemacht:

            1. notwendige Einstellungen im JS Adapter vorgenommen:
              636f2623-a41a-4cb3-9d92-74154a05890a-grafik.png

            2. Script eingestellt:
              8dc9c5a6-9444-406b-9893-ff3085e48816-grafik.png
              Leider mit Warnungen...

            3. Datenpunkte angelegt:
              e43630b0-51fd-45da-bb06-73d650def20c-grafik.png
              f1a758b3-22cb-45af-a95f-02f71bbb4c93-grafik.png
              Leider werden keine Werte erzeugt.

            4. View importiert:
              70e9844b-fb88-4b82-b2d1-0696d71594e4-grafik.png
              Mit entsprechender Warnung.

            5. NUN IST GUTER RAT TEUER - wo mache ich wie weiter????
              Lesse den Tread hoch und runter, aber die Erleeuchtung will sich nicht einstellen...

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

            @ub-privat

            Hast du die Aktuelle Version? 0.2.62

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

            ub.privatU 1 Antwort Letzte Antwort
            0
            • ub.privatU ub.privat

              @Scrounger

              Guten entspannten Guten Abend!

              Mit meinem langsam wachsendem Verständnis in der Anwendung deiner MEISTERWERKE versuche ich mich wieder mal.
              Der Adapter-View ist ganz großes Kino. Leider verende ich beim "Trailer".
              Was habe ich bisher gemacht:

              1. notwendige Einstellungen im JS Adapter vorgenommen:
                636f2623-a41a-4cb3-9d92-74154a05890a-grafik.png

              2. Script eingestellt:
                8dc9c5a6-9444-406b-9893-ff3085e48816-grafik.png
                Leider mit Warnungen...

              3. Datenpunkte angelegt:
                e43630b0-51fd-45da-bb06-73d650def20c-grafik.png
                f1a758b3-22cb-45af-a95f-02f71bbb4c93-grafik.png
                Leider werden keine Werte erzeugt.

              4. View importiert:
                70e9844b-fb88-4b82-b2d1-0696d71594e4-grafik.png
                Mit entsprechender Warnung.

              5. NUN IST GUTER RAT TEUER - wo mache ich wie weiter????
                Lesse den Tread hoch und runter, aber die Erleeuchtung will sich nicht einstellen...

              ScroungerS Offline
              ScroungerS Offline
              Scrounger
              Developer
              schrieb am zuletzt editiert von Scrounger
              #161

              @ub-privat
              Hast du das skript 1:1 kopiert?
              Die Fehlermeldung bezieht sich auf Zeile 518-520 - das skript hat aber nur 339 Zeilen.

              Und laut deinem Screenshot hast du irgendwas an dem Skript verändert. Weil ab Zeile 8 müssten die settings zu sehen sein.

              Und bitte das vollständige log posten, also aus dem reiter 'log' im admin bereich.

              <a href="https://github.com/Scrounger/ioBroker.linkeddevices">LinkedDevices Adapter</a>

              <a href="https://github.com/Scrounger/ioBroker.vis-materialdesign">Material Design Widgets</a>

              ub.privatU sigi234S 2 Antworten Letzte Antwort
              0
              • sigi234S sigi234

                @ub-privat

                Hast du die Aktuelle Version? 0.2.62

                ub.privatU Offline
                ub.privatU Offline
                ub.privat
                schrieb am zuletzt editiert von
                #162

                @sigi234

                Ja, habe ich!

                55a826c9-570b-4526-a076-055ee0a94089-grafik.png

                1 Antwort Letzte Antwort
                0
                • ScroungerS Scrounger

                  @ub-privat
                  Hast du das skript 1:1 kopiert?
                  Die Fehlermeldung bezieht sich auf Zeile 518-520 - das skript hat aber nur 339 Zeilen.

                  Und laut deinem Screenshot hast du irgendwas an dem Skript verändert. Weil ab Zeile 8 müssten die settings zu sehen sein.

                  Und bitte das vollständige log posten, also aus dem reiter 'log' im admin bereich.

                  ub.privatU Offline
                  ub.privatU Offline
                  ub.privat
                  schrieb am zuletzt editiert von
                  #163

                  @Scrounger

                  Bin mir keiner Änderung bewußt!
                  Würdest du das AKTUELLESTE Script nochmals bitte verlinken!?
                  DANKE.

                  sigi234S 1 Antwort Letzte Antwort
                  0
                  • ScroungerS Scrounger

                    Sodele nochmal eine neue Version des Skriptes

                    Voraussetzung Material Design Widgets v0.2.62 (demnächst im latest) !!!

                    • mehr Farbeinstellung
                    • Sortier Funktion
                    • Filter Funktion - wäre sicher als nächster Wunsch gekommen, deshalb hab ich es schon mal eingebaut ;-)
                      (Benötigt ihr weitere schaut ins skript und passt es auf eure Bedürfnisse an)
                    • Adapter Modus wird angezeigt
                    • Fehler behoben

                    AdapterStatus.gif

                    Ist auch im Online Beispiel enthalten

                    View:

                    {
                      "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.AdapterStatus.jsonList",
                            "maxItemsperRow": "6",
                            "iconItemMinWidth": "300",
                            "iconHeight": "60",
                            "buttonHeight": "100",
                            "labelFontSize": "22",
                            "subLabelFontSize": "14",
                            "subLabelFontColor": "#000000",
                            "labelFontFamily": "RobotoCondensed-Regular",
                            "subLabelFontFamily": "RobotoCondensed-Light",
                            "horizontalIconContainerWidth": "120"
                          },
                          "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.AdapterStatus.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\": \"Adaptername\",\n\t\t\"value\": \"name\",\n\t\t\"icon\": \"sort-alphabetical\"\n\t},\n\t{\n\t\t\"text\": \"Status\",\n\t\t\"value\": \"status\",\n\t\t\"icon\": \"information-variant\"\n\t},\t\n\t{\n\t\t\"text\": \"Modus\",\n\t\t\"value\": \"mode\",\n\t\t\"icon\": \"view-dashboard\"\n\t},\n\t{\n\t\t\"text\": \"Updates verfügbar\",\n\t\t\"value\": \"hasUpdates\",\n\t\t\"icon\": \"package-down\"\n\t},\n\t{\n\t\t\"text\": \"CPU\",\n\t\t\"value\": \"cpu\",\n\t\t\"icon\": \"cpu-64-bit\"\n\t},\n\t{\n\t\t\"text\": \"RAM total\",\n\t\t\"value\": \"memHeapTotal\",\n\t\t\"icon\": \"memory\"\n\t},\n\t{\n\t\t\"text\": \"RAM verwendet\",\n\t\t\"value\": \"memHeapUsed\",\n\t\t\"icon\": \"memory\"\n\t},\n\t{\n\t\t\"text\": \"RAM reserviert\",\n\t\t\"value\": \"memRss\",\n\t\t\"icon\": \"memory\"\n\t},\n\t{\n\t\t\"text\": \"Betriebszeit\",\n\t\t\"value\": \"uptime\",\n\t\t\"icon\": \"clock-check-outline\"\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": ""
                          },
                          "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.AdapterStatus.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\": \"nicht verbunden\",\n\t\t\"value\": \"notConnected\",\n\t\t\"icon\": \"network-off\"\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\t{\n\t\t\"text\": \"Updates verfügbar\",\n\t\t\"value\": \"hasUpdates\",\n\t\t\"icon\": \"package-down\"\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": "AdapterStatus",
                      "filterList": []
                    }
                    

                    Skript

                    // Imports -> müssen im Javascript Adapter unter 'Zusätzliche NPM-Module' eingetragen sein
                    const moment = require("moment");
                    const momentDurationFormatSetup = require("moment-duration-format");
                    
                    
                    // Skript Einstellungen *************************************************************************************************************************************************
                    
                    let dpList = '0_userdata.0.vis.AdapterStatus.jsonList';                     // Datenpunkt für IconList Widget (Typ: Zeichenkette (String))
                    let dpAdapterRestart = '0_userdata.0.vis.AdapterStatus.restartTrigger';     // Datenpunkt für Adapter restart (Typ: Zeichenkette (String))
                    
                    let dpSortMode = '0_userdata.0.vis.AdapterStatus.sortMode';                 // Datenpunkt für Sortieren (Typ: Zeichenkette (String))
                    let dpFilterMode = '0_userdata.0.vis.AdapterStatus.filterMode';             // Datenpunkt für Filter (Typ: Zeichenkette (String))
                    
                    let adminUpdatesList = 'admin.0.info.updatesList';                          // Datenpunkt Admin Adapter für verfübare Updates der Adapter
                    
                    const checkInterval = 30;                                                   // Interval wie oft Status der Adapter aktualisiert werden soll (in Sekunden)
                    
                    let sprache = 'de';                                                         // Sprache für formatierung Dauer 
                    let formatierungDauer = "dd[T] hh[h] mm[m]";                                // Formatierung der Dauer -> siehe momentjs library
                    
                    let neustarten = true;                                                      // true: Adapter wird neugestartet, false: Adapter wird gestoppt oder gestartet
                    
                    let farbeAdapterAktiv = 'green';                                            // Status Bar Farbe wenn Adapter aktiv ist
                    let farbeAdapterNichtAktiv = 'FireBrick';                                   // Status Bar Farbe wenn Adapter nicht aktiv ist oder Fehler vorliegt
                    let farbeAdapterDeaktiviert = 'darkgrey';                                   // Status Bar Farbe wenn Adapter deaktiviert ist
                    let farbeAdapterNichtVerbunden = 'yellow';                                  // Status Bar Farbe wenn Adapter nicht verbunden ist
                    let farbeAdapterZeitgesteuert = 'lightgreen';                               // Status Bar Farbe wenn Adapter zeitgesteuert ist
                    let farbeAdapterErweiterung = '#44739e';                                    // Status Bar Farbe wenn Adapter Erweiterung ist
                    let farbeAdapterSystem = '#44739e';                                         // Status Bar Farbe wenn Adapter mit System gestartet wird
                    
                    let sortResetAfter = 120;                                                   // Sortierung nach X Sekunden auf sortReset zurücksetzen (0=deaktiviert)
                    let sortReset = 'memHeapUsed'                                               // 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 .alive Änderungen hören
                    let aliveSelector = `[id=system.adapter.*.alive]`;
                    let adapterAliveList = $(aliveSelector);
                    if (adapterAliveList.length === 0) {
                        // Fehlermeldung ausgeben, wenn selector kein result liefert
                        console.error(`no result for selector '${aliveSelector}'`)
                    } else {
                        // listener nur für Änderung bei alive
                        adapterAliveList.on(adapterStatus);
                    }
                    
                    // auf .connection Änderungen hören
                    let connectionSelector = `[id=*.info.connection]`;
                    let adapterConnectionList = $(connectionSelector);
                    if (adapterConnectionList.length === 0) {
                        // Fehlermeldung ausgeben, wenn selector kein result liefert
                        console.error(`no result for selector '${connectionSelector}'`)
                    } else {
                        // listener nur für Änderung bei alive
                        adapterConnectionList.on(adapterStatus);
                    }
                    
                    // auf .connected Änderungen hören
                    let connectedSelector = `[id=system.adapter.*.connected]`;
                    let adapterConnectedList = $(connectedSelector);
                    if (adapterConnectedList.length === 0) {
                        // Fehlermeldung ausgeben, wenn selector kein result liefert
                        console.error(`no result for selector '${connectedSelector}'`)
                    } else {
                        // listener nur für Änderung bei alive
                        adapterConnectedList.on(adapterStatus);
                    }
                    
                    // auf Änderungen der Sortieung hören
                    on({ id: dpSortMode, change: 'any' }, adapterStatus);
                    on({ id: dpSortMode, change: 'any' }, resetSort);
                    
                    // auf Änderungen der Filter hören
                    on({ id: dpFilterMode, change: 'any' }, adapterStatus);
                    on({ id: dpFilterMode, change: 'any' }, resetFilter);
                    
                    // Funktion adapterStatus alle x Sekunden ausführen
                    schedule('*/' + checkInterval + ' * * * * *', adapterStatus);
                    
                    function adapterStatus() {
                        // Funktion um Status der Adapter abzurufen und als JSON String für das Material Design Widget IconList aufbereiten
                        let adapterList = [];
                        let updateList = myHelper().getStateValueIfExist(adminUpdatesList);
                    
                        try {
                            for (var i = 0; i <= adapterAliveList.length - 1; i++) {
                                let id = adapterAliveList[i].replace('.alive', '');
                                let obj = getObject(adapterAliveList[i].replace('.alive', ''));
                    
                                let nameArray = id.replace('system.adapter.', '').split(".");
                    
                                let name = nameArray[0];
                                name = name.charAt(0).toUpperCase() + name.slice(1);
                    
                                let nameWithInstance = name;
                                let adapterInstance = nameArray[1];
                                if (parseInt(adapterInstance) > 0) {
                                    nameWithInstance = name + '.' + adapterInstance;
                                }
                    
                                let uptime = (existsState(id + '.uptime')) ? moment.duration(getState(id + '.uptime').val, 'seconds').format(formatierungDauer, 0) : '-';
                                let image = (myHelper().checkCommonPropertyExist(obj, 'icon')) ? `/${nameArray[0]}.admin/${obj.common.icon}` : 'image-off-outline';
                    
                                let hasUpdates = updateList && updateList.includes(nameArray[0]);
                                let newVersion = (hasUpdates) ? '<span class="mdi mdi-update" style="color: #ec0909;"></span>' : '';
                    
                                let text = `<div style="display: flex; flex-direction: row; line-height: 1.5; padding-right: 8px; align-items: center;">
                                                <div style="flex: 1">${newVersion} ${nameWithInstance}</div>
                                                <div style="color: grey; font-size: 12px; font-family: RobotoCondensed-LightItalic;">${myHelper().getCommonPropertyIfExist(obj, 'version', '-', 'v', '')}</div>
                                            </div>`
                    
                                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;">CPU</div>
                                                    <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic;">${myHelper().getStateValueIfExist(id + '.cpu', '-', '', ' %')}</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;">RAM total</div>
                                                    <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic;">${myHelper().getStateValueIfExist(id + '.memHeapTotal', '-', '', ' MB')}</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;">RAM verwendet</div>
                                                    <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic;">${myHelper().getStateValueIfExist(id + '.memHeapUsed', '-', '', ' MB')}</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;">RAM reserviert</div>
                                                    <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic;">${myHelper().getStateValueIfExist(id + '.memRss', '-', '', ' MB')}</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;">Betriebszeit</div>
                                                    <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic;">${uptime}</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;">Modus</div>
                                                    <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic;">${myHelper().getCommonPropertyIfExist(obj, 'mode', '-')}</div>
                                                </div>`
                    
                                let statusBarColor = farbeAdapterNichtAktiv;
                                let status = 3;
                    
                                if (myHelper().getStateValueIfExist(adapterAliveList[i]) === 'true') {
                                    statusBarColor = farbeAdapterAktiv;
                                    status = 0;
                    
                                    if (existsState(id.replace('system.adapter.', '') + '.info.connection')) {
                                        if (!getState(id.replace('system.adapter.', '') + '.info.connection').val) {
                                            statusBarColor = farbeAdapterNichtVerbunden;
                                            status = 4;
                                        }
                                    } else {
                                        if (myHelper().getStateValueIfExist(adapterAliveList[i].replace('.alive', '.connected')) === 'false') {
                                            statusBarColor = farbeAdapterNichtVerbunden;
                                            status = 4;
                                        }
                                    }
                                }
                    
                                if (myHelper().getCommonPropertyIfExist(obj, 'mode') === 'schedule') {
                                    // Adapter ist zeitgesteuert
                                    statusBarColor = farbeAdapterZeitgesteuert;
                                    status = 1;
                                }
                    
                                if (myHelper().getCommonPropertyIfExist(obj, 'mode') === 'extension') {
                                    // Adapter ist Extension
                                    statusBarColor = farbeAdapterErweiterung;
                                    status = 1;
                                }
                    
                                if (myHelper().getCommonPropertyIfExist(obj, 'mode') === 'once') {
                                    // Adapter wird mit System gestartet
                                    statusBarColor = farbeAdapterSystem;
                                    status = 1;
                                }
                    
                                if (myHelper().getCommonPropertyIfExist(obj, 'enabled', false).toString() === 'false') {
                                    // Adapter ist deaktiviert
                                    statusBarColor = farbeAdapterDeaktiviert;
                                    status = 2;
                                }
                    
                                adapterList.push({
                                    text: text,
                                    subText: subText,
                                    image: image,
                                    listType: "buttonState",
                                    objectId: dpAdapterRestart,
                                    buttonStateValue: id,
                                    statusBarColor: statusBarColor,
                                    showValueLabel: false,
                                    name: name,
                                    mode: myHelper().getCommonPropertyIfExist(obj, 'mode'),
                                    hasUpdates: hasUpdates,
                                    cpu: parseFloat(myHelper().getStateValueIfExist(id + '.cpu', '0')),
                                    memHeapTotal: parseFloat(myHelper().getStateValueIfExist(id + '.memHeapTotal', '0')),
                                    memHeapUsed: parseFloat(myHelper().getStateValueIfExist(id + '.memHeapUsed', '0')),
                                    memRss: parseFloat(myHelper().getStateValueIfExist(id + '.memRss', '0')),
                                    uptime: parseFloat(myHelper().getStateValueIfExist(id + '.uptime', 0)),
                                    status: status
                                })
                            }
                    
                        } catch (err) {
                            console.error(`[adapterStatus] error: ${err.message}, stack: ${err.stack}`);
                        }
                    
                        let sortMode = myHelper().getStateValueIfExist(dpSortMode, 'name');
                    
                        if (sortMode === 'name' || sortMode === 'mode') {
                            adapterList.sort(function (a, b) {
                                return a[sortMode] == b[sortMode] ? 0 : +(a[sortMode] > b[sortMode]) || -1;
                            });
                        } else if (sortMode === 'hasUpdates' || sortMode === 'cpu' || sortMode === 'memHeapTotal' || sortMode === 'memHeapUsed' || sortMode === 'memRss' || sortMode === 'uptime' || sortMode === 'status') {
                            adapterList.sort(function (a, b) {
                                return a[sortMode] == b[sortMode] ? 0 : +(a[sortMode] < b[sortMode]) || -1;
                            });
                        } else {
                            // default: nach name sortieren
                            sortMode = 'name'
                            adapterList.sort(function (a, b) {
                                return a[sortMode] == b[sortMode] ? 0 : +(a[sortMode] > b[sortMode]) || -1;
                            });
                        }
                    
                        // Filter: not connected, updates, deaktiviert, aktiviert
                    
                        let filterMode = myHelper().getStateValueIfExist(dpFilterMode, null);
                    
                        if (filterMode && filterMode !== null && filterMode !== '') {
                            if (filterMode === 'hasUpdates') {
                                adapterList = adapterList.filter(function (item) {
                                    return item.hasUpdates === true;
                                });
                            } else if (filterMode === 'notConnected') {
                                adapterList = adapterList.filter(function (item) {
                                    return item.status === 4;
                                });
                            } else if (filterMode === 'deactivated') {
                                adapterList = adapterList.filter(function (item) {
                                    return item.status === 2;
                                });
                            } else if (filterMode === 'activated') {
                                adapterList = adapterList.filter(function (item) {
                                    return item.status <= 1;
                                });
                            }
                        }
                    
                        // adapterList = adapterList.filter(function(item){
                        //     return item.status === 4;
                        // })
                    
                        let result = JSON.stringify(adapterList);
                        if (getState(dpList) !== result) {
                            setState(dpList, result, true);
                        }
                    
                    
                    }
                    
                    // Beim Staren des Skriptes Adapter Status abrufen
                    adapterStatus();
                    
                    // Funktion um Adapter zu starten / neu starten
                    on({ id: dpAdapterRestart }, function (obj) {
                        var adapter = getObject(obj.state.val.toString());
                    
                        if (neustarten) {
                            if (adapter.common && adapter.common.enabled === false) {
                                // Adapter deaktiviert -> starten
                                adapter.common.enabled = true;
                            }
                        } else {
                            if (adapter.common && adapter.common.enabled) {
                                adapter.common.enabled = !adapter.common.enabled;
                            } else {
                                adapter.common.enabled = true;
                            }
                        }
                    
                        setObject(obj.state.val, adapter);
                        console.log(`${obj.state.val.replace('system.adapter.', '')} neugestartet`);
                    });
                    
                    
                    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);
                        }
                    }
                    
                    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;
                                }
                            }
                        }
                    }
                    
                    ub.privatU Offline
                    ub.privatU Offline
                    ub.privat
                    schrieb am zuletzt editiert von
                    #164

                    @Scrounger

                    Habe dieses Script verwendet und das hat nach dem kopieren 679 Zeilen

                    061b470e-7109-4136-9a9f-65a404a4b0f9-grafik.png

                    Leerzeilen sind natürlich mitgezählt...

                    1 Antwort Letzte Antwort
                    0
                    • ub.privatU ub.privat

                      @Scrounger

                      Bin mir keiner Änderung bewußt!
                      Würdest du das AKTUELLESTE Script nochmals bitte verlinken!?
                      DANKE.

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

                      @ub-privat sagte in View Adapter Status:

                      @Scrounger

                      Bin mir keiner Änderung bewußt!
                      Würdest du das AKTUELLESTE Script nochmals bitte verlinken!?
                      DANKE.

                      Edit: Falsches Skript gewesen.

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

                      1 Antwort Letzte Antwort
                      0
                      • ScroungerS Scrounger

                        @ub-privat
                        Hast du das skript 1:1 kopiert?
                        Die Fehlermeldung bezieht sich auf Zeile 518-520 - das skript hat aber nur 339 Zeilen.

                        Und laut deinem Screenshot hast du irgendwas an dem Skript verändert. Weil ab Zeile 8 müssten die settings zu sehen sein.

                        Und bitte das vollständige log posten, also aus dem reiter 'log' im admin bereich.

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

                        @Scrounger sagte in View Adapter Status:

                        das skript hat aber nur 339 Zeilen.

                        Ich habe 310?

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

                        ScroungerS 1 Antwort Letzte Antwort
                        0
                        • sigi234S sigi234

                          @Scrounger sagte in View Adapter Status:

                          das skript hat aber nur 339 Zeilen.

                          Ich habe 310?

                          ScroungerS Offline
                          ScroungerS Offline
                          Scrounger
                          Developer
                          schrieb am zuletzt editiert von
                          #167

                          @sigi234
                          https://forum.iobroker.net/topic/26533/view-adapter-status/142

                          Hatte ich geschrieben das ich es nochmal dort aktualisiert habe ;)

                          <a href="https://github.com/Scrounger/ioBroker.linkeddevices">LinkedDevices Adapter</a>

                          <a href="https://github.com/Scrounger/ioBroker.vis-materialdesign">Material Design Widgets</a>

                          ub.privatU 1 Antwort Letzte Antwort
                          0
                          • ScroungerS Scrounger

                            @sigi234
                            https://forum.iobroker.net/topic/26533/view-adapter-status/142

                            Hatte ich geschrieben das ich es nochmal dort aktualisiert habe ;)

                            ub.privatU Offline
                            ub.privatU Offline
                            ub.privat
                            schrieb am zuletzt editiert von ub.privat
                            #168

                            @Scrounger
                            @sigi234

                            Habe es nochmals kopiert und neu angelegt.
                            Hat nunmehr die "339" Zeilen und ab Zeile 8 beginnen die settings.
                            8cf1a33b-c14a-4c94-be2f-c5a8dbeb44e7-grafik.png
                            1b9067a5-733f-49de-910a-fdd1efdb13be-grafik.png

                            Folgende Warnung wird immer in Zeile 259 - 260 ausgewiesen:

                            27.2.2020, 20:44:17.792	[info ]: javascript.0 (31416) Stop script script.js.Adapter_MaterialDesignWidget
                            27.2.2020, 20:44:22.557	[info ]: javascript.0 (31416) Start javascript script.js.Adapter_MaterialDesignWidget
                            27.2.2020, 20:44:23.017	[warn ]: javascript.0 (31416)     at adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:44:23.017	[warn ]: javascript.0 (31416)     at script.js.Adapter_MaterialDesignWidget:267:1
                            27.2.2020, 20:44:23.018	[warn ]: javascript.0 (31416)     at adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:44:23.019	[warn ]: javascript.0 (31416)     at script.js.Adapter_MaterialDesignWidget:267:1
                            27.2.2020, 20:44:23.019	[info ]: javascript.0 (31416) script.js.Adapter_MaterialDesignWidget: registered 105 subscriptions and 1 schedule
                            27.2.2020, 20:44:30.196	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:44:30.199	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:44:32.200	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:44:32.204	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:44:33.250	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:44:33.252	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:45:00.287	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:45:00.291	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:45:02.541	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:45:02.545	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:45:02.857	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:45:02.859	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:45:03.452	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:45:03.456	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:45:09.499	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:45:09.503	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:45:11.106	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:45:11.109	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:45:17.548	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:45:17.552	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:45:29.638	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:45:29.641	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:45:30.233	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:45:30.242	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:45:32.297	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:45:32.300	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:45:33.280	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:45:33.281	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:46:00.359	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:46:00.364	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:46:04.589	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:46:04.591	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:46:04.772	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:46:04.775	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:46:05.625	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:46:05.628	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:46:30.164	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:46:30.167	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:46:31.916	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:46:31.919	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:46:32.858	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:46:32.860	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:47:00.326	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:47:00.331	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:47:02.429	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:47:02.431	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:47:02.669	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:47:02.672	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:47:03.396	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:47:03.399	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:48:30.164	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:48:30.167	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:48:31.763	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:48:31.770	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:48:32.770	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:48:32.771	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:49:00.258	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:49:00.261	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:49:02.564	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:49:02.568	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:49:02.817	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:49:02.819	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:49:03.517	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:49:03.521	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:49:32.178	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:49:32.180	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:49:33.143	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:49:33.146	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:50:00.338	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:50:00.342	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:50:02.898	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:50:02.901	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:50:03.205	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:50:03.207	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:50:03.885	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:50:03.892	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            27.2.2020, 20:50:09.069	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                            27.2.2020, 20:50:09.073	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                            
                            Das steht im Script:
                            
                            ![20bd8d6a-e81d-48de-a58b-2ab78550537b-grafik.png](/assets/uploads/files/1582833432058-20bd8d6a-e81d-48de-a58b-2ab78550537b-grafik.png) 
                            
                            ScroungerS 1 Antwort Letzte Antwort
                            0
                            • ub.privatU ub.privat

                              @Scrounger
                              @sigi234

                              Habe es nochmals kopiert und neu angelegt.
                              Hat nunmehr die "339" Zeilen und ab Zeile 8 beginnen die settings.
                              8cf1a33b-c14a-4c94-be2f-c5a8dbeb44e7-grafik.png
                              1b9067a5-733f-49de-910a-fdd1efdb13be-grafik.png

                              Folgende Warnung wird immer in Zeile 259 - 260 ausgewiesen:

                              27.2.2020, 20:44:17.792	[info ]: javascript.0 (31416) Stop script script.js.Adapter_MaterialDesignWidget
                              27.2.2020, 20:44:22.557	[info ]: javascript.0 (31416) Start javascript script.js.Adapter_MaterialDesignWidget
                              27.2.2020, 20:44:23.017	[warn ]: javascript.0 (31416)     at adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:44:23.017	[warn ]: javascript.0 (31416)     at script.js.Adapter_MaterialDesignWidget:267:1
                              27.2.2020, 20:44:23.018	[warn ]: javascript.0 (31416)     at adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:44:23.019	[warn ]: javascript.0 (31416)     at script.js.Adapter_MaterialDesignWidget:267:1
                              27.2.2020, 20:44:23.019	[info ]: javascript.0 (31416) script.js.Adapter_MaterialDesignWidget: registered 105 subscriptions and 1 schedule
                              27.2.2020, 20:44:30.196	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:44:30.199	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:44:32.200	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:44:32.204	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:44:33.250	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:44:33.252	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:45:00.287	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:45:00.291	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:45:02.541	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:45:02.545	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:45:02.857	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:45:02.859	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:45:03.452	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:45:03.456	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:45:09.499	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:45:09.503	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:45:11.106	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:45:11.109	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:45:17.548	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:45:17.552	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:45:29.638	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:45:29.641	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:45:30.233	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:45:30.242	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:45:32.297	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:45:32.300	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:45:33.280	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:45:33.281	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:46:00.359	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:46:00.364	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:46:04.589	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:46:04.591	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:46:04.772	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:46:04.775	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:46:05.625	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:46:05.628	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:46:30.164	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:46:30.167	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:46:31.916	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:46:31.919	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:46:32.858	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:46:32.860	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:47:00.326	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:47:00.331	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:47:02.429	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:47:02.431	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:47:02.669	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:47:02.672	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:47:03.396	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:47:03.399	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:48:30.164	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:48:30.167	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:48:31.763	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:48:31.770	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:48:32.770	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:48:32.771	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:49:00.258	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:49:00.261	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:49:02.564	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:49:02.568	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:49:02.817	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:49:02.819	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:49:03.517	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:49:03.521	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:49:32.178	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:49:32.180	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:49:33.143	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:49:33.146	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:50:00.338	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:50:00.342	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:50:02.898	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:50:02.901	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:50:03.205	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:50:03.207	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:50:03.885	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:50:03.892	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              27.2.2020, 20:50:09.069	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:259:9)
                              27.2.2020, 20:50:09.073	[warn ]: javascript.0 (31416)     at Object.adapterStatus (script.js.Adapter_MaterialDesignWidget:260:9)
                              
                              Das steht im Script:
                              
                              ![20bd8d6a-e81d-48de-a58b-2ab78550537b-grafik.png](/assets/uploads/files/1582833432058-20bd8d6a-e81d-48de-a58b-2ab78550537b-grafik.png) 
                              
                              ScroungerS Offline
                              ScroungerS Offline
                              Scrounger
                              Developer
                              schrieb am zuletzt editiert von
                              #169

                              @ub-privat

                              Datenpunkt bei dir 0_userdata.0.AdapterStatus.sortMode

                              Datenpunkt im skript 0_userdata.0.vis.AdapterStatus.sortMode

                              D.h. Datenpunkte findet er nicht.

                              <a href="https://github.com/Scrounger/ioBroker.linkeddevices">LinkedDevices Adapter</a>

                              <a href="https://github.com/Scrounger/ioBroker.vis-materialdesign">Material Design Widgets</a>

                              1 Antwort Letzte Antwort
                              0
                              • ub.privatU ub.privat

                                @Scrounger

                                Guten entspannten Guten Abend!

                                Mit meinem langsam wachsendem Verständnis in der Anwendung deiner MEISTERWERKE versuche ich mich wieder mal.
                                Der Adapter-View ist ganz großes Kino. Leider verende ich beim "Trailer".
                                Was habe ich bisher gemacht:

                                1. notwendige Einstellungen im JS Adapter vorgenommen:
                                  636f2623-a41a-4cb3-9d92-74154a05890a-grafik.png

                                2. Script eingestellt:
                                  8dc9c5a6-9444-406b-9893-ff3085e48816-grafik.png
                                  Leider mit Warnungen...

                                3. Datenpunkte angelegt:
                                  e43630b0-51fd-45da-bb06-73d650def20c-grafik.png
                                  f1a758b3-22cb-45af-a95f-02f71bbb4c93-grafik.png
                                  Leider werden keine Werte erzeugt.

                                4. View importiert:
                                  70e9844b-fb88-4b82-b2d1-0696d71594e4-grafik.png
                                  Mit entsprechender Warnung.

                                5. NUN IST GUTER RAT TEUER - wo mache ich wie weiter????
                                  Lesse den Tread hoch und runter, aber die Erleeuchtung will sich nicht einstellen...

                                GlasfaserG Offline
                                GlasfaserG Offline
                                Glasfaser
                                schrieb am zuletzt editiert von Glasfaser
                                #170

                                @ub-privat sagte in View Adapter Status:

                                f1a758b3-22cb-45af-a95f-02f71bbb4c93-grafik.png
                                Leider werden keine Werte erzeugt.

                                Die Datenpunkte sind im Skript :

                                0_userdata.0.vis.AdapterStatus.jsonList
                                

                                deine sind :

                                0_userdata.0.AdapterStatus.jsonList
                                

                                EDIT : @Scrounger war schneller :)

                                Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                ub.privatU 1 Antwort Letzte Antwort
                                0
                                • GlasfaserG Glasfaser

                                  @ub-privat sagte in View Adapter Status:

                                  f1a758b3-22cb-45af-a95f-02f71bbb4c93-grafik.png
                                  Leider werden keine Werte erzeugt.

                                  Die Datenpunkte sind im Skript :

                                  0_userdata.0.vis.AdapterStatus.jsonList
                                  

                                  deine sind :

                                  0_userdata.0.AdapterStatus.jsonList
                                  

                                  EDIT : @Scrounger war schneller :)

                                  ub.privatU Offline
                                  ub.privatU Offline
                                  ub.privat
                                  schrieb am zuletzt editiert von
                                  #171

                                  @Glasfaser
                                  @Scrounger

                                  Vielen Dank! dieses kleine "vis" :angry: hat so eine riesige Wirkung.
                                  Tata... es funzt!
                                  a2c28e35-904e-4e01-8d29-4ebe391dbe1b-grafik.png
                                  Vielen Dank!

                                  Nun noch schick und schön alá @sigi234 und die Visu ist wieder um einen View reicher!

                                  DANKE :+1: :+1:

                                  1 Antwort Letzte Antwort
                                  0
                                  • smartboartS Offline
                                    smartboartS Offline
                                    smartboart
                                    schrieb am zuletzt editiert von
                                    #172

                                    Tolle Sache!!! Danke für view und script...Wie wäre es das Script noch um einen Filter und Sortierung nach Instanz zu erweitern?

                                    ScroungerS 1 Antwort Letzte Antwort
                                    0
                                    • ScroungerS Scrounger

                                      Sodele nochmal eine neue Version des Skriptes

                                      Voraussetzung Material Design Widgets v0.2.62 (demnächst im latest) !!!

                                      • mehr Farbeinstellung
                                      • Sortier Funktion
                                      • Filter Funktion - wäre sicher als nächster Wunsch gekommen, deshalb hab ich es schon mal eingebaut ;-)
                                        (Benötigt ihr weitere schaut ins skript und passt es auf eure Bedürfnisse an)
                                      • Adapter Modus wird angezeigt
                                      • Fehler behoben

                                      AdapterStatus.gif

                                      Ist auch im Online Beispiel enthalten

                                      View:

                                      {
                                        "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.AdapterStatus.jsonList",
                                              "maxItemsperRow": "6",
                                              "iconItemMinWidth": "300",
                                              "iconHeight": "60",
                                              "buttonHeight": "100",
                                              "labelFontSize": "22",
                                              "subLabelFontSize": "14",
                                              "subLabelFontColor": "#000000",
                                              "labelFontFamily": "RobotoCondensed-Regular",
                                              "subLabelFontFamily": "RobotoCondensed-Light",
                                              "horizontalIconContainerWidth": "120"
                                            },
                                            "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.AdapterStatus.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\": \"Adaptername\",\n\t\t\"value\": \"name\",\n\t\t\"icon\": \"sort-alphabetical\"\n\t},\n\t{\n\t\t\"text\": \"Status\",\n\t\t\"value\": \"status\",\n\t\t\"icon\": \"information-variant\"\n\t},\t\n\t{\n\t\t\"text\": \"Modus\",\n\t\t\"value\": \"mode\",\n\t\t\"icon\": \"view-dashboard\"\n\t},\n\t{\n\t\t\"text\": \"Updates verfügbar\",\n\t\t\"value\": \"hasUpdates\",\n\t\t\"icon\": \"package-down\"\n\t},\n\t{\n\t\t\"text\": \"CPU\",\n\t\t\"value\": \"cpu\",\n\t\t\"icon\": \"cpu-64-bit\"\n\t},\n\t{\n\t\t\"text\": \"RAM total\",\n\t\t\"value\": \"memHeapTotal\",\n\t\t\"icon\": \"memory\"\n\t},\n\t{\n\t\t\"text\": \"RAM verwendet\",\n\t\t\"value\": \"memHeapUsed\",\n\t\t\"icon\": \"memory\"\n\t},\n\t{\n\t\t\"text\": \"RAM reserviert\",\n\t\t\"value\": \"memRss\",\n\t\t\"icon\": \"memory\"\n\t},\n\t{\n\t\t\"text\": \"Betriebszeit\",\n\t\t\"value\": \"uptime\",\n\t\t\"icon\": \"clock-check-outline\"\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": ""
                                            },
                                            "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.AdapterStatus.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\": \"nicht verbunden\",\n\t\t\"value\": \"notConnected\",\n\t\t\"icon\": \"network-off\"\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\t{\n\t\t\"text\": \"Updates verfügbar\",\n\t\t\"value\": \"hasUpdates\",\n\t\t\"icon\": \"package-down\"\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": "AdapterStatus",
                                        "filterList": []
                                      }
                                      

                                      Skript

                                      // Imports -> müssen im Javascript Adapter unter 'Zusätzliche NPM-Module' eingetragen sein
                                      const moment = require("moment");
                                      const momentDurationFormatSetup = require("moment-duration-format");
                                      
                                      
                                      // Skript Einstellungen *************************************************************************************************************************************************
                                      
                                      let dpList = '0_userdata.0.vis.AdapterStatus.jsonList';                     // Datenpunkt für IconList Widget (Typ: Zeichenkette (String))
                                      let dpAdapterRestart = '0_userdata.0.vis.AdapterStatus.restartTrigger';     // Datenpunkt für Adapter restart (Typ: Zeichenkette (String))
                                      
                                      let dpSortMode = '0_userdata.0.vis.AdapterStatus.sortMode';                 // Datenpunkt für Sortieren (Typ: Zeichenkette (String))
                                      let dpFilterMode = '0_userdata.0.vis.AdapterStatus.filterMode';             // Datenpunkt für Filter (Typ: Zeichenkette (String))
                                      
                                      let adminUpdatesList = 'admin.0.info.updatesList';                          // Datenpunkt Admin Adapter für verfübare Updates der Adapter
                                      
                                      const checkInterval = 30;                                                   // Interval wie oft Status der Adapter aktualisiert werden soll (in Sekunden)
                                      
                                      let sprache = 'de';                                                         // Sprache für formatierung Dauer 
                                      let formatierungDauer = "dd[T] hh[h] mm[m]";                                // Formatierung der Dauer -> siehe momentjs library
                                      
                                      let neustarten = true;                                                      // true: Adapter wird neugestartet, false: Adapter wird gestoppt oder gestartet
                                      
                                      let farbeAdapterAktiv = 'green';                                            // Status Bar Farbe wenn Adapter aktiv ist
                                      let farbeAdapterNichtAktiv = 'FireBrick';                                   // Status Bar Farbe wenn Adapter nicht aktiv ist oder Fehler vorliegt
                                      let farbeAdapterDeaktiviert = 'darkgrey';                                   // Status Bar Farbe wenn Adapter deaktiviert ist
                                      let farbeAdapterNichtVerbunden = 'yellow';                                  // Status Bar Farbe wenn Adapter nicht verbunden ist
                                      let farbeAdapterZeitgesteuert = 'lightgreen';                               // Status Bar Farbe wenn Adapter zeitgesteuert ist
                                      let farbeAdapterErweiterung = '#44739e';                                    // Status Bar Farbe wenn Adapter Erweiterung ist
                                      let farbeAdapterSystem = '#44739e';                                         // Status Bar Farbe wenn Adapter mit System gestartet wird
                                      
                                      let sortResetAfter = 120;                                                   // Sortierung nach X Sekunden auf sortReset zurücksetzen (0=deaktiviert)
                                      let sortReset = 'memHeapUsed'                                               // 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 .alive Änderungen hören
                                      let aliveSelector = `[id=system.adapter.*.alive]`;
                                      let adapterAliveList = $(aliveSelector);
                                      if (adapterAliveList.length === 0) {
                                          // Fehlermeldung ausgeben, wenn selector kein result liefert
                                          console.error(`no result for selector '${aliveSelector}'`)
                                      } else {
                                          // listener nur für Änderung bei alive
                                          adapterAliveList.on(adapterStatus);
                                      }
                                      
                                      // auf .connection Änderungen hören
                                      let connectionSelector = `[id=*.info.connection]`;
                                      let adapterConnectionList = $(connectionSelector);
                                      if (adapterConnectionList.length === 0) {
                                          // Fehlermeldung ausgeben, wenn selector kein result liefert
                                          console.error(`no result for selector '${connectionSelector}'`)
                                      } else {
                                          // listener nur für Änderung bei alive
                                          adapterConnectionList.on(adapterStatus);
                                      }
                                      
                                      // auf .connected Änderungen hören
                                      let connectedSelector = `[id=system.adapter.*.connected]`;
                                      let adapterConnectedList = $(connectedSelector);
                                      if (adapterConnectedList.length === 0) {
                                          // Fehlermeldung ausgeben, wenn selector kein result liefert
                                          console.error(`no result for selector '${connectedSelector}'`)
                                      } else {
                                          // listener nur für Änderung bei alive
                                          adapterConnectedList.on(adapterStatus);
                                      }
                                      
                                      // auf Änderungen der Sortieung hören
                                      on({ id: dpSortMode, change: 'any' }, adapterStatus);
                                      on({ id: dpSortMode, change: 'any' }, resetSort);
                                      
                                      // auf Änderungen der Filter hören
                                      on({ id: dpFilterMode, change: 'any' }, adapterStatus);
                                      on({ id: dpFilterMode, change: 'any' }, resetFilter);
                                      
                                      // Funktion adapterStatus alle x Sekunden ausführen
                                      schedule('*/' + checkInterval + ' * * * * *', adapterStatus);
                                      
                                      function adapterStatus() {
                                          // Funktion um Status der Adapter abzurufen und als JSON String für das Material Design Widget IconList aufbereiten
                                          let adapterList = [];
                                          let updateList = myHelper().getStateValueIfExist(adminUpdatesList);
                                      
                                          try {
                                              for (var i = 0; i <= adapterAliveList.length - 1; i++) {
                                                  let id = adapterAliveList[i].replace('.alive', '');
                                                  let obj = getObject(adapterAliveList[i].replace('.alive', ''));
                                      
                                                  let nameArray = id.replace('system.adapter.', '').split(".");
                                      
                                                  let name = nameArray[0];
                                                  name = name.charAt(0).toUpperCase() + name.slice(1);
                                      
                                                  let nameWithInstance = name;
                                                  let adapterInstance = nameArray[1];
                                                  if (parseInt(adapterInstance) > 0) {
                                                      nameWithInstance = name + '.' + adapterInstance;
                                                  }
                                      
                                                  let uptime = (existsState(id + '.uptime')) ? moment.duration(getState(id + '.uptime').val, 'seconds').format(formatierungDauer, 0) : '-';
                                                  let image = (myHelper().checkCommonPropertyExist(obj, 'icon')) ? `/${nameArray[0]}.admin/${obj.common.icon}` : 'image-off-outline';
                                      
                                                  let hasUpdates = updateList && updateList.includes(nameArray[0]);
                                                  let newVersion = (hasUpdates) ? '<span class="mdi mdi-update" style="color: #ec0909;"></span>' : '';
                                      
                                                  let text = `<div style="display: flex; flex-direction: row; line-height: 1.5; padding-right: 8px; align-items: center;">
                                                                  <div style="flex: 1">${newVersion} ${nameWithInstance}</div>
                                                                  <div style="color: grey; font-size: 12px; font-family: RobotoCondensed-LightItalic;">${myHelper().getCommonPropertyIfExist(obj, 'version', '-', 'v', '')}</div>
                                                              </div>`
                                      
                                                  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;">CPU</div>
                                                                      <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic;">${myHelper().getStateValueIfExist(id + '.cpu', '-', '', ' %')}</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;">RAM total</div>
                                                                      <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic;">${myHelper().getStateValueIfExist(id + '.memHeapTotal', '-', '', ' MB')}</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;">RAM verwendet</div>
                                                                      <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic;">${myHelper().getStateValueIfExist(id + '.memHeapUsed', '-', '', ' MB')}</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;">RAM reserviert</div>
                                                                      <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic;">${myHelper().getStateValueIfExist(id + '.memRss', '-', '', ' MB')}</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;">Betriebszeit</div>
                                                                      <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic;">${uptime}</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;">Modus</div>
                                                                      <div style="color: grey; font-size: 14px; font-family: RobotoCondensed-LightItalic;">${myHelper().getCommonPropertyIfExist(obj, 'mode', '-')}</div>
                                                                  </div>`
                                      
                                                  let statusBarColor = farbeAdapterNichtAktiv;
                                                  let status = 3;
                                      
                                                  if (myHelper().getStateValueIfExist(adapterAliveList[i]) === 'true') {
                                                      statusBarColor = farbeAdapterAktiv;
                                                      status = 0;
                                      
                                                      if (existsState(id.replace('system.adapter.', '') + '.info.connection')) {
                                                          if (!getState(id.replace('system.adapter.', '') + '.info.connection').val) {
                                                              statusBarColor = farbeAdapterNichtVerbunden;
                                                              status = 4;
                                                          }
                                                      } else {
                                                          if (myHelper().getStateValueIfExist(adapterAliveList[i].replace('.alive', '.connected')) === 'false') {
                                                              statusBarColor = farbeAdapterNichtVerbunden;
                                                              status = 4;
                                                          }
                                                      }
                                                  }
                                      
                                                  if (myHelper().getCommonPropertyIfExist(obj, 'mode') === 'schedule') {
                                                      // Adapter ist zeitgesteuert
                                                      statusBarColor = farbeAdapterZeitgesteuert;
                                                      status = 1;
                                                  }
                                      
                                                  if (myHelper().getCommonPropertyIfExist(obj, 'mode') === 'extension') {
                                                      // Adapter ist Extension
                                                      statusBarColor = farbeAdapterErweiterung;
                                                      status = 1;
                                                  }
                                      
                                                  if (myHelper().getCommonPropertyIfExist(obj, 'mode') === 'once') {
                                                      // Adapter wird mit System gestartet
                                                      statusBarColor = farbeAdapterSystem;
                                                      status = 1;
                                                  }
                                      
                                                  if (myHelper().getCommonPropertyIfExist(obj, 'enabled', false).toString() === 'false') {
                                                      // Adapter ist deaktiviert
                                                      statusBarColor = farbeAdapterDeaktiviert;
                                                      status = 2;
                                                  }
                                      
                                                  adapterList.push({
                                                      text: text,
                                                      subText: subText,
                                                      image: image,
                                                      listType: "buttonState",
                                                      objectId: dpAdapterRestart,
                                                      buttonStateValue: id,
                                                      statusBarColor: statusBarColor,
                                                      showValueLabel: false,
                                                      name: name,
                                                      mode: myHelper().getCommonPropertyIfExist(obj, 'mode'),
                                                      hasUpdates: hasUpdates,
                                                      cpu: parseFloat(myHelper().getStateValueIfExist(id + '.cpu', '0')),
                                                      memHeapTotal: parseFloat(myHelper().getStateValueIfExist(id + '.memHeapTotal', '0')),
                                                      memHeapUsed: parseFloat(myHelper().getStateValueIfExist(id + '.memHeapUsed', '0')),
                                                      memRss: parseFloat(myHelper().getStateValueIfExist(id + '.memRss', '0')),
                                                      uptime: parseFloat(myHelper().getStateValueIfExist(id + '.uptime', 0)),
                                                      status: status
                                                  })
                                              }
                                      
                                          } catch (err) {
                                              console.error(`[adapterStatus] error: ${err.message}, stack: ${err.stack}`);
                                          }
                                      
                                          let sortMode = myHelper().getStateValueIfExist(dpSortMode, 'name');
                                      
                                          if (sortMode === 'name' || sortMode === 'mode') {
                                              adapterList.sort(function (a, b) {
                                                  return a[sortMode] == b[sortMode] ? 0 : +(a[sortMode] > b[sortMode]) || -1;
                                              });
                                          } else if (sortMode === 'hasUpdates' || sortMode === 'cpu' || sortMode === 'memHeapTotal' || sortMode === 'memHeapUsed' || sortMode === 'memRss' || sortMode === 'uptime' || sortMode === 'status') {
                                              adapterList.sort(function (a, b) {
                                                  return a[sortMode] == b[sortMode] ? 0 : +(a[sortMode] < b[sortMode]) || -1;
                                              });
                                          } else {
                                              // default: nach name sortieren
                                              sortMode = 'name'
                                              adapterList.sort(function (a, b) {
                                                  return a[sortMode] == b[sortMode] ? 0 : +(a[sortMode] > b[sortMode]) || -1;
                                              });
                                          }
                                      
                                          // Filter: not connected, updates, deaktiviert, aktiviert
                                      
                                          let filterMode = myHelper().getStateValueIfExist(dpFilterMode, null);
                                      
                                          if (filterMode && filterMode !== null && filterMode !== '') {
                                              if (filterMode === 'hasUpdates') {
                                                  adapterList = adapterList.filter(function (item) {
                                                      return item.hasUpdates === true;
                                                  });
                                              } else if (filterMode === 'notConnected') {
                                                  adapterList = adapterList.filter(function (item) {
                                                      return item.status === 4;
                                                  });
                                              } else if (filterMode === 'deactivated') {
                                                  adapterList = adapterList.filter(function (item) {
                                                      return item.status === 2;
                                                  });
                                              } else if (filterMode === 'activated') {
                                                  adapterList = adapterList.filter(function (item) {
                                                      return item.status <= 1;
                                                  });
                                              }
                                          }
                                      
                                          // adapterList = adapterList.filter(function(item){
                                          //     return item.status === 4;
                                          // })
                                      
                                          let result = JSON.stringify(adapterList);
                                          if (getState(dpList) !== result) {
                                              setState(dpList, result, true);
                                          }
                                      
                                      
                                      }
                                      
                                      // Beim Staren des Skriptes Adapter Status abrufen
                                      adapterStatus();
                                      
                                      // Funktion um Adapter zu starten / neu starten
                                      on({ id: dpAdapterRestart }, function (obj) {
                                          var adapter = getObject(obj.state.val.toString());
                                      
                                          if (neustarten) {
                                              if (adapter.common && adapter.common.enabled === false) {
                                                  // Adapter deaktiviert -> starten
                                                  adapter.common.enabled = true;
                                              }
                                          } else {
                                              if (adapter.common && adapter.common.enabled) {
                                                  adapter.common.enabled = !adapter.common.enabled;
                                              } else {
                                                  adapter.common.enabled = true;
                                              }
                                          }
                                      
                                          setObject(obj.state.val, adapter);
                                          console.log(`${obj.state.val.replace('system.adapter.', '')} neugestartet`);
                                      });
                                      
                                      
                                      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);
                                          }
                                      }
                                      
                                      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;
                                                  }
                                              }
                                          }
                                      }
                                      
                                      S Offline
                                      S Offline
                                      skokarl
                                      schrieb am zuletzt editiert von
                                      #173

                                      @Scrounger

                                      Jetzt hast Du aber wieder einen rausgehauen mit der View und dem Script ... :grinning:

                                      Super klasse !!!

                                      IOBroker mit Proxmox auf Celeron Nuc mit 16 GB und Debian11, Sonos API, Echo Show 15 als Wandtablet, Homematic IP, HUE, Sonos, Echos, DS718+ als Backup

                                      H 1 Antwort Letzte Antwort
                                      0
                                      • smartboartS smartboart

                                        Tolle Sache!!! Danke für view und script...Wie wäre es das Script noch um einen Filter und Sortierung nach Instanz zu erweitern?

                                        ScroungerS Offline
                                        ScroungerS Offline
                                        Scrounger
                                        Developer
                                        schrieb am zuletzt editiert von
                                        #174

                                        @smartboart sagte in View Adapter Status:

                                        Tolle Sache!!! Danke für view und script...Wie wäre es das Script noch um einen Filter und Sortierung nach Instanz zu erweitern?

                                        Filter gibt es doch schon?
                                        Und was meinst du mit Sortierung nach Instanz, also was sollte nach Auswahl angezeigt werden?

                                        <a href="https://github.com/Scrounger/ioBroker.linkeddevices">LinkedDevices Adapter</a>

                                        <a href="https://github.com/Scrounger/ioBroker.vis-materialdesign">Material Design Widgets</a>

                                        O smartboartS 2 Antworten Letzte Antwort
                                        0
                                        • ScroungerS Scrounger

                                          @smartboart sagte in View Adapter Status:

                                          Tolle Sache!!! Danke für view und script...Wie wäre es das Script noch um einen Filter und Sortierung nach Instanz zu erweitern?

                                          Filter gibt es doch schon?
                                          Und was meinst du mit Sortierung nach Instanz, also was sollte nach Auswahl angezeigt werden?

                                          O Online
                                          O Online
                                          Oli
                                          schrieb am zuletzt editiert von
                                          #175

                                          @Scrounger

                                          Ist es möglich am Ende des Widget eine Fußzeile einzufügen?

                                          Inhalt könnte die letzte Ausführung und Farblegende sein.

                                          Gruß
                                          Oliver

                                          ScroungerS 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          632

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe