Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - String Item ausgeben

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

    - √ - String Item ausgeben

    Hallo,
    ganz einfache Frage:
    Ich habe in meiner sh.py Instanz ein Item vom Type String. Dieses möchte ich auf meiner Visu ausgeben. Wie geht das?
    basic.text und basic.value scheinen beide ungeeignet...

    #2
    Zitat von mode Beitrag anzeigen
    basic.text und basic.value scheinen beide ungeeignet...
    Schau Dir doch mal z.B. das Squeezebox Plugin von Robert an.
    Dort werden z.B. die Künstler- oder Songnamen, Playername und Signalstärke via string übergeben und mit basic.value angezeigt.

    Kommentar


      #3
      Danke für deine Antwort.
      Du meinst dieses Plugin?
      https://knx-user-forum.de/smartvisu/...te-widget.html

      Dort wird einfach nur ein
      {{ basic.value(id~'title', gad_title) }}
      verwendet.
      Wenn dort ein Text in der GAD steht wird dieser nach Float gecasted was NaN ergibt. Vielleicht war das noch nicht immer so - aktuell ist es aber so.

      Daher habe ich die widget.js erweitert:
      Code:
      --- widgets/widget.js   (Revision 537)
      +++ widgets/widget.js   (Arbeitskopie)
      @@ -568,6 +568,9 @@
                              var date = new Date(response);
                              $("#" + this.id).html(date.transUnit(unit));
                      }
      +               else if (unit == 'text') {
      +                       $("#" + this.id).html(response);
      +               }
                      else {
                              $("#" + this.id).html(parseFloat(response).transUnit(unit));
                      }
      Würde das (wenn sinnvoll) vielleicht jemand ins SVN übernehmen?

      VG

      Mode

      Kommentar


        #4
        Nun weiss ich auch warum ich so alleie mit dem Problem bin.
        basic.value kann erst seit dem 2. Dec keine Strings mehr ausgeben.
        Grund dafür ist:
        r534 - smartvisu - smartVISU is a visualisation framework for KNX - Google Project Hosting
        Zeilen 565 bis 573 in widget.js

        Wäre super, wenn das gefixt würde.

        Mode

        Kommentar


          #5
          Um Text in ein String Item einzugeben, funktioniert dies, glaube ich:

          Code:
          /**
          * Displays a textinput
          *
          * @param unique id for this widget
          * @param a gad/item
          * @param text printed on the checkbox
          */
          {% macro textinput(id, gad, txt) %}
          
          	<label><input type="text" id="{{ uid(page, id) }}" data-widget="basic.textinput" data-item="{{ gad }}" value="{{ gad }}" /></label>
          
          {% endmacro %}
          Code:
          // ----- basic.textinput -------------------------------------------------------
          $(document).delegate('input[data-widget="basic.textinput"]', {
          	'update': function (event, response) {
          		$(this).prop('value', response );
          	},
          
          	'change': function (event) {
          		// DEBUG: console.log("[basic.textinput] change '" + this.id + "':", $(this).prop("value")); 
          		io.write($(this).attr('data-item'), $(this).prop('value') );
          	}
          });
          Wer's haben möchte, bitte!

          Dirk

          Kommentar


            #6
            Aeh, es ging um ausgeben???
            Derzeit zwischen Kistenauspacken und Garten anlegen.
            Baublog im Profil.

            Kommentar


              #7
              Ist nun im trunk, Strings werden nun wieder ausgegeben.

              Gruss
              Join smartVISU on facebook. Web: smartvisu.de.
              Dir gefällt smartVISU? Bitte spenden für die Weiterentwicklung.

              Kommentar


                #8
                Hallo, ich versuche das hier grade mal für Text in/out, bekomme aber nur den Namen des GAD als Text angezeigt, hat das jemand erfolgreich hinbekommen?

                Zitat von walldi Beitrag anzeigen
                Um Text in ein String Item einzugeben, funktioniert dies, glaube ich:

                Code:
                /**
                * Displays a textinput
                *
                * @param unique id for this widget
                * @param a gad/item
                * @param text printed on the checkbox
                */
                {% macro textinput(id, gad, txt) %}
                
                	<label><input type="text" id="{{ uid(page, id) }}" data-widget="basic.textinput" data-item="{{ gad }}" value="{{ gad }}" /></label>
                
                {% endmacro %}
                Code:
                // ----- basic.textinput -------------------------------------------------------
                $(document).delegate('input[data-widget="basic.textinput"]', {
                	'update': function (event, response) {
                		$(this).prop('value', response );
                	},
                
                	'change': function (event) {
                		// DEBUG: console.log("[basic.textinput] change '" + this.id + "':", $(this).prop("value")); 
                		io.write($(this).attr('data-item'), $(this).prop('value') );
                	}
                });
                Wer's haben möchte, bitte!

                Dirk

                Kommentar


                  #9
                  Hatte das gleiche Problem wie bgewehr.. Problem war ein unsauberer Codeschnipsel in der visu.js bzw. entsprechend unsauberer Verweis darauf. Jetzt wo ich deneliminiert habe, funktioniert alles.
                  Zuletzt geändert von Onkelandy; 21.07.2015, 11:47.

                  Kommentar

                  Lädt...
                  X