Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JS, zählen bis 4 und wieder bei 1 anfangen

    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

    JS, zählen bis 4 und wieder bei 1 anfangen

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

      Hi,

      etwas blöder Titel aber weiß gerade nicht wie ich es anders beschreiben soll.

      Habe ein Icon für meine Klimaanlage mit 4 verschiedenen Klappenpositionen.

      Das hier ist Position 1 und im Datenpunkt soll auch 1 drin stehen.
      536_direction.jpg

      Klicke ich jetzt auf das Icon, soll hoch gezählt werden bis 4. Damit verändere ich das Icon (Klappenposition) und auch den Datenpunktwert.

      Heißt: Klappenposition 1 -> Wert 1

      Klappenposition 4 -> Wert 4

      Klicke ich jetzt nach Wert 4 nochmal drauf, soll wieder Wert 1 im Datenpunkt stehen.

      Mit dem increment Widget klappt es auch soweit, bis zu dem Sprung zurück zu 1.

      Hatte es erst mit folgendem Script probiert:

      on('javascript.0.test', function (obj){
      var i = getState("javascript.0.test").val;
          if(i===4){
              setState('javascript.0.test', 1); 
                }        
      });
      

      Funktioniert natürlich nicht, da direkt wenn Wert 4 kommt wieder Wert 1 gesetzt wird. Soll natürlich erst auf Wert 4 stehen bleiben.

      Mit Wert 5 würde es zwar gehen, kann ich aber leider auch nicht nehmen, da Wert 5 für automatische Klappenposition steht.

      Vllt geht es auch wesentlich einfacher mit einem anderen Widget oder so…

      1 Reply Last reply Reply Quote 0
      • S
        stimezo Forum Testing last edited by

        Da Du ein flankierendes Script hast, mach doch einfach increment von 6 - 10

        und schreib:

        on('javascript.0.test', function (obj){
        var i = getState("javascript.0.test").val;
            if(i===10){
                setState('javascript.0.test', 1); 
            } else;
                setState('javascript.0.test', i-5);          
        });
        

        Gruß

        Christian

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

          @coyote:

          Mit Wert 5 würde es zwar gehen, kann ich aber leider auch nicht nehmen, da Wert 5 für automatische Klappenposition steht. `
          Stört es, wenn der Datenpunkt mal kurz (ms) den Wert 5 annimmt ? Falls nicht,

          const idDir = 'javascript.0.test';
          
          on(idDir, function(obj) {
             if(obj.state.val > 4) setState(idDir, 1); 
          });
          
          1 Reply Last reply Reply Quote 0
          • coyote
            coyote Most Active last edited by

            > Da Du ein flankierendes Script hast, mach doch einfach increment von 6 - 10

            Das funktioniert leider so nicht, da bleibt er in einer Schleife hängen und zählt immer weiter abwärts.

            > Stört es, wenn der Datenpunkt mal kurz (ms) den Wert 5 annimmt ? Falls nicht,

            Hallo Paul,

            im Prinzip funktioniert das so und es wäre auch nicht weiter schlimm wenn er nur kurz den Wert 5 bekommen würde.

            Aber mit einem zweiten Widget will ich ja den Wert 5 auf den gleichen Datenpunkt ansteuern, um die automatische Klappeneinstellung zu triggern, dass geht dann mit dem Script so nicht, da er ja direkt wieder auf 1 springt.

            Eine andere Möglichkeit wäre, dass ich den Wert 5 mit dem gleichen Widget mit ansteuere, dann muss ich eben immer auf das Widget klicken bis ich bei Wert 5 (Automatik) bin und kann dann nicht direkt von zb. Wert 1 auf Automatik umschalten.

            Oder hast du noch ne Idee?

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

            Support us

            ioBroker
            Community Adapters
            Donate

            863
            Online

            31.8k
            Users

            79.9k
            Topics

            1.3m
            Posts

            3
            4
            300
            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