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. JavaScript
  5. Shelly - Rollo via einen Taster

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.1k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

Shelly - Rollo via einen Taster

Geplant Angeheftet Gesperrt Verschoben JavaScript
6 Beiträge 3 Kommentatoren 812 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.
  • T Offline
    T Offline
    thomson
    schrieb am zuletzt editiert von thomson
    #1

    Moin
    ich möchte gerne ein Rollo auf/zu/stop über einen Taste realesieren. Aber irgentwie will das nicht so wie ich ds möchte.. Glaube der fehler liegt in der if Anweisung / string?
    Könnt ihr mir einen Denkanstoss geben?

    on({id: 'zigbee.0.00158d0002178/c.right_click'/*Right click event*/, val : true}, function() {                                   // rechtr Taster
            var state = getState('shelly.0.SHSW-25#0045NN#1.Shutter.state'/*state*/).val;
            var pos = getState('shelly.0.SHSW-27#00748D#1.Shutter.Position'/*Position*/).val;   
     
    
         if(pos < 80 && state === "stop") {
          setState('shelly.0.SHSW-25#004MMD#1.Shutter.Close'/*Close*/,true);
         }; 
         if(pos < 20 && state === "stop") { 
           setState('shelly.0.SHSW-25#004MMD#1.Shutter.Open'/*Open*/,true);
         }
         if("open" || "close") { 
            setState('shelly.0.SHSW-25#0045xx#1.Shutter.Pause'/*Pause*/,true);
         }
       
    });
    
    htreckslerH N 2 Antworten Letzte Antwort
    0
    • T thomson

      Moin
      ich möchte gerne ein Rollo auf/zu/stop über einen Taste realesieren. Aber irgentwie will das nicht so wie ich ds möchte.. Glaube der fehler liegt in der if Anweisung / string?
      Könnt ihr mir einen Denkanstoss geben?

      on({id: 'zigbee.0.00158d0002178/c.right_click'/*Right click event*/, val : true}, function() {                                   // rechtr Taster
              var state = getState('shelly.0.SHSW-25#0045NN#1.Shutter.state'/*state*/).val;
              var pos = getState('shelly.0.SHSW-27#00748D#1.Shutter.Position'/*Position*/).val;   
       
      
           if(pos < 80 && state === "stop") {
            setState('shelly.0.SHSW-25#004MMD#1.Shutter.Close'/*Close*/,true);
           }; 
           if(pos < 20 && state === "stop") { 
             setState('shelly.0.SHSW-25#004MMD#1.Shutter.Open'/*Open*/,true);
           }
           if("open" || "close") { 
              setState('shelly.0.SHSW-25#0045xx#1.Shutter.Pause'/*Pause*/,true);
           }
         
      });
      
      htreckslerH Offline
      htreckslerH Offline
      htrecksler
      Forum Testing
      schrieb am zuletzt editiert von
      #2

      @thomson sagte in Shelly - Rollo via einen Taster:

       if(pos < 80 && state === "stop") {                                                                                                                                                                                  setState('shelly.0.SHSW-25#004MMD#1.Shutter.Close'/*Close*/,true);                                                                                                                                                                                 }; 
      

      Eventuell Klammersetzung?
      versuch mal

           if((pos < 80) && (state === "stop")) {
            setState('shelly.0.SHSW-25#004MMD#1.Shutter.Close'/*Close*/,true);
           }; 
      

      Gruss Hermann

      ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

      1 Antwort Letzte Antwort
      0
      • T Offline
        T Offline
        thomson
        schrieb am zuletzt editiert von
        #3

        Leider ohne erfolg. Es passert nicht :(

        1 Antwort Letzte Antwort
        0
        • T Offline
          T Offline
          thomson
          schrieb am zuletzt editiert von thomson
          #4

          Ich finde einen Fehler einfach nicht :( Es passiert nichts...
          Könnt ihr da bitte mal n blick drauf werfen?
          Danke!

          on({id: 'zigbee.0.00158d00021xxxxc.right_click', val: true}, function(obj) {  
              console.log('gedrückt');  
              var value = obj.state.val;
              var oldValue = obj.oldState.val;   
              if((obj.state ? obj.state.val : "")) {                  
               if(getState('shelly.0.SHSW-25#00xxxx#1.Shutter.state').val != `stop`) {
                   setState('shelly.0.SHSW-25#00xxxx#1.Shutter.Pause',true);
                   console.log('STOPP');
               }
                   else if( getState('shelly.0.SHSW-25#00xxxx#1.Shutter.state').ts < getState('shelly.0.SHSW-25#00xxxx#1.Relay1.Switch').ts) {
                   setState('shelly.0.SHSW-25#00xxxx#1.Shutter.Open'/*Open*/,true);
                   console.log('öffnen');
                   } 
                   else if( getState('shelly.0.SHSW-25#00xxxx#1.Relay0.Switch').ts > getState('shelly.0.SHSW-25#00xxxx#1.Relay1.Switch').ts) {
                   setState('shelly.0.SHSW-25#00xxxx#1.Shutter.Close'/*Close*/,true);
                   console.log('schließen');
               }
          }
          });
          
          
          1 Antwort Letzte Antwort
          0
          • T thomson

            Moin
            ich möchte gerne ein Rollo auf/zu/stop über einen Taste realesieren. Aber irgentwie will das nicht so wie ich ds möchte.. Glaube der fehler liegt in der if Anweisung / string?
            Könnt ihr mir einen Denkanstoss geben?

            on({id: 'zigbee.0.00158d0002178/c.right_click'/*Right click event*/, val : true}, function() {                                   // rechtr Taster
                    var state = getState('shelly.0.SHSW-25#0045NN#1.Shutter.state'/*state*/).val;
                    var pos = getState('shelly.0.SHSW-27#00748D#1.Shutter.Position'/*Position*/).val;   
             
            
                 if(pos < 80 && state === "stop") {
                  setState('shelly.0.SHSW-25#004MMD#1.Shutter.Close'/*Close*/,true);
                 }; 
                 if(pos < 20 && state === "stop") { 
                   setState('shelly.0.SHSW-25#004MMD#1.Shutter.Open'/*Open*/,true);
                 }
                 if("open" || "close") { 
                    setState('shelly.0.SHSW-25#0045xx#1.Shutter.Pause'/*Pause*/,true);
                 }
               
            });
            
            N Offline
            N Offline
            Nahasapee
            schrieb am zuletzt editiert von
            #5

            Hi
            dein erstes Skript fand ich ganz gut deshalb korrigiere ich das mal:

            @thomson sagte in Shelly - Rollo via einen Taster:

             if("open" || "close") {                                                                                                                                                                                     setState('shelly.0.SHSW-25#0045xx#1.Shutter.Pause'/*Pause*/,true);                                                                                                                                                                            
            

            die letzte Bedingung ist immer true und stoppt dann immer deine Rollofahrt gleich wieder
            sollte vermutlich:

            if(state==="open" || state ==="close")
            

            heißen.
            und bei dem ersten If müsste es wohl heißen >80, statt kleiner und aus der zweiten würde ich nen else if machen
            und die dritte am besten gleich auch ;)

             if(pos > 80 && state === "stop") 
            //.....
            else if(pos <20 && state === "stop")
            //...
            

            Außerdem sind deine ID vom Shelly alle unterschiedlich, die sollten alle vom selben Shelly sein, falls du sie nicht absichtlich verfremdet hast....

            bei deinem zweiten Skript steig ich gar nicht richtig durch was du machen willst wirkt irgendwie strange,kommen deine Konsolen ausgaben?
            vermutlich ist die erste Bedingung schon nicht richtig.

            @thomson sagte in Shelly - Rollo via einen Taster:

            if((obj.state ? obj.state.val : "")) {

            viele grüße

            1 Antwort Letzte Antwort
            1
            • T Offline
              T Offline
              thomson
              schrieb am zuletzt editiert von
              #6

              vielen Dank. nun klappt es

              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

              349

              Online

              32.5k

              Benutzer

              81.7k

              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