Ankündigung

Einklappen
Keine Ankündigung bisher.

basic.symbol mit OR verknüpfung

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

    basic.symbol mit OR verknüpfung

    Hallo,
    ich hab smartVISU 2.9 und folgenden Eintrag erstellt:

    {{ basic.symbol('eg.wz.lig1', ['eg.wz.licht', 'eg.er.licht'], '', ['light_ceiling_light.svg', 'light_ceiling_light.svg'], ['0', '1'], 'or', ['#000', '#f73']) }}

    Wenn allerdings eines von den beiden eingeschaltet ist, bekomme ich das nicht angezeigt.
    Habe ich einen Syntaxfehler in der Zeile oben?
    Danke
    Peter

    #2
    Der Wert beim basic.symbol ist kein Array, sondern ein einzelner Vergleichswert. Es müsste also so lauten:
    Code:
    {{ basic.symbol('eg.wz.lig1', ['eg.wz.licht', 'eg.er.licht'], '', ['light_ceiling_light.svg', 'light_ceiling_light.svg'], '1', 'or', ['#000', '#f73']) }}

    Kommentar


      #3
      Hmm. Wenn ich nur eine 1 wie du schreibst reingebe, dann funktioniert das OR mit den zwei Lichtern, aber der Browser zeigt mir dann nur das schwarze Icon, wenn eines von den beiden an ist, wenn beide auf 0 sind, dann hab ich kein ICON.

      Für das Bad hab ich folgenden Eintrag:
      {{ basic.symbol('eg.bad.lig1', 'eg.bad.licht', '', ['light_ceiling_light.svg', 'light_ceiling_light.svg'], ['0', '1'], '',['#000', '#f73']) }}

      Und wenn auf 0, dann hab ich schwarzes ICON und bei ein das orange ICON. --> Sollte ich das anders machen, damit das OR bei zwei Lichtern auch mit schwarz/orange funktioniert?

      Kommentar


        #4
        Du hast recht, das habe ich nicht bedacht.
        Diese Frage wurde schonmal irgendwo diskutiert. Wenn ich mich recht erinnere, musst du die Reihenfolge der Werte und Farben umdrehen:
        Code:
        {{ basic.symbol('eg.bad.lig1', 'eg.bad.licht', '', ['light_ceiling_light.svg', 'light_ceiling_light.svg'], ['1','0'], '',['#f73','#000']) }}
        Begründung: mit OR wird der erste Wert verwendet, welcher für eines der Items zutrifft. Wenn also eines 0 ist, würde immer der erste Wert verwendet (was sich dann eigentlich wie ein AND verhält).

        Nachtrag: Ich habe meine damalige Antwort gefunden. Sie stimmt glücklicherweise mit der hier überein.
        Zitat von smai Beitrag anzeigen
        Stimmt, das funktioniert tatsächlich nicht wie man erwarten würde. Mehrere Werte vertragen sich nicht gut mit mehreren Items und or.

        Die Itemwerte werden mit den Vergleichswerten verglichen und dann der erste passende Text angezeigt.
        Es wird also Licht1.schalten mit 0 verglichen und Licht2.schalten mit 0. Wenn eines zutrifft, wird der erste Text angezeigt.
        Das erwartete Verhalten erreichst du, indem du die Werte umdrehst:
        Code:
        {{ basic.symbol('', ['Licht1.schalten', 'Licht2.schalten'], ['an', 'aus'], '', [1,0], 'or') }}
        Ist etwas schwierig zu erklären, ich hoffe, das ist so verständlich.
        Das ganze ist etwas unglücklich, ich sehe aber im Moment nicht, wie ich das besser gestalten könnte.
        Zuletzt geändert von smai; 23.01.2018, 15:21.

        Kommentar


          #5
          Super, passt nun mit der Zeile. Werde die anderen Einträge gleich anpassen. Danke!

          Kommentar

          Lädt...
          X