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. Visualisierung
  4. [Gelöst]Array darstellen in vis

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    377

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

[Gelöst]Array darstellen in vis

Geplant Angeheftet Gesperrt Verschoben Gelöst Visualisierung
vis
12 Beiträge 4 Kommentatoren 1.2k Aufrufe 3 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.
  • jmeister79J Offline
    jmeister79J Offline
    jmeister79
    schrieb am zuletzt editiert von jmeister79
    #1

    Hi,
    ich habe hier einen array (100) den ich gerne als Tabelle mit einer Spalte und 100 Zeilen darstellen möchte. Jedes Element des Array soll eine Zeile sein.
    Mit welchem Widget mache ich das?
    Kapiere das JSON widget "HTML Table" nicht so recht da kommt nur murks raus.

    Als simple html widget hab ich leider alle Kommas usw mit dargestellt und keine Zeilenumbrüche. Zeilenumbrüche kann ich zur not mit in den Array schreiben.

    Nils

    paul53P 1 Antwort Letzte Antwort
    0
    • S stimezo

      @jmeister79 sagte in Array darstellen in vis:

      @stimezo WOW! Super idee oder in eine variable, dass würde mir schon reichen, man darauf hätte ich ja selber kommen können.

      Dann hab ich alle Vorteile eines Array und benutze die variable zur darstellung.

      Nils

      Ja, ist meiner Meinung nach das flexibelste.
      Kannst Du noch schön mit CSS garnieren.
      So hübsch kann ein JSON in der Visu aussehen :-)

      View DB Ankunft.jpg

      Gruß
      Christian

      jmeister79J Offline
      jmeister79J Offline
      jmeister79
      schrieb am zuletzt editiert von
      #11

      @stimezo

      Voila!

      var myarray = new Array(100);
      var logbooktemp;
      createState("javascript.0.logbook",'nixx',{type: 'string', name: 'Logbuchobjekt'});
      createState("javascript.0.array_log", JSON.stringify(myarray), {type: 'string',name: 'Logbuchtabelle'});
      
      on({id: 'javascript.0.LogText', change: "ne"}, function (obj) {
        if (getState("javascript.0.LogText").val != 'leer') {
           // Daten in temp Array holen
          myarray = JSON.parse(getState('javascript.0.array_log').val);
          //element vorne anfügen
          myarray.unshift(formatDate(new Date(), "YYYY.MM.DD")+'-'+formatDate(new Date(), "hh:mm:ss")+' - '+getState("javascript.0.LogText").val);
          //letztes element löschen
          myarray.pop();
          //in temp variable schreiben um zu übergeben
          logbooktemp = '';
          for (var n = 99; n >=0; n--){
              logbooktemp = n+" - "+myarray[n]+'<br>'+logbooktemp;
          }
          //json objekt zurückschreiben
          setState('javascript.0.array_log', JSON.stringify(myarray));
          //auslösendes objekt zurücksetzen
          setState("javascript.0.LogText"/*LogText*/, 'leer');
          //ausgabeobjekt zurückschreiben
          setState("javascript.0.logbook"/*LogText*/,logbooktemp);
        }
      });
      
      S 1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        stimezo
        Forum Testing
        schrieb am zuletzt editiert von
        #2

        Ich würde per Script das Array in eine HTML Tabelle rendern.
        Da bist Du vollkommen flexibel in der Darstellung.

        Gruß
        Christian

        jmeister79J 1 Antwort Letzte Antwort
        0
        • jmeister79J jmeister79

          Hi,
          ich habe hier einen array (100) den ich gerne als Tabelle mit einer Spalte und 100 Zeilen darstellen möchte. Jedes Element des Array soll eine Zeile sein.
          Mit welchem Widget mache ich das?
          Kapiere das JSON widget "HTML Table" nicht so recht da kommt nur murks raus.

          Als simple html widget hab ich leider alle Kommas usw mit dargestellt und keine Zeilenumbrüche. Zeilenumbrüche kann ich zur not mit in den Array schreiben.

          Nils

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #3

          @jmeister79 sagte:

          JSON widget "HTML Table"

          Vermutlich kommt das JSON widget nicht mit einem echten Array zurecht. Versuche es mal mit einem JSON-String im Datenpunkt.

          setState(id, JSON.stringify(array), true);
          

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          jmeister79J 1 Antwort Letzte Antwort
          0
          • S stimezo

            Ich würde per Script das Array in eine HTML Tabelle rendern.
            Da bist Du vollkommen flexibel in der Darstellung.

            Gruß
            Christian

            jmeister79J Offline
            jmeister79J Offline
            jmeister79
            schrieb am zuletzt editiert von
            #4

            @stimezo

            öhm und wie?

            S 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @jmeister79 sagte:

              JSON widget "HTML Table"

              Vermutlich kommt das JSON widget nicht mit einem echten Array zurecht. Versuche es mal mit einem JSON-String im Datenpunkt.

              setState(id, JSON.stringify(array), true);
              
              jmeister79J Offline
              jmeister79J Offline
              jmeister79
              schrieb am zuletzt editiert von jmeister79
              #5

              @paul53
              Das tue ich schon:

              var n;
              var myarray = new Array(100);
              createState("javascript.0.array_log", JSON.stringify(myarray), {
                  type: 'string',
                  name: 'Logbuchtabelle'
              });
              
              on({id: 'javascript.0.LogText', change: "ne"}, function (obj) {
                if (getState("javascript.0.LogText").val != 'leer') {
                  myarray = JSON.parse(getState('javascript.0.array_log').val);
                  //alles um einen verschieben
                  for (var n = 99; n >= 1; n--) {
                      myarray[n] = myarray[n-1];
                  }
                  //ins erste element den aktuellen Logeintrag schreiben
                  myarray[0] = getState("javascript.0.LogText").val;
                  setState('javascript.0.array_log', JSON.stringify(myarray));
                  setState("javascript.0.LogText"/*LogText*/, 'leer');
                }
              });
              

              klappt soweit,
              hab aber auch gar keine ahnung was ich wo bei dem json widget eintragen muss

              1 Antwort Letzte Antwort
              0
              • jmeister79J Offline
                jmeister79J Offline
                jmeister79
                schrieb am zuletzt editiert von jmeister79
                #6

                Also der array wird wie folgt im normalen html widget dargestellt:

                ["eintrag","Eintrag2","Eintrag3",....,"letzter eintrag"]

                Beim HTML Table Widget habe ich keinerlei Ansatzpunkt wie ich die daten darstelle. :-(
                WEnn ich Den DAtenpnkt eintrage erhalte ich eine Tabelle in der lediglich immer der erste Buchstabe pro Element dargestellt wird bzw wenn ich mehr als eine Spalte einstelle, dann ein Buchstabe pro Zelle.

                Nils

                Zum Hintergrund: Ich habe mir ein 100 Elemente Array gebaut um ein Logbuch zu speichern bei dem ich bei ejdem neuen Eitnrag den ältesten hinten rauswerfe, das geht sehr gut mit array. mit einem Text Objekt, wie ich es zur Zeit Habe, müsste man entweder zu einem bestimmte Zeitpunkt flushen oder mit bestimmten Zeichen arbeiten die man im text sucht und ab dann mit dem Text kompliziert arbeitet.

                1 Antwort Letzte Antwort
                0
                • OliverIOO Offline
                  OliverIOO Offline
                  OliverIO
                  schrieb am zuletzt editiert von OliverIO
                  #7

                  hat zwar nix mit der Frage zu tun aber für deine Schleife und Einfügen
                  ist unshift und ein pop effizienter
                  https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift

                  Meine Adapter und Widgets
                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                  Links im Profil

                  1 Antwort Letzte Antwort
                  0
                  • jmeister79J jmeister79

                    @stimezo

                    öhm und wie?

                    S Offline
                    S Offline
                    stimezo
                    Forum Testing
                    schrieb am zuletzt editiert von
                    #8

                    @jmeister79 sagte in Array darstellen in vis:

                    @stimezo

                    öhm und wie?

                    So in etwa:

                    var htmltabelle = "Hier den Header einfügen";
                    
                    for (let i = 0; i < arrayname.length; i++) {
                    
                    htmltabelle=htmltabelle +'<tr>'; 
                    htmltabelle=htmltabelle + arrayname[i];
                    htmltabelle=htmltabelle + '</tr>';
                    }
                    
                    setState("javascript.0.tabellenname", htmltabelle);
                    

                    Gruß
                    Christian

                    jmeister79J 1 Antwort Letzte Antwort
                    0
                    • S stimezo

                      @jmeister79 sagte in Array darstellen in vis:

                      @stimezo

                      öhm und wie?

                      So in etwa:

                      var htmltabelle = "Hier den Header einfügen";
                      
                      for (let i = 0; i < arrayname.length; i++) {
                      
                      htmltabelle=htmltabelle +'<tr>'; 
                      htmltabelle=htmltabelle + arrayname[i];
                      htmltabelle=htmltabelle + '</tr>';
                      }
                      
                      setState("javascript.0.tabellenname", htmltabelle);
                      

                      Gruß
                      Christian

                      jmeister79J Offline
                      jmeister79J Offline
                      jmeister79
                      schrieb am zuletzt editiert von
                      #9

                      @stimezo WOW! Super idee oder in eine variable, dass würde mir schon reichen, man darauf hätte ich ja selber kommen können.

                      Dann hab ich alle Vorteile eines Array und benutze die variable zur darstellung.

                      Nils

                      S 1 Antwort Letzte Antwort
                      0
                      • jmeister79J jmeister79

                        @stimezo WOW! Super idee oder in eine variable, dass würde mir schon reichen, man darauf hätte ich ja selber kommen können.

                        Dann hab ich alle Vorteile eines Array und benutze die variable zur darstellung.

                        Nils

                        S Offline
                        S Offline
                        stimezo
                        Forum Testing
                        schrieb am zuletzt editiert von stimezo
                        #10

                        @jmeister79 sagte in Array darstellen in vis:

                        @stimezo WOW! Super idee oder in eine variable, dass würde mir schon reichen, man darauf hätte ich ja selber kommen können.

                        Dann hab ich alle Vorteile eines Array und benutze die variable zur darstellung.

                        Nils

                        Ja, ist meiner Meinung nach das flexibelste.
                        Kannst Du noch schön mit CSS garnieren.
                        So hübsch kann ein JSON in der Visu aussehen :-)

                        View DB Ankunft.jpg

                        Gruß
                        Christian

                        jmeister79J 1 Antwort Letzte Antwort
                        0
                        • S stimezo

                          @jmeister79 sagte in Array darstellen in vis:

                          @stimezo WOW! Super idee oder in eine variable, dass würde mir schon reichen, man darauf hätte ich ja selber kommen können.

                          Dann hab ich alle Vorteile eines Array und benutze die variable zur darstellung.

                          Nils

                          Ja, ist meiner Meinung nach das flexibelste.
                          Kannst Du noch schön mit CSS garnieren.
                          So hübsch kann ein JSON in der Visu aussehen :-)

                          View DB Ankunft.jpg

                          Gruß
                          Christian

                          jmeister79J Offline
                          jmeister79J Offline
                          jmeister79
                          schrieb am zuletzt editiert von
                          #11

                          @stimezo

                          Voila!

                          var myarray = new Array(100);
                          var logbooktemp;
                          createState("javascript.0.logbook",'nixx',{type: 'string', name: 'Logbuchobjekt'});
                          createState("javascript.0.array_log", JSON.stringify(myarray), {type: 'string',name: 'Logbuchtabelle'});
                          
                          on({id: 'javascript.0.LogText', change: "ne"}, function (obj) {
                            if (getState("javascript.0.LogText").val != 'leer') {
                               // Daten in temp Array holen
                              myarray = JSON.parse(getState('javascript.0.array_log').val);
                              //element vorne anfügen
                              myarray.unshift(formatDate(new Date(), "YYYY.MM.DD")+'-'+formatDate(new Date(), "hh:mm:ss")+' - '+getState("javascript.0.LogText").val);
                              //letztes element löschen
                              myarray.pop();
                              //in temp variable schreiben um zu übergeben
                              logbooktemp = '';
                              for (var n = 99; n >=0; n--){
                                  logbooktemp = n+" - "+myarray[n]+'<br>'+logbooktemp;
                              }
                              //json objekt zurückschreiben
                              setState('javascript.0.array_log', JSON.stringify(myarray));
                              //auslösendes objekt zurücksetzen
                              setState("javascript.0.LogText"/*LogText*/, 'leer');
                              //ausgabeobjekt zurückschreiben
                              setState("javascript.0.logbook"/*LogText*/,logbooktemp);
                            }
                          });
                          
                          S 1 Antwort Letzte Antwort
                          0
                          • jmeister79J jmeister79

                            @stimezo

                            Voila!

                            var myarray = new Array(100);
                            var logbooktemp;
                            createState("javascript.0.logbook",'nixx',{type: 'string', name: 'Logbuchobjekt'});
                            createState("javascript.0.array_log", JSON.stringify(myarray), {type: 'string',name: 'Logbuchtabelle'});
                            
                            on({id: 'javascript.0.LogText', change: "ne"}, function (obj) {
                              if (getState("javascript.0.LogText").val != 'leer') {
                                 // Daten in temp Array holen
                                myarray = JSON.parse(getState('javascript.0.array_log').val);
                                //element vorne anfügen
                                myarray.unshift(formatDate(new Date(), "YYYY.MM.DD")+'-'+formatDate(new Date(), "hh:mm:ss")+' - '+getState("javascript.0.LogText").val);
                                //letztes element löschen
                                myarray.pop();
                                //in temp variable schreiben um zu übergeben
                                logbooktemp = '';
                                for (var n = 99; n >=0; n--){
                                    logbooktemp = n+" - "+myarray[n]+'<br>'+logbooktemp;
                                }
                                //json objekt zurückschreiben
                                setState('javascript.0.array_log', JSON.stringify(myarray));
                                //auslösendes objekt zurücksetzen
                                setState("javascript.0.LogText"/*LogText*/, 'leer');
                                //ausgabeobjekt zurückschreiben
                                setState("javascript.0.logbook"/*LogText*/,logbooktemp);
                              }
                            });
                            
                            S Offline
                            S Offline
                            stimezo
                            Forum Testing
                            schrieb am zuletzt editiert von
                            #12

                            @jmeister79 sagte in [Gelöst]Array darstellen in vis:

                            @stimezo

                            Voila!

                            var myarray = new Array(100);
                            var logbooktemp;
                            createState("javascript.0.logbook",'nixx',{type: 'string', name: 'Logbuchobjekt'});
                            createState("javascript.0.array_log", JSON.stringify(myarray), {type: 'string',name: 'Logbuchtabelle'});
                            
                            on({id: 'javascript.0.LogText', change: "ne"}, function (obj) {
                              if (getState("javascript.0.LogText").val != 'leer') {
                                 // Daten in temp Array holen
                                myarray = JSON.parse(getState('javascript.0.array_log').val);
                                //element vorne anfügen
                                myarray.unshift(formatDate(new Date(), "YYYY.MM.DD")+'-'+formatDate(new Date(), "hh:mm:ss")+' - '+getState("javascript.0.LogText").val);
                                //letztes element löschen
                                myarray.pop();
                                //in temp variable schreiben um zu übergeben
                                logbooktemp = '';
                                for (var n = 99; n >=0; n--){
                                    logbooktemp = n+" - "+myarray[n]+'<br>'+logbooktemp;
                                }
                                //json objekt zurückschreiben
                                setState('javascript.0.array_log', JSON.stringify(myarray));
                                //auslösendes objekt zurücksetzen
                                setState("javascript.0.LogText"/*LogText*/, 'leer');
                                //ausgabeobjekt zurückschreiben
                                setState("javascript.0.logbook"/*LogText*/,logbooktemp);
                              }
                            });
                            

                            Das hast Du aber gut gemacht ;-)

                            Viele Grüße
                            Christian

                            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

                            355

                            Online

                            32.7k

                            Benutzer

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