Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Vergleich von zwei Datenpunkten funktioniert nicht

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Vergleich von zwei Datenpunkten funktioniert nicht

    This topic has been deleted. Only users with topic management privileges can see it.
    • iberlegu
      iberlegu last edited by

      Hallo Zusammen,
      bin Neuling im Thema ibroker und habe gleich mal ein Problem.
      Habe zwei identische Objekte erstellt und wollte diese auf ihren Wert abfragen und vergleichen.
      Eingestellt sind sie als Zeichenkette, habe aber auch schon zahl und string ausprobiert.

      d9d1621c-2067-417a-90f1-5f0296a3ab45-grafik.png
      Das erste Objekt soll eine Temperatur simulieren, das zweite den Grenzwert z.B. zur Warnung das die Temp überschritten wurde.
      7da045c9-c993-490a-87f2-06664aa99f19-grafik.png
      Soweit passt es auch. Ist der erste Wert "Temperatur" (40) größer als der eingestellte "Genzwert" (27) wird der 'basic bar' Balken rot und im 'Basic html widget' steht "schlecht".
      Anders herum passt es auch.
      85de1e4a-17db-4cf2-a6bc-bb86c4241899-grafik.png
      So, jetzt aber ein komischer Effekt.
      Stelle ich den Grenzwert zwischen 5 und 10 gibt es die falsche Meldung.
      Hier als Beispiel der Grenzwert 6. Eigentlich müsste jetzt der Balken rot sein und im Feld "schlecht" stehen.
      01b65738-6530-4b4b-80a4-78efea13d386-grafik.png
      Im 'Basic html widget' habe ich folgendes eingetragen, genauso wie im 'basic bar' als Farbe

      {v1:javascript.0.scriptEnabled.common.Test_Wert; v2:javascript.0.scriptEnabled.common.Test_Wert_Variabel;v1 < v2 ? "gut" : "schlecht"}
      

      Vielen Dank für eure Hilfe

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @iberlegu last edited by

        @iberlegu sagte:

        So, jetzt aber ein komischer Effekt.

        Das ist nicht komisch, sondern bei einem String-Vergleich normal: Funktioniert nur bei gleicher Stellenzahl (führende 0).

        1 Reply Last reply Reply Quote 0
        • iberlegu
          iberlegu last edited by

          Hab ich ich mir auch gedacht aber!!!
          bf4f7a91-d40f-4d79-8a51-9875a0171cd6-grafik.png

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @iberlegu last edited by paul53

            @iberlegu
            Ein Stringvergleich erfolgt zeichenweise von vorn nach hinten und bricht ab, wenn eine Bedingung falsch ist, in dem Beispiel schon nach dem ersten Zeichen, da "2" < "1" falsch ist.
            Damit die Vergleiche funktionieren, müssen die Werte in Zahlen gewandelt werden.

            parseFloat(v1) < parseFloat(v2) ? "gut" : "schlecht";
            
            1 Reply Last reply Reply Quote 0
            • iberlegu
              iberlegu last edited by

              @paul53 sagte in Vergleich von zwei Datenpunkten funktioniert nicht:

              parseFloat(v1) < parseFloat(v2) ? "gut" : "schlecht"

              Perfekt
              Vielen Dank!!

              1 Reply Last reply Reply Quote 0
              • First post
                Last post

              Support us

              ioBroker
              Community Adapters
              Donate

              561
              Online

              31.8k
              Users

              79.9k
              Topics

              1.3m
              Posts

              javascript
              2
              5
              330
              Loading More Posts
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes
              Reply
              • Reply as topic
              Log in to reply
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              The ioBroker Community 2014-2023
              logo