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

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

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

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 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 Online
          O Online
          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 Online
              O Online
              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 Online
                O Online
                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
                                • ScroungerS Scrounger

                                  @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?

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

                                  @Scrounger sagte in View Adapter Status:

                                  Ist exakt die gleiche Meldung wie bei @Negalein :

                                  mit dem aktuellen Script hab ich 0 Fehlermeldungen, bzw. Warnmeldungen

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

                                  1 Antwort Letzte Antwort
                                  0
                                  • NegaleinN Negalein

                                    @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:

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

                                    @Negalein sagte in View Adapter Status:

                                    @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:

                                    Die kann man übrigens auch per Widget einstellen.
                                    2936fdf6-dac3-4264-8861-7a1334157c72-grafik.png

                                    Keine Ahnung warum ich das im Skript gemacht habe. Werf ich beim nächsten Update raus, weil da passt noch was nicht mit dem connect status ;)

                                    <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

                                      @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?

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

                                      @Scrounger sagte in View Adapter Status:

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

                                      Wie immer hattest du Recht. :+1:

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

                                      1 Antwort Letzte Antwort
                                      0
                                      • ScroungerS Scrounger

                                        @Negalein sagte in View Adapter Status:

                                        @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:

                                        Die kann man übrigens auch per Widget einstellen.
                                        2936fdf6-dac3-4264-8861-7a1334157c72-grafik.png

                                        Keine Ahnung warum ich das im Skript gemacht habe. Werf ich beim nächsten Update raus, weil da passt noch was nicht mit dem connect status ;)

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

                                        @Scrounger sagte in View Adapter Status:

                                        Die kann man übrigens auch per Widget einstellen.

                                        Aber nur den linken Teil.
                                        Den rechten teil mit den werten geht nur im Script.

                                        ° 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:

                                          Die kann man übrigens auch per Widget einstellen.

                                          Aber nur den linken Teil.
                                          Den rechten teil mit den werten geht nur im Script.

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

                                          @Negalein
                                          Ja korrekt.

                                          <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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          807

                                          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