Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. neue Visualisierung "webui" (alternative zu vis & vis-2)

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    neue Visualisierung "webui" (alternative zu vis & vis-2)

    This topic has been deleted. Only users with topic management privileges can see it.
    • jogibear9988
      jogibear9988 @Blockmove last edited by

      @blockmove

      Ist im Beispiel Server im screen "table sample"

      nutzt einen JSON Datenpunkt...

      1 Reply Last reply Reply Quote 0
      • jogibear9988
        jogibear9988 last edited by

        3db70bcb-151d-4f19-a893-a2e9abefb8e0-image.png

        B 1 Reply Last reply Reply Quote 1
        • B
          Blockmove @jogibear9988 last edited by

          @jogibear9988 said in neue Visualisierung "webui" (alternative zu vis):

          3db70bcb-151d-4f19-a893-a2e9abefb8e0-image.png

          Heatingcontrol hat die Räume in einem String stehen. Trennzeichen ist ein ';'

          EG_Bad;EG_Kueche;EG_EZ;EG_SZ;EG_AK;EG_Az;EG_Flur;EG_WC;OG_WZ;OG_Az;OG_KiZ;OG_Flur;OG_Abstell;OG_EZ
          

          Den String wandle ich in Array mit

          arUsedRooms = strUsedRooms.val.split(";");
          

          Gibt es nun eine Möglichkeit bei der Binding mit dem Array zu arbeiten, oder muss ich noch nach JSON wandeln (JSON.stringify(arUsedRooms)).
          Sorry für das viele Fragen, aber die Bindings-Einzeiler sind bislang nicht so meine Welt.

          jogibear9988 1 Reply Last reply Reply Quote 0
          • jogibear9988
            jogibear9988 last edited by

            Mach doch im Binding ein Split...

            __0.split(';').map(x => '<option>' + x + '</option>')
            

            oder so

            __0.split(';').map(x => `<option>${x}</option>`)
            B 1 Reply Last reply Reply Quote 1
            • jogibear9988
              jogibear9988 @Blockmove last edited by

              @blockmove said in neue Visualisierung "webui" (alternative zu vis):

              Sorry für das viele Fragen, aber die Bindings-Einzeiler sind bislang nicht so meine Welt.

              ist nix spezielles, speziell ist nur das __0 der inhalt deiner variable ist, der rest sind einfach javascript expressions

              1 Reply Last reply Reply Quote 0
              • B
                Blockmove @jogibear9988 last edited by

                @jogibear9988 said in neue Visualisierung "webui" (alternative zu vis):

                Mach doch im Binding ein Split...

                __0.split(';').map(x => '<option>' + x + '</option>')
                

                oder so

                __0.split(';').map(x => `<option>${x}</option>`)
                

                Hallo Jochen,
                ich probiere gerade mit dem select. Dabei ist mir Folgendes beim Editor aufgefallen:
                Die Texte der options aus der Binding werden in den Quellcode übernommen.

                <select bind-content:html="0_userdata.0.Test.stateHTML" bind-prop:value='{"signal":"0_userdata.0.Test.stateZahl","twoWay":true,"type":"number"}' style="position:absolute;left:143px;top:91px;transform-origin:40.675px 11px;">MontagDienstag</select>
                
                

                In dem Fall also MontagDienstag

                select 2024-01-08_155716.png

                Das selbe passiert auch, wenn ich dein Beispiel mit dem split verwende. Da stehen dann alle Räume vor dem </select>.
                webui Version 0.23.3

                VG
                Dieter

                jogibear9988 Smilie108 2 Replies Last reply Reply Quote 0
                • jogibear9988
                  jogibear9988 @Blockmove last edited by

                  @blockmove

                  jo, sehe ich auch. ich schaus mir an wo das passiert.
                  Kannsts ja im moment in der Quellcode ansicht löschen.

                  B 1 Reply Last reply Reply Quote 0
                  • B
                    Blockmove @jogibear9988 last edited by

                    @jogibear9988 said in neue Visualisierung "webui" (alternative zu vis):

                    @blockmove

                    jo, sehe ich auch. ich schaus mir an wo das passiert.
                    Kannsts ja im moment in der Quellcode ansicht löschen.

                    Löschen hilft nicht. Es kommt wieder. Ich glaub wenn man in die Preview und wieder zurück wechselt.

                    jogibear9988 1 Reply Last reply Reply Quote 0
                    • jogibear9988
                      jogibear9988 @Blockmove last edited by

                      @blockmove

                      ja schon klar. löschen und speichern.
                      es kommt immer wieder bis ich es gefixt hab

                      B 1 Reply Last reply Reply Quote 0
                      • B
                        Blockmove @jogibear9988 last edited by

                        @jogibear9988 said in neue Visualisierung "webui" (alternative zu vis):

                        @blockmove

                        es kommt immer wieder bis ich es gefixt hab

                        😀 😀 😀

                        jogibear9988 1 Reply Last reply Reply Quote 0
                        • jogibear9988
                          jogibear9988 @Blockmove last edited by

                          @blockmove

                          ist gefixt, neue version kommt aber erst wenn ich das mit den subfoldern fertig habe. dauert noch bisschen, denk noch 1-2 tage, bin grad bissl bussy

                          B 1 Reply Last reply Reply Quote 1
                          • B
                            Blockmove @jogibear9988 last edited by

                            @jogibear9988 said in neue Visualisierung "webui" (alternative zu vis):

                            @blockmove

                            ist gefixt, neue version kommt aber erst wenn ich das mit den subfoldern fertig habe. dauert noch bisschen, denk noch 1-2 tage, bin grad bissl bussy

                            Passt schon. Lass dich nicht Stressen!

                            1 Reply Last reply Reply Quote 0
                            • Smilie108
                              Smilie108 @Blockmove last edited by

                              @blockmove @jogibear9988
                              wie machst du das dann mit dem value von dem select? oder passt dir der name als value ?
                              weil :

                              __0.split(';').map(x => '<option>' + x + '</option>')

                              Kann man das eigentlich auch 2 dimensonal wenn ich zb 1,test1;2,test2,3,test3 habe
                              kann man das auch so eufteilen mit split das am ende
                              <option value="1">test1</option>
                              <option value="2">test2</option>
                              <option value="3">test3</option>
                              rauskommt ?
                              Kann ich das per formula write back so hinbiegen das er das value in eine andere varibel schreibt ?

                              sorry wenn die frage etwas blöd klingt geht aber darum auswahllisten zu erstellen die in das control gehen und unterschiedliche bezeichnungen haben ich aber als rückmeldung gerne eine zahl bekommen würde die ich dann zb für graphana als id weiterverwenden kann ohne das ich das groß umändern wieder muss und zurückentschlüsseln muss.
                              Da die Namen der einzellenen graphen natülich unterschiedlich sind wäre das toll wenn ich das im Klartext anschreiben kann und nicht nur so wie bissher
                              <option value="1">Kurve 1</option>
                              <option value="2">Kurve 2</option>
                              <option value="3">Kurve 3</option>
                              <option value="4">Kurve 4</option>
                              <option value="5">Kurve 5</option>
                              so benennen muss
                              Hoffe das war verständlich
                              😉 gruß Tom

                              Smilie108 B 2 Replies Last reply Reply Quote 0
                              • Smilie108
                                Smilie108 @Smilie108 last edited by

                                @jogibear9988
                                Wenn ich ein control erstellt habe das aber noch javascript und ein paar datenpunkte in io braucht wie sollten ich das den Ablegen oder soll ich eine Webseite machen für download für erweiterungen wo das ablegbar ist ? (eventuell mit erklärung der Handhabung)

                                1 Reply Last reply Reply Quote 0
                                • B
                                  Blockmove @Smilie108 last edited by Blockmove

                                  @smilie108

                                  Hallo Tom,
                                  das Thema <option value="1">test1</option> will ich mir Morgen auch anschauen.
                                  map kann auch den internen index als 2. Parameter ausgeben. Damit sollte es "irgendwie" funktionieren.

                                  Also so was in der Art (noch ungetestet):

                                  __0.split(';').map((x, y) => '<option value='+ y + '>' + x + '</option>'))
                                  

                                  Vor vielen Jahren musste ich mich mal mit Perl beschäftigen ... Irgendwie erinnern mich diese Binding-Einzeiler daran. 😕

                                  B 1 Reply Last reply Reply Quote 0
                                  • jogibear9988
                                    jogibear9988 last edited by

                                    Das erste split nach ; dann steht ja im map in der variable x der text mit komma, nun nimmst im value x.split(",")[0] und später [1] im element…

                                    1 Reply Last reply Reply Quote 0
                                    • jogibear9988
                                      jogibear9988 last edited by

                                      In formula können nicht nur einzeiler stehen, sondern auch komplexere scripte

                                      1 Reply Last reply Reply Quote 0
                                      • jogibear9988
                                        jogibear9988 last edited by

                                        baue gerade die bindings UI auch noch um, dann geht auch folgendes:

                                        598a4052-7687-44d1-998a-47dca6d25f71-image.png

                                        also, das geht auch jetzt schon, ihr könnt solche binding expressions eingeben, nur den editor im moment nicht vergrößern und auch bekommt ihr kein syntax highlightning.
                                        Mit der nächsten version geht das.

                                        1 Reply Last reply Reply Quote 1
                                        • B
                                          Blockmove @Blockmove last edited by

                                          @Smilie108

                                          Hallo Tom,
                                          ich hab mich jetzt mit dem Binding beschäftigt.
                                          So funktioniert es:

                                          __0.split(';').map((x,y) => '<option value =' + y + '>' + x + '</option>') 
                                          

                                          Kurze Erklärung:
                                          Im Datenpunkt stehen die einzelnen Räume getrennt durch ein ';'

                                          EG_Bad;EG_Kueche;EG_EZ;EG_SZ;EG_AK;EG_Az;EG_Flur;EG_WC;OG_WZ;OG_Az;OG_KiZ;OG_Flur;OG_Abstell;OG_EZ
                                          

                                          Der split Befehl entfernt die ';'. Das Ergebnis steht in nun in einem Array.
                                          map ist eine Art schweizer Messer für Arrays. Die Array-Inhalte werden durch die Funktion

                                           '<option value =' + y + '>' + x + '</option>'
                                          

                                          bearbeitet. x ist der Inhalt des Array-Elements und y ist der aktuelle Indexzähler des Array-Elements.
                                          Somit kannst du y für option value verwenden.
                                          Wenn dein Datenpunkt bereits als Array vorliegt, kannst den split weglassen. Liegt er als JSON vor, dann kannst du mit JSON.parse arbeiten.

                                          Über den value des select kannst über ne twowaybinding einen numerischen Datenpunkt anbinden.

                                          select value 2024-01-09.png

                                          VG
                                          Dieter

                                          jogibear9988 1 Reply Last reply Reply Quote 1
                                          • jogibear9988
                                            jogibear9988 @Blockmove last edited by jogibear9988

                                            @blockmove said in neue Visualisierung "webui" (alternative zu vis):

                                            __0.split(';').map((x,y) => '<option value =' + y + '>' + x + '</option>')

                                            Perfekt erklärt 🙂

                                            Und in der neuen webUi sieht die formel dann noch verständlicher aus, der stylatx highlightning und klammern farbig 🙂

                                            783aeb9b-984a-4de4-8c22-c1f25ea02ad2-image.png

                                            wobei, ich finds mit templateStrings noch übersichtlicher:

                                            07099577-90b8-4390-b85d-2baef23f9b39-image.png

                                            hoffe ich schaff das heute freizugeben...

                                            B 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            668
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            20
                                            1074
                                            265270
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo