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

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

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

Script fürTabelle der Batterie Zustände

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascriptmonitoringtemplate
1.4k Beiträge 67 Kommentatoren 489.5k 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.
  • liv-in-skyL liv-in-sky

    @Elirion kannst du mir ein export file von dem adapter zukommen lassen - ich würde den dann auch einbinden und mir das morgen näher anschauen

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

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

    @Elirion kannst du mir ein export file von dem adapter zukommen lassen - ich würde den dann auch einbinden und mir das morgen näher anschauen

    Würde ich gerne, aber wie mache ich das ;)
    Brauchst du nur die Objekte?

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

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

      @Elirion kannst du mir ein export file von dem adapter zukommen lassen - ich würde den dann auch einbinden und mir das morgen näher anschauen

      Würde ich gerne, aber wie mache ich das ;)
      Brauchst du nur die Objekte?

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

      @Elirion du wählst den deconz.0 aus und oben ist der export -knopf - das downloaded ein file auf deinen rechner und dieses file ziehst du in deinen post

      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

      1 Antwort Letzte Antwort
      0
      • ? 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 Offline
                O Offline
                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 Offline
                              O Offline
                              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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          231

                                          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