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

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

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. Material Design Widgets: Adapter Status

NEWS

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

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

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

Material Design Widgets: Adapter Status

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
material design widgetsvisiconlistviewview adapteradapterstatusanzeige
144 Beiträge 48 Kommentatoren 33.6k Aufrufe 60 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.
  • sigi234S sigi234

    @hausbaer

    Json Fehler beim importieren

    H Offline
    H Offline
    Hausbaer
    schrieb am zuletzt editiert von Hausbaer
    #121

    Post gelöscht, falsches Forum

    1 Antwort Letzte Antwort
    0
    • sigi234S sigi234

      @hausbaer

      Json Fehler beim importieren

      H Offline
      H Offline
      Hausbaer
      schrieb am zuletzt editiert von
      #122

      @sigi234 ich hab das jetzt über Ansichten gelöst, die über ein Auswahlfeld gesteuert werden

      1 Antwort Letzte Antwort
      0
      • O Oli

        @Scrounger

        ich bekomme folgende Warmeldungen, wenn ein Adapter deinstalliert wurde.
        Kann sowas per Script abgefangen werden?

        javascript.0	2020-03-26 12:52:30.141	warn	(17092) Object "system.adapter.coronavirus-statistics.0" does not exist
        javascript.0	2020-03-26 12:52:15.053	warn	(17092) Object "system.adapter.coronavirus-statistics.0" does not exist
        javascript.0	2020-03-26 12:52:14.462	warn	(17092) Object "system.adapter.coronavirus-statistics.0" does not exist
        javascript.0	2020-03-26 12:52:14.285	warn	(17092) Object "system.adapter.coronavirus-statistics.0" does not exist
        
        manuxiM Offline
        manuxiM Offline
        manuxi
        schrieb am zuletzt editiert von manuxi
        #123

        @oli Hattest Du das Problem nach dem Löschen der Adapter gelöst?

        O 1 Antwort Letzte Antwort
        0
        • manuxiM manuxi

          @oli Hattest Du das Problem nach dem Löschen der Adapter gelöst?

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

          @manuxi
          nichts, was automatisch funktioniert. Momentan stoppe ich das Skript vor der Deinstallation eines Adapters, deinstalliere den Adapter, starte den Javaskript Adapter neu und anschließend starte ich das Skript neu. Dann gibt es zumindest keine Fehlermeldungen mehr.

          Gruß
          Oliver

          1 Antwort Letzte Antwort
          0
          • daes10D daes10

            @ostseeskipper Vielen Dank, hat bei mir auch gut funktioniert.

            Kann mir aber jemand helfen, warum bei mir überall undefined angezeigt wird?
            Hab ich eine Einstellung übersehen? Weil alle Daten werden korrekt abgefragt.

            f08e32c9-4e43-4d61-8ed1-99bd834d78a2-grafik.png

            L Offline
            L Offline
            Lueghi
            schrieb am zuletzt editiert von Lueghi
            #125

            @daes10 sagte in Material Design Widgets: Adapter Status:

            @ostseeskipper Vielen Dank, hat bei mir auch gut funktioniert.

            Kann mir aber jemand helfen, warum bei mir überall undefined angezeigt wird?
            Hab ich eine Einstellung übersehen? Weil alle Daten werden korrekt abgefragt.

            f08e32c9-4e43-4d61-8ed1-99bd834d78a2-grafik.png

            Ich bin heute über das Widget gestolpert (im positiven Sinn 😎) und habe es installiert. Ich habe aber den gleichen Fehler mit dem "undefined". Habe leide nichts über die Lösung lesen können. Gibt es da einen Tipp für mich?

            Gruß Lueghi
            (iobroker unter proxmox)

            L 1 Antwort Letzte Antwort
            0
            • L Lueghi

              @daes10 sagte in Material Design Widgets: Adapter Status:

              @ostseeskipper Vielen Dank, hat bei mir auch gut funktioniert.

              Kann mir aber jemand helfen, warum bei mir überall undefined angezeigt wird?
              Hab ich eine Einstellung übersehen? Weil alle Daten werden korrekt abgefragt.

              f08e32c9-4e43-4d61-8ed1-99bd834d78a2-grafik.png

              Ich bin heute über das Widget gestolpert (im positiven Sinn 😎) und habe es installiert. Ich habe aber den gleichen Fehler mit dem "undefined". Habe leide nichts über die Lösung lesen können. Gibt es da einen Tipp für mich?

              L Offline
              L Offline
              Lueghi
              schrieb am zuletzt editiert von
              #126

              @lueghi sagte in Material Design Widgets: Adapter Status:

              @daes10 sagte in Material Design Widgets: Adapter Status:
              ...

              f08e32c9-4e43-4d61-8ed1-99bd834d78a2-grafik.png

              Ich bin heute über das Widget gestolpert (im positiven Sinn 😎) und habe es installiert. Ich habe aber den gleichen Fehler mit dem "undefined". Habe leide nichts über die Lösung lesen können. Gibt es da einen Tipp für mich?

              Manchmal hilft etwas Schlaf: habe den Fehler gefunden. Beim Kopieren des Scriptes aus dem Forum wurde im Bereich der Textdefinition {1} mit eingefügt (warum auch immer). Wenn man die wegmacht, dann klappt es auch mit der Anzeige ... 😊

              Gruß Lueghi
              (iobroker unter proxmox)

              1 Antwort Letzte Antwort
              0
              • Frank ZoellnerF Offline
                Frank ZoellnerF Offline
                Frank Zoellner
                schrieb am zuletzt editiert von
                #127

                Hallo,

                sit neustem bekomme ich den Fehler:

                script.js.Steuerung.Adapter_Status: [adapterStatus] error: moment.duration(...).format is not a function, stack: TypeError: moment.duration(...).format is not a function at Object.adapterStatus (script.js.Steuerung.Adapter_Status:9488:115) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1266:38) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:641:29) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11229:62) at processImmediate (node:internal/timers:476:21)
                

                moment und moment-duration-format sind entsprechend im Javascript Adapter eingetragen.

                Node.js: v18.19.0
                NPM: 10.2.3
                js-controller: 5.0.17
                admin: 6.13.11
                javascript: 7.5.1

                Debian GNU/Linux 11 (bullseye) auf einem Raspberry PI

                GlasfaserG smartboartS 2 Antworten Letzte Antwort
                0
                • Frank ZoellnerF Frank Zoellner

                  Hallo,

                  sit neustem bekomme ich den Fehler:

                  script.js.Steuerung.Adapter_Status: [adapterStatus] error: moment.duration(...).format is not a function, stack: TypeError: moment.duration(...).format is not a function at Object.adapterStatus (script.js.Steuerung.Adapter_Status:9488:115) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1266:38) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:641:29) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11229:62) at processImmediate (node:internal/timers:476:21)
                  

                  moment und moment-duration-format sind entsprechend im Javascript Adapter eingetragen.

                  Node.js: v18.19.0
                  NPM: 10.2.3
                  js-controller: 5.0.17
                  admin: 6.13.11
                  javascript: 7.5.1

                  Debian GNU/Linux 11 (bullseye) auf einem Raspberry PI

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

                  @frank-zoellner sagte in Material Design Widgets: Adapter Status:

                  sit neustem bekomme ich den Fehler:

                  javascript: 7.5.1

                  ist Beta ... erst nach dem Update darauf !?

                  moment und moment-duration-format sind entsprechend im Javascript Adapter eingetragen.

                  Hast du sie mal im javascript gelöscht .. und dann neu hinzugefügt , werden sie ohne Fehler im Log hinzugefügt !?

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

                  smartboartS 2 Antworten Letzte Antwort
                  0
                  • NashraN Offline
                    NashraN Offline
                    Nashra
                    Most Active Forum Testing
                    schrieb am zuletzt editiert von
                    #129

                    Hallo @Scrounger
                    seit der Umstellung auf javascript 8.4.0 erhalte ich diese Warnmeldung

                    javascript.0	13:35:54.300	info	Start JavaScript script.js.Allerlei.Adapterliste-md (Javascript/js)
                    javascript.0	13:35:54.519	warn	script.js.Allerlei.Adapterliste-md: More than 100 subscriptions registered. Check your script!
                    javascript.0	13:35:54.556	info	script.js.Allerlei.Adapterliste-md: registered 161 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptions
                    

                    das Skript

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


                    Was muß geändert werden?

                    Gruß Ralf
                    Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    mcm1957M 1 Antwort Letzte Antwort
                    0
                    • NashraN Nashra

                      Hallo @Scrounger
                      seit der Umstellung auf javascript 8.4.0 erhalte ich diese Warnmeldung

                      javascript.0	13:35:54.300	info	Start JavaScript script.js.Allerlei.Adapterliste-md (Javascript/js)
                      javascript.0	13:35:54.519	warn	script.js.Allerlei.Adapterliste-md: More than 100 subscriptions registered. Check your script!
                      javascript.0	13:35:54.556	info	script.js.Allerlei.Adapterliste-md: registered 161 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptions
                      

                      das Skript

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


                      Was muß geändert werden?

                      mcm1957M Offline
                      mcm1957M Offline
                      mcm1957
                      schrieb am zuletzt editiert von
                      #130

                      @nashra said in Material Design Widgets: Adapter Status:

                      Was muß geändert werden?

                      Weniger States EINZELN subscriben. Eine hohe Anzahl an einzelnen Subscribes belastet den js-controller merkbar / unnötig. Falls eine große Anazhl an subscribes notwendig ist sollten States per wildcard subscribed werden und ggF im Adapter ausgefiltert werden was nicht gebraucht wird.

                      Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                      Support Repositoryverwaltung.

                      Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                      LESEN - gute Forenbeitrage

                      1 Antwort Letzte Antwort
                      0
                      • Frank ZoellnerF Frank Zoellner

                        Hallo,

                        sit neustem bekomme ich den Fehler:

                        script.js.Steuerung.Adapter_Status: [adapterStatus] error: moment.duration(...).format is not a function, stack: TypeError: moment.duration(...).format is not a function at Object.adapterStatus (script.js.Steuerung.Adapter_Status:9488:115) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1266:38) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:641:29) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11229:62) at processImmediate (node:internal/timers:476:21)
                        

                        moment und moment-duration-format sind entsprechend im Javascript Adapter eingetragen.

                        Node.js: v18.19.0
                        NPM: 10.2.3
                        js-controller: 5.0.17
                        admin: 6.13.11
                        javascript: 7.5.1

                        Debian GNU/Linux 11 (bullseye) auf einem Raspberry PI

                        smartboartS Offline
                        smartboartS Offline
                        smartboart
                        schrieb am zuletzt editiert von
                        #131

                        @frank-zoellner sagte in Material Design Widgets: Adapter Status:

                        Hallo,

                        sit neustem bekomme ich den Fehler:

                        script.js.Steuerung.Adapter_Status: [adapterStatus] error: moment.duration(...).format is not a function, stack: TypeError: moment.duration(...).format is not a function at Object.adapterStatus (script.js.Steuerung.Adapter_Status:9488:115) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1266:38) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:641:29) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11229:62) at processImmediate (node:internal/timers:476:21)
                        

                        moment und moment-duration-format sind entsprechend im Javascript Adapter eingetragen.

                        Node.js: v18.19.0
                        NPM: 10.2.3
                        js-controller: 5.0.17
                        admin: 6.13.11
                        javascript: 7.5.1

                        Debian GNU/Linux 11 (bullseye) auf einem Raspberry PI

                        Selbes Fehlerbild ähnliche Umgebung...

                        1 Antwort Letzte Antwort
                        0
                        • GlasfaserG Glasfaser

                          @frank-zoellner sagte in Material Design Widgets: Adapter Status:

                          sit neustem bekomme ich den Fehler:

                          javascript: 7.5.1

                          ist Beta ... erst nach dem Update darauf !?

                          moment und moment-duration-format sind entsprechend im Javascript Adapter eingetragen.

                          Hast du sie mal im javascript gelöscht .. und dann neu hinzugefügt , werden sie ohne Fehler im Log hinzugefügt !?

                          smartboartS Offline
                          smartboartS Offline
                          smartboart
                          schrieb am zuletzt editiert von
                          #132

                          @glasfaser ja

                          arteckA 1 Antwort Letzte Antwort
                          0
                          • GlasfaserG Glasfaser

                            @frank-zoellner sagte in Material Design Widgets: Adapter Status:

                            sit neustem bekomme ich den Fehler:

                            javascript: 7.5.1

                            ist Beta ... erst nach dem Update darauf !?

                            moment und moment-duration-format sind entsprechend im Javascript Adapter eingetragen.

                            Hast du sie mal im javascript gelöscht .. und dann neu hinzugefügt , werden sie ohne Fehler im Log hinzugefügt !?

                            smartboartS Offline
                            smartboartS Offline
                            smartboart
                            schrieb am zuletzt editiert von
                            #133

                            @glasfaser sagte in Material Design Widgets: Adapter Status:

                            @frank-zoellner sagte in Material Design Widgets: Adapter Status:

                            sit neustem bekomme ich den Fehler:

                            javascript: 7.5.1

                            ist Beta ... erst nach dem Update darauf !?

                            moment und moment-duration-format sind entsprechend im Javascript Adapter eingetragen.

                            Hast du sie mal im javascript gelöscht .. und dann neu hinzugefügt , werden sie ohne Fehler im Log hinzugefügt !?

                            ja

                            1 Antwort Letzte Antwort
                            0
                            • smartboartS smartboart

                              @glasfaser ja

                              arteckA Offline
                              arteckA Offline
                              arteck
                              Developer Most Active
                              schrieb am zuletzt editiert von arteck
                              #134

                              @smartboart BTW.
                              deine Signatur ist länger als die Antwort....
                              1bd573a7-5bd2-4f9c-abde-7b21619d6fee-grafik.png

                              zigbee hab ich, zwave auch, nuc's genauso und HA auch

                              smartboartS 1 Antwort Letzte Antwort
                              1
                              • arteckA arteck

                                @smartboart BTW.
                                deine Signatur ist länger als die Antwort....
                                1bd573a7-5bd2-4f9c-abde-7b21619d6fee-grafik.png

                                smartboartS Offline
                                smartboartS Offline
                                smartboart
                                schrieb am zuletzt editiert von smartboart
                                #135

                                @arteck geht noch länger, kann die Adapter Versionen ja noch dazu nehmen.
                                Oben steht doch alles. Fehlerbild ist von Frank Zoellner beschrieben. Bei mir das Gleiche.
                                Trat nach Update des javascript Adapter auf.
                                Fehleranalyse mit Chat GPT machte auch nix besser. npm Module erneut installiert brachte auch nix. Manuelle installation des NPM Modul im iobroker.javascript ordner hat auch nix geändert.
                                MfG

                                B DJMarc75D NegaleinN 3 Antworten Letzte Antwort
                                0
                                • smartboartS smartboart

                                  @arteck geht noch länger, kann die Adapter Versionen ja noch dazu nehmen.
                                  Oben steht doch alles. Fehlerbild ist von Frank Zoellner beschrieben. Bei mir das Gleiche.
                                  Trat nach Update des javascript Adapter auf.
                                  Fehleranalyse mit Chat GPT machte auch nix besser. npm Module erneut installiert brachte auch nix. Manuelle installation des NPM Modul im iobroker.javascript ordner hat auch nix geändert.
                                  MfG

                                  B Offline
                                  B Offline
                                  bommel_030
                                  schrieb am zuletzt editiert von
                                  #136

                                  @smartboart

                                  Füge mal ein

                                  momentDurationFormatSetup(moment);
                                  

                                  nach den beiden Imports ein, dann sollte es wieder funktionieren.

                                  https://github.com/ioBroker/ioBroker.javascript/issues/1613

                                  smartboartS L K 3 Antworten Letzte Antwort
                                  3
                                  • smartboartS smartboart

                                    @arteck geht noch länger, kann die Adapter Versionen ja noch dazu nehmen.
                                    Oben steht doch alles. Fehlerbild ist von Frank Zoellner beschrieben. Bei mir das Gleiche.
                                    Trat nach Update des javascript Adapter auf.
                                    Fehleranalyse mit Chat GPT machte auch nix besser. npm Module erneut installiert brachte auch nix. Manuelle installation des NPM Modul im iobroker.javascript ordner hat auch nix geändert.
                                    MfG

                                    DJMarc75D Offline
                                    DJMarc75D Offline
                                    DJMarc75
                                    schrieb am zuletzt editiert von
                                    #137

                                    @smartboart sagte in Material Design Widgets: Adapter Status:

                                    geht noch länger,

                                    OT, aber schau mal bitte hier den Punkt 4 an:

                                    https://forum.iobroker.net/rules

                                    mach da mal bitte keine Zeilenumbrüche rein :)

                                    OT-Ende

                                    Lehrling seit 1975 !!!
                                    Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
                                    https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

                                    1 Antwort Letzte Antwort
                                    2
                                    • smartboartS smartboart

                                      @arteck geht noch länger, kann die Adapter Versionen ja noch dazu nehmen.
                                      Oben steht doch alles. Fehlerbild ist von Frank Zoellner beschrieben. Bei mir das Gleiche.
                                      Trat nach Update des javascript Adapter auf.
                                      Fehleranalyse mit Chat GPT machte auch nix besser. npm Module erneut installiert brachte auch nix. Manuelle installation des NPM Modul im iobroker.javascript ordner hat auch nix geändert.
                                      MfG

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

                                      @smartboart sagte in Material Design Widgets: Adapter Status:

                                      geht noch länger, kann die Adapter Versionen ja noch dazu nehmen.

                                      ohne Kommentar


                                      Mod-Hinweis

                                      4. Signatur
                                      die Signatur darf maximal 3 Zeilen in der Desktop Ansicht lang sein
                                      Für Informationen über sich selbst gibt es das Feld "Über mich" im Profil, dieses ist zu verwenden statt der Signatur
                                      Links müssen in Form von Text dargestellt werden, also so das man die URL nicht sieht. Markdown syntax: [Link Text](Link Adresse)
                                      Beim ersten mal gibt es nur einen Freundlichen Hinweis auf diese Regeln (Foren Regeln), sollte der User die Signatur nicht anpassen wird sie durch einen Mod geändert.

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

                                      1 Antwort Letzte Antwort
                                      1
                                      • B bommel_030

                                        @smartboart

                                        Füge mal ein

                                        momentDurationFormatSetup(moment);
                                        

                                        nach den beiden Imports ein, dann sollte es wieder funktionieren.

                                        https://github.com/ioBroker/ioBroker.javascript/issues/1613

                                        smartboartS Offline
                                        smartboartS Offline
                                        smartboart
                                        schrieb am zuletzt editiert von
                                        #139

                                        @bommel_030 sagte in Material Design Widgets: Adapter Status:

                                        momentDurationFormatSetup(moment);

                                        Super Danke! Klappt...

                                        1 Antwort Letzte Antwort
                                        1
                                        • B bommel_030

                                          @smartboart

                                          Füge mal ein

                                          momentDurationFormatSetup(moment);
                                          

                                          nach den beiden Imports ein, dann sollte es wieder funktionieren.

                                          https://github.com/ioBroker/ioBroker.javascript/issues/1613

                                          L Offline
                                          L Offline
                                          Lueghi
                                          schrieb am zuletzt editiert von
                                          #140

                                          @bommel_030 sagte in Material Design Widgets: Adapter Status:

                                          @smartboart

                                          Füge mal ein

                                          momentDurationFormatSetup(moment);
                                          

                                          nach den beiden Imports ein, dann sollte es wieder funktionieren.

                                          https://github.com/ioBroker/ioBroker.javascript/issues/1613

                                          Danke, hat mir auch sehr geholfen ..... 👍

                                          Gruß Lueghi
                                          (iobroker unter proxmox)

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          137

                                          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