Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JS, zählen bis 4 und wieder bei 1 anfangen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    925

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

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

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
4 Beiträge 3 Kommentatoren 409 Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • coyoteC Offline
    coyoteC Offline
    coyote
    Most Active
    schrieb am zuletzt editiert von
    #1

    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 Antwort Letzte Antwort
    0
    • S Offline
      S Offline
      stimezo
      Forum Testing
      schrieb am zuletzt editiert von
      #2

      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 Antwort Letzte Antwort
      0
      • paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #3

        @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); 
        });
        

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • coyoteC Offline
          coyoteC Offline
          coyote
          Most Active
          schrieb am zuletzt editiert von
          #4

          > 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 Antwort Letzte Antwort
          0
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          845

          Online

          32.6k

          Benutzer

          82.2k

          Themen

          1.3m

          Beiträge
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Anmelden

          • Du hast noch kein Konto? Registrieren

          • Anmelden oder registrieren, um zu suchen
          • Erster Beitrag
            Letzter Beitrag
          0
          • Home
          • Aktuell
          • Tags
          • Ungelesen 0
          • Kategorien
          • Unreplied
          • Beliebt
          • GitHub
          • Docu
          • Hilfe