Ankündigung

Einklappen
Keine Ankündigung bisher.

Basic.Symbol - unerwartetes Verhalten in 2.9

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

    Basic.Symbol - unerwartetes Verhalten in 2.9

    Laut Doku soll Basic.Symbol nur dann angezeigt werden, wenn der angegebene Wert gleich dem im Aufruf angegebenen Wert ist (Symbol is only shown when 'bath.light.switch' is on). In 2.8 war das auch genau so.

    In 2.9 wird Basic.Symbol nun angezeigt, wenn der Wert gleich dem angegebenen ist (soweit korrekt), es wird aber auch angezeigt, wenn das Reading nicht existiert. Damit funktioniert meine Logik (zeige Pollensymbol in entsprechender Farbe, wenn Pollenflug 'gering', 'mittel' oder 'hoch') nicht mehr, das Symbol wird auch angezeigt, wenn das Reading Pollenflug gar nicht existiert.

    Ist dieses Verhalten gewollt, oder hat sich hier in 2.9 ein Fehler eingeschlichen?

    Danke & viele Grüße

    Thorsten

    #2
    Am Begriff "Reading" nutzt du anscheinend FHEM. Dort läuft es ja umgekehrt als in allen anderen Systemen, wo man zuerst die Items anlegt und sie dann in sV verwendet.

    An basic.symbol hat einiges geändert. Dieses Verhalten war mir aber nicht bewusst. Ich werde prüfen, was da genau passiert, kann aber noch keine Korrektur versprechen.

    Ich halte es aber so oder so für falsch, in sV ein Item oder Reading zu verwenden, das gar nicht existiert. MMn sollte man eigentlich sogar einen Fehler anzeigen.

    Kommentar


      #3
      FHEM. Korrekt. Da gibt es Devices, die legen die Readings nur an, wenn von der Quelle Inhalte bereitgestellt werden.

      Ich kann das natürlich auch FHEM-seitig umbauen, wenn das konzeptuell SV-seitig jetzt anders gehandhabt werden soll. Kein Problem. War nur in der Vergangenheit anders, daher würde ich dann auch mal gucken, wo das ggfs noch Probleme macht [bislang ist mir noch nichts aufgefallen]. Ich nutze das auch bei basic.print, da ist das natürlich unproblematischer (solange keine Fehlermeldung ausgegeben wird, sondern der String eben einfach leer bleibt, wenn das Reading nicht existiert - also bitte keine Fehlermeldung einbauen ;-) ).

      Aber danke fürs gucken. Und danke für die schnelle Antwort.
      Zuletzt geändert von thorschtn; 19.02.2019, 18:34.

      Kommentar


        #4
        Ist korrigiert. Solange kein Wert empfangen wird, bleibt das Symbol ausgeblendet.

        Kommentar


          #5

          Hallo smai,

          das hat es leider nicht gelöst.

          Das Problem ist, dass das Symbol, wenn kein passendes Reading existiert, zweimal ausgegeben wird:

          HTML-Code:
           <span id="index-Pollen_Erlelow1" data-widget="basic.symbol" data-item="Pollen.Erle" data-val="low, " data-mode="or" class="symbol">
            <span data-val="low" style="">
             <img class="icon icon1" style="stroke:#bababa; fill:#bababa; color:#bababa;" src="icons/ws/weather_pollen.svg" alt="weather_pollen">Erle Wenig
            </span>
            <span data-val="" style="display:none;">
             <img class="icon icon1" style="stroke:#bababa; fill:#bababa; color:#bababa;" src="icons/ws/weather_pollen.svg" alt="weather_pollen">Erle Wenig
            </span>
           </span>
          Ich konnte das jetzt lösen, indem ich ich jetzt prüfe, ob data-val leer ist - damit funktionierts.

          Ob das anderweitig problematisch ist, kann ich mit meinen bescheidenen Programmierkenntnissen nicht abschliessend einschätzen.

          HTML-Code:
          + {% if not val is empty %} /** eingefügt thorschtn */
          
             <span data-val="{{ val }}" style="{% if not loop.first %}display:none;{% endif %}
                {% if pic is empty and not txt is empty and not col is empty and col != 'icon1' %}
          color: {{ col }};{% endif %}"
            {% if pic is empty and not txt is empty and col == 'icon1' %} class="icon1"{% endif %}>
            {%- if pic %}{{ basic.icon(pic, col) }}{% endif -%}
            {{- txt -}}
             </span>
           
          + {% endif %} /** eingefügt thorschtn */
          Viele Grüße

          thorschtn
          Zuletzt geändert von thorschtn; 20.02.2019, 12:36.

          Kommentar


            #6
            Dein Code sieht nicht aus, als ob du das Update geladen hättest, hast du evtl. den Pagecache nicht gelöscht?
            Auf dem übergeordneten span müsste direkt nach   data-item="Pollen.Erle"  ein   style="display: none;"  stehen.

            Kommentar


              #7
              Hallo smai,

              danke für Deine Unterstützung.

              Doch, ich hatte Deinen Patch geladen, mangels Erfolg aber bereits wieder ausgebaut.

              Ich habe in der 2.9 sowohl mit, als auch ohne den Patch den doppelten Eintrag. Und der doppelte Eintrag führt zu der fälschlichen Darstellung. Und der ist erst weg, wenn ich prüfe, ob data-val leer ist.
              style="display: none;"
              ändert das nicht, weder im Chrome, noch im Edge.

              Mit Deinem Patch hatte ich zwischenzeitlich folgendes HTML:

              HTML-Code:
              <span id="index-Pollen_Ampferlow" data-widget="basic.symbol" data-item="Pollen.Ampfer" style="display: none;" data-val="low, " data-mode="or" class="symbol">
               <span data-val="low" style=""> 
                <img class="icon icon1" style="stroke:#bababa; fill:#bababa; color:#bababa;" src="icons/ws/weather_pollen.svg" alt="weather_pollen">Ampfer Wenig
               </span>
               <span data-val="" style="display:none;"    > 
                <img class="icon icon1" style="stroke:#bababa; fill:#bababa; color:#bababa;" src="icons/ws/weather_pollen.svg" alt="weather_pollen">Ampfer Wenig
               </span>
              </span>
              … mit weiterhin fälschlicher Anzeige des Symbol.

              Erst mit der IF-Abfrage ist das Symbol bei leerem Reading weg:

              HTML-Code:
              <span id="index-Pollen_Ampferlow" data-widget="basic.symbol" data-item="Pollen.Ampfer" style="display: none;" data-val="low, "data-mode="or" class="symbol">
               <span data-val="low" style=""> 
                <img class="icon icon1" style="stroke:#bababa; fill:#bababa; color:#bababa;" src="icons/ws/weather_pollen.svg" alt="weather_pollen">Ampfer Wenig
               </span>
              </span>
              Viele Grüße
              Thorsten

              Kommentar

              Lädt...
              X