Ankündigung

Einklappen
Keine Ankündigung bisher.

Hysterese für Basic Symbol Schwellwerte

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

    Hysterese für Basic Symbol Schwellwerte

    Guten Morgen

    Ist es mit einem Trick möglich einen Hysterese für die Schwellwerte in z.B. Basic Symbol zu definieren? Dass also z.B. das Symbol bei ansteigenden Werten die Farbe von grün auf rot sagen wir beim Wert 80 ändert, bei fallenden Werten von rot auf grün erst wieder bei 75?

    Falls das aktuell nicht geht, wäre das ein Featurewunsch :-)

    Gruß, Martin

    #2
    Sipple Wenn Du SmartHomeNG als Backend nimmst schau doch mal in die Doku zum Thema Item Hysterese.

    Die SmartVISU wird das nicht korrekt handeln können

    Kommentar


      #3
      Für das Handling grün -> rot wäre sicherlich ein Prozentsatz (0% = lower Limit und 100% = Upper Limit) hilfreich. Bei Bedarf kann ich das kurzfristig als Funktion in das Hysteresis Handling von Items in SmartHomeNG implementieren.

      Davon könnte man sowohl ein rot/grün ableiten, als auch mehr als diese zwei Farbsufen.
      Viele Grüße
      Martin

      There is no cloud. It's only someone else's computer.

      Kommentar


        #4
        Moin Martin,

        ich schließe mich meinen Vorrednern an: die sauberste Art, eine Hystere darzustellen ist die item-Hysterese in shNG.

        Dennoch hat mir Deine Frage in meinem Spieltrieb keine Ruhe gelassen. Die Lösung ist etwas knifflig, aber es geht
        Code:
        {{basic.symbol('myID', 'myItem', '','light_control', '80', '>', ['icon1', 'icon2'])}}
        {{basic.print('', 'myItem', 'script','$("#myPage-myID").data("sv-basic_symbol").options.mode = VAR1>=80?">VAR1+5":(VAR1<75 ? ">": $("#myPage-myID").data("sv-basic_symbol").options.mode);')}}
        basic.symbol legt bereits beim Aufbau der Visu-Seite alle Symbole mit den zugehörigen Werten an und versteckt die gerade nicht benötigten Symbole. Bei Werteänderung wird dann das jeweils richtige Symbol nur noch von 'display:none' auf 'display: inline' gesetzt und alle anderen Symbole versteckt. Deshalb habe ich den ersten Ansatz die Schwellwerte zu manipulieren verworfen, denn man müsste dann alle Symbole durchsuchen.

        Ich nutze jetzt basic.print, um die Formel zu ändern. Leider reicht es nicht, dies einfach in den html5-Attributen zu machen, sondern man muss das Attribut im Widget-Objekt verändern. Wenn der item-Wert >=80 ist, wird die Hysteresebreite (im Beispiel 5) auf den Istwert addiert, so dass das icon erst bei Erreichen von 75 wieder umgefärbt wird - also wenn der Wert der Formel (=75+5) den Schwellwert 80 erreicht. Dort wird auch die Formel wieder zurückgesetzt. Du musst eine eindeutige ID (myID) in basic.symbol angeben und den Seitennamen (myPage) plus die ID im basic.print verwenden.

        Meine Empfehlung ist trotzdem die Nutzung der item-Hysterese in shNG.

        Gruß
        Wolfram

        Kommentar


          #5
          Guten Morgen zusammen.

          Bin grad im Urlaub und schau mir das nächste Woche mal genauer an.
          Ich habe mir die neue Hysteresefunktion von SHNG kurz angeschaut. Wenn ich es richtig verstanden habe, ist das Ergebnis nur true/false und mehrere Schwellwerte sind auch nicht einfach abzubilden. Oder ich habe es noch nicht verstanden.

          Danke auf jeden Fall schon mal für eure Hilfe.

          Gruß, Martin

          Kommentar


            #6
            Moin Martin,

            die Hysterese in shNG erfordert ein Hilfsitem. Mehrere Schwellwerte kannst Du mit mehreren solcher Hilfsitems abbilden. Dann braucht jedes davon ein basic.symbol für die Statusanzeige, oder Du kombinierst dies geschickt zu einer Formel und kommst mit einem basic.symbol aus. Die Hysteresen dürfen sich dabei überlappen.

            Mit dem oben beschriebenen Hack kannst Du mehrere Schwellwerte sicherlich auch realisieren, aber die Verschachtelung der Abfragen im basic.print wird komplex. Die Hysteresen dürfen sich dann nicht überlappen.

            Denkbar ist eine eigene Funktion in JavaScript, die Du über ein basic.print aufrufst. Ein Ansatz dafür ist hier beschrieben.

            Gruß
            Wolfram

            Kommentar


              #7
              Zitat von Sipple Beitrag anzeigen
              ist das Ergebnis nur true/false und mehrere Schwellwerte sind auch nicht einfach abzubilden
              Deshalb hatte ich weiter oben geschrieben:

              Zitat von Msinn Beitrag anzeigen
              Für das Handling grün -> rot wäre sicherlich ein Prozentsatz (0% = lower Limit und 100% = Upper Limit) hilfreich. Bei Bedarf kann ich das kurzfristig als Funktion in das Hysteresis Handling von Items in SmartHomeNG implementieren.

              Davon könnte man sowohl ein rot/grün ableiten, als auch mehr als diese zwei Farbsufen.
              Viele Grüße
              Martin

              There is no cloud. It's only someone else's computer.

              Kommentar

              Lädt...
              X