Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Script fürTabelle der Batterie Zustände

NEWS

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

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

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

Script fürTabelle der Batterie Zustände

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascriptmonitoringtemplate
1.4k Beiträge 67 Kommentatoren 489.2k Aufrufe 86 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.
  • ? Offline
    ? Offline
    Ein ehemaliger Benutzer
    schrieb am zuletzt editiert von
    #670

    @liv-in-sky
    Danke 🙂

    Anbei:
    deconz.0.json

    liv-in-skyL 1 Antwort Letzte Antwort
    1
    • ? Ein ehemaliger Benutzer

      @liv-in-sky
      Danke 🙂

      Anbei:
      deconz.0.json

      liv-in-skyL Offline
      liv-in-skyL Offline
      liv-in-sky
      schrieb am zuletzt editiert von liv-in-sky
      #671

      @Elirion

      probiere mal das script im ersten post - deconz sollte funktionieren

      Image 2.png

      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

      ? 1 Antwort Letzte Antwort
      0
      • liv-in-skyL Offline
        liv-in-skyL Offline
        liv-in-sky
        schrieb am zuletzt editiert von liv-in-sky
        #672

        ich wollte mal in die runde fragen - gibt es interesse, für das Material Design Widget https://forum.iobroker.net/topic/29658/material-design-widgets-table-widget

        ich könnte ein json erzeugen lassen, das ihr dann für das widget nutzen könnt (vorher muss ich aber noch kapieren, wie es funktioniert mit diesem widget)

        bisher geschafft:

        Image 1.png

        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

        sigi234S O NegaleinN D 4 Antworten Letzte Antwort
        0
        • liv-in-skyL liv-in-sky

          ich wollte mal in die runde fragen - gibt es interesse, für das Material Design Widget https://forum.iobroker.net/topic/29658/material-design-widgets-table-widget

          ich könnte ein json erzeugen lassen, das ihr dann für das widget nutzen könnt (vorher muss ich aber noch kapieren, wie es funktioniert mit diesem widget)

          bisher geschafft:

          Image 1.png

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

          @liv-in-sky sagte in Script fürTabelle der Batterie Zustände:

          ich wollte mal in die runde fragen - gibt es interesse, für das Material Design Widget https://forum.iobroker.net/topic/29658/material-design-widgets-table-widget

          Auf jeden Fall!
          Eigentlich für alle deine Skripte interessant.

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

          liv-in-skyL 1 Antwort Letzte Antwort
          0
          • liv-in-skyL liv-in-sky

            ich wollte mal in die runde fragen - gibt es interesse, für das Material Design Widget https://forum.iobroker.net/topic/29658/material-design-widgets-table-widget

            ich könnte ein json erzeugen lassen, das ihr dann für das widget nutzen könnt (vorher muss ich aber noch kapieren, wie es funktioniert mit diesem widget)

            bisher geschafft:

            Image 1.png

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

            @liv-in-sky

            klingt interessant für mich, es kommt natürlich immer darauf an, wie viel Aufwand es für dich ist. Ich gehe mal davon aus, wenn du es hier einbaust, dass bald die Frage kommt, wann du das in deine anderen Tabellen einbaust.

            Gruß
            Oliver

            1 Antwort Letzte Antwort
            0
            • sigi234S sigi234

              @liv-in-sky sagte in Script fürTabelle der Batterie Zustände:

              ich wollte mal in die runde fragen - gibt es interesse, für das Material Design Widget https://forum.iobroker.net/topic/29658/material-design-widgets-table-widget

              Auf jeden Fall!
              Eigentlich für alle deine Skripte interessant.

              liv-in-skyL Offline
              liv-in-skyL Offline
              liv-in-sky
              schrieb am zuletzt editiert von
              #675

              @sigi234 ich kämpfe noch mit diesem widget -

              • zum einen macht es kein update in der vis
              • zum andewren habe ich keine ahnung wie ich die batteriewerte in die richtige farbe bekomme - wnn unter 30% soll der wert rot sein,...

              nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

              1 Antwort Letzte Antwort
              0
              • liv-in-skyL Offline
                liv-in-skyL Offline
                liv-in-sky
                schrieb am zuletzt editiert von liv-in-sky
                #676

                das mit den anderen tabellen ist dann eine reine zeit frage - aber die widgets von ihm sind halt einfach gut - warum nicht auch nutzen

                meist ist es eine copy paste angelegenheit - das json wird dann durch eine minifunktion noch erstellt - mir wäre lieber, es würde sich dann jemand um das layout der tabelle kümmern - bei mir klappt nicht mal eine schöne schriftart einzustellen

                nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                1 Antwort Letzte Antwort
                0
                • liv-in-skyL liv-in-sky

                  ich wollte mal in die runde fragen - gibt es interesse, für das Material Design Widget https://forum.iobroker.net/topic/29658/material-design-widgets-table-widget

                  ich könnte ein json erzeugen lassen, das ihr dann für das widget nutzen könnt (vorher muss ich aber noch kapieren, wie es funktioniert mit diesem widget)

                  bisher geschafft:

                  Image 1.png

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

                  @liv-in-sky sagte in Script fürTabelle der Batterie Zustände:

                  gibt es interesse

                  definitiv

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

                  1 Antwort Letzte Antwort
                  0
                  • liv-in-skyL liv-in-sky

                    ich wollte mal in die runde fragen - gibt es interesse, für das Material Design Widget https://forum.iobroker.net/topic/29658/material-design-widgets-table-widget

                    ich könnte ein json erzeugen lassen, das ihr dann für das widget nutzen könnt (vorher muss ich aber noch kapieren, wie es funktioniert mit diesem widget)

                    bisher geschafft:

                    Image 1.png

                    D Offline
                    D Offline
                    darkiop
                    Most Active
                    schrieb am zuletzt editiert von
                    #678

                    @liv-in-sky sagte in Script fürTabelle der Batterie Zustände:

                    gibt es interesse, für das Material Design Widget

                    Ja! 😉 Das war der Grund für meine Anfrage eines json Outputs deiner Skripte 😉

                    Proxmox-ioBroker-Redis-HA Doku: https://forum.iobroker.net/topic/47478/dokumentation-einer-proxmox-iobroker-redis-ha-umgebung

                    1 Antwort Letzte Antwort
                    0
                    • liv-in-skyL Offline
                      liv-in-skyL Offline
                      liv-in-sky
                      schrieb am zuletzt editiert von liv-in-sky
                      #679

                      ich schau mal , dass morgen mal eine erste version da ist - dann könnt ihr mal testen

                      wenn jmd weiß

                      Image 3.png

                      • wie ich die batteriewerte farbig bekomme - kann ich das im json angeben?
                      • wie wird das widget aktualisiert
                      • warum kann ich keine schrifart wählen

                      das würde schon echt helfen

                      hier mal ein output des jsons - wenn jmd tesen möchte

                      [{"Device": "magnet","Wert": "60.6 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "magnet","Wert": "62.4 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "magnet","Wert": "64.2 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "magnet","Wert": "60.6 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "motion 2","Wert": "66.1 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "motion 1","Wert": "69.7 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "sensor_motion.aq2","Wert": "60.6 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "switch","Wert": "69.2 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "switch","Wert": "71 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "vibration","Wert": "64.2 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "vibration","Wert": "64.2 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "Fenster Küche","Wert": "64.2 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/deconzk.png" },{"Device": "Wasser Küche","Wert": "33 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/deconzk.png" }]
                      

                      bilder:
                      xiaomki.png

                      deconzk.png

                      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                      liv-in-skyL sigi234S D 3 Antworten Letzte Antwort
                      0
                      • liv-in-skyL liv-in-sky

                        ich schau mal , dass morgen mal eine erste version da ist - dann könnt ihr mal testen

                        wenn jmd weiß

                        Image 3.png

                        • wie ich die batteriewerte farbig bekomme - kann ich das im json angeben?
                        • wie wird das widget aktualisiert
                        • warum kann ich keine schrifart wählen

                        das würde schon echt helfen

                        hier mal ein output des jsons - wenn jmd tesen möchte

                        [{"Device": "magnet","Wert": "60.6 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "magnet","Wert": "62.4 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "magnet","Wert": "64.2 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "magnet","Wert": "60.6 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "motion 2","Wert": "66.1 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "motion 1","Wert": "69.7 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "sensor_motion.aq2","Wert": "60.6 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "switch","Wert": "69.2 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "switch","Wert": "71 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "vibration","Wert": "64.2 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "vibration","Wert": "64.2 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "Fenster Küche","Wert": "64.2 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/deconzk.png" },{"Device": "Wasser Küche","Wert": "33 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/deconzk.png" }]
                        

                        bilder:
                        xiaomki.png

                        deconzk.png

                        liv-in-skyL Offline
                        liv-in-skyL Offline
                        liv-in-sky
                        schrieb am zuletzt editiert von
                        #680

                        @liv-in-sky das mit der schrift art hat sich aufgelöst - ich nutze die alarm sache von scrouger und habe mein css geändert - das klappt jetzt

                        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                        O 1 Antwort Letzte Antwort
                        0
                        • liv-in-skyL liv-in-sky

                          @liv-in-sky das mit der schrift art hat sich aufgelöst - ich nutze die alarm sache von scrouger und habe mein css geändert - das klappt jetzt

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

                          @liv-in-sky

                          kennst du das Adapterscript von @Scrounger ?

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

                          Vielleicht kann dir das weiterhelfen.

                          Gruß
                          Oliver

                          1 Antwort Letzte Antwort
                          0
                          • liv-in-skyL liv-in-sky

                            ich schau mal , dass morgen mal eine erste version da ist - dann könnt ihr mal testen

                            wenn jmd weiß

                            Image 3.png

                            • wie ich die batteriewerte farbig bekomme - kann ich das im json angeben?
                            • wie wird das widget aktualisiert
                            • warum kann ich keine schrifart wählen

                            das würde schon echt helfen

                            hier mal ein output des jsons - wenn jmd tesen möchte

                            [{"Device": "magnet","Wert": "60.6 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "magnet","Wert": "62.4 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "magnet","Wert": "64.2 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "magnet","Wert": "60.6 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "motion 2","Wert": "66.1 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "motion 1","Wert": "69.7 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "sensor_motion.aq2","Wert": "60.6 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "switch","Wert": "69.2 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "switch","Wert": "71 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "vibration","Wert": "64.2 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "vibration","Wert": "64.2 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/xiaomki.png" },{"Device": "Fenster Küche","Wert": "64.2 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/deconzk.png" },{"Device": "Wasser Küche","Wert": "33 %","Status": "✅","Hersteller":"/vis.0/armin/img/marken/deconzk.png" }]
                            

                            bilder:
                            xiaomki.png

                            deconzk.png

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

                            @liv-in-sky

                            Wie muss ich die json importieren und welches Widget genau hast du genommen?

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

                            liv-in-skyL 1 Antwort Letzte Antwort
                            0
                            • sigi234S sigi234

                              @liv-in-sky

                              Wie muss ich die json importieren und welches Widget genau hast du genommen?

                              liv-in-skyL Offline
                              liv-in-skyL Offline
                              liv-in-sky
                              schrieb am zuletzt editiert von
                              #683

                              @sigi234

                              import - alles drin

                              [{"tpl":"tplVis-materialdesign-Table","data":{"oid":"","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","countCols":"3","tableLayout":"standard","showHeader":"true","headerTextSize":"headline6","showColumn0":"true","colType0":"text","textAlign0":"left","showColumn1":"true","colType1":"text","textAlign1":"center","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"showColumn2":"true","colType2":"text","textAlign2":"center","showColumn3":"true","colType3":"image","textAlign3":"center","dataJson":"[{\"Device\": \"magnet\",\"Wert\": \"60.6 %\",\"Status\": \"✅\",\"Hersteller\":\"/vis.0/armin/img/marken/xiaomki.png\" },{\"Device\": \"magnet\",\"Wert\": \"62.4 %\",\"Status\": \"✅\",\"Hersteller\":\"/vis.0/armin/img/marken/xiaomki.png\" },{\"Device\": \"magnet\",\"Wert\": \"64.2 %\",\"Status\": \"✅\",\"Hersteller\":\"/vis.0/armin/img/marken/xiaomki.png\" },{\"Device\": \"magnet\",\"Wert\": \"60.6 %\",\"Status\": \"✅\",\"Hersteller\":\"/vis.0/armin/img/marken/xiaomki.png\" },{\"Device\": \"motion 2\",\"Wert\": \"66.1 %\",\"Status\": \"✅\",\"Hersteller\":\"/vis.0/armin/img/marken/xiaomki.png\" },{\"Device\": \"motion 1\",\"Wert\": \"69.7 %\",\"Status\": \"✅\",\"Hersteller\":\"/vis.0/armin/img/marken/xiaomki.png\" },{\"Device\": \"sensor_motion.aq2\",\"Wert\": \"60.6 %\",\"Status\": \"✅\",\"Hersteller\":\"/vis.0/armin/img/marken/xiaomki.png\" },{\"Device\": \"switch\",\"Wert\": \"69.2 %\",\"Status\": \"✅\",\"Hersteller\":\"/vis.0/armin/img/marken/xiaomki.png\" },{\"Device\": \"switch\",\"Wert\": \"71 %\",\"Status\": \"✅\",\"Hersteller\":\"/vis.0/armin/img/marken/xiaomki.png\" },{\"Device\": \"vibration\",\"Wert\": \"64.2 %\",\"Status\": \"✅\",\"Hersteller\":\"/vis.0/armin/img/marken/xiaomki.png\" },{\"Device\": \"vibration\",\"Wert\": \"64.2 %\",\"Status\": \"✅\",\"Hersteller\":\"/vis.0/armin/img/marken/xiaomki.png\" },{\"Device\": \"Fenster Küche\",\"Wert\": \"64.2 %\",\"Status\": \"✅\",\"Hersteller\":\"/vis.0/armin/img/marken/deconzk.png\" },{\"Device\": \"Wasser Küche\",\"Wert\": \"33 %\",\"Status\": \"✅\",\"Hersteller\":\"/vis.0/armin/img/marken/deconzk.png\" }]","colTextSize0":"headline4","label1":"Wert","label0":"Name","label2":"Status","sortKey0":"name","fontFamily0":"Jura-DemiBold","padding_left0":"10","colTextColor0":"#beb7b7","colorBackground":"#ffffff","colorHeaderRowBackground":"#000000","colorHeaderRowText":"#17ee36","borderColor":"#000000","fontFamily1":"Jura-DemiBold","colTextColor1":"#beb7b7","rowHeight":"19","label3":"Hersteller","imageSize3":"20","padding_right3":"-5"},"style":{"left":"11px","top":"472px","z-index":"900","width":"499px","height":"525px","overflow-y":"hidden"},"widgetSet":"materialdesign"}]
                              

                              nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                              1 Antwort Letzte Antwort
                              0
                              • liv-in-skyL liv-in-sky

                                @Elirion

                                probiere mal das script im ersten post - deconz sollte funktionieren

                                Image 2.png

                                ? Offline
                                ? Offline
                                Ein ehemaliger Benutzer
                                schrieb am zuletzt editiert von
                                #684

                                @liv-in-sky sagte in Script fürTabelle der Batterie Zustände:

                                @Elirion

                                probiere mal das script im ersten post - deconz sollte funktionieren

                                Image 2.png

                                @liv-in-sky Leider immer noch doppelte Einträge:

                                c4918d31-864c-4dc3-aa64-d81245d1c21c-image.png

                                liv-in-skyL 1 Antwort Letzte Antwort
                                0
                                • ? Ein ehemaliger Benutzer

                                  @liv-in-sky sagte in Script fürTabelle der Batterie Zustände:

                                  @Elirion

                                  probiere mal das script im ersten post - deconz sollte funktionieren

                                  Image 2.png

                                  @liv-in-sky Leider immer noch doppelte Einträge:

                                  c4918d31-864c-4dc3-aa64-d81245d1c21c-image.png

                                  liv-in-skyL Offline
                                  liv-in-skyL Offline
                                  liv-in-sky
                                  schrieb am zuletzt editiert von
                                  #685

                                  @Elirion kann es sein, dass du noch eine alte instanz mit diesen werten hast - ich denke- etwas in deinem system ist doppelt

                                  nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                  ? 1 Antwort Letzte Antwort
                                  0
                                  • liv-in-skyL liv-in-sky

                                    @Elirion kann es sein, dass du noch eine alte instanz mit diesen werten hast - ich denke- etwas in deinem system ist doppelt

                                    ? Offline
                                    ? Offline
                                    Ein ehemaliger Benutzer
                                    schrieb am zuletzt editiert von
                                    #686

                                    @liv-in-sky nein ist gelöscht und neue datenpunkte 😉

                                    liv-in-skyL 1 Antwort Letzte Antwort
                                    0
                                    • ? Ein ehemaliger Benutzer

                                      @liv-in-sky nein ist gelöscht und neue datenpunkte 😉

                                      liv-in-skyL Offline
                                      liv-in-skyL Offline
                                      liv-in-sky
                                      schrieb am zuletzt editiert von
                                      #687

                                      @Elirion verstehe ich nicht - ich habe ja deine werte eingespielt und bei mir funktioniert es

                                      es gibt also keinen deconz.1 oder deconz.2

                                      das script hat eigentlich keinen grund 2 mal über das selbe zu laufen - es ist ja eine kopie - dann müßten alle namen unter allen kategorien doppelt sein - ist aber nicht der fall

                                      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                      1 Antwort Letzte Antwort
                                      0
                                      • ? Offline
                                        ? Offline
                                        Ein ehemaliger Benutzer
                                        schrieb am zuletzt editiert von Ein ehemaliger Benutzer
                                        #688

                                        @liv-in-sky Nein es gibt nur deconz.0 dort aber für ein Gerät 2 IDs (wegen Luftfeuchte, Temperatur und Luftdruck)

                                        liv-in-skyL 2 Antworten Letzte Antwort
                                        0
                                        • ? Ein ehemaliger Benutzer

                                          @liv-in-sky Nein es gibt nur deconz.0 dort aber für ein Gerät 2 IDs (wegen Luftfeuchte, Temperatur und Luftdruck)

                                          liv-in-skyL Offline
                                          liv-in-skyL Offline
                                          liv-in-sky
                                          schrieb am zuletzt editiert von
                                          #689

                                          @Elirion aber diese id's haben keinen datenpunkt mit ...battery

                                          deconz.0.Sensors.10.battery - ist ein sensor - der wird gefunden - wenn der nicht da ist, wird qauch nix gefunden und angezeigt - unter
                                          deconz.0.Sensors.10.

                                          gibt es nur ein battery

                                          ds ist ein gerät

                                          hast du mal iobroker neugestartet, nicht das der javascript cache ärger macht

                                          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                          ? 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

                                          384

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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