Ankündigung

Einklappen
Keine Ankündigung bisher.

Item-wählbare Icons

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

    [Featurewunsch] Item-wählbare Icons

    Hallo,

    vielleicht gehts auch, und ich habs nur noch nicht raus wie.

    • Ich habe ein Item in sh.py, in welchem eine Zahl steht.
    • Ich habe ein Verzeichnis, in dem Icons liegen
    • Ich möchte abhängig von der Zahl verschiedene Icons anzeigen, deren Name sich aus der Zahl ergibt.
    • Alternativ: Ich erzeuge den Pfad/Namen der Datei in sh.py und übermittle das als String an SV.

    Geht das irgendwie?


    Gruss,


    der Jan
    KNX, DMX over E1.31, DALI, 1W, OpenHAB, MQTT

    #2
    +1 brauche ich auch.

    Marcus

    Kommentar


      #3
      Für was denn?
      Join smartVISU on facebook. Web: smartvisu.de.
      Dir gefällt smartVISU? Bitte spenden für die Weiterentwicklung.

      Kommentar


        #4
        Item-wählbare Icons

        Wetter.com liefert mir einen zweistelligen Code (z.B. 43) für jeden Zeitpunkt der Vorhersage. Dazu gibt es einen Satz Icons, in dem das dazugehörige Bildchen z.B. d_43.png heißt.
        Ich habe ein sh.py Item, wetter.vorhersage.morgen.frueh.code, in dem der Code steht.
        In der Visu moechte ich z.B. in der Navigation das jeweils aktuelle Icon anzeigen für den Link zur Wetterseite.
        Auf der Wetterseite habe ich Flächen, im denen die einzelnen Zeitpunkte mit Temperaturen usw. Dargestellt werden. Da haette ich auch gerne das jeweils passende Icon.

        Gruß,

        Der Jan
        KNX, DMX over E1.31, DALI, 1W, OpenHAB, MQTT

        Kommentar


          #5
          Item-wählbare Icons

          Das sollte sich doch easy bauen lassen. Schau dir mal das shifter Widget sowohl in der widget/basic.html als auch in der widget/widget.js an.
          Mit freundlichen Grüßen
          Niko Will

          Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
          - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

          Kommentar


            #6
            Ich brauche es für die Anzeigen von
            • Müll (gelbe Tonne, Papier, ...)
            • Wetterwarnungen
            • Mondphase


            Bis bald

            Marcus
            P.S. schönen Urlaub noch

            Kommentar


              #7
              Die Mondphase sehe ich inzwischen mehr als "dynamisches" SVG-Icon.

              Für die anderen Fälle, kann ich gerne was bauen.

              Frage:
              1a. Soll das Mapping in der smartVISU vorgenommen werden?

              oder

              1b. Soll lieber ein Wert gesendet werden, und es wird in einem beim Widget angegbenen Verzeichnis gesucht?


              2. Wenn kein Match trifft -> leer Platzhalter?


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

              Kommentar


                #8
                Am flexibelsten wäre, wenn man den Pfad zu dem Icon als string übergeben könnte. Dann kann das Mapping über eine Logik erfolgen. Und wenn der Pfad nicht gefunden wird, kann (muss aber nicht) ein Platzhalter angezeigt werden. Also quasi

                {{ basic.image('widget_id', 'item_mit_pfad', 'pfad_zu_optionalem_platzhalter') }}

                Oder so ähnlich. Also quasi 1b+2

                Gruss,

                der Jan
                KNX, DMX over E1.31, DALI, 1W, OpenHAB, MQTT

                Kommentar


                  #9
                  Du würdest den kompletten Pfad übergeben wollen? Nicht nur eine Datei? Und dann den Pfad in smartVISU hinterlegen?
                  Join smartVISU on facebook. Web: smartvisu.de.
                  Dir gefällt smartVISU? Bitte spenden für die Weiterentwicklung.

                  Kommentar


                    #10
                    Ist mir im Prinzip völlig wurscht. und abgesehen von der Möglichkeit der Angabe eines Pfades auch fast gleichwertig, denn:

                    Wenn ich im Item "blabla.png" übergebe und in der SV als Pfad "/icons/myown" angebe, wird das zu "/icons/myown/blabla.png". Wenn ich keinen Pfad angebe, wird es zu "blabla.png".

                    Wenn ich im Item "myown/blabla.png" übergebe und in der SV als Pfad "/icons" angebe, wird das zu "/icons/myown/blabla.png". Wenn ich keinen Pfad angebe, wird es zu "myown/blabla.png".

                    Wenn ich im Item "/icons/myown/blabla.png" übergebe und in der SV keinen Pfad angebe, wird es zu "/icons/myown/blabla.png".

                    Gruss,

                    der Jan
                    KNX, DMX over E1.31, DALI, 1W, OpenHAB, MQTT

                    Kommentar


                      #11
                      Hi Martin,

                      Zitat von Apollo Beitrag anzeigen
                      Frage:
                      1a. Soll das Mapping in der smartVISU vorgenommen werden?
                      ja, das wäre dann relativ unabhängig von dem Backend und man es kann es auch z.B. direkt mit dem eibd-Backend nutzen.
                      Weiterhin spart man sich ein Item nur für die Visualisierung das man mit einer Logik befüllen muss. Dann kann man die Visualisierung des Wertes in der Visu definieren.

                      Zitat von Apollo Beitrag anzeigen
                      1b. Soll lieber ein Wert gesendet werden, und es wird in einem beim Widget angegbenen Verzeichnis gesucht?
                      Ich denk auch das benötigen viele für eine Männervisu.

                      Zitat von Apollo Beitrag anzeigen
                      2. Wenn kein Match trifft -> leer Platzhalter?
                      ja, wobei kein Platz dafür reserviert sein soll. So kann man viele Warnmeldungen anzeigen lassen.

                      Bis bald

                      Marcus

                      Kommentar


                        #12
                        Ich hab mal was dazu geschrieben:

                        widget_visu.html:
                        Code:
                        {% macro dynsym(id, gad, path, pic) %}
                              <img id="{{ uid(page, id) }}" data-widget="visu.dynsym" data-item="{{ gad }}" data-path="{{ path}}" src="{{ pic }}" ></img>
                        {% endmacro %}
                        visu.js:
                        Code:
                        //----- visu.dynsym ----------------------------------------------------------
                        $(document).delegate('[data-widget="visu.dynsym"]', {
                            'update': function(event, response) {
                                    $('#' + this.id).attr('src', $('#' + this.id).data('path') + response);
                            }
                        });
                        z.B. in der page-html:
                        Code:
                        {{ visu.dynsym('wetter.vorhersage.heute.frueh.bild', 'wetter.vorhersage.heute.frueh.icon', 'icons/wetter/', 'icons/wetter/d_0_S.png') }}
                        und sh.py sollte in wetter.vorhersage.heute.frueh.icon dann den Namen des Icons beinhalten. Oder den ganzen Pfad, dann "path" leerlassen.

                        Gruss,

                        der Jan
                        KNX, DMX over E1.31, DALI, 1W, OpenHAB, MQTT

                        Kommentar

                        Lädt...
                        X