Ankündigung

Einklappen
Keine Ankündigung bisher.

KWL Widget

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #46
    ja also ich denke an dem basic.print liegt es nicht ..
    denn das hier funktioniert ja auch
    HTML-Code:
    				{% set symbol = 'test.value.ist' %}
    				{{ basic.print('', 	symbol, 'script', '$("#kwl_base").attr("alt", VAR) ')  }}

    Kommentar


      #47
      Kurzer Testaufbau:
      Code:
      {{basic.flip('', 'test.varbool')}}
      <img id="mytest" src="" alt="Testbild">
      {{basic.print('', 'test.varbool', 'script', '$("#mytest").attr("src", (VAR==1 ? "icons/ws/light_light.svg" : "icons/ws/light_downlight.svg"))')}}
      Ergebnis:
      basic_print.gif

      Kommentar


        #48
        Zitat von wvhn Beitrag anzeigen
        Kurzer Testaufbau:
        Das geht auch. Das mache ich ja auch so. Das ist auch nicht das Problem. Das Problem ist, dass die TWIG-Variablen nicht umgesetzt werden. Versuche mal bitte z.B. die Id oder den Pfad mit einer TWIG-Variable zu ersetzen. So hier:

        HTML-Code:
        {% set id = 'mytest' %}
        {{basic.flip('', 'test.varbool')}}
        <img id="{{ id }}" src="" alt="Testbild">
        {{basic.print('', 'test.varbool', 'script', '$("#{{ id }}").attr("src", (VAR==1 ? "icons/ws/light_light.svg" : "icons/ws/light_downlight.svg"))')}}
        Und genau das geht nicht. Die erste Id in img wird durch die Variable ersetzt, die id in basic.print wird nicht ersetzt.

        Kommentar


          #49
          jetzt versteh ich das problem, im script teil wird das twig nicht richtig umgesetzt..

          hab mir das auch nachgebaut und es klappt wirklich nicht, allerdings wenn ich zB. das so mache, sieht man das die variable existiert
          Code:
          {% set widgetid = '#mytest' %}
          {{basic.slider('', 'test.value.ist')}}
          <img id="{{ widgetid  }}" src="" alt="Testbild">
          {{basic.print('', 'test.value.ist', 'script', '$("widgetid").attr("src", "{{ kwl_pic_dir }}")' )}}
          {{ dump(widgetid) }}
          Unbenannt.png
          Zuletzt geändert von Bonze; 11.03.2022, 11:17.

          Kommentar


            #50
            Code:
            {% set mydir = "icons/ws/" %}
            {% set myscript = '$("#mytest").attr("src", (VAR==1 ? "'~mydir~'light_light.svg" : "'~mydir~'light_downlight.svg"))' %}
            <img id="mytest" src="" alt="Testbild">
            {{basic.print('', 'test.varbool', 'script', myscript )}}
            oder
            Code:
            {% set mydir = "icons/ws/" %}
            <img id="mytest" src="" alt="Testbild">
            {{basic.print('', 'test.varbool', 'script', '$("#mytest").attr("src", (VAR==1 ? "'~mydir~'light_light.svg" : "'~mydir~'light_downlight.svg"))' )}}
            geht beides. Ist halt wie gesagt tricky im Twig.

            Kommentar


              #51
              Des Rätsels Lösung war also die Variante mit der Tilde zu nehmen, diese nochmal in Hochkommas zu setzen und dann noch eine 2. Tilde zu verwenden. Auf die Idee kommt ja niemand. Und es funktioniert!!!!

              Wie kommst du darauf überhaupt?

              Kommentar


                #52
                Offenbar dürfen die Variablennamen im Makroaufruf nicht innerhalb von Hochkommas auftauchen. Deshalb muss man die mit der Tilde rausziehen. Das war mir auch nicht mehr so ganz bewusst.
                Dann muss man noch unterscheiden zwischen dem String, der als Skipt übertragen wird und den Anführungszeichen, die im Skript benötigt werden.

                Kommentar


                  #53
                  Zitat von Cannon Beitrag anzeigen
                  Des Rätsels Lösung war also die Variante mit der Tilde zu nehmen, diese nochmal in Hochkommas zu setzen und dann noch eine 2. Tilde zu verwenden. Auf die Idee kommt ja niemand.
                  Doch, wird vielfach so in dem von Dir verwendeten 'Muster' so genutzt.

                  Zitat von wvhn Beitrag anzeigen
                  Offenbar dürfen die Variablennamen im Makroaufruf nicht innerhalb von Hochkommas auftauchen.
                  Ja, er interpretiert es sonst grundsätzlich als String.

                  /tom
                  Zuletzt geändert von Tom Bombadil; 11.03.2022, 15:17.

                  Kommentar


                    #54
                    Wenn auch etwas offtopic, möchte ich euch auf diesen anderen aktuellen Thread hier im Forum hinweisen. Nach meinem Geschmack sieht das ganz hübsch aus und könnte hier zur Anregung dienen.
                    Hallo zusammen, wir erstellen gerade ein Widget für die Steuerung der kontrollierten Wohnraumlüftung und würden gerne in Erfahrung bringen, welche Anlangen ihr bei den Kunden mit KNX einsetzt, welche ihr selbst verwendet und welche Steuerungsmöglichkeiten die Wichtigsten sind, um ein Steuermodul noch übersichtlich zu halten.
                    Ich brauche Informationen, eine Meinung bilde ich mir selbst.

                    Kommentar


                      #55
                      Zitat von Tom Bombadil Tom Bombadil Beitrag anzeigen
                      Doch, wird vielfach so in dem von Dir verwendeten 'Muster' so genutzt.
                      Offensichtlich wäre es sinnvoll lesen zu können. Ja gut, nun ist es so, wie es ist.

                      Eine letzte Sache hätte ich noch, damit das Teil endlich mal fertig wird: Ich müsste noch die Texte entsprechend platzieren, abhängig von den entsprechenden Bildenr im Hintergrund. Deshalb folgende Frage. Wie kann ich bestimmte Elemente verstecken? Ich habe das jetzt so probiert:

                      Code:
                      <div id="{{ id }}kwl_outdoor_temp_normal" class="kwl_outdoor_temp_normal">{{ basic.print(id~'kwl_outdoor_temp', outdoor_temp, '%d °C', 'Math.round(VAR)') }}</div>
                      {{ basic.print(id~'kwl_mode_print_supply_temp_normal' , [unitmode_summer|default(false), bypass_open|default(false)], 'script', '$("#'~id~'kwl_supply_temp_normal").attr("hidden",  (VAR1 == true) ? "false" : "true")') }}
                      Die Variante geht nicht. Im Attribut "hidden" steht dann nicht false oder true, sondern hidden (Browser-Inspektor). Ich kann mir das nicht erklären, wenn ich jedoch hidden durch "blabla" ersetze wird das Attribut blabla korrekt gesetzt.

                      Eine Alternative wäre statt "attr" eben "hide" bzw. "show" zu nehmen, nur ist mir nicht klar, wie ich da abhängig von VAR nutzen kann. Geht das überhaupt?

                      Kommentar


                        #56
                        Je nachdem, wie Du das Element anzeigen willst, musst Du entweder die css- Eigenschaften „display: none;“ nehmen (das Element wird nicht angezeigt, reserviert aber auch keinen Platz), oder „visibility: hidden;“ (Element ist vorhandenen und belegt einen Platz, wird aber versteckt).
                        display: block; und visibility: visible; sind die jeweiligen Gegenstücke.

                        Kommentar


                          #57
                          Zitat von Cannon Beitrag anzeigen
                          Ich müsste noch die Texte entsprechend platzieren, abhängig von den entsprechenden Bildenr im Hintergrund. Deshalb folgende Frage. Wie kann ich bestimmte Elemente verstecken?
                          Normal:

                          aafef214-f10c-11e6-833a-57e4836718fe.png

                          Icons und Texte, die je nach Betriebszustand gezeigt werden (frei positionert):

                          6984aa08-f10d-11e6-887f-9e6898c1b31f.png

                          Lösung wie immer im Helios-Widget auf git zu finden ...

                          So, ich brauch jetzt nach stundenlangem Kisten- und Schränkeschleppen erstmal ein Bier.

                          /tom

                          Kommentar


                            #58
                            Zitat von wvhn Beitrag anzeigen
                            Je nachdem, wie Du das Element anzeigen willst, musst Du entweder die css- Eigenschaften „display: none;“ nehmen (das Element wird nicht angezeigt, reserviert aber auch keinen Platz), oder „visibility: hidden;“ (Element ist vorhandenen und belegt einen Platz, wird aber versteckt).
                            display: block; und visibility: visible; sind die jeweiligen Gegenstücke.
                            Danke, genau das, was ich suchte.

                            Zitat von wvhn Cannon Beitrag anzeigen
                            Wenn das Widget fertig ist, wäre es klasse, wenn Du es auf smartvisu-newstuff zur Verfügung stellen könntest, am besten im Bereich "devices" und mit der entsprechenden items.yaml.
                            Da steht, das uploads deaktiviert sind. Brauche ich da spezielle Rechte?

                            Zitat von Tom Bombadil Beitrag anzeigen
                            Lösung wie immer im Helios-Widget auf git zu finden ...
                            Ich habe es wieder nicht gefunden. Da muss ich wohl mal zum Augenarzt. Aber immerhin geht es ja jetzt.

                            Kommentar


                              #59
                              Zitat von Cannon Beitrag anzeigen
                              Da steht, das uploads deaktiviert sind. Brauche ich da spezielle Rechte?
                              Wenn Du einen github-User hast, sollte ein upload oder PR möglich sein. Wenn nicht, kannst Du das Widget auch als Textfile hier unten anhängen und ich lade es hoch.

                              Kommentar


                                #60
                                Zitat von wvhn Beitrag anzeigen
                                Wenn Du einen github-User hast, sollte ein upload oder PR möglich sein. Wenn nicht, kannst Du das Widget auch als Textfile hier unten anhängen und ich lade es hoch.
                                Ich stelle mich da zu doof für an. Erst ging es nicht, dann ging ich auf meinen Account und wieder zurück und der hat da einen neuen Brnach auf meinen Account angelegt und da konnte ich es hochladen. Direkt ging es nicht. Sei bitte so nett und ziehe es von da rüber: https://github.com/CannonRS/devices/...ain/widget_kwl

                                Vielleicht gehen dann Änderungen zu machen von meiner Seite aus.

                                Hier rein packen geht nicht, dafür sind es zu viele Dateien ...

                                Unter Pull Requests ist auch die Kurz-Anleitung dazu gepostet....

                                Kommentar

                                Lädt...
                                X