Ankündigung

Einklappen
Keine Ankündigung bisher.

... und wieder ein paar Anfängerfragen ...

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

    ... und wieder ein paar Anfängerfragen ...

    Hallo,

    mal wieder ein paar Anfängerfragen: Hat jemand Ideen für die direkte Umsetzung folgender Szenarien in der Visu, ohne dabei über Dummy-Items und zusätzliche Logiken in smarthome.py zu gehen:
    • Negierte basic.symbol-Anzeige (nur Anzeigen, wenn <> Value; z.B. für Alarme, 0 = kein Alarm, also auch kein Symbol)
    • Dito für basic.value (z.B. für Countdown; Zahl verschwindet nach Ablaufen eines Countdowns (im konkreten Anwendungsfall leider ein zu überwachendes r/o-Item))
    • Schalten eines Items über basic.symbol (die Version mit Popups über ein umgebendes <a href=> ist mir bekannt, aber für direktes Schalten fehlt mir einfach die Idee). Buttons helfen mir hier leider nicht weiter, da nach Auslösung des Schaltvorganges das Symbol verschwinden soll - ein Button wäre aber immer noch sichtbar / aktivierbar.

    Ich hoffe, die obigen Schilderungen sind halbwegs verständlich - danke für jeden konstruktiven Hinweis!

    /tom

    #2
    Zitat von Tom Bombadil Beitrag anzeigen
    • Negierte basic.symbol-Anzeige (nur Anzeigen, wenn <> Value; z.B. für Alarme, 0 = kein Alarm, also auch kein Symbol)
    Bei folgenden Beispielen erscheint nur das Symbol wenn ein Alarm anliegt

    PHP-Code:
     {{ basic.symbol('FBH_WC_locked''Heizung.State.ActorBath.locked''Aktor gesperrt!'icon1~'message_attention.png'1) }} 
    oder
    PHP-Code:
    {{ basic.symbol('Heizung_WC_Caution', ['Heizung.State.ActorWC.locked''Heizung.State.ActorWC.overload''Heizung.State.ActorWC.actuatingMissing'], ''icon1~'message_attention.png'1'or') }} 
    Ich hoffe es ist das was du meintest?

    Grüße
    Florian

    Kommentar


      #3
      Hallo Florian,

      danke für die Beispiele - genauso habe ich es bisher auch immer gelöst.

      Schwierig wird es, wenn z.B. "0" für "Ok" und "1" ... "99" für einen Fehlercode geliefert wird. Dann müsste man den basic.symbol-Befehl 99x hintereinander wiederholen.

      Daher die Frage mit der "negierten" Anzeige (wenn nicht 0, dann Fehler-Icon anzeigen).

      Hier hilft nach meinem bisherigen Kenntnisstand nur ein zusätzliches boolsches Item in sh.py, das über eine Logik je nach Wert auf 0/1 gesetzt wird. Der Originalwert wird per watch_item überwacht und triggert bei Veränderung die Logik. Schöner wäre eine direkte Visualisierung ...

      /tom

      Kommentar


        #4
        Hallo Tom,

        ich habe es nicht ausprobiert, aber es kommt auf den Versuch an:

        Man nehme basic.switch, erstelle ein "leeres" Icon für "pic_off" (Doku). Dies wird immer angezeigt, wenn der Wert 0 ist. Das "pic_on" Icon sollte dann immer angezeigt, wenn der Wert nicht 0 ist.
        Bei der Definition von basic.switch die Werte für val_on und val_off weg lassen...

        Gruß

        Uwe

        Kommentar


          #5
          Zitat von UBeiMa Beitrag anzeigen
          Bei der Definition von basic.switch die Werte für val_on und val_off weg lassen...
          Danke Uwe, prima Idee! Hat gestern Abend mal in diese Richtung gebastelt - leider ohne Erfolg.

          Mein Ziel ist die Anzeige eines Fehler-Icons - ist es nicht da, löst auch ein versehentliches drüberwischen auf dem iPad nix aus. Ist es da - Popup.

          Leider wieder eine Sackgasse, aber trotzdem danke ...

          Kommentar


            #6
            So, habe fertig. Hier schon mal das "negierte" basic.value, wie ich es im Helios-Plugin verwende - würde mich freuen, wenn es mal jemand testen könnte.

            Beschreibung: Zeigt einen Item-Wert an, solange er nicht 0/leer ist. Wahlweise wird der Wert 0 einfach ausgeblendet (Standard), oder ein beliebiger Wert wie z.B. '---' statt dessen angezeigt. Auch kann wahlweise eine Einheit eingeblendet werden, also z.B. 30' statt nur 30.

            Benutzbar z.B. für Countdowns (Restzeit Bewegungsmelder / Flurlicht, Restzeit Stoßlüftung in KWL) sowie Alarme (bei Anlagen, wo alles >0 einen Fehlercode bedeutet - ist ja recht verbreitet).

            HTML-Code:
             /**
            * Displays an item value if not 0 or empty
            * Useful for device alarm codes, count downs, timers (and probably more ...)
            * Optionally displays a specific string in case item is 0 or empty
            *
            * @param id        a unique id for this widget
            * @param gad       the gad/item
            * @param unit      optional unit, like '\'' for remaining ' (minutes) in a count down
            * @param zerostr   optional string if item is 0 or empty (like ---); by default a white space &nbsp;
            */
            {% macro value_notzero(id, gad, unit, zerostr) %}
             <span id="{{ uid(page, id) }}" data-widget="helios.value_notzero" data-item="{{ gad }}" data-unit="{{ unit }}" data-zero-val="{{ zerostr|default(' ') }}">[text]</span>
             <script type="text/javascript">
              $(document).delegate('span[data-widget="helios.value_notzero"]', { 
               'update': function(event, response) {
                if (response !=0 && response !="") {
                 $('#' + this.id).html(response + $(this).attr('data-unit'));
                } else {
                 $('#' + this.id).html($(this).attr('data-zero-val'));
                }
               },
              });
             </script>
            {% endmacro %}
            Aufrufbeispiel:

            HTML-Code:
             {{ _self.value_notzero('ein_Test', 'ventilation.booster.logics.fireplace_duration', '\'','') }}
            Die anderen beiden Sachen (icon_notzero sowie eine frei konfigurierbare Gruppe von Radiobuttons) sind schon fertig und funktionieren, müssen aber noch aufgeräumt werden. Kommen also demnächst ...

            /tom

            Kommentar


              #7
              Hier das nächste Widget - geht sicher schöner, aber funktioniert.

              Es wird ein Icon angezeigt, wenn oder solange der Wert <> 0 ist (ebenfalls für Alarme, Countdowns etc).

              Optional mit Anzeige eines hint-Textes.

              Ebenfalls optional mit Aufruf eines Popups oder einer URL bei Klick (z.B. detaillierte Fehlerbeschreibung, Verlinkung auf Herstellerwebseite mit Fehlercodes etc).

              Das Bild zeigt value_notzero und symbol_notzero im beispielhaften Einsatz.

              Code:
               /**
              * Displays an icon if an item is not 0 or empty
              * Useful for device alarm codes, count downs, timers (and probably more ...)
              * Optionally displays a specific string as hint
              * Optionally links to a URL or Popup window on click
              *
              * @param id        a unique id for this widget
              * @param gad       the gad/item
              * @param img       the icon
              * @param hint      optional string for hint text
              * @param link      optional link for click (use e.g. #mypopupname or [URL]http://www.mywebsite.com?arg[/URL]
              */
              {% macro symbol_notzero(id, gad, img, hint, link) %}
               <span id="{{ uid(page, id) }}" data-widget="helios.symbol_notzero" data-item="{{ gad }}">[symbol]</span>
               <script type="text/javascript">
                $(document).delegate('span[data-widget="helios.symbol_notzero"]', {
                 'update': function(event, response) {
                  var head = ''; var tail = '';
                  {% if link %} head = '<a href="{{link}}">'; tail = '</a>'; {% endif %}
                  var img = '<img class="icon" src="{{ img }}" title="{{ hint }}">';
                  var invis_img = '<img class="icon" src="{{ img }}" style="opacity:0">';
                  if (response !=0 && response !="") {
                   $('#' + this.id).html(head + img + tail);
                  } else {
                   $('#' + this.id).html(invis_img);
                  }  
                 },
                });
               </script>
              {% endmacro %}
              Angehängte Dateien

              Kommentar

              Lädt...
              X