Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Hilfe für Script mit mehreren Werten gesucht

    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

    Hilfe für Script mit mehreren Werten gesucht

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

      Ich habe ein Problem das ich irgendwie nicht gelöst bekomme und hoffe es kann mir hier jemand helfen.

      Ich bekomme aus einem Objekt verschiedene Werte geliefert.

      Diese Werte möchte ich jetzt in VIS darstellen. Dazu habe ich gedacht das ich einen Datenpunkt schreiben lasse und dem entsprechend dem Wert eine Zahl zuordne.

      In VIS nehme ich dann ein "image 8" und lese die entsprechenden Zahlen aus.

      Am Ende soll das eine Farbfläche werden die entsprechend der Werte die Farbe ändert.

      Die Werte bewegen sich zwischen 0 und 500.

      Dabei sollen dann folgende Werte eingeteilt werden:

      0-50 = 0

      51-100 = 1

      101-150 = 2

      151-200 = 3

      201-300 = 4

      301-500 = 5

      Mir fällt aber beim besten Willen nichts ein wie ich das realisieren könnte.

      Vielleicht bin ich einfach nur zu alt für den Sch… 😞

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

        @Chaot:

        Die Werte bewegen sich zwischen 0 und 500.

        Dabei sollen dann folgende Werte eingeteilt werden:

        0-50 = 0

        51-100 = 1

        101-150 = 2

        151-200 = 3

        201-300 = 4

        301-500 = 5 `

        var y = 0;
        if(x > 50) y = 1;
        if(x > 100) y = 2;
        if(x > 150) y = 3;
        if(x > 200) y = 4;
        if(x > 300) y = 5;
        setState(idFarbe, y, true);
        
        1 Reply Last reply Reply Quote 0
        • Chaot
          Chaot last edited by

          Ich Danke dir ganz herzlich.

          Ich bin was Javasript angeht absoluter Anfänger und renne mit solchen Problemen voll an die Wand.

          Dabei ist es im nachhinein betrachtet ja wirklich simpel :oops:

          Dank deiner Hilfe habe ich jetzt endlich meine Anzeigefläche gebastelt:

          var Luftguete = "javascript.1.Luftguete"/*Luftguete*/;
          var x = getState(Luftguete).val;
          
          var y = 0;
          if(x > 50) y = 1;
          if(x > 100) y = 2;
          if(x > 150) y = 3;
          if(x > 200) y = 4;
          if(x > 300) y = 5;
          setState("javascript.1.Luftqualität"/*Luftqualität*/, y, true);
          
          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by

            Wenn dies das ganze Skript ist, solltest Du bedenken, dass die Befehle nur <u>einmal</u> bei Skriptstart ausgeführt werden. Es wird ein Trigger benötigt.

            const Luftguete = "javascript.1.Luftguete"/*Luftguete*/;
            
            function setQualitaet(x) { 
              var y = 0;
              if(x > 50) y = 1;
              if(x > 100) y = 2;
              if(x > 150) y = 3;
              if(x > 200) y = 4;
              if(x > 300) y = 5;
              setState("javascript.1.Luftqualität"/*Luftqualität*/, y, true);
            }
            
            setQualitaet(getState(Luftguete).val); // Skriptstart
            
            on(Luftguete, function(dp) { // triggert bei Wertänderung
              setQualitaet(dp.state.val);
            });
            
            
            1 Reply Last reply Reply Quote 0
            • Chaot
              Chaot last edited by

              Oh, Danke.

              Das habe ich wirklich nicht bedacht.

              Ich habe mich schon gewundert warum das nicht aktualisiert :oops:

              Hier ist übrigens die ganze Geschichte:

              viewtopic.php?f=21&t=14808&p=156654#p156654

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

              Support us

              ioBroker
              Community Adapters
              Donate

              858
              Online

              31.7k
              Users

              79.9k
              Topics

              1.3m
              Posts

              2
              5
              495
              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