Ankündigung

Einklappen
Keine Ankündigung bisher.

Mapping von basic.text

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

    Mapping von basic.text

    Kann basic.text mehr als 2 Werte mappen oder ist da Schluss?

    Ich bräuchte da sowas:
    Code:
    {{ basic.text('status_hk_text', 'ebus.status_hk', 'Heizen', 'Aus', 'Auto', 'Eco', 'Absenken', 1, 2, 3, 4, 5)}}
    Leider wird immer nur 'Aus' angezeigt.

    Der Wert aber hier korrekt übertragen:
    Code:
    {{ basic.value('status_hk', 'ebus.status_hk') }}
    Hab jetzt eigentlich keine Lust wieder weitere items/logics dafür zu verwenden.

    Grüße
    Umgezogen? Ja! ... Fertig? Nein!
    Baustelle 2.0 !

    #2
    Alles klar, habs dann doch im Sourcecode gefunden/verstanden ... gehen nur 2.
    Ich habs mal auf 5 aufgebohrt und für mich text5 genannt, alle Änderungen und Dateien betreffen den eigenen pages-Ordner.
    Gernerell ist das sicherlich auch schöner zu machen, aber funktioniert erstmal.

    widget_text5.html
    PHP-Code:
    {% macro text5(idgadtxt_1txt_2txt_3txt_4txt_5val_1val_2val_3val_4val_5) %}

        <
    span id="{{ uid(page, id) }}" data-widget="basic.text5" data-item="{{ gad }}"
            
    data-txt-1="{{ txt_1 }}" data-txt-2="{{ txt_2 }}" data-txt-3="{{ txt_3 }}" data-txt-4="{{ txt_4 }}" data-txt-5="{{ txt_5 }}"
            
    data-val-1="{{ val_1|default('') }}" data-val-2="{{ val_2|default('') }}" data-val-3="{{ val_3|default('') }}" data-val-4="{{ val_4|default('') }}" data-val-5="{{ val_5|default('') }}"
            
    class="text">
        </
    span>

    {% 
    endmacro %} 
    visu.js
    PHP-Code:
    // ----- basic.text5 -----------------------------------------------------------
    $(document).delegate('[data-widget="basic.text5"]', {
        
    'update': function (eventresponse) {
            $(
    '#' this.id).html((
                    
    response == $(this).attr('data-val-1') ? $(this).attr('data-txt-1') :            
                    
    response == $(this).attr('data-val-2') ? $(this).attr('data-txt-2') :            
                    
    response == $(this).attr('data-val-3') ? $(this).attr('data-txt-3') :
                    
    response == $(this).attr('data-val-4') ? $(this).attr('data-txt-4') :
                    
    response == $(this).attr('data-val-5') ? $(this).attr('data-txt-5') :
                    
    response == 'ERROR'
                    
    ));
        }
    }); 
    meine.html
    PHP-Code:
    {% extends "rooms.html" %}

    {% 
    import "widget_text5.html" as key %}

    {% 
    block content %}
        <
    div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">

        <
    tr><td align="left">Betriebsart Warmwasser:</td><td align="left">{{ key.text5('status_ww_text''ebus.status_ww''An''Aus''Auto'''''123'''')}}
        <
    tr><td align="left">Status Wärmepumpe: </td><td align="left">{{ key.text5('status_wp_text''ebus.status_wp''Sommer''Standby''Heizen''Warmwasser'''0368'')}}
        <
    tr><td align="left">Betriebsart Heizen:</td><td align="left">{{ key.text5('status_hk_text''ebus.status_hk''Heizen''Aus''Auto''Eco''Absenken'12345) }}

        </
    div>

    {% 
    endblock %} 
    Umgezogen? Ja! ... Fertig? Nein!
    Baustelle 2.0 !

    Kommentar


      #3
      danke, kann ich sehr gut gebrauchen!
      Grüße, Lio

      Kommentar


        #4
        Hallo,

        geht das nur mit der Quad-Visu, oder kann ich anstelle der visu.js den Code auch in die visu.css kopieren?

        Danke und Grüße,
        Lio

        Kommentar


          #5
          Das geht überall. Ich hab das Widget auch nochmal überarbeitet in meiner Quad-Visu, ich gucke mal ob das kompatibel ist und gebe dann nochmal Bescheid (Richtung Wochenende). Damit ist die Anzahl nicht auf 5 Einträge begrenzt.
          Umgezogen? Ja! ... Fertig? Nein!
          Baustelle 2.0 !

          Kommentar


            #6
            Habe es gefunden:
            widget_visu.html
            Code:
            {% macro maptext(id, gad, txt, val) %}
                <div class="text">
                <span
                id="{{ uid(page, id) }}" data-widget="visu.maptext" data-item="{{ gad }}" data-txt ="{{ implode(txt) }}" data-val ="{{ implode(val)|default('') }}" class="text">
                </span>
                </div>
            {% endmacro %}
            visu.js
            Code:
            // ----- visu.maptext -----------------------------------------------------------
            $(document).delegate('[data-widget="visu.maptext"]', {
                'update': function (event, response) {
                    var txt_arr = widget.explode($(this).attr('data-txt'));
                    var val_arr = widget.explode($(this).attr('data-val'));
                    var match;
                    var index;
                    for (index = 0; index < val_arr.length; index++) {
                        if (val_arr[index] == response) {
                            match = txt_arr[index];
                        }
                    }
                    $('#' + this.id).html(match);
                }
            });
            seite.html
            Code:
            {% import "widget_visu.html" as visu %}
            {{ visu.maptext(id~'maptext0', gad, txt, val) }}
            Damit kann man dann unendlich viele Mappings machen. txt und value bei mehreren Werten dann als Liste:
            {{ visu.maptext(id~'maptext0', gad, [txt1,txt2,txt3,txt4], [val1,val2,val3,val4]) }}

            Hab das im Quad Design so verbaut, sollte aber auch woanders so passen.
            Umgezogen? Ja! ... Fertig? Nein!
            Baustelle 2.0 !

            Kommentar


              #7
              Genau: Mit Array ist besser!

              fertig machen und ab damit...
              https://knx-user-forum.de/forum/supp...elease-bringen
              Zuletzt geändert von Apollo; 19.06.2015, 15:10.
              Join smartVISU on facebook. Web: smartvisu.de.
              Dir gefällt smartVISU? Bitte spenden für die Weiterentwicklung.

              Kommentar


                #8
                Hi Mirko,

                stimmt der Code für die seite.html so:?

                Code:
                {% import "widget_visu.html" as visu %}
                                    {{ visu.maptext('_WP1', 'IDM.BetrModiWPsend', 'Aus', 'Heizen', 'Vorrang', '0', '1', '4') }}
                Danke und Grüße,
                Lio

                Kommentar


                  #9
                  Zitat von lio123 Beitrag anzeigen
                  Code:
                  {% import "widget_visu.html" as visu %}
                  {{ visu.maptext('_WP1', 'IDM.BetrModiWPsend', 'Aus', 'Heizen', 'Vorrang', '0', '1', '4') }}
                  Nein!
                  Du brauchst für txt und val jeweils Arrays, also

                  Code:
                  {% import "widget_visu.html" as visu %}
                  {{ visu.maptext('_WP1', 'IDM.BetrModiWPsend', [COLOR=#FF0000][[/COLOR]'Aus', 'Heizen', 'Vorrang'[COLOR=#FF0000]][/COLOR], [COLOR=#FF0000][[/COLOR]'0', '1', '4'[COLOR=#FF0000]][/COLOR]) }}
                  Gruß, Waldemar
                  Zuletzt geändert von mumpf; 24.06.2015, 08:57. Grund: Rechtschreibfehler korrigiert

                  Kommentar


                    #10
                    Hallo und danke,

                    aber ich hab's noch nicht hinbekommen. Alle Dateien liegen im Visu-Ordner.
                    widget_visu.html habe ich neu erstellt
                    visu.js habe ich als neue Datei visu.js erstellt, nachdem es mit der Ergänzung des Code in der vorhandenen visu.css auch nicht funktionierte.
                    seite.html ist meine visuseite (licht.html) welche ich ergänzt habe

                    Würde in ein log -Eintrag geschrieben werden, wenn da was nicht stimmt?

                    Danke und Grüße,
                    Lio

                    Kommentar


                      #11
                      Habe es eben nochmal selbst nachgemacht ... funktioniert wie gewünscht.
                      Umgezogen? Ja! ... Fertig? Nein!
                      Baustelle 2.0 !

                      Kommentar


                        #12
                        Hi Mirko,

                        auch von mir Danke für das Widget. Klappt wunderbar, habe allerdings das <div> in der widget_visu weggelassen damit es nicht zu ungewünschten Zeilenumbrüchen führt.
                        War bei mir so beim Einsatz in der Navi-Bar.

                        Letzte Frage: Wird das Widget irgendwann auch mal ins off. SV-Repository übernommen? Habe die letzten Tage nun einiges mit Multitext, Multistate-Button und Multibutton gemacht, alles klasse Widgets welche ich allerdings im Release vermisse....

                        Cheers,
                        Oliver

                        Kommentar

                        Lädt...
                        X