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

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

Community Forum

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

NEWS

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

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

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

View Adapter Status

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
view adapterview
212 Beiträge 31 Kommentatoren 37.1k 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 Offline
    ScroungerS Offline
    Scrounger
    Developer
    schrieb am zuletzt editiert von Scrounger
    #105

    So hier ist die verbesserte Variante des Skriptes, die auch die ganzen Warn Meldungen abfangen sollte

    3c38829c-b368-4c0c-b312-7531dc59bff5-grafik.png

    // 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 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 = 'darkgreen';                                // Status Bar Farbe wenn Adapter zeitgesteuert ist
    
    // **********************************************************************************************************************************************************************
    
    
    
    // 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 .connected Änderungen hören
    let connectedSelector = `[id=*.info.connection]`;
    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);
    }
    
    // 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 newVersion = (updateList && updateList.includes(nameArray[0])) ? '<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>`
    
                adapterList.push({
                    text: text,
                    subText: subText,
                    image: image,
                    listType: "buttonState",
                    objectId: dpAdapterRestart,
                    buttonStateValue: id,
                    statusBarColor: getStatusColor(),
                    showValueLabel: false,
                    name: name
                })
    
                function getStatusColor() {
                    let statusBarColor = farbeAdapterNichtAktiv;
    
                    if (myHelper().getStateValueIfExist(adapterAliveList[i]) === 'true') {
                        statusBarColor = farbeAdapterAktiv;
    
                        if (existsState(id.replace('system.adapter.', '') + '.info.connection')) {
                            if (!getState(id.replace('system.adapter.', '') + '.info.connection').val) {
                                statusBarColor = farbeAdapterNichtVerbunden;
                            }
                        } else {
                            if (myHelper().getStateValueIfExist(adapterAliveList[i].replace('.alive', '.connected')) === 'false') {
                                statusBarColor = farbeAdapterNichtVerbunden;
                            }
                        }
                    }
            
                    if (myHelper().getCommonPropertyIfExist(obj, 'enabled', false).toString() === 'false') {
                        // Adapter ist deaktiviert
                        statusBarColor = farbeAdapterDeaktiviert;
                    }
    
                    if (myHelper().getCommonPropertyIfExist(obj, 'mode') === 'schedule') {
                        // Adapter ist zeitgesteuert
                        statusBarColor = farbeAdapterZeitgesteuert;
                    }
    
                    return statusBarColor;
                }
            }
    
        } catch (err) {
            console.error(`[adapterStatus] error: ${err.message}, stack: ${err.stack}`);
        }
    
        adapterList.sort(function (a, b) {
            return a.name == b.name ? 0 : +(a.name > b.name) || -1;
        });
    
        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 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;
                }
            }
        }
    }
    

    Ihr könnt jetzt Einstellungen vornehmen, erklärung steht im kommentar

    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 adminUpdatesList = 'admin.0.info.updatesList'                           // Datenpunkt Admin Adapter für verfübare Updates der Adapter
    
    const checkInterval = 10;                                                   // 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 = 'darkgreen';                                // Status Bar Farbe wenn Adapter zeitgesteuert ist
    

    @Oli sagte in View Adapter Status:

    Die Info wenn ein Adapter gelb ist steht unter:
    "system.adapter.backitup.0.connected"

    Das ist aber nicht der Status für connection, dieser steht unter adapter.x.info.connection. Hab es gleich mal mit eingebaut ;-)

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

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

    sigi234S 2 Antworten Letzte Antwort
    0
    • ScroungerS Scrounger

      So hier ist die verbesserte Variante des Skriptes, die auch die ganzen Warn Meldungen abfangen sollte

      3c38829c-b368-4c0c-b312-7531dc59bff5-grafik.png

      // 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 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 = 'darkgreen';                                // Status Bar Farbe wenn Adapter zeitgesteuert ist
      
      // **********************************************************************************************************************************************************************
      
      
      
      // 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 .connected Änderungen hören
      let connectedSelector = `[id=*.info.connection]`;
      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);
      }
      
      // 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 newVersion = (updateList && updateList.includes(nameArray[0])) ? '<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>`
      
                  adapterList.push({
                      text: text,
                      subText: subText,
                      image: image,
                      listType: "buttonState",
                      objectId: dpAdapterRestart,
                      buttonStateValue: id,
                      statusBarColor: getStatusColor(),
                      showValueLabel: false,
                      name: name
                  })
      
                  function getStatusColor() {
                      let statusBarColor = farbeAdapterNichtAktiv;
      
                      if (myHelper().getStateValueIfExist(adapterAliveList[i]) === 'true') {
                          statusBarColor = farbeAdapterAktiv;
      
                          if (existsState(id.replace('system.adapter.', '') + '.info.connection')) {
                              if (!getState(id.replace('system.adapter.', '') + '.info.connection').val) {
                                  statusBarColor = farbeAdapterNichtVerbunden;
                              }
                          } else {
                              if (myHelper().getStateValueIfExist(adapterAliveList[i].replace('.alive', '.connected')) === 'false') {
                                  statusBarColor = farbeAdapterNichtVerbunden;
                              }
                          }
                      }
              
                      if (myHelper().getCommonPropertyIfExist(obj, 'enabled', false).toString() === 'false') {
                          // Adapter ist deaktiviert
                          statusBarColor = farbeAdapterDeaktiviert;
                      }
      
                      if (myHelper().getCommonPropertyIfExist(obj, 'mode') === 'schedule') {
                          // Adapter ist zeitgesteuert
                          statusBarColor = farbeAdapterZeitgesteuert;
                      }
      
                      return statusBarColor;
                  }
              }
      
          } catch (err) {
              console.error(`[adapterStatus] error: ${err.message}, stack: ${err.stack}`);
          }
      
          adapterList.sort(function (a, b) {
              return a.name == b.name ? 0 : +(a.name > b.name) || -1;
          });
      
          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 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;
                  }
              }
          }
      }
      

      Ihr könnt jetzt Einstellungen vornehmen, erklärung steht im kommentar

      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 adminUpdatesList = 'admin.0.info.updatesList'                           // Datenpunkt Admin Adapter für verfübare Updates der Adapter
      
      const checkInterval = 10;                                                   // 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 = 'darkgreen';                                // Status Bar Farbe wenn Adapter zeitgesteuert ist
      

      @Oli sagte in View Adapter Status:

      Die Info wenn ein Adapter gelb ist steht unter:
      "system.adapter.backitup.0.connected"

      Das ist aber nicht der Status für connection, dieser steht unter adapter.x.info.connection. Hab es gleich mal mit eingebaut ;-)

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

      @Scrounger

      100 Warnmeldungen, Skript hängt sich auf.

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

      1 Antwort Letzte Antwort
      0
      • NegaleinN Offline
        NegaleinN Offline
        Negalein
        Global Moderator
        schrieb am zuletzt editiert von
        #107

        @Scrounger

        Warn-Meldungen kommen bei mir auch sehr viele.
        Aber Script läuft sonst super.

        Adapter stoppen funktioniert
        Danke

        javascript.0	2020-02-24 18:46:00.828	warn	(592) at Timer.processTimers (timers.js:223:10)
        javascript.0	2020-02-24 18:46:00.828	warn	(592) at listOnTimeout (timers.js:263:5)
        javascript.0	2020-02-24 18:46:00.827	warn	(592) at tryOnTimeout (timers.js:300:5)
        javascript.0	2020-02-24 18:46:00.827	warn	(592) at ontimeout (timers.js:436:11)
        javascript.0	2020-02-24 18:46:00.827	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
        javascript.0	2020-02-24 18:46:00.827	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
        javascript.0	2020-02-24 18:46:00.827	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
        javascript.0	2020-02-24 18:46:00.827	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
        javascript.0	2020-02-24 18:46:00.827	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:115:33)
        javascript.0	2020-02-24 18:46:00.827	warn	(592) at getStatusColor (script.js.System.Adapterliste:123:32)
        javascript.0	2020-02-24 18:46:00.827	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
        javascript.0	2020-02-24 18:46:00.826	warn	(592) getState "system.adapter.proxy.0.alive" not found (3) states[id]=null
        javascript.0	2020-02-24 18:46:00.824	warn	(592) at Timer.processTimers (timers.js:223:10)
        javascript.0	2020-02-24 18:46:00.823	warn	(592) at listOnTimeout (timers.js:263:5)
        javascript.0	2020-02-24 18:46:00.823	warn	(592) at tryOnTimeout (timers.js:300:5)
        javascript.0	2020-02-24 18:46:00.823	warn	(592) at ontimeout (timers.js:436:11)
        javascript.0	2020-02-24 18:46:00.823	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
        javascript.0	2020-02-24 18:46:00.823	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
        javascript.0	2020-02-24 18:46:00.823	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
        javascript.0	2020-02-24 18:46:00.823	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
        javascript.0	2020-02-24 18:46:00.823	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:101:132)
        javascript.0	2020-02-24 18:46:00.823	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
        javascript.0	2020-02-24 18:46:00.822	warn	(592) getState "system.adapter.proxy.0.memRss" not found (3) states[id]=null
        javascript.0	2020-02-24 18:46:00.819	warn	(592) at Timer.processTimers (timers.js:223:10)
        javascript.0	2020-02-24 18:46:00.819	warn	(592) at listOnTimeout (timers.js:263:5)
        javascript.0	2020-02-24 18:46:00.819	warn	(592) at tryOnTimeout (timers.js:300:5)
        javascript.0	2020-02-24 18:46:00.819	warn	(592) at ontimeout (timers.js:436:11)
        javascript.0	2020-02-24 18:46:00.819	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
        javascript.0	2020-02-24 18:46:00.819	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
        javascript.0	2020-02-24 18:46:00.819	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
        javascript.0	2020-02-24 18:46:00.819	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
        javascript.0	2020-02-24 18:46:00.819	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:97:132)
        javascript.0	2020-02-24 18:46:00.818	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
        javascript.0	2020-02-24 18:46:00.818	warn	(592) getState "system.adapter.proxy.0.memHeapUsed" not found (3) states[id]=null
        javascript.0	2020-02-24 18:46:00.815	warn	(592) at Timer.processTimers (timers.js:223:10)
        javascript.0	2020-02-24 18:46:00.815	warn	(592) at listOnTimeout (timers.js:263:5)
        javascript.0	2020-02-24 18:46:00.815	warn	(592) at tryOnTimeout (timers.js:300:5)
        javascript.0	2020-02-24 18:46:00.815	warn	(592) at ontimeout (timers.js:436:11)
        javascript.0	2020-02-24 18:46:00.815	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
        javascript.0	2020-02-24 18:46:00.814	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
        javascript.0	2020-02-24 18:46:00.814	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
        javascript.0	2020-02-24 18:46:00.814	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
        javascript.0	2020-02-24 18:46:00.814	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:93:132)
        javascript.0	2020-02-24 18:46:00.814	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
        javascript.0	2020-02-24 18:46:00.813	warn	(592) getState "system.adapter.proxy.0.memHeapTotal" not found (3) states[id]=null
        javascript.0	2020-02-24 18:46:00.807	warn	(592) at Timer.processTimers (timers.js:223:10)
        javascript.0	2020-02-24 18:46:00.806	warn	(592) at listOnTimeout (timers.js:263:5)
        javascript.0	2020-02-24 18:46:00.806	warn	(592) at tryOnTimeout (timers.js:300:5)
        javascript.0	2020-02-24 18:46:00.806	warn	(592) at ontimeout (timers.js:436:11)
        javascript.0	2020-02-24 18:46:00.806	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
        javascript.0	2020-02-24 18:46:00.806	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
        javascript.0	2020-02-24 18:46:00.806	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
        javascript.0	2020-02-24 18:46:00.806	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
        javascript.0	2020-02-24 18:46:00.806	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:78:89)
        javascript.0	2020-02-24 18:46:00.805	warn	(592) getState "system.adapter.proxy.0.uptime" not found (3) states[id]=null
        javascript.0	2020-02-24 18:46:00.379	warn	(592) at Timer.processTimers (timers.js:223:10)
        javascript.0	2020-02-24 18:46:00.379	warn	(592) at listOnTimeout (timers.js:263:5)
        javascript.0	2020-02-24 18:46:00.379	warn	(592) at tryOnTimeout (timers.js:300:5)
        javascript.0	2020-02-24 18:46:00.379	warn	(592) at ontimeout (timers.js:436:11)
        javascript.0	2020-02-24 18:46:00.378	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
        javascript.0	2020-02-24 18:46:00.378	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
        javascript.0	2020-02-24 18:46:00.378	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
        javascript.0	2020-02-24 18:46:00.378	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
        javascript.0	2020-02-24 18:46:00.378	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:115:33)
        javascript.0	2020-02-24 18:46:00.378	warn	(592) at getStatusColor (script.js.System.Adapterliste:123:32)
        javascript.0	2020-02-24 18:46:00.378	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
        javascript.0	2020-02-24 18:46:00.377	warn	(592) getState "system.adapter.fontui.0.alive" not found (3) states[id]=null
        javascript.0	2020-02-24 18:46:00.375	warn	(592) at Timer.processTimers (timers.js:223:10)
        javascript.0	2020-02-24 18:46:00.374	warn	(592) at listOnTimeout (timers.js:263:5)
        javascript.0	2020-02-24 18:46:00.374	warn	(592) at tryOnTimeout (timers.js:300:5)
        javascript.0	2020-02-24 18:46:00.374	warn	(592) at ontimeout (timers.js:436:11)
        javascript.0	2020-02-24 18:46:00.374	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
        javascript.0	2020-02-24 18:46:00.374	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
        javascript.0	2020-02-24 18:46:00.374	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
        javascript.0	2020-02-24 18:46:00.374	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
        javascript.0	2020-02-24 18:46:00.374	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:101:132)
        javascript.0	2020-02-24 18:46:00.374	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
        javascript.0	2020-02-24 18:46:00.373	warn	(592) getState "system.adapter.fontui.0.memRss" not found (3) states[id]=null
        javascript.0	2020-02-24 18:46:00.370	warn	(592) at Timer.processTimers (timers.js:223:10)
        javascript.0	2020-02-24 18:46:00.370	warn	(592) at listOnTimeout (timers.js:263:5)
        javascript.0	2020-02-24 18:46:00.370	warn	(592) at tryOnTimeout (timers.js:300:5)
        javascript.0	2020-02-24 18:46:00.370	warn	(592) at ontimeout (timers.js:436:11)
        javascript.0	2020-02-24 18:46:00.370	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
        javascript.0	2020-02-24 18:46:00.370	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
        javascript.0	2020-02-24 18:46:00.370	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
        javascript.0	2020-02-24 18:46:00.369	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
        javascript.0	2020-02-24 18:46:00.369	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:97:132)
        javascript.0	2020-02-24 18:46:00.369	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
        javascript.0	2020-02-24 18:46:00.368	warn	(592) getState "system.adapter.fontui.0.memHeapUsed" not found (3) states[id]=null
        javascript.0	2020-02-24 18:46:00.366	warn	(592) at Timer.processTimers (timers.js:223:10)
        javascript.0	2020-02-24 18:46:00.366	warn	(592) at listOnTimeout (timers.js:263:5)
        javascript.0	2020-02-24 18:46:00.365	warn	(592) at tryOnTimeout (timers.js:300:5)
        javascript.0	2020-02-24 18:46:00.365	warn	(592) at ontimeout (timers.js:436:11)
        javascript.0	2020-02-24 18:46:00.365	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
        javascript.0	2020-02-24 18:46:00.365	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
        javascript.0	2020-02-24 18:46:00.365	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
        javascript.0	2020-02-24 18:46:00.365	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
        javascript.0	2020-02-24 18:46:00.365	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:93:132)
        javascript.0	2020-02-24 18:46:00.365	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
        javascript.0	2020-02-24 18:46:00.364	warn	(592) getState "system.adapter.fontui.0.memHeapTotal" not found (3) states[id]=null
        javascript.0	2020-02-24 18:46:00.361	warn	(592) at Timer.processTimers (timers.js:223:10)
        javascript.0	2020-02-24 18:46:00.361	warn	(592) at listOnTimeout (timers.js:263:5)
        javascript.0	2020-02-24 18:46:00.361	warn	(592) at tryOnTimeout (timers.js:300:5)
        javascript.0	2020-02-24 18:46:00.361	warn	(592) at ontimeout (timers.js:436:11)
        javascript.0	2020-02-24 18:46:00.361	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
        javascript.0	2020-02-24 18:46:00.361	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
        javascript.0	2020-02-24 18:46:00.361	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
        javascript.0	2020-02-24 18:46:00.361	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
        javascript.0	2020-02-24 18:46:00.360	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:89:132)
        javascript.0	2020-02-24 18:46:00.360	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
        javascript.0	2020-02-24 18:46:00.359	warn	(592) getState "system.adapter.fontui.0.cpu" not found (3) states[id]=null
        javascript.0	2020-02-24 18:46:00.355	warn	(592) at Timer.processTimers (timers.js:223:10)
        javascript.0	2020-02-24 18:46:00.355	warn	(592) at listOnTimeout (timers.js:263:5)
        javascript.0	2020-02-24 18:46:00.355	warn	(592) at tryOnTimeout (timers.js:300:5)
        javascript.0	2020-02-24 18:46:00.354	warn	(592) at ontimeout (timers.js:436:11)
        javascript.0	2020-02-24 18:46:00.354	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
        javascript.0	2020-02-24 18:46:00.354	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
        javascript.0	2020-02-24 18:46:00.354	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
        javascript.0	2020-02-24 18:46:00.354	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
        javascript.0	2020-02-24 18:46:00.354	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:78:89)
        javascript.0	2020-02-24 18:46:00.353	warn	(592) getState "system.adapter.fontui.0.uptime" not found (3) states[id]=null
        javascript.0	2020-02-24 18:46:00.210	warn	(592) at Timer.processTimers (timers.js:223:10)
        javascript.0	2020-02-24 18:46:00.210	warn	(592) at listOnTimeout (timers.js:263:5)
        javascript.0	2020-02-24 18:46:00.210	warn	(592) at tryOnTimeout (timers.js:300:5)
        javascript.0	2020-02-24 18:46:00.210	warn	(592) at ontimeout (timers.js:436:11)
        javascript.0	2020-02-24 18:46:00.209	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
        javascript.0	2020-02-24 18:46:00.209	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
        javascript.0	2020-02-24 18:46:00.209	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
        javascript.0	2020-02-24 18:46:00.209	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
        javascript.0	2020-02-24 18:46:00.209	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:115:33)
        javascript.0	2020-02-24 18:46:00.209	warn	(592) at getStatusColor (script.js.System.Adapterliste:123:32)
        javascript.0	2020-02-24 18:46:00.208	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
        javascript.0	2020-02-24 18:46:00.207	warn	(592) getState "system.adapter.devices.0.alive" not found (3) states[id]=null
        javascript.0	2020-02-24 18:46:00.205	warn	(592) at Timer.processTimers (timers.js:223:10)
        javascript.0	2020-02-24 18:46:00.205	warn	(592) at listOnTimeout (timers.js:263:5)
        javascript.0	2020-02-24 18:46:00.205	warn	(592) at tryOnTimeout (timers.js:300:5)
        javascript.0	2020-02-24 18:46:00.205	warn	(592) at ontimeout (timers.js:436:11)
        javascript.0	2020-02-24 18:46:00.204	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
        javascript.0	2020-02-24 18:46:00.204	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
        javascript.0	2020-02-24 18:46:00.204	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
        javascript.0	2020-02-24 18:46:00.204	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
        javascript.0	2020-02-24 18:46:00.204	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:101:132)
        javascript.0	2020-02-24 18:46:00.204	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
        javascript.0	2020-02-24 18:46:00.203	warn	(592) getState "system.adapter.devices.0.memRss" not found (3) states[id]=null
        javascript.0	2020-02-24 18:46:00.201	warn	(592) at Timer.processTimers (timers.js:223:10)
        javascript.0	2020-02-24 18:46:00.200	warn	(592) at listOnTimeout (timers.js:263:5)
        javascript.0	2020-02-24 18:46:00.200	warn	(592) at tryOnTimeout (timers.js:300:5)
        javascript.0	2020-02-24 18:46:00.200	warn	(592) at ontimeout (timers.js:436:11)
        javascript.0	2020-02-24 18:46:00.200	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
        javascript.0	2020-02-24 18:46:00.200	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
        javascript.0	2020-02-24 18:46:00.200	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
        javascript.0	2020-02-24 18:46:00.200	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
        javascript.0	2020-02-24 18:46:00.200	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:97:132)
        javascript.0	2020-02-24 18:46:00.200	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
        javascript.0	2020-02-24 18:46:00.199	warn	(592) getState "system.adapter.devices.0.memHeapUsed" not found (3) states[id]=null
        javascript.0	2020-02-24 18:46:00.196	warn	(592) at Timer.processTimers (timers.js:223:10)
        javascript.0	2020-02-24 18:46:00.196	warn	(592) at listOnTimeout (timers.js:263:5)
        javascript.0	2020-02-24 18:46:00.196	warn	(592) at tryOnTimeout (timers.js:300:5)
        javascript.0	2020-02-24 18:46:00.196	warn	(592) at ontimeout (timers.js:436:11)
        javascript.0	2020-02-24 18:46:00.196	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
        javascript.0	2020-02-24 18:46:00.196	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
        javascript.0	2020-02-24 18:46:00.196	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
        javascript.0	2020-02-24 18:46:00.195	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
        javascript.0	2020-02-24 18:46:00.195	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:93:132)
        javascript.0	2020-02-24 18:46:00.195	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
        javascript.0	2020-02-24 18:46:00.194	warn	(592) getState "system.adapter.devices.0.memHeapTotal" not found (3) states[id]=null
        javascript.0	2020-02-24 18:46:00.192	warn	(592) at Timer.processTimers (timers.js:223:10)
        javascript.0	2020-02-24 18:46:00.192	warn	(592) at listOnTimeout (timers.js:263:5)
        javascript.0	2020-02-24 18:46:00.192	warn	(592) at tryOnTimeout (timers.js:300:5)
        javascript.0	2020-02-24 18:46:00.191	warn	(592) at ontimeout (timers.js:436:11)
        javascript.0	2020-02-24 18:46:00.191	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
        javascript.0	2020-02-24 18:46:00.191	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
        javascript.0	2020-02-24 18:46:00.191	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
        javascript.0	2020-02-24 18:46:00.191	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
        javascript.0	2020-02-24 18:46:00.191	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:89:132)
        javascript.0	2020-02-24 18:46:00.191	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
        javascript.0	2020-02-24 18:46:00.190	warn	(592) getState "system.adapter.devices.0.cpu" not found (3) states[id]=null
        javascript.0	2020-02-24 18:46:00.185	warn	(592) at Timer.processTimers (timers.js:223:10)
        javascript.0	2020-02-24 18:46:00.185	warn	(592) at listOnTimeout (timers.js:263:5)
        javascript.0	2020-02-24 18:46:00.185	warn	(592) at tryOnTimeout (timers.js:300:5)
        javascript.0	2020-02-24 18:46:00.185	warn	(592) at ontimeout (timers.js:436:11)
        javascript.0	2020-02-24 18:46:00.184	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
        javascript.0	2020-02-24 18:46:00.184	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
        javascript.0	2020-02-24 18:46:00.184	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
        javascript.0	2020-02-24 18:46:00.184	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
        javascript.0	2020-02-24 18:46:00.184	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:78:89)
        javascript.0	2020-02-24 18:46:00.183	warn	(592) getState "system.adapter.devices.0.uptime" not found (3) states[id]=null
        javascript.0	2020-02-24 18:45:57.842	warn	(592) at Timer.processTimers (timers.js:223:10)
        javascript.0	2020-02-24 18:45:57.842	warn	(592) at listOnTimeout (timers.js:263:5)
        javascript.0	2020-02-24 18:45:57.841	warn	(592) at tryOnTimeout (timers.js:300:5)
        javascript.0	2020-02-24 18:45:57.841	warn	(592) at ontimeout (timers.js:436:11)
        javascript.0	2020-02-24 18:45:57.841	warn	(592) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
        javascript.0	2020-02-24 18:45:57.841	warn	(592) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
        javascript.0	2020-02-24 18:45:57.841	warn	(592) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
        javascript.0	2020-02-24 18:45:57.841	warn	(592) at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1340:34)
        javascript.0	2020-02-24 18:45:57.841	warn	(592) at Object.adapterStatus (script.js.System.Adapterliste:115:33)
        javascript.0	2020-02-24 18:45:57.841	warn	(592) at getStatusColor (script.js.System.Adapterliste:123:32)
        javascript.0	2020-02-24 18:45:57.841	warn	(592) at Object.getStateValueIfExist (script.js.System.Adapterliste:195:34)
        javascript.0	2020-02-24 18:45:57.840	warn	(592) getState "system.adapter.proxy.0.alive" not found (3) states[id]=null
        javascript.0	2020-02-24 18:45:57.837	warn	(592) at Timer.processTimers (timers.js:223:10)
        javascript.0	2020-02-24 18:45:57.837	warn	(592) at listOnTimeout (timers.js:263:5)
        javascript.0	2020-02-24 18:45:57.837	warn	(592) at tryOnTimeout (timers.js:300:5)
        

        ° Node.js: 20.17.0 NPM: 10.8.2
        ° Proxmox, Ubuntu 22.04.3 LTS
        ° Fixer ---> iob fix

        1 Antwort Letzte Antwort
        0
        • NegaleinN Offline
          NegaleinN Offline
          Negalein
          Global Moderator
          schrieb am zuletzt editiert von
          #108

          @Scrounger

          Hab noch eine Frage, ob der Wunsch möglich ist.

          Derzeit wird nach senkrechten Spalten sortiert.
          Also zB

          aaa ggg
          bbb hhh
          ccc iii
          ddd jjj
          eee kkk
          fff lll

          Ist es möglich, die Sortierung waagrecht zu machen?
          Also zB

          aaa bbb
          ccc ddd
          eee fff
          ggg hhh
          iii jjj
          kkk lll

          ° Node.js: 20.17.0 NPM: 10.8.2
          ° Proxmox, Ubuntu 22.04.3 LTS
          ° Fixer ---> iob fix

          1 Antwort Letzte Antwort
          0
          • ScroungerS Offline
            ScroungerS Offline
            Scrounger
            Developer
            schrieb am zuletzt editiert von Scrounger
            #109

            Musst mir jetzt erstmal den proxy adapter installieren, damit ich auch mal eure fehlermeldungen sehe.

            // 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 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 = 'darkgreen';                                // Status Bar Farbe wenn Adapter zeitgesteuert ist
            
            // **********************************************************************************************************************************************************************
            
            
            
            // 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 .connected Änderungen hören
            let connectedSelector = `[id=*.info.connection]`;
            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);
            }
            
            // 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 newVersion = (updateList && updateList.includes(nameArray[0])) ? '<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>`
            
                        adapterList.push({
                            text: text,
                            subText: subText,
                            image: image,
                            listType: "buttonState",
                            objectId: dpAdapterRestart,
                            buttonStateValue: id,
                            statusBarColor: getStatusColor(),
                            showValueLabel: false,
                            name: name
                        })
            
                        function getStatusColor() {
                            let statusBarColor = farbeAdapterNichtAktiv;
            
                            if (myHelper().getStateValueIfExist(adapterAliveList[i]) === 'true') {
                                statusBarColor = farbeAdapterAktiv;
            
                                if (existsState(id.replace('system.adapter.', '') + '.info.connection')) {
                                    if (!getState(id.replace('system.adapter.', '') + '.info.connection').val) {
                                        statusBarColor = farbeAdapterNichtVerbunden;
                                    }
                                } else {
                                    if (myHelper().getStateValueIfExist(adapterAliveList[i].replace('.alive', '.connected')) === 'false') {
                                        statusBarColor = farbeAdapterNichtVerbunden;
                                    }
                                }
                            }
                    
                            if (myHelper().getCommonPropertyIfExist(obj, 'enabled', false).toString() === 'false') {
                                // Adapter ist deaktiviert
                                statusBarColor = farbeAdapterDeaktiviert;
                            }
            
                            if (myHelper().getCommonPropertyIfExist(obj, 'mode') === 'schedule') {
                                // Adapter ist zeitgesteuert
                                statusBarColor = farbeAdapterZeitgesteuert;
                            }
            
                            return statusBarColor;
                        }
                    }
            
                } catch (err) {
                    console.error(`[adapterStatus] error: ${err.message}, stack: ${err.stack}`);
                }
            
                adapterList.sort(function (a, b) {
                    return a.name == b.name ? 0 : +(a.name > b.name) || -1;
                });
            
                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 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;
                        }
                    }
                }
            }
            

            @Negalein sagte in View Adapter Status:

            Derzeit wird nach senkrechten Spalten sortiert.

            Das wird doch genau so sortiert?

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

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

            NegaleinN O 2 Antworten Letzte Antwort
            0
            • ScroungerS Scrounger

              Musst mir jetzt erstmal den proxy adapter installieren, damit ich auch mal eure fehlermeldungen sehe.

              // 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 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 = 'darkgreen';                                // Status Bar Farbe wenn Adapter zeitgesteuert ist
              
              // **********************************************************************************************************************************************************************
              
              
              
              // 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 .connected Änderungen hören
              let connectedSelector = `[id=*.info.connection]`;
              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);
              }
              
              // 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 newVersion = (updateList && updateList.includes(nameArray[0])) ? '<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>`
              
                          adapterList.push({
                              text: text,
                              subText: subText,
                              image: image,
                              listType: "buttonState",
                              objectId: dpAdapterRestart,
                              buttonStateValue: id,
                              statusBarColor: getStatusColor(),
                              showValueLabel: false,
                              name: name
                          })
              
                          function getStatusColor() {
                              let statusBarColor = farbeAdapterNichtAktiv;
              
                              if (myHelper().getStateValueIfExist(adapterAliveList[i]) === 'true') {
                                  statusBarColor = farbeAdapterAktiv;
              
                                  if (existsState(id.replace('system.adapter.', '') + '.info.connection')) {
                                      if (!getState(id.replace('system.adapter.', '') + '.info.connection').val) {
                                          statusBarColor = farbeAdapterNichtVerbunden;
                                      }
                                  } else {
                                      if (myHelper().getStateValueIfExist(adapterAliveList[i].replace('.alive', '.connected')) === 'false') {
                                          statusBarColor = farbeAdapterNichtVerbunden;
                                      }
                                  }
                              }
                      
                              if (myHelper().getCommonPropertyIfExist(obj, 'enabled', false).toString() === 'false') {
                                  // Adapter ist deaktiviert
                                  statusBarColor = farbeAdapterDeaktiviert;
                              }
              
                              if (myHelper().getCommonPropertyIfExist(obj, 'mode') === 'schedule') {
                                  // Adapter ist zeitgesteuert
                                  statusBarColor = farbeAdapterZeitgesteuert;
                              }
              
                              return statusBarColor;
                          }
                      }
              
                  } catch (err) {
                      console.error(`[adapterStatus] error: ${err.message}, stack: ${err.stack}`);
                  }
              
                  adapterList.sort(function (a, b) {
                      return a.name == b.name ? 0 : +(a.name > b.name) || -1;
                  });
              
                  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 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;
                          }
                      }
                  }
              }
              

              @Negalein sagte in View Adapter Status:

              Derzeit wird nach senkrechten Spalten sortiert.

              Das wird doch genau so sortiert?

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

              @Scrounger sagte in View Adapter Status:

              Das wird doch genau so sortiert?

              nicht immer


              vis (28).png


              vis (31).png

              Musst mir jetzt erstmal den proxy adapter installieren, damit ich auch mal eure fehlermeldungen sehe.

              Ist das Script eine neue Version?

              ° Node.js: 20.17.0 NPM: 10.8.2
              ° Proxmox, Ubuntu 22.04.3 LTS
              ° Fixer ---> iob fix

              ScroungerS 1 Antwort Letzte Antwort
              0
              • NegaleinN Negalein

                @Scrounger sagte in View Adapter Status:

                Das wird doch genau so sortiert?

                nicht immer


                vis (28).png


                vis (31).png

                Musst mir jetzt erstmal den proxy adapter installieren, damit ich auch mal eure fehlermeldungen sehe.

                Ist das Script eine neue Version?

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

                @Negalein sagte in View Adapter Status:

                Ist das Script eine neue Version?

                ja

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

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

                NegaleinN 1 Antwort Letzte Antwort
                0
                • ScroungerS Scrounger

                  @Negalein sagte in View Adapter Status:

                  Ist das Script eine neue Version?

                  ja

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

                  @Scrounger sagte in View Adapter Status:

                  ja

                  perfekt

                  Sortierung funktioniert wieder

                  Und das beste ..... Ich bekomme keine Fehlermeldungen mehr

                  ° Node.js: 20.17.0 NPM: 10.8.2
                  ° Proxmox, Ubuntu 22.04.3 LTS
                  ° Fixer ---> iob fix

                  O 1 Antwort Letzte Antwort
                  0
                  • NegaleinN Negalein

                    @Scrounger sagte in View Adapter Status:

                    ja

                    perfekt

                    Sortierung funktioniert wieder

                    Und das beste ..... Ich bekomme keine Fehlermeldungen mehr

                    O Offline
                    O Offline
                    Oli
                    schrieb am zuletzt editiert von
                    #113

                    @Negalein

                    wie machst du das mit dem stoppen?

                    bei mir starten die Adapter nur neu?

                    Gruß
                    Oliver

                    NegaleinN 1 Antwort Letzte Antwort
                    0
                    • O Oli

                      @Negalein

                      wie machst du das mit dem stoppen?

                      bei mir starten die Adapter nur neu?

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

                      @Oli sagte in View Adapter Status:

                      wie machst du das mit dem stoppen?

                      Zeile 18
                      let neustarten = true;auf falseändern

                      ° Node.js: 20.17.0 NPM: 10.8.2
                      ° Proxmox, Ubuntu 22.04.3 LTS
                      ° Fixer ---> iob fix

                      O 1 Antwort Letzte Antwort
                      0
                      • ScroungerS Scrounger

                        Musst mir jetzt erstmal den proxy adapter installieren, damit ich auch mal eure fehlermeldungen sehe.

                        // 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 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 = 'darkgreen';                                // Status Bar Farbe wenn Adapter zeitgesteuert ist
                        
                        // **********************************************************************************************************************************************************************
                        
                        
                        
                        // 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 .connected Änderungen hören
                        let connectedSelector = `[id=*.info.connection]`;
                        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);
                        }
                        
                        // 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 newVersion = (updateList && updateList.includes(nameArray[0])) ? '<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>`
                        
                                    adapterList.push({
                                        text: text,
                                        subText: subText,
                                        image: image,
                                        listType: "buttonState",
                                        objectId: dpAdapterRestart,
                                        buttonStateValue: id,
                                        statusBarColor: getStatusColor(),
                                        showValueLabel: false,
                                        name: name
                                    })
                        
                                    function getStatusColor() {
                                        let statusBarColor = farbeAdapterNichtAktiv;
                        
                                        if (myHelper().getStateValueIfExist(adapterAliveList[i]) === 'true') {
                                            statusBarColor = farbeAdapterAktiv;
                        
                                            if (existsState(id.replace('system.adapter.', '') + '.info.connection')) {
                                                if (!getState(id.replace('system.adapter.', '') + '.info.connection').val) {
                                                    statusBarColor = farbeAdapterNichtVerbunden;
                                                }
                                            } else {
                                                if (myHelper().getStateValueIfExist(adapterAliveList[i].replace('.alive', '.connected')) === 'false') {
                                                    statusBarColor = farbeAdapterNichtVerbunden;
                                                }
                                            }
                                        }
                                
                                        if (myHelper().getCommonPropertyIfExist(obj, 'enabled', false).toString() === 'false') {
                                            // Adapter ist deaktiviert
                                            statusBarColor = farbeAdapterDeaktiviert;
                                        }
                        
                                        if (myHelper().getCommonPropertyIfExist(obj, 'mode') === 'schedule') {
                                            // Adapter ist zeitgesteuert
                                            statusBarColor = farbeAdapterZeitgesteuert;
                                        }
                        
                                        return statusBarColor;
                                    }
                                }
                        
                            } catch (err) {
                                console.error(`[adapterStatus] error: ${err.message}, stack: ${err.stack}`);
                            }
                        
                            adapterList.sort(function (a, b) {
                                return a.name == b.name ? 0 : +(a.name > b.name) || -1;
                            });
                        
                            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 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;
                                    }
                                }
                            }
                        }
                        

                        @Negalein sagte in View Adapter Status:

                        Derzeit wird nach senkrechten Spalten sortiert.

                        Das wird doch genau so sortiert?

                        O Offline
                        O Offline
                        Oli
                        schrieb am zuletzt editiert von Oli
                        #115

                        @Scrounger

                        danke für das tolle Script, funktioniert super.

                        Könntest du mich vielleicht bei CSS etwas unterstützen?
                        Egal was ich bereits versucht habe, ich bekomme Rahmen und Schatten nur um das gesamte Widget aber leider nicht um die einzelnen Cards.

                        Eine Frage hätte ich noch, wie bekomme ich eine Linie mittels html unter den Adapternamen?

                        Gruß
                        Oliver

                        1 Antwort Letzte Antwort
                        0
                        • NegaleinN Negalein

                          @Oli sagte in View Adapter Status:

                          wie machst du das mit dem stoppen?

                          Zeile 18
                          let neustarten = true;auf falseändern

                          O Offline
                          O Offline
                          Oli
                          schrieb am zuletzt editiert von
                          #116

                          @Negalein

                          danke, wer lesen kann ist klar im Vorteil.

                          Gruß
                          Oliver

                          1 Antwort Letzte Antwort
                          0
                          • NegaleinN Negalein

                            @sigi234 sagte in View Adapter Status:

                            Ich denke das geht im Skript ab Zeile 54

                            Bingo, das wars :)
                            vis (26).png

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

                            @Negalein sagte in View Adapter Status:

                            vis (26).png

                            Ich finde die Zeile nicht , zum verändern der Card Farbe .
                            Bei mir unter 54 steht nichts .
                            Könntest du vielleicht ein Screenshot machen ?
                            Danke !

                            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 ..

                            NegaleinN 1 Antwort Letzte Antwort
                            0
                            • GlasfaserG Glasfaser

                              @Negalein sagte in View Adapter Status:

                              vis (26).png

                              Ich finde die Zeile nicht , zum verändern der Card Farbe .
                              Bei mir unter 54 steht nichts .
                              Könntest du vielleicht ein Screenshot machen ?
                              Danke !

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

                              @Glasfaser sagte in View Adapter Status:

                              Ich finde die Zeile nicht , zum verändern der Card Farbe .

                              du meinst den schwarzen Hintergrund?
                              Wird direkt im Widget eingestellt
                              Edit vis (2).png

                              ° Node.js: 20.17.0 NPM: 10.8.2
                              ° Proxmox, Ubuntu 22.04.3 LTS
                              ° Fixer ---> iob fix

                              GlasfaserG 1 Antwort Letzte Antwort
                              1
                              • NegaleinN Negalein

                                @Glasfaser sagte in View Adapter Status:

                                Ich finde die Zeile nicht , zum verändern der Card Farbe .

                                du meinst den schwarzen Hintergrund?
                                Wird direkt im Widget eingestellt
                                Edit vis (2).png

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

                                @Negalein

                                Ahh ..dachte im Script, , Danke .
                                Sieht schon besser aus :+1:

                                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 ..

                                NegaleinN 1 Antwort Letzte Antwort
                                0
                                • GlasfaserG Glasfaser

                                  @Negalein

                                  Ahh ..dachte im Script, , Danke .
                                  Sieht schon besser aus :+1:

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

                                  @Glasfaser sagte in View Adapter Status:

                                  Ahh ..dachte im Script, , Danke .

                                  Und mir ist mit der Schriftfarbe so gegangen. Hab im Widget danach gesucht. :grin:

                                  ° Node.js: 20.17.0 NPM: 10.8.2
                                  ° Proxmox, Ubuntu 22.04.3 LTS
                                  ° Fixer ---> iob fix

                                  ScroungerS 1 Antwort Letzte Antwort
                                  1
                                  • ScroungerS Scrounger

                                    So hier ist die verbesserte Variante des Skriptes, die auch die ganzen Warn Meldungen abfangen sollte

                                    3c38829c-b368-4c0c-b312-7531dc59bff5-grafik.png

                                    // 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 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 = 'darkgreen';                                // Status Bar Farbe wenn Adapter zeitgesteuert ist
                                    
                                    // **********************************************************************************************************************************************************************
                                    
                                    
                                    
                                    // 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 .connected Änderungen hören
                                    let connectedSelector = `[id=*.info.connection]`;
                                    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);
                                    }
                                    
                                    // 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 newVersion = (updateList && updateList.includes(nameArray[0])) ? '<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>`
                                    
                                                adapterList.push({
                                                    text: text,
                                                    subText: subText,
                                                    image: image,
                                                    listType: "buttonState",
                                                    objectId: dpAdapterRestart,
                                                    buttonStateValue: id,
                                                    statusBarColor: getStatusColor(),
                                                    showValueLabel: false,
                                                    name: name
                                                })
                                    
                                                function getStatusColor() {
                                                    let statusBarColor = farbeAdapterNichtAktiv;
                                    
                                                    if (myHelper().getStateValueIfExist(adapterAliveList[i]) === 'true') {
                                                        statusBarColor = farbeAdapterAktiv;
                                    
                                                        if (existsState(id.replace('system.adapter.', '') + '.info.connection')) {
                                                            if (!getState(id.replace('system.adapter.', '') + '.info.connection').val) {
                                                                statusBarColor = farbeAdapterNichtVerbunden;
                                                            }
                                                        } else {
                                                            if (myHelper().getStateValueIfExist(adapterAliveList[i].replace('.alive', '.connected')) === 'false') {
                                                                statusBarColor = farbeAdapterNichtVerbunden;
                                                            }
                                                        }
                                                    }
                                            
                                                    if (myHelper().getCommonPropertyIfExist(obj, 'enabled', false).toString() === 'false') {
                                                        // Adapter ist deaktiviert
                                                        statusBarColor = farbeAdapterDeaktiviert;
                                                    }
                                    
                                                    if (myHelper().getCommonPropertyIfExist(obj, 'mode') === 'schedule') {
                                                        // Adapter ist zeitgesteuert
                                                        statusBarColor = farbeAdapterZeitgesteuert;
                                                    }
                                    
                                                    return statusBarColor;
                                                }
                                            }
                                    
                                        } catch (err) {
                                            console.error(`[adapterStatus] error: ${err.message}, stack: ${err.stack}`);
                                        }
                                    
                                        adapterList.sort(function (a, b) {
                                            return a.name == b.name ? 0 : +(a.name > b.name) || -1;
                                        });
                                    
                                        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 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;
                                                }
                                            }
                                        }
                                    }
                                    

                                    Ihr könnt jetzt Einstellungen vornehmen, erklärung steht im kommentar

                                    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 adminUpdatesList = 'admin.0.info.updatesList'                           // Datenpunkt Admin Adapter für verfübare Updates der Adapter
                                    
                                    const checkInterval = 10;                                                   // 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 = 'darkgreen';                                // Status Bar Farbe wenn Adapter zeitgesteuert ist
                                    

                                    @Oli sagte in View Adapter Status:

                                    Die Info wenn ein Adapter gelb ist steht unter:
                                    "system.adapter.backitup.0.connected"

                                    Das ist aber nicht der Status für connection, dieser steht unter adapter.x.info.connection. Hab es gleich mal mit eingebaut ;-)

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

                                    @Scrounger sagte in View Adapter Status:

                                    die auch die ganzen Warn Meldungen abfangen sollte

                                    Leider noch nicht.

                                    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:

                                      die auch die ganzen Warn Meldungen abfangen sollte

                                      Leider noch nicht.

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

                                      @sigi234 sagte in View Adapter Status:

                                      @Scrounger sagte in View Adapter Status:

                                      die auch die ganzen Warn Meldungen abfangen sollte

                                      Leider noch nicht.

                                      Welche?...

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

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

                                      sigi234S 1 Antwort Letzte Antwort
                                      0
                                      • ScroungerS Scrounger

                                        @sigi234 sagte in View Adapter Status:

                                        @Scrounger sagte in View Adapter Status:

                                        die auch die ganzen Warn Meldungen abfangen sollte

                                        Leider noch nicht.

                                        Welche?...

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

                                        @Scrounger sagte in View Adapter Status:

                                        @sigi234 sagte in View Adapter Status:

                                        @Scrounger sagte in View Adapter Status:

                                        die auch die ganzen Warn Meldungen abfangen sollte

                                        Leider noch nicht.

                                        Welche?...

                                        
                                        javascript.0	2020-02-24 22:45:00.815	warn	(15032) at Timer.processTimers (timers.js:223:10)
                                        javascript.0	2020-02-24 22:45:00.814	warn	(15032) at listOnTimeout (timers.js:263:5)
                                        javascript.0	2020-02-24 22:45:00.814	warn	(15032) at tryOnTimeout (timers.js:300:5)
                                        javascript.0	2020-02-24 22:45:00.814	warn	(15032) at ontimeout (timers.js:436:11)
                                        javascript.0	2020-02-24 22:45:00.814	warn	(15032) at Timeout._onTimeout (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:501:7)
                                        javascript.0	2020-02-24 22:45:00.814	warn	(15032) at C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:543:11
                                        javascript.0	2020-02-24 22:45:00.814	warn	(15032) at Job.invoke (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:173:10)
                                        javascript.0	2020-02-24 22:45:00.814	warn	(15032) at Job.nodeSchedule.scheduleJob [as job] (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\lib\sandbox.js:1340:34)
                                        javascript.0	2020-02-24 22:45:00.814	warn	(15032) at Object.adapterStatus (script.js.Sigi.Adapter_Abfrage1:115:33)
                                        javascript.0	2020-02-24 22:45:00.814	warn	(15032) at getStatusColor (script.js.Sigi.Adapter_Abfrage1:123:32)
                                        javascript.0	2020-02-24 22:45:00.814	warn	(15032) at Object.getStateValueIfExist (script.js.Sigi.Adapter_Abfrage1:195:34)
                                        javascript.0	2020-02-24 22:45:00.813	warn	(15032) getState "system.adapter.pegelonline.0.alive" not found (3) states[id]=null
                                        javascript.0	2020-02-24 22:45:00.812	warn	(15032) at Timer.processTimers (timers.js:223:10)
                                        javascript.0	2020-02-24 22:45:00.812	warn	(15032) at listOnTimeout (timers.js:263:5)
                                        javascript.0	2020-02-24 22:45:00.812	warn	(15032) at tryOnTimeout (timers.js:300:5)
                                        javascript.0	2020-02-24 22:45:00.812	warn	(15032) at ontimeout (timers.js:436:11)
                                        javascript.0	2020-02-24 22:45:00.812	warn	(15032) at Timeout._onTimeout (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:501:7)
                                        javascript.0	2020-02-24 22:45:00.812	warn	(15032) at C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:543:11
                                        javascript.0	2020-02-24 22:45:00.812	warn	(15032) at Job.invoke (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:173:10)
                                        javascript.0	2020-02-24 22:45:00.812	warn	(15032) at Job.nodeSchedule.scheduleJob [as job] (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\lib\sandbox.js:1340:34)
                                        javascript.0	2020-02-24 22:45:00.812	warn	(15032) at Object.adapterStatus (script.js.Sigi.Adapter_Abfrage1:101:132)
                                        javascript.0	2020-02-24 22:45:00.812	warn	(15032) at Object.getStateValueIfExist (script.js.Sigi.Adapter_Abfrage1:195:34)
                                        javascript.0	2020-02-24 22:45:00.811	warn	(15032) getState "system.adapter.pegelonline.0.memRss" not found (3) states[id]=null
                                        javascript.0	2020-02-24 22:45:00.810	warn	(15032) at Timer.processTimers (timers.js:223:10)
                                        javascript.0	2020-02-24 22:45:00.810	warn	(15032) at listOnTimeout (timers.js:263:5)
                                        javascript.0	2020-02-24 22:45:00.810	warn	(15032) at tryOnTimeout (timers.js:300:5)
                                        javascript.0	2020-02-24 22:45:00.810	warn	(15032) at ontimeout (timers.js:436:11)
                                        javascript.0	2020-02-24 22:45:00.810	warn	(15032) at Timeout._onTimeout (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:501:7)
                                        javascript.0	2020-02-24 22:45:00.810	warn	(15032) at C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:543:11
                                        javascript.0	2020-02-24 22:45:00.810	warn	(15032) at Job.invoke (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:173:10)
                                        javascript.0	2020-02-24 22:45:00.810	warn	(15032) at Job.nodeSchedule.scheduleJob [as job] (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\lib\sandbox.js:1340:34)
                                        javascript.0	2020-02-24 22:45:00.810	warn	(15032) at Object.adapterStatus (script.js.Sigi.Adapter_Abfrage1:97:132)
                                        javascript.0	2020-02-24 22:45:00.810	warn	(15032) at Object.getStateValueIfExist (script.js.Sigi.Adapter_Abfrage1:195:34)
                                        javascript.0	2020-02-24 22:45:00.810	warn	(15032) getState "system.adapter.pegelonline.0.memHeapUsed" not found (3) states[id]=null
                                        javascript.0	2020-02-24 22:45:00.808	warn	(15032) at Timer.processTimers (timers.js:223:10)
                                        javascript.0	2020-02-24 22:45:00.808	warn	(15032) at listOnTimeout (timers.js:263:5)
                                        javascript.0	2020-02-24 22:45:00.808	warn	(15032) at tryOnTimeout (timers.js:300:5)
                                        javascript.0	2020-02-24 22:45:00.808	warn	(15032) at ontimeout (timers.js:436:11)
                                        javascript.0	2020-02-24 22:45:00.808	warn	(15032) at Timeout._onTimeout (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:501:7)
                                        javascript.0	2020-02-24 22:45:00.808	warn	(15032) at C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:543:11
                                        javascript.0	2020-02-24 22:45:00.808	warn	(15032) at Job.invoke (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:173:10)
                                        javascript.0	2020-02-24 22:45:00.808	warn	(15032) at Job.nodeSchedule.scheduleJob [as job] (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\lib\sandbox.js:1340:34)
                                        javascript.0	2020-02-24 22:45:00.808	warn	(15032) at Object.adapterStatus (script.js.Sigi.Adapter_Abfrage1:93:132)
                                        javascript.0	2020-02-24 22:45:00.808	warn	(15032) at Object.getStateValueIfExist (script.js.Sigi.Adapter_Abfrage1:195:34)
                                        javascript.0	2020-02-24 22:45:00.808	warn	(15032) getState "system.adapter.pegelonline.0.memHeapTotal" not found (3) states[id]=null
                                        javascript.0	2020-02-24 22:45:00.806	warn	(15032) at Timer.processTimers (timers.js:223:10)
                                        javascript.0	2020-02-24 22:45:00.806	warn	(15032) at listOnTimeout (timers.js:263:5)
                                        javascript.0	2020-02-24 22:45:00.806	warn	(15032) at tryOnTimeout (timers.js:300:5)
                                        javascript.0	2020-02-24 22:45:00.806	warn	(15032) at ontimeout (timers.js:436:11)
                                        javascript.0	2020-02-24 22:45:00.806	warn	(15032) at Timeout._onTimeout (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:501:7)
                                        javascript.0	2020-02-24 22:45:00.806	warn	(15032) at C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:543:11
                                        javascript.0	2020-02-24 22:45:00.806	warn	(15032) at Job.invoke (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:173:10)
                                        javascript.0	2020-02-24 22:45:00.806	warn	(15032) at Job.nodeSchedule.scheduleJob [as job] (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\lib\sandbox.js:1340:34)
                                        javascript.0	2020-02-24 22:45:00.806	warn	(15032) at Object.adapterStatus (script.js.Sigi.Adapter_Abfrage1:89:132)
                                        javascript.0	2020-02-24 22:45:00.806	warn	(15032) at Object.getStateValueIfExist (script.js.Sigi.Adapter_Abfrage1:195:34)
                                        javascript.0	2020-02-24 22:45:00.806	warn	(15032) getState "system.adapter.pegelonline.0.cpu" not found (3) states[id]=null
                                        javascript.0	2020-02-24 22:45:00.804	warn	(15032) at Timer.processTimers (timers.js:223:10)
                                        javascript.0	2020-02-24 22:45:00.804	warn	(15032) at listOnTimeout (timers.js:263:5)
                                        javascript.0	2020-02-24 22:45:00.804	warn	(15032) at tryOnTimeout (timers.js:300:5)
                                        javascript.0	2020-02-24 22:45:00.804	warn	(15032) at ontimeout (timers.js:436:11)
                                        javascript.0	2020-02-24 22:45:00.804	warn	(15032) at Timeout._onTimeout (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:501:7)
                                        javascript.0	2020-02-24 22:45:00.804	warn	(15032) at C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:543:11
                                        javascript.0	2020-02-24 22:45:00.804	warn	(15032) at Job.invoke (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:173:10)
                                        javascript.0	2020-02-24 22:45:00.804	warn	(15032) at Job.nodeSchedule.scheduleJob [as job] (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\lib\sandbox.js:1340:34)
                                        javascript.0	2020-02-24 22:45:00.803	warn	(15032) at Object.adapterStatus (script.js.Sigi.Adapter_Abfrage1:78:89)
                                        javascript.0	2020-02-24 22:45:00.803	warn	(15032) getState "system.adapter.pegelonline.0.uptime" not found (3) states[id]=null
                                        

                                        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:

                                          @sigi234 sagte in View Adapter Status:

                                          @Scrounger sagte in View Adapter Status:

                                          die auch die ganzen Warn Meldungen abfangen sollte

                                          Leider noch nicht.

                                          Welche?...

                                          
                                          javascript.0	2020-02-24 22:45:00.815	warn	(15032) at Timer.processTimers (timers.js:223:10)
                                          javascript.0	2020-02-24 22:45:00.814	warn	(15032) at listOnTimeout (timers.js:263:5)
                                          javascript.0	2020-02-24 22:45:00.814	warn	(15032) at tryOnTimeout (timers.js:300:5)
                                          javascript.0	2020-02-24 22:45:00.814	warn	(15032) at ontimeout (timers.js:436:11)
                                          javascript.0	2020-02-24 22:45:00.814	warn	(15032) at Timeout._onTimeout (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:501:7)
                                          javascript.0	2020-02-24 22:45:00.814	warn	(15032) at C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:543:11
                                          javascript.0	2020-02-24 22:45:00.814	warn	(15032) at Job.invoke (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:173:10)
                                          javascript.0	2020-02-24 22:45:00.814	warn	(15032) at Job.nodeSchedule.scheduleJob [as job] (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\lib\sandbox.js:1340:34)
                                          javascript.0	2020-02-24 22:45:00.814	warn	(15032) at Object.adapterStatus (script.js.Sigi.Adapter_Abfrage1:115:33)
                                          javascript.0	2020-02-24 22:45:00.814	warn	(15032) at getStatusColor (script.js.Sigi.Adapter_Abfrage1:123:32)
                                          javascript.0	2020-02-24 22:45:00.814	warn	(15032) at Object.getStateValueIfExist (script.js.Sigi.Adapter_Abfrage1:195:34)
                                          javascript.0	2020-02-24 22:45:00.813	warn	(15032) getState "system.adapter.pegelonline.0.alive" not found (3) states[id]=null
                                          javascript.0	2020-02-24 22:45:00.812	warn	(15032) at Timer.processTimers (timers.js:223:10)
                                          javascript.0	2020-02-24 22:45:00.812	warn	(15032) at listOnTimeout (timers.js:263:5)
                                          javascript.0	2020-02-24 22:45:00.812	warn	(15032) at tryOnTimeout (timers.js:300:5)
                                          javascript.0	2020-02-24 22:45:00.812	warn	(15032) at ontimeout (timers.js:436:11)
                                          javascript.0	2020-02-24 22:45:00.812	warn	(15032) at Timeout._onTimeout (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:501:7)
                                          javascript.0	2020-02-24 22:45:00.812	warn	(15032) at C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:543:11
                                          javascript.0	2020-02-24 22:45:00.812	warn	(15032) at Job.invoke (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:173:10)
                                          javascript.0	2020-02-24 22:45:00.812	warn	(15032) at Job.nodeSchedule.scheduleJob [as job] (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\lib\sandbox.js:1340:34)
                                          javascript.0	2020-02-24 22:45:00.812	warn	(15032) at Object.adapterStatus (script.js.Sigi.Adapter_Abfrage1:101:132)
                                          javascript.0	2020-02-24 22:45:00.812	warn	(15032) at Object.getStateValueIfExist (script.js.Sigi.Adapter_Abfrage1:195:34)
                                          javascript.0	2020-02-24 22:45:00.811	warn	(15032) getState "system.adapter.pegelonline.0.memRss" not found (3) states[id]=null
                                          javascript.0	2020-02-24 22:45:00.810	warn	(15032) at Timer.processTimers (timers.js:223:10)
                                          javascript.0	2020-02-24 22:45:00.810	warn	(15032) at listOnTimeout (timers.js:263:5)
                                          javascript.0	2020-02-24 22:45:00.810	warn	(15032) at tryOnTimeout (timers.js:300:5)
                                          javascript.0	2020-02-24 22:45:00.810	warn	(15032) at ontimeout (timers.js:436:11)
                                          javascript.0	2020-02-24 22:45:00.810	warn	(15032) at Timeout._onTimeout (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:501:7)
                                          javascript.0	2020-02-24 22:45:00.810	warn	(15032) at C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:543:11
                                          javascript.0	2020-02-24 22:45:00.810	warn	(15032) at Job.invoke (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:173:10)
                                          javascript.0	2020-02-24 22:45:00.810	warn	(15032) at Job.nodeSchedule.scheduleJob [as job] (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\lib\sandbox.js:1340:34)
                                          javascript.0	2020-02-24 22:45:00.810	warn	(15032) at Object.adapterStatus (script.js.Sigi.Adapter_Abfrage1:97:132)
                                          javascript.0	2020-02-24 22:45:00.810	warn	(15032) at Object.getStateValueIfExist (script.js.Sigi.Adapter_Abfrage1:195:34)
                                          javascript.0	2020-02-24 22:45:00.810	warn	(15032) getState "system.adapter.pegelonline.0.memHeapUsed" not found (3) states[id]=null
                                          javascript.0	2020-02-24 22:45:00.808	warn	(15032) at Timer.processTimers (timers.js:223:10)
                                          javascript.0	2020-02-24 22:45:00.808	warn	(15032) at listOnTimeout (timers.js:263:5)
                                          javascript.0	2020-02-24 22:45:00.808	warn	(15032) at tryOnTimeout (timers.js:300:5)
                                          javascript.0	2020-02-24 22:45:00.808	warn	(15032) at ontimeout (timers.js:436:11)
                                          javascript.0	2020-02-24 22:45:00.808	warn	(15032) at Timeout._onTimeout (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:501:7)
                                          javascript.0	2020-02-24 22:45:00.808	warn	(15032) at C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:543:11
                                          javascript.0	2020-02-24 22:45:00.808	warn	(15032) at Job.invoke (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:173:10)
                                          javascript.0	2020-02-24 22:45:00.808	warn	(15032) at Job.nodeSchedule.scheduleJob [as job] (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\lib\sandbox.js:1340:34)
                                          javascript.0	2020-02-24 22:45:00.808	warn	(15032) at Object.adapterStatus (script.js.Sigi.Adapter_Abfrage1:93:132)
                                          javascript.0	2020-02-24 22:45:00.808	warn	(15032) at Object.getStateValueIfExist (script.js.Sigi.Adapter_Abfrage1:195:34)
                                          javascript.0	2020-02-24 22:45:00.808	warn	(15032) getState "system.adapter.pegelonline.0.memHeapTotal" not found (3) states[id]=null
                                          javascript.0	2020-02-24 22:45:00.806	warn	(15032) at Timer.processTimers (timers.js:223:10)
                                          javascript.0	2020-02-24 22:45:00.806	warn	(15032) at listOnTimeout (timers.js:263:5)
                                          javascript.0	2020-02-24 22:45:00.806	warn	(15032) at tryOnTimeout (timers.js:300:5)
                                          javascript.0	2020-02-24 22:45:00.806	warn	(15032) at ontimeout (timers.js:436:11)
                                          javascript.0	2020-02-24 22:45:00.806	warn	(15032) at Timeout._onTimeout (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:501:7)
                                          javascript.0	2020-02-24 22:45:00.806	warn	(15032) at C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:543:11
                                          javascript.0	2020-02-24 22:45:00.806	warn	(15032) at Job.invoke (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:173:10)
                                          javascript.0	2020-02-24 22:45:00.806	warn	(15032) at Job.nodeSchedule.scheduleJob [as job] (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\lib\sandbox.js:1340:34)
                                          javascript.0	2020-02-24 22:45:00.806	warn	(15032) at Object.adapterStatus (script.js.Sigi.Adapter_Abfrage1:89:132)
                                          javascript.0	2020-02-24 22:45:00.806	warn	(15032) at Object.getStateValueIfExist (script.js.Sigi.Adapter_Abfrage1:195:34)
                                          javascript.0	2020-02-24 22:45:00.806	warn	(15032) getState "system.adapter.pegelonline.0.cpu" not found (3) states[id]=null
                                          javascript.0	2020-02-24 22:45:00.804	warn	(15032) at Timer.processTimers (timers.js:223:10)
                                          javascript.0	2020-02-24 22:45:00.804	warn	(15032) at listOnTimeout (timers.js:263:5)
                                          javascript.0	2020-02-24 22:45:00.804	warn	(15032) at tryOnTimeout (timers.js:300:5)
                                          javascript.0	2020-02-24 22:45:00.804	warn	(15032) at ontimeout (timers.js:436:11)
                                          javascript.0	2020-02-24 22:45:00.804	warn	(15032) at Timeout._onTimeout (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:501:7)
                                          javascript.0	2020-02-24 22:45:00.804	warn	(15032) at C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:543:11
                                          javascript.0	2020-02-24 22:45:00.804	warn	(15032) at Job.invoke (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:173:10)
                                          javascript.0	2020-02-24 22:45:00.804	warn	(15032) at Job.nodeSchedule.scheduleJob [as job] (C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\lib\sandbox.js:1340:34)
                                          javascript.0	2020-02-24 22:45:00.803	warn	(15032) at Object.adapterStatus (script.js.Sigi.Adapter_Abfrage1:78:89)
                                          javascript.0	2020-02-24 22:45:00.803	warn	(15032) getState "system.adapter.pegelonline.0.uptime" not found (3) states[id]=null
                                          
                                          ScroungerS Offline
                                          ScroungerS Offline
                                          Scrounger
                                          Developer
                                          schrieb am zuletzt editiert von
                                          #124

                                          @sigi234
                                          Ist exakt die gleiche Meldung wie bei @Negalein :

                                          getState "system.adapter.proxy.0.alive" not found (3) states[id]=null
                                          
                                          getState "system.adapter.pegelonline.0.uptime" not found (3) states[id]=null
                                          

                                          Schätze da hast nen Fehler beim Skript kopieren gemacht?

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

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

                                          NegaleinN sigi234S 2 Antworten Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          868

                                          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