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

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

Community Forum

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

NEWS

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

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

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

View Adapter Status

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
view adapterview
212 Beiträge 31 Kommentatoren 37.1k Aufrufe 52 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Thomas JansenT Thomas Jansen

    @sigi234 sag mal ich bastel gerade an der hue view, könntest du dir zur verfügung stellen? LG

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

    @Thomas-Jansen sagte in View Adapter Status:

    @sigi234 sag mal ich bastel gerade an der hue view, könntest du dir zur verfügung stellen? LG

    View_Hue_Sigi234.txt

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

    1 Antwort Letzte Antwort
    1
    • sigi234S sigi234

      Hallo,
      hier wie gewünscht meine View vom Adapterstatus.
      Sind nicht alle drauf, habe eine 2. View . Einfach 1. View kopieren und anpassen.

      • Im Admin ist Uptime mit einer Formatierung vom Datum drinnen (von einen User) kann man auch auf alle kopieren und für jeden einzelnen Adapter anpassen.

      • Schriftart ist RobotoCondensed-Light, wenn nicht vorhanden dann bitte einfach via Adapter nachinstallieren.
        (ioBroker.vis-google-fonts)

      • Icons sind vom jeweiligen Admin.

      • Mem Werte aktualisieren sich Live.

      • Achtung, es sind 2 Widget übereinander gelegt. Admin Bild und Admin Hintergrund. Bild ist immer gleich, der Hintergrund und auch der Name ändert sich nach dem jeweiligen Status.

      Screenshot (522).png

      VIEW_Adapter_Status_sigi234.txt

      Fehlende Adapter Icons:
      Von einen User, weis nicht mehr wer es war.
      Adapter_Icons.zip


      NEUE VERSION:

      Screenshot (931).png

      VIEW_Adapter_Status_sigi234_V2.txt

      Edit: 13.12.2019
      Neue Version hochgeladen
      View angepasst
      Justgage Indicator Colored hinzugefügt (Werte und Farben anpassbar)
      Zip nicht mehr nötig

      Edit: 25.02.2020
      Es gibt eine Neue Version von @Scrounger
      https://forum.iobroker.net/topic/30661/material-design-widgets-adapter-status

      ub.privatU Offline
      ub.privatU Offline
      ub.privat
      schrieb am zuletzt editiert von
      #24

      @sigi234

      Hallo Sigi,

      großen Respekt vor deinen Arbeiten im ioBroker und die hier zahlreich vertretenen Veröffentlichungen, Hilfestellungen.
      Ganz großer Dank auch für die selbstlose Bereitstellung deiner Arbeit! So viel Daumen kann ich gar nicht geben :+1: :+1: :+1: :+1: :+1: ...

      Ich abe mir deine Arbeit als Vorlage zu nutze gemacht:
      74afdce9-2c36-474a-bb69-94c5a088a205-grafik.png
      Aber eine kleine Frage bleibt offen. Die Abfrage der Nutzungsdaten klappt einwandfrei.
      Nur die Statusanzeige will nicht so recht.
      Unter dem Icon des Adapters (bei mir rechts das große!) liegt ja ein Widget "basic value list html" welches nach Verbindungszustand (true/false - 0/1) rot oder grün dargestellt wird.
      2e2931f0-eee2-453a-b972-a048a5b295d2-grafik.png
      Leider tut sich bei mir nichts mit dem "Farbwechsel"... Woran kann das liegen?

      Für deinen Tipp bin ich schon im voraus mehr als dankbar!!!

      Grüße Uwe

      sigi234S 1 Antwort Letzte Antwort
      0
      • ub.privatU ub.privat

        @sigi234

        Hallo Sigi,

        großen Respekt vor deinen Arbeiten im ioBroker und die hier zahlreich vertretenen Veröffentlichungen, Hilfestellungen.
        Ganz großer Dank auch für die selbstlose Bereitstellung deiner Arbeit! So viel Daumen kann ich gar nicht geben :+1: :+1: :+1: :+1: :+1: ...

        Ich abe mir deine Arbeit als Vorlage zu nutze gemacht:
        74afdce9-2c36-474a-bb69-94c5a088a205-grafik.png
        Aber eine kleine Frage bleibt offen. Die Abfrage der Nutzungsdaten klappt einwandfrei.
        Nur die Statusanzeige will nicht so recht.
        Unter dem Icon des Adapters (bei mir rechts das große!) liegt ja ein Widget "basic value list html" welches nach Verbindungszustand (true/false - 0/1) rot oder grün dargestellt wird.
        2e2931f0-eee2-453a-b972-a048a5b295d2-grafik.png
        Leider tut sich bei mir nichts mit dem "Farbwechsel"... Woran kann das liegen?

        Für deinen Tipp bin ich schon im voraus mehr als dankbar!!!

        Grüße Uwe

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

        @ub-privat sagte in View Adapter Status:

        Leider tut sich bei mir nichts mit dem "Farbwechsel"... Woran kann das liegen?

        DP und z-index Richtig eingestellt?

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

        ub.privatU 1 Antwort Letzte Antwort
        1
        • BanditFGB Offline
          BanditFGB Offline
          BanditFG
          schrieb am zuletzt editiert von
          #26

          hallo ich bekomme das mit der Betriebszeit (Uptime) der Adapter nicht hin, kann mir da jemand helfen??

          1 Antwort Letzte Antwort
          0
          • sigi234S sigi234

            @Bachmann77 sagte in View Adapter Status:

            @sigi234
            hät ja gern mal gesehen wie deine komplette vis aussieht :)

            Ja ist nur ein Ausschnitt davon.

            Ich baue gerade meine komplette Vis auf vis-materialdesign von @Scrounger um. Hier einige Beispiele:

            Screenshot (542).png

            Screenshot (540).png

            Screenshot (538).png

            Screenshot (536).png

            Screenshot (534).png

            Screenshot (532).png

            Screenshot (530).png

            Screenshot (528).png

            Das Menü lässt sich natürlich ausblenden.

            P Offline
            P Offline
            PatrickFro
            schrieb am zuletzt editiert von
            #27

            @sigi234 Wie immer super aussehen, man sieht die viele Arbeit...

            Könntest Du das Log-View zur Verfügung stellen?

            sigi234S 1 Antwort Letzte Antwort
            0
            • P PatrickFro

              @sigi234 Wie immer super aussehen, man sieht die viele Arbeit...

              Könntest Du das Log-View zur Verfügung stellen?

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

              @PatrickFro sagte in View Adapter Status:

              @sigi234 Wie immer super aussehen, man sieht die viele Arbeit...

              Könntest Du das Log-View zur Verfügung stellen?

              VIEW_Log_sigi234.txt

              Skript von @Mic nötig:
              https://forum.iobroker.net/topic/13971/vorlage-js-log-datei-aufbereiten-für-vis

              müll.png

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

              1 Antwort Letzte Antwort
              2
              • P Offline
                P Offline
                PatrickFro
                schrieb am zuletzt editiert von
                #29

                Vielen Dank! Das Skript hatte ich sogar schon genutzt, die Ausgabe gefiel mir aber nicht ;-)

                1 Antwort Letzte Antwort
                0
                • K Online
                  K Online
                  Kuddel
                  schrieb am zuletzt editiert von
                  #30

                  habe auch angefangen, meine Adapter-Übersicht umzubauen.

                  Mal sehen wie das passt vom Platz her...

                  e0279b03-a9aa-44e3-b831-aeaf5e3d8fb6-grafik.png

                  O 1 Antwort Letzte Antwort
                  0
                  • K Kuddel

                    habe auch angefangen, meine Adapter-Übersicht umzubauen.

                    Mal sehen wie das passt vom Platz her...

                    e0279b03-a9aa-44e3-b831-aeaf5e3d8fb6-grafik.png

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

                    @Kuddel

                    welche Größe brauchst du?
                    Habe meine für ein Samsung Tab 10.1 geändert.

                    Ich löse das ganze allerdings über ein Script, dass mir automatisch die Adapter einliest, dann brauche ich nicht jedesmal Handanlegen, wenn einer dazukommt.

                    8502d1aa-7d9d-40ef-8c2f-606356147285-image.png

                    @sigi234

                    kannst du die Seite von deinen Yamaha Verstärker zur Verfügung stellen?

                    Gruß
                    Oliver

                    sigi234S v522533V 2 Antworten Letzte Antwort
                    0
                    • O Oli

                      @Kuddel

                      welche Größe brauchst du?
                      Habe meine für ein Samsung Tab 10.1 geändert.

                      Ich löse das ganze allerdings über ein Script, dass mir automatisch die Adapter einliest, dann brauche ich nicht jedesmal Handanlegen, wenn einer dazukommt.

                      8502d1aa-7d9d-40ef-8c2f-606356147285-image.png

                      @sigi234

                      kannst du die Seite von deinen Yamaha Verstärker zur Verfügung stellen?

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

                      @Oli sagte in View Adapter Status:

                      kannst du die Seite von deinen Yamaha Verstärker zur Verfügung stellen?

                      Ja, ist aber sehr speziell

                      View_Yamaha_sigi234.txt

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

                      O 2 Antworten Letzte Antwort
                      1
                      • sigi234S sigi234

                        @Oli sagte in View Adapter Status:

                        kannst du die Seite von deinen Yamaha Verstärker zur Verfügung stellen?

                        Ja, ist aber sehr speziell

                        View_Yamaha_sigi234.txt

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

                        @sigi234

                        das kann ich mir vorstellen :-) , ich änder alles ab, was bei mir nicht passt

                        Gruß
                        Oliver

                        1 Antwort Letzte Antwort
                        0
                        • sigi234S sigi234

                          @Oli sagte in View Adapter Status:

                          kannst du die Seite von deinen Yamaha Verstärker zur Verfügung stellen?

                          Ja, ist aber sehr speziell

                          View_Yamaha_sigi234.txt

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

                          @sigi234

                          danke

                          Gruß
                          Oliver

                          1 Antwort Letzte Antwort
                          0
                          • sigi234S sigi234

                            @Bachmann77 sagte in View Adapter Status:

                            @sigi234
                            hät ja gern mal gesehen wie deine komplette vis aussieht :)

                            Ja ist nur ein Ausschnitt davon.

                            Ich baue gerade meine komplette Vis auf vis-materialdesign von @Scrounger um. Hier einige Beispiele:

                            Screenshot (542).png

                            Screenshot (540).png

                            Screenshot (538).png

                            Screenshot (536).png

                            Screenshot (534).png

                            Screenshot (532).png

                            Screenshot (530).png

                            Screenshot (528).png

                            Das Menü lässt sich natürlich ausblenden.

                            K Online
                            K Online
                            Kuddel
                            schrieb am zuletzt editiert von Kuddel
                            #35

                            @sigi234 wie hast du die farbliche formatierung bei deinen Logs hinbekommen?

                            Dass z.b. "error" in rot angezeigt wird?

                            Aktuell sieht es bei mir so aus:

                            16d7d299-1da4-41fd-94dd-37f910346b30-grafik.png

                            Irgendwie bin ich nicht mit den Zeilenumbrüchen zufrieden.

                            Habe line-hight auf 0.5, damit die Abstände zwischend ein einzelnen Einträgen gering sind.
                            Leider verschieben sich die Zeilen bei einem Umbruch dann ineinander

                            sigi234S GlasfaserG 2 Antworten Letzte Antwort
                            0
                            • O Oli

                              @Kuddel

                              welche Größe brauchst du?
                              Habe meine für ein Samsung Tab 10.1 geändert.

                              Ich löse das ganze allerdings über ein Script, dass mir automatisch die Adapter einliest, dann brauche ich nicht jedesmal Handanlegen, wenn einer dazukommt.

                              8502d1aa-7d9d-40ef-8c2f-606356147285-image.png

                              @sigi234

                              kannst du die Seite von deinen Yamaha Verstärker zur Verfügung stellen?

                              v522533V Offline
                              v522533V Offline
                              v522533
                              schrieb am zuletzt editiert von
                              #36

                              @Oli sagte in View Adapter Status:

                              @Kuddel

                              welche Größe brauchst du?
                              Habe meine für ein Samsung Tab 10.1 geändert.

                              Ich löse das ganze allerdings über ein Script, dass mir automatisch die Adapter einliest, dann brauche ich nicht jedesmal Handanlegen, wenn einer dazukommt.

                              8502d1aa-7d9d-40ef-8c2f-606356147285-image.png

                              @sigi234

                              kannst du die Seite von deinen Yamaha Verstärker zur Verfügung stellen?

                              wie machst du das mit dem script? Das würde mich brennend interessieren, nervt nämlich alles immer von hand zu machen ;)

                              Gruß Chris

                              O 1 Antwort Letzte Antwort
                              0
                              • J Offline
                                J Offline
                                jerzimeik
                                schrieb am zuletzt editiert von
                                #37

                                Super Übersicht!

                                Nur wie löst ihr das mit den iCal-Status? Der ist bei mir meistens bei "alive" auf false und ruft nur alle 30 Minuten den Status ab.

                                NashraN 1 Antwort Letzte Antwort
                                0
                                • J jerzimeik

                                  Super Übersicht!

                                  Nur wie löst ihr das mit den iCal-Status? Der ist bei mir meistens bei "alive" auf false und ruft nur alle 30 Minuten den Status ab.

                                  NashraN Offline
                                  NashraN Offline
                                  Nashra
                                  Most Active Forum Testing
                                  schrieb am zuletzt editiert von
                                  #38

                                  @jerzimeik sagte in View Adapter Status:

                                  Super Übersicht!

                                  Nur wie löst ihr das mit den iCal-Status? Der ist bei mir meistens bei "alive" auf false und ruft nur alle 30 Minuten den Status ab.

                                  Der geht dann nur alle 30 Minuten auf grün wenn die Abfrage ist.

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

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

                                  1 Antwort Letzte Antwort
                                  0
                                  • v522533V v522533

                                    @Oli sagte in View Adapter Status:

                                    @Kuddel

                                    welche Größe brauchst du?
                                    Habe meine für ein Samsung Tab 10.1 geändert.

                                    Ich löse das ganze allerdings über ein Script, dass mir automatisch die Adapter einliest, dann brauche ich nicht jedesmal Handanlegen, wenn einer dazukommt.

                                    8502d1aa-7d9d-40ef-8c2f-606356147285-image.png

                                    @sigi234

                                    kannst du die Seite von deinen Yamaha Verstärker zur Verfügung stellen?

                                    wie machst du das mit dem script? Das würde mich brennend interessieren, nervt nämlich alles immer von hand zu machen ;)

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

                                    @v522533

                                    anbei das Script, es werden für jeden Adapter einzelne Datenpunkte angelegt. Das automatische entfernen eines Adapters funktioniert noch nicht, daran arbeite ich momentan noch.

                                    38a2687e-9550-48a1-9af9-1c5bbcf4c353-image.png

                                    Ich hoffe es funktioniert bei dir, konnte es bisher nur auf meine Bedürfnisse testen.

                                    // Liest die ioBroker Adapter aus und legt verschiedenen State's an.
                                    
                                    on({id:"system.adapter.admin.0.uptime",change:'any'}, function (obj) {
                                       createState('Adapter.Anzahl', 0, { name: 'Anzahl', desc: 'Anzahl der Adapter', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
                                       //var counterAlt = getState("javascript.0.Adapter.Anzahl").val;
                                       var counter =0;        
                                    
                                       var cacheSelector = $('[id=system.adapter.*.alive]');    
                                       cacheSelector.each(function(id, i) {        
                                           var devicename = getObject(id).common.name;             
                                           var devicenameName=devicename;
                                           var test = devicenameName;
                                           var devicename_array = devicenameName.split(' ');        
                                           devicenameName = devicename_array[0];
                                    
                                           counter = counter+1; 
                                               
                                           var strStatePath = "system.adapter." + devicenameName + ".alive";
                                           if (isState(strStatePath, true)) {
                                               var uptime = getState("system.adapter." + devicenameName + ".uptime").val;
                                               var tage = Math.floor(uptime / (24*3600));
                                               var stunden = Math.floor((uptime % (24*3600))/3600);
                                               var minuten = Math.floor((uptime % (3600))/60);
                                               var sekunden = Math.floor(uptime % 60);
                                               uptime = tage.toString()+" Tag(e), "+stunden.toString()+" Std., "+minuten.toString()+" Min. ";
                                    
                                               var total = getState("system.adapter." + devicenameName + ".memHeapTotal").val;
                                               var used = getState("system.adapter." + devicenameName + ".memHeapUsed").val;
                                               var rss = getState("system.adapter." + devicenameName + ".memRss").val;
                                               var connect = getState("system.adapter." + devicenameName + ".alive").val;            
                                    
                                               if(connect == false){
                                                   var con = 0;    
                                               } else {                
                                                   var con = 1;                                             
                                               } 
                                    
                                               var strStatePath = devicenameName + ".info.connection";
                                               if (isState(strStatePath, true)) {
                                                   var connectS = getState(devicenameName + ".info.connection").val;
                                               }
                                    
                                               if (connectS == false) {
                                                   con = 2;
                                               }                                                 
                                           }       
                                           
                                           var contentstring = devicenameName;
                                           var suchstring = /(ical)/g; 
                                           var suchergebnis = suchstring.test( contentstring );
                                           
                                           if (suchergebnis != true) {
                                               var devicename_array = devicenameName.split('.');        
                                               devicenameName = devicename_array[0];
                                           }    
                                    
                                           if (devicenameName == "daswetter") {
                                               var bild = "/" + devicenameName + ".admin/" + devicenameName + "com.png";
                                           } else if (suchergebnis != false) {
                                               var devicename_array = devicenameName.split('.');        
                                               var icalName = devicename_array[0];        
                                               var bild = "/" + icalName + ".admin/" + icalName + ".png";
                                           } else {
                                               var bild = "/" + devicenameName + ".admin/" + devicenameName + ".png";
                                           }
                                               
                                           devicenameName = devicenameName.substring(0, 1).toUpperCase() + devicenameName.substring(1).toLowerCase(); 
                                           
                                           devicename="Adapter.Adapter"+counter.toString()+".NameAdapter";
                                           createState(devicename, 'empty', { name: 'Name des Geräts', desc: '', type: 'string', role: '',read: true, write: true }); 
                                           setStateDelayed(devicename, devicenameName, 800);
                                    
                                           devicename="Adapter.Adapter"+counter.toString()+".Bild";
                                           createState(devicename, 'empty', { name: 'Speicherort Bild', desc: '', type: 'string', role: '',read: true, write: true });
                                           setStateDelayed(devicename, bild, 800);
                                    
                                           devicename="Adapter.Adapter"+counter.toString()+".Uptime";          
                                           createState(devicename, 'empty', { name: 'Uptime', desc: '', type: 'string', role: '',read: true, write: true });
                                           setStateDelayed(devicename, uptime, 800);
                                    
                                           devicename="Adapter.Adapter"+counter.toString()+".MemUsed";          
                                           createState(devicename, 0, { name: 'Link MemUsed', desc: '', type: 'number', role: '',read: true, write: true });
                                           setStateDelayed(devicename, used, 800);
                                    
                                           devicename="Adapter.Adapter"+counter.toString()+".MemTotal";          
                                           createState(devicename, 0, { name: 'Link MemTotal', desc: '', type: 'number', role: '',read: true, write: true });
                                           setStateDelayed(devicename, total, 800);
                                    
                                           devicename="Adapter.Adapter"+counter.toString()+".MemRSS";          
                                           createState(devicename, 0, { name: 'Link MemRSS', desc: '', type: 'number', role: '',read: true, write: true });
                                           setStateDelayed(devicename, rss, 800);
                                    
                                           devicename="Adapter.Adapter"+counter.toString()+".Connected";          
                                           createState(devicename, 0, { name: 'Status Adapter', desc: '', type: 'number', role: '',read: true, write: true });
                                           setStateDelayed(devicename, con, 800);
                                           
                                       });
                                        
                                       setStateDelayed('Adapter.Anzahl', counter, 800);
                                    
                                       function isState(strStatePath, strict) {
                                           let mSelector;
                                           if (strict) {
                                               mSelector = $('state[id=' + strStatePath + '$]');
                                           } else {
                                               mSelector = $('state[id=' + strStatePath + ']');
                                           }
                                           if (mSelector.length > 0) {
                                               return true;
                                           } else {
                                               return false;
                                           }
                                       }  
                                    });    
                                       
                                               
                                    

                                    Hier ist noch meine Vis mit den angepassten Datenpunkten

                                    AdapterVis.txt

                                    Gruß
                                    Oliver

                                    v522533V sigi234S K 3 Antworten Letzte Antwort
                                    2
                                    • O Oli

                                      @v522533

                                      anbei das Script, es werden für jeden Adapter einzelne Datenpunkte angelegt. Das automatische entfernen eines Adapters funktioniert noch nicht, daran arbeite ich momentan noch.

                                      38a2687e-9550-48a1-9af9-1c5bbcf4c353-image.png

                                      Ich hoffe es funktioniert bei dir, konnte es bisher nur auf meine Bedürfnisse testen.

                                      // Liest die ioBroker Adapter aus und legt verschiedenen State's an.
                                      
                                      on({id:"system.adapter.admin.0.uptime",change:'any'}, function (obj) {
                                         createState('Adapter.Anzahl', 0, { name: 'Anzahl', desc: 'Anzahl der Adapter', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
                                         //var counterAlt = getState("javascript.0.Adapter.Anzahl").val;
                                         var counter =0;        
                                      
                                         var cacheSelector = $('[id=system.adapter.*.alive]');    
                                         cacheSelector.each(function(id, i) {        
                                             var devicename = getObject(id).common.name;             
                                             var devicenameName=devicename;
                                             var test = devicenameName;
                                             var devicename_array = devicenameName.split(' ');        
                                             devicenameName = devicename_array[0];
                                      
                                             counter = counter+1; 
                                                 
                                             var strStatePath = "system.adapter." + devicenameName + ".alive";
                                             if (isState(strStatePath, true)) {
                                                 var uptime = getState("system.adapter." + devicenameName + ".uptime").val;
                                                 var tage = Math.floor(uptime / (24*3600));
                                                 var stunden = Math.floor((uptime % (24*3600))/3600);
                                                 var minuten = Math.floor((uptime % (3600))/60);
                                                 var sekunden = Math.floor(uptime % 60);
                                                 uptime = tage.toString()+" Tag(e), "+stunden.toString()+" Std., "+minuten.toString()+" Min. ";
                                      
                                                 var total = getState("system.adapter." + devicenameName + ".memHeapTotal").val;
                                                 var used = getState("system.adapter." + devicenameName + ".memHeapUsed").val;
                                                 var rss = getState("system.adapter." + devicenameName + ".memRss").val;
                                                 var connect = getState("system.adapter." + devicenameName + ".alive").val;            
                                      
                                                 if(connect == false){
                                                     var con = 0;    
                                                 } else {                
                                                     var con = 1;                                             
                                                 } 
                                      
                                                 var strStatePath = devicenameName + ".info.connection";
                                                 if (isState(strStatePath, true)) {
                                                     var connectS = getState(devicenameName + ".info.connection").val;
                                                 }
                                      
                                                 if (connectS == false) {
                                                     con = 2;
                                                 }                                                 
                                             }       
                                             
                                             var contentstring = devicenameName;
                                             var suchstring = /(ical)/g; 
                                             var suchergebnis = suchstring.test( contentstring );
                                             
                                             if (suchergebnis != true) {
                                                 var devicename_array = devicenameName.split('.');        
                                                 devicenameName = devicename_array[0];
                                             }    
                                      
                                             if (devicenameName == "daswetter") {
                                                 var bild = "/" + devicenameName + ".admin/" + devicenameName + "com.png";
                                             } else if (suchergebnis != false) {
                                                 var devicename_array = devicenameName.split('.');        
                                                 var icalName = devicename_array[0];        
                                                 var bild = "/" + icalName + ".admin/" + icalName + ".png";
                                             } else {
                                                 var bild = "/" + devicenameName + ".admin/" + devicenameName + ".png";
                                             }
                                                 
                                             devicenameName = devicenameName.substring(0, 1).toUpperCase() + devicenameName.substring(1).toLowerCase(); 
                                             
                                             devicename="Adapter.Adapter"+counter.toString()+".NameAdapter";
                                             createState(devicename, 'empty', { name: 'Name des Geräts', desc: '', type: 'string', role: '',read: true, write: true }); 
                                             setStateDelayed(devicename, devicenameName, 800);
                                      
                                             devicename="Adapter.Adapter"+counter.toString()+".Bild";
                                             createState(devicename, 'empty', { name: 'Speicherort Bild', desc: '', type: 'string', role: '',read: true, write: true });
                                             setStateDelayed(devicename, bild, 800);
                                      
                                             devicename="Adapter.Adapter"+counter.toString()+".Uptime";          
                                             createState(devicename, 'empty', { name: 'Uptime', desc: '', type: 'string', role: '',read: true, write: true });
                                             setStateDelayed(devicename, uptime, 800);
                                      
                                             devicename="Adapter.Adapter"+counter.toString()+".MemUsed";          
                                             createState(devicename, 0, { name: 'Link MemUsed', desc: '', type: 'number', role: '',read: true, write: true });
                                             setStateDelayed(devicename, used, 800);
                                      
                                             devicename="Adapter.Adapter"+counter.toString()+".MemTotal";          
                                             createState(devicename, 0, { name: 'Link MemTotal', desc: '', type: 'number', role: '',read: true, write: true });
                                             setStateDelayed(devicename, total, 800);
                                      
                                             devicename="Adapter.Adapter"+counter.toString()+".MemRSS";          
                                             createState(devicename, 0, { name: 'Link MemRSS', desc: '', type: 'number', role: '',read: true, write: true });
                                             setStateDelayed(devicename, rss, 800);
                                      
                                             devicename="Adapter.Adapter"+counter.toString()+".Connected";          
                                             createState(devicename, 0, { name: 'Status Adapter', desc: '', type: 'number', role: '',read: true, write: true });
                                             setStateDelayed(devicename, con, 800);
                                             
                                         });
                                          
                                         setStateDelayed('Adapter.Anzahl', counter, 800);
                                      
                                         function isState(strStatePath, strict) {
                                             let mSelector;
                                             if (strict) {
                                                 mSelector = $('state[id=' + strStatePath + '$]');
                                             } else {
                                                 mSelector = $('state[id=' + strStatePath + ']');
                                             }
                                             if (mSelector.length > 0) {
                                                 return true;
                                             } else {
                                                 return false;
                                             }
                                         }  
                                      });    
                                         
                                                 
                                      

                                      Hier ist noch meine Vis mit den angepassten Datenpunkten

                                      AdapterVis.txt

                                      v522533V Offline
                                      v522533V Offline
                                      v522533
                                      schrieb am zuletzt editiert von
                                      #40

                                      @Oli

                                      Danke Dir

                                      Gruß Chris

                                      O 2 Antworten Letzte Antwort
                                      0
                                      • v522533V v522533

                                        @Oli

                                        Danke Dir

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

                                        @v522533

                                        Viel Spaß beim testen

                                        Gruß
                                        Oliver

                                        1 Antwort Letzte Antwort
                                        0
                                        • O Oli

                                          @v522533

                                          anbei das Script, es werden für jeden Adapter einzelne Datenpunkte angelegt. Das automatische entfernen eines Adapters funktioniert noch nicht, daran arbeite ich momentan noch.

                                          38a2687e-9550-48a1-9af9-1c5bbcf4c353-image.png

                                          Ich hoffe es funktioniert bei dir, konnte es bisher nur auf meine Bedürfnisse testen.

                                          // Liest die ioBroker Adapter aus und legt verschiedenen State's an.
                                          
                                          on({id:"system.adapter.admin.0.uptime",change:'any'}, function (obj) {
                                             createState('Adapter.Anzahl', 0, { name: 'Anzahl', desc: 'Anzahl der Adapter', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
                                             //var counterAlt = getState("javascript.0.Adapter.Anzahl").val;
                                             var counter =0;        
                                          
                                             var cacheSelector = $('[id=system.adapter.*.alive]');    
                                             cacheSelector.each(function(id, i) {        
                                                 var devicename = getObject(id).common.name;             
                                                 var devicenameName=devicename;
                                                 var test = devicenameName;
                                                 var devicename_array = devicenameName.split(' ');        
                                                 devicenameName = devicename_array[0];
                                          
                                                 counter = counter+1; 
                                                     
                                                 var strStatePath = "system.adapter." + devicenameName + ".alive";
                                                 if (isState(strStatePath, true)) {
                                                     var uptime = getState("system.adapter." + devicenameName + ".uptime").val;
                                                     var tage = Math.floor(uptime / (24*3600));
                                                     var stunden = Math.floor((uptime % (24*3600))/3600);
                                                     var minuten = Math.floor((uptime % (3600))/60);
                                                     var sekunden = Math.floor(uptime % 60);
                                                     uptime = tage.toString()+" Tag(e), "+stunden.toString()+" Std., "+minuten.toString()+" Min. ";
                                          
                                                     var total = getState("system.adapter." + devicenameName + ".memHeapTotal").val;
                                                     var used = getState("system.adapter." + devicenameName + ".memHeapUsed").val;
                                                     var rss = getState("system.adapter." + devicenameName + ".memRss").val;
                                                     var connect = getState("system.adapter." + devicenameName + ".alive").val;            
                                          
                                                     if(connect == false){
                                                         var con = 0;    
                                                     } else {                
                                                         var con = 1;                                             
                                                     } 
                                          
                                                     var strStatePath = devicenameName + ".info.connection";
                                                     if (isState(strStatePath, true)) {
                                                         var connectS = getState(devicenameName + ".info.connection").val;
                                                     }
                                          
                                                     if (connectS == false) {
                                                         con = 2;
                                                     }                                                 
                                                 }       
                                                 
                                                 var contentstring = devicenameName;
                                                 var suchstring = /(ical)/g; 
                                                 var suchergebnis = suchstring.test( contentstring );
                                                 
                                                 if (suchergebnis != true) {
                                                     var devicename_array = devicenameName.split('.');        
                                                     devicenameName = devicename_array[0];
                                                 }    
                                          
                                                 if (devicenameName == "daswetter") {
                                                     var bild = "/" + devicenameName + ".admin/" + devicenameName + "com.png";
                                                 } else if (suchergebnis != false) {
                                                     var devicename_array = devicenameName.split('.');        
                                                     var icalName = devicename_array[0];        
                                                     var bild = "/" + icalName + ".admin/" + icalName + ".png";
                                                 } else {
                                                     var bild = "/" + devicenameName + ".admin/" + devicenameName + ".png";
                                                 }
                                                     
                                                 devicenameName = devicenameName.substring(0, 1).toUpperCase() + devicenameName.substring(1).toLowerCase(); 
                                                 
                                                 devicename="Adapter.Adapter"+counter.toString()+".NameAdapter";
                                                 createState(devicename, 'empty', { name: 'Name des Geräts', desc: '', type: 'string', role: '',read: true, write: true }); 
                                                 setStateDelayed(devicename, devicenameName, 800);
                                          
                                                 devicename="Adapter.Adapter"+counter.toString()+".Bild";
                                                 createState(devicename, 'empty', { name: 'Speicherort Bild', desc: '', type: 'string', role: '',read: true, write: true });
                                                 setStateDelayed(devicename, bild, 800);
                                          
                                                 devicename="Adapter.Adapter"+counter.toString()+".Uptime";          
                                                 createState(devicename, 'empty', { name: 'Uptime', desc: '', type: 'string', role: '',read: true, write: true });
                                                 setStateDelayed(devicename, uptime, 800);
                                          
                                                 devicename="Adapter.Adapter"+counter.toString()+".MemUsed";          
                                                 createState(devicename, 0, { name: 'Link MemUsed', desc: '', type: 'number', role: '',read: true, write: true });
                                                 setStateDelayed(devicename, used, 800);
                                          
                                                 devicename="Adapter.Adapter"+counter.toString()+".MemTotal";          
                                                 createState(devicename, 0, { name: 'Link MemTotal', desc: '', type: 'number', role: '',read: true, write: true });
                                                 setStateDelayed(devicename, total, 800);
                                          
                                                 devicename="Adapter.Adapter"+counter.toString()+".MemRSS";          
                                                 createState(devicename, 0, { name: 'Link MemRSS', desc: '', type: 'number', role: '',read: true, write: true });
                                                 setStateDelayed(devicename, rss, 800);
                                          
                                                 devicename="Adapter.Adapter"+counter.toString()+".Connected";          
                                                 createState(devicename, 0, { name: 'Status Adapter', desc: '', type: 'number', role: '',read: true, write: true });
                                                 setStateDelayed(devicename, con, 800);
                                                 
                                             });
                                              
                                             setStateDelayed('Adapter.Anzahl', counter, 800);
                                          
                                             function isState(strStatePath, strict) {
                                                 let mSelector;
                                                 if (strict) {
                                                     mSelector = $('state[id=' + strStatePath + '$]');
                                                 } else {
                                                     mSelector = $('state[id=' + strStatePath + ']');
                                                 }
                                                 if (mSelector.length > 0) {
                                                     return true;
                                                 } else {
                                                     return false;
                                                 }
                                             }  
                                          });    
                                             
                                                     
                                          

                                          Hier ist noch meine Vis mit den angepassten Datenpunkten

                                          AdapterVis.txt

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

                                          @Oli

                                          Habe das Skript mal getestet , leider Fehler:
                                          Muss ich was anpassen?

                                          13.12.2019, 20:01:53.887	[info ]: javascript.0 (3888) Stop script script.js.Status.Status_Adapter
                                          13.12.2019, 20:01:53.891	[info ]: javascript.0 (3888) Start javascript script.js.Status.Status_Adapter
                                          13.12.2019, 20:01:53.895	[info ]: javascript.0 (3888) script.js.Status.Status_Adapter: registered 1 subscription and 0 schedules
                                          13.12.2019, 20:01:56.519	[warn ]: javascript.0 (3888)     at script.js.Status.Status_Adapter:40:31
                                          13.12.2019, 20:01:56.519	[warn ]: javascript.0 (3888)     at Object.<anonymous> (script.js.Status.Status_Adapter:9:18)
                                          13.12.2019, 20:01:56.549	[error]: javascript.0 (3888)     at script.js.Status.Status_Adapter:10:38
                                          13.12.2019, 20:01:56.550	[error]: javascript.0 (3888)     at Object.<anonymous> (script.js.Status.Status_Adapter:9:18)
                                          
                                          javascript.0	2019-12-13 20:05:27.445	warn	(3888) You are assigning a object to the state "javascript.0.Adapter.Adapter46.Connected" which expects a number. Please fix your code to use a number or change the state type to object. This warning
                                          

                                          Objekte werden angelegt. Werte kommen. Skript geht aber auf Pause.
                                          Anzahl Objekte sind 0

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

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

                                          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