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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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
                                        • jogibear9988
                                          jogibear9988 last edited by

                                          eigene namen für die variablen gehen dann in bindings auch:

                                          d0cdbfc2-e8ad-4e5b-8206-d5ccef09f919-image.png

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

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

                                            wobei, ich finds mit templateStrings noch übersichtlicher:

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

                                            Naja, Ich hab es nicht so mit den Backticks (ˋ).
                                            Sprich ich vergesse immer, dass man die Dinger bei den Templatestrings braucht. 🤪

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            788
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            20
                                            1074
                                            286253
                                            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