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
    393

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

                      714

                      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