Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Pincode Eingabe Alarmanlage

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Pincode Eingabe Alarmanlage

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

      Hi,

      wenn ich dich richtig verstanden habe möchtest du aus dem Script oben den Teil rausnehmen der die Zahlenkombi abfragt und bei richtiger Eingabe dann den Türöffner betätigt?

      Wenn dem so ist kann ich das mit ja beantworten das würde gehen ob es sicher ist sei aber mal dahin gestellt 😄

      Gruß

      Steffen

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

        Hallo

        Danke für die rasche Antwort.

        Ja ich möchte, wenn ich auf den Taster für die Tür drücke das dann eine Pin Abfrage gemacht wird.

        Es soll nur eine kleine Sicherheit sein das das nicht jeder machen kann.

        Aber in erster Linie soll es davor schützen das man unabsichtlich auf den Taster kommt und dann die Tür aufmacht.

        Wenn du mir dabei helfen würdest wäre ich sehr froh.

        Danke

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

          Hallo SmarthomeMF

          Schau mal hier.http://forum.iobroker.net/viewtopic.php … pin#p47264

          Vielleicht geht das als Grundlage.

          Grüße

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

            danke für den Tipp

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

              Hi,

              hab mal das was nicht benötigt wird rausgelöscht. So sollte es gehen habs aber nicht getestet:

              // -----------------------------------------------------------------------------
              // allgemeine Variablen
              // -----------------------------------------------------------------------------
              var logging = true;                                                        // Logging on/off
              var instanz = 'javascript.0';  instanz = instanz + '.';                     // 
              
              var pfad0 =     'Tueroeffner.Pin.';                        // Pfad innerhalb der Instanz 
              
              // -----------------------------------------------------------------------------
              // Variablen für Pin-Abfrage
              // -----------------------------------------------------------------------------
              var PinReturn = 0;                  // Status der Returntaste (0 - #-Taste sichtbar || 1 - Returntaste sichtbar)
              var PinTast = "";                   // Inhalt der Eingabe
              var PinTemp ="";                    // Puffer für eingegebe Ziffern
              var PinLae = 0;                     // Pin-Länge bei Eingabe
              
              var PinState = false ;              // Eingabestatus - Eingabe beginnt nach Taste '#' und wird mit Taste '#' abgeschlossen
              var PinFehl =false;                 // Statusflag für fehlerhafte Eingabe
              var PinAnz = "";                    // Angezeiger 'Displaytext' z.B. ****
              var PinAnzStat = 0;                 // Status der PinAnzeige im Display (0-Ruhe | 1-Start [grau] | 2-richtig [gruen] | 3-falsch [rot])
              
              var PinSoll = 1111;                 // Pin die zur Deaktivierung der Alarmanlage benötigt wird
              
              // -----------------------------------------------------------------------------
              // Variablen für Alarmstatus
              // -----------------------------------------------------------------------------
              var logging = true; 
              
              // -----------------------------------------------------------------------------
              // Objekte
              // -----------------------------------------------------------------------------
              
              // Objekte für Pin-Eingabe
              createState(pfad0 + 'PinSelect', "" , {name: 'Pin-Eingabe'});
              createState(pfad0 + 'Pin', '0000' ,  {name: 'Pin'});
              createState(pfad0 + 'PinFehler', false ,  {name: 'Pin-Fehler'});
              createState(pfad0 + 'PinAnzStat', 0 ,  {name: 'PinAnzeigeStatus'});
              createState(pfad0 + 'PinAnz', '' ,  {name: 'Pin-Anzeige'});
              createState(pfad0 + 'PinReturn', '' ,  {name: 'Pin-ReturnTaste'});
              
              // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
              // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
              // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
              // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
              
              // #############################################################################
              // #                                                                           #
              // #  Pin-Abfrage                                                              #
              // #                                                                           #
              // #############################################################################
              
              on((instanz + pfad0 + 'PinSelect'), function (dp) {
                  if (dp.newState.val === 0 || dp.newState.val === 1 || dp.newState.val === 2 || dp.newState.val === 3 || dp.newState.val === 4 || dp.newState.val === 5 || dp.newState.val === 6 || dp.newState.val === 7 || dp.newState.val === 8 || dp.newState.val === 9) {
                      PinTast = dp.newState.val;
                      PinEingabe();
                  }  
                  if (dp.newState.val === 'E') {
                      PinPruef();
                  }      
                  if (dp.newState.val === 'R') {
                      PinReset();  
                  }      
              });
              
              function PinEingabe () {
                  PinTemp = (PinTemp + PinTast);
                  PinAnz = (PinAnz + '*');
                  setState(pfad0 + 'PinAnz',PinAnz);
                  PinLae = (PinLae +1) ;
              }
              
              function unscharf(){
                  setState(pfad0 + 'PinAnzStat', PinAnzStat);
                  setState(pfad0 + 'PinReturn', PinReturn);
              ///////////////////////////////////////////////////// Hier musst du dann deinen Türöffner auf machen reinschreiben    
              }
              
              function PinPruef() {
                  if (PinTemp == PinSoll) {
                      if(logging) log('PinEingabe erfolgreich');
                      PinAnzStat = 2;
                      PinReturn = 3;
                      unscharf();
              
                      setTimeout(function() {
              
                          PinReset();
                      }, 5 * 1000);
              
                  } else {
                      if(logging) log('PinEingabe Fehler');
                      PinReset();
                  }
              }    
              
              function PinReset() {
                      PinReturn = 0;
                      PinLae=0;
                      PinAnzStat=0;
                      PinAnz="";
                      PinTemp="";
                      setState(pfad0 + 'PinAnz', PinReturn);
                      setState(pfad0 + 'PinAnzStat', PinAnzStat);
                      setState(pfad0 + 'PinAnz', PinAnz);
                      setState(pfad0 + 'PinReturn', PinReturn);      
              }
              

              Bei unscharf musst du dann deine auszulösende Aktion reinschreiben ala' "Tür Auf!"

              Gruß

              Steffen

              1 Reply Last reply Reply Quote 0
              • M
                maxx1976 last edited by

                Hallo peoples

                Ich finde deine Visualisierung sehr ansprechend und möchte sie gerne bei mir verwenden.

                Leider lässt sich die View nicht installieren. Es kommt immer die Fehlermeldung "Cannot render view vAlarmanlage. Invalid settings"

                Woran kann das liegen hast du eine Idee?

                Danke

                Maxx

                1 Reply Last reply Reply Quote 0
                • Homer.J.
                  Homer.J. last edited by

                  Ist kein View sondern ein Widget.

                  Grüße

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

                    Hallo, hat das Script mal jemand getestet und für funktionsfähig befunden?

                    Z.B wird diese Variable nicht verarbeitet und der State für die Fehlerhafte Pineingabe auch nicht gestezt.

                    var PinFehl

                    function PinPruef() {
                        if (PinTemp == PinSoll) {
                            if(logging) log('PinEingabe erfolgreich');
                            PinAnzStat = 2;
                            PinReturn = 3;
                            unscharf();
                    
                            setTimeout(function() {
                    
                                PinReset();
                            }, 5 * 1000);
                    
                        } else {
                            if(logging) log('PinEingabe Fehler');
                            PinReset();
                        }
                    }   
                    
                    1 Reply Last reply Reply Quote 0
                    • M
                      maxx1976 last edited by

                      Danke, damit hat es jetzt geklappt.

                      Allerdings hat das script bei mir einen Fehler. Bei einer Pineingabe wird die Zahl immer 2x eingelesen. Das liegt daran, dass die Funktion PinEingabe zuerst durchlaufen wird und danach erst die eigenliche Pinabfrage.

                      Wie kann ich das lösen?

                      lg

                      Maxx

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

                        Habe es jetzt so zum laufen gebracht..

                        // -----------------------------------------------------------------------------
                        // allgemeine Variablen
                        // -----------------------------------------------------------------------------
                        var logging = true;                                                        // Logging on/off
                        var instanz = 'javascript.0';  instanz = instanz + '.Alarm';                     // 
                        
                        var pfad0 =     'alarm.Pin.';                        // Pfad innerhalb der Instanz 
                        
                        // -----------------------------------------------------------------------------
                        // Variablen für Pin-Abfrage
                        // -----------------------------------------------------------------------------
                        var PinTast = "";                   // Inhalt der Eingabe
                        var PinTemp ="";                    // Puffer für eingegebe Ziffern
                        var PinLae = 0;                     // Pin-Länge bei Eingabe
                        
                        var PinState = false ;              // Eingabestatus - Eingabe beginnt nach Taste '#' und wird mit Taste '#' abgeschlossen
                        var PinFehl =false;                 // Statusflag für fehlerhafte Eingabe
                        var PinAnz = "";                    // Angezeiger 'Displaytext' z.B. ****
                        var PinAnzStat = 0;                 // Status der PinAnzeige im Display (0-Ruhe | 1-Start [grau] | 2-richtig [gruen] | 3-falsch [rot])
                        
                        var PinSoll = 1111;                 // Pin die zur Deaktivierung der Alarmanlage benötigt wird
                        
                        // -----------------------------------------------------------------------------
                        // Objekte
                        // -----------------------------------------------------------------------------
                        
                        // Objekte für Pin-Eingabe
                        createState(pfad0 + 'PinSelect', "" , {name: 'Pin-Eingabe'});
                        createState(pfad0 + 'Pin', '0000' ,  {name: 'Pin'});
                        createState(pfad0 + 'PinFehler', false ,  {name: 'Pin-Fehler'});
                        createState(pfad0 + 'PinAnzStat', 1 ,  {name: 'PinAnzeigeStatus'});
                        createState(pfad0 + 'PinAnz', '' ,  {name: 'Pin-Anzeige'});
                        createState(pfad0 + 'VisKeyPad', '' ,  {name: 'State für Vis Keypad Sichtbar'}); //State für Vis Keypad Sichtbar wird von Button in Vis beschrieben und bei unscharf zurück gesetzt
                        
                        // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                        // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                        // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                        // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                        
                        // #############################################################################
                        // #                                                                           #
                        // #  Pin-Abfrage                                                              #
                        // #                                                                           #
                        // #############################################################################
                        
                        on('javascript.0.alarm.Pin.PinSelect', function (dp) {
                            if (dp.newState.val === 0 || dp.newState.val === 1 || dp.newState.val === 2 || dp.newState.val === 3 || dp.newState.val === 4 || dp.newState.val === 5 || dp.newState.val === 6 || dp.newState.val === 7 || dp.newState.val === 8 || dp.newState.val === 9) {
                                PinTast = dp.newState.val;
                                PinEingabe();
                            }  
                            if (dp.newState.val === 'E') {
                                PinPruef();
                            }      
                            if (dp.newState.val === 'R') {
                                PinReset();  
                            }      
                        });
                        
                        function PinEingabe () {
                            PinTemp = (PinTemp + PinTast);
                            PinAnz = (PinAnz + '*');
                            setState('javascript.0.alarm.Pin.PinAnz', PinAnz);
                            PinLae = (PinLae +1) ;
                        }
                        
                        function unscharf(){
                            setState('javascript.0.alarm.Pin.PinAnzStat',1);
                            setState('javascript.0.alarm.in.disable', true);
                            setState('javascript.0.alarm.Pin.VisKeyPad', false);
                             if(logging) log('Deaktivierung / Pineingabe erfolgreich');
                        ///////////////////////////////////////////////////// Hier musst du dann deinen Türöffner auf machen reinschreiben    
                        }
                        
                        function PinPruef() {
                            if (PinTemp == PinSoll) {
                                if(logging) log('PinEingabe erfolgreich');
                                PinAnzStat = 1;
                                unscharf();
                        
                                setTimeout(function() {
                        
                                    PinReset();
                                }, 10 * 1000);
                        
                            } else {
                                if(logging) log('PinEingabe Fehler');
                                PinAnzStat = 2;
                                setState('javascript.0.alarm.Pin.PinAnzStat', 2);
                                setState('javascript.0.alarm.Pin.PinFehler', true);
                                PinReset();
                            }
                        }    
                        
                        function PinReset() {
                                PinLae=0;
                                PinAnzStat=2;
                                PinAnz="";
                                PinTemp="";
                                setState('javascript.0.alarm.Pin.PinAnzStat', 2);
                                setState('javascript.0.alarm.Pin.PinAnz', PinAnz);
                        }
                        
                        1 Reply Last reply Reply Quote 0
                        • sigi234
                          sigi234 Forum Testing Most Active last edited by

                          Hallo,

                          was ist hm-rega.0.1234

                          2858_screenshot__611_.png

                          1 Reply Last reply Reply Quote 0
                          • Dutchman
                            Dutchman Developer Most Active Administrators last edited by

                            Eine Systemvariable im der ccu

                            Sent from my iPhone using Tapatalk

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

                              So siehts bei mir aus…Hab alles raus geschmissen was ich nicht brauch..

                              funktioniert einwandfrei

                              Hab das Pin Pad 2 mal .. einmal für stop bzw. rücksetzen während Auslösung und einmal zum deaktivieren.

                              // -----------------------------------------------------------------------------
                              // allgemeine Variablen
                              // -----------------------------------------------------------------------------
                              var logging = true;                                                        // Logging on/off
                              var instanz = 'javascript.0';  instanz = instanz + '.Alarm';                     // 
                              
                              var pfad0 =     'alarm.Pin.Disable.';                        // Pfad innerhalb der Instanz 
                              
                              // -----------------------------------------------------------------------------
                              // Variablen für Pin-Abfrage
                              // -----------------------------------------------------------------------------
                              var PinTast = "";                   // Inhalt der Eingabe
                              var PinTemp ="";                    // Puffer für eingegebe Ziffern
                              var PinLae = 0;                     // Pin-Länge bei Eingabe
                              
                              var PinState = false ;              // Eingabestatus - Eingabe beginnt nach Taste '#' und wird mit Taste '#' abgeschlossen
                              var PinFehl =false;                 // Statusflag für fehlerhafte Eingabe
                              var PinAnz = "";                    // Angezeiger 'Displaytext' z.B. ****
                              
                              var PinSoll = 1111;                 // Pin die zur Deaktivierung der Alarmanlage benötigt wird
                              
                              // -----------------------------------------------------------------------------
                              // Objekte
                              // -----------------------------------------------------------------------------
                              
                              // Objekte für Pin-Eingabe
                              createState(pfad0 + 'PinSelect', "" , {name: 'Pin-Eingabe'});
                              createState(pfad0 + 'Pin', '0000' ,  {name: 'Pin'});
                              createState(pfad0 + 'PinFehler', false ,  {name: 'Pin-Fehler'});
                              createState(pfad0 + 'PinAnz', '' ,  {name: 'Pin-Anzeige'});
                              createState(pfad0 + 'VisKeyPad', '' ,  {name: 'State für Vis Keypad Sichtbar'}); //State für Vis Keypad Sichtbar wird von Button in Vis beschrieben und bei unscharf zurück gesetzt
                              
                              // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                              // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                              // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                              // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                              
                              // #############################################################################
                              // #                                                                           #
                              // #  Pin-Abfrage                                                              #
                              // #                                                                           #
                              // #############################################################################
                              
                              on('javascript.0.alarm.Pin.Disable.PinSelect', function (dp) {
                                  if (dp.newState.val === 0 || dp.newState.val === 1 || dp.newState.val === 2 || dp.newState.val === 3 || dp.newState.val === 4 || dp.newState.val === 5 || dp.newState.val === 6 || dp.newState.val === 7 || dp.newState.val === 8 || dp.newState.val === 9) {
                                      PinTast = dp.newState.val;
                                      PinEingabe();
                                  }  
                                  if (dp.newState.val === 'E') {
                                      PinPruef();
                                  }      
                                  if (dp.newState.val === 'R') {
                                      PinReset();  
                                  }      
                              });
                              
                              function PinEingabe () {
                                  PinTemp = (PinTemp + PinTast);
                                  PinAnz = (PinAnz + '*');
                                  setState('javascript.0.alarm.Pin.Disable.PinAnz', PinAnz);
                                  PinLae = (PinLae +1) ;
                              }
                              
                              function unscharf(){
                                  setState('javascript.0.alarm.in.disable', true);
                                  setState('javascript.0.alarm.Pin.Disable.VisKeyPad', false);
                                   if(logging) log('Deaktivierung der Alarmanlage durch Pineingabe erfolgreich');
                              ///////////////////////////////////////////////////// Hier musst du dann deinen Türöffner auf machen reinschreiben    
                              }
                              
                              function PinPruef() {
                                  if (PinTemp == PinSoll) {
                                      if(logging) log('PinEingabe Disable erfolgreich');
                                      unscharf();
                              
                                      setTimeout(function() {
                              
                                          PinReset();
                                      }, 10 * 1000);
                              
                                  } else {
                                      if(logging) log('Pin Eingabe Disable falscher Pin');
                                      setState('javascript.0.alarm.Pin.Disable.PinFehler', true);
                                      PinReset();
                                  }
                              }    
                              
                              function PinReset() {
                                      PinLae=0;
                                      PinAnz="";
                                      PinTemp="";
                                      setState('javascript.0.alarm.Pin.Disable.PinAnz', PinAnz);
                              }
                              

                              ![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201809 ... 7cd9df.jpg">https://uploads.tapatalk-cdn.com/20180908/edecb9375e9d54b22520a997817cd9df.jpg</link_text>" />![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201809 ... 2886a3.jpg">https://uploads.tapatalk-cdn.com/20180908/e94274682ddb4ab61a195dbe022886a3.jpg</link_text>" />~~~~ 6558_unbenannt.png
                              6558_unbenannt1.png

                              1 Reply Last reply Reply Quote 0
                              • Homer.J.
                                Homer.J. last edited by

                                Hallo Smartboard,

                                wie Integriere ich jetzt die Pin Eingabe in die Alarmanlage hab das Script und das Widget am laufen.

                                Grüße

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

                                  Wie gesagt habe es 2 mal am laufen . Ich beschreibe mit der pineingabe das state für disable und mit der 2. Pineingabe das state für stop..

                                  Die button dafür aus der alarmanlage setzen den state aus dem pinpad welches ich für vis eingefügt habe…

                                  Sobald also der button deaktiviern oder stop gedrückt wird , öffnet sich das pin pad .sobald der code richtig eingegeben wurd wird der state disable oder stop beschrieben und das pad verschwindet.

                                  function unscharf(){

                                  setState('javascript.0.alarm.in.disable', true);

                                  setState('javascript.0.alarm.Pin.Disable.VisKeyPad', false);

                                  if(logging) log('Deaktivierung der Alarmanlage durch Pineingabe erfolgreich');

                                  Gesendet von meinem SM-G800F mit Tapatalk

                                  ![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201809 ... 0fd20f.jpg">https://uploads.tapatalk-cdn.com/20180908/ac0f04bfb882b922ff039b653a0fd20f.jpg</link_text>" />

                                  1 Reply Last reply Reply Quote 0
                                  • Homer.J.
                                    Homer.J. last edited by

                                    Setze ich es nur ins Logik Script mit ein, ? ich habe keinen Ansatz wie ich es jetzt umsetzen soll.

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

                                      Also ganz einmfach …

                                      Hier das Beispiel der Einstellungen des PinPad und der Deaktivieren Taste.

                                      Das Pinpad habe ich gruppiert als ein Widget.

                                      Bei Sichtbarkeit so einstellen, das es nur sichtbar ist wenn deaktivieren gedrückt wird.

                                      Der deaktivieren Button setz den State

                                      setState('javascript.0.alarm.Pin.Disable.VisKeyPad', true);

                                      Dieser macht das Pinpad Sichtbar.

                                      Das Script Pinbutton eretzt nun den den Buton für Deaktivieren, da es nun den State beschreibt welcher zuvor durch den Deaktivieren Button gestezt wurde.

                                      Siehe Fotos.

                                      Script 1 für deaktivieren / disable:

                                      // -----------------------------------------------------------------------------
                                      // allgemeine Variablen
                                      // -----------------------------------------------------------------------------
                                      var logging = true;                                                        // Logging on/off
                                      var instanz = 'javascript.0';  instanz = instanz + '.Alarm';                     // 
                                      
                                      var pfad0 =     'alarm.Pin.Disable.';                        // Pfad innerhalb der Instanz 
                                      
                                      // -----------------------------------------------------------------------------
                                      // Variablen für Pin-Abfrage
                                      // -----------------------------------------------------------------------------
                                      var PinTast = "";                   // Inhalt der Eingabe
                                      var PinTemp ="";                    // Puffer für eingegebe Ziffern
                                      var PinLae = 0;                     // Pin-Länge bei Eingabe
                                      
                                      var PinState = false ;              // Eingabestatus - Eingabe beginnt nach Taste '#' und wird mit Taste '#' abgeschlossen
                                      var PinFehl =false;                 // Statusflag für fehlerhafte Eingabe
                                      var PinAnz = "";                    // Angezeiger 'Displaytext' z.B. ****
                                      
                                      var PinSoll = 1111;                 // Pin die zur Deaktivierung der Alarmanlage benötigt wird
                                      
                                      // -----------------------------------------------------------------------------
                                      // Objekte
                                      // -----------------------------------------------------------------------------
                                      
                                      // Objekte für Pin-Eingabe
                                      createState(pfad0 + 'PinSelect', "" , {name: 'Pin-Eingabe'});
                                      createState(pfad0 + 'Pin', '0000' ,  {name: 'Pin'});
                                      createState(pfad0 + 'PinFehler', false ,  {name: 'Pin-Fehler'});
                                      createState(pfad0 + 'PinAnz', '' ,  {name: 'Pin-Anzeige'});
                                      createState(pfad0 + 'VisKeyPad', '' ,  {name: 'State für Vis Keypad Sichtbar'}); //State für Vis Keypad Sichtbar wird von Button in Vis beschrieben und bei unscharf zurück gesetzt
                                      
                                      // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                                      // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                                      // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                                      // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                                      
                                      // #############################################################################
                                      // #                                                                           #
                                      // #  Pin-Abfrage                                                              #
                                      // #                                                                           #
                                      // #############################################################################
                                      
                                      on('javascript.0.alarm.Pin.Disable.PinSelect', function (dp) {
                                          if (dp.newState.val === 0 || dp.newState.val === 1 || dp.newState.val === 2 || dp.newState.val === 3 || dp.newState.val === 4 || dp.newState.val === 5 || dp.newState.val === 6 || dp.newState.val === 7 || dp.newState.val === 8 || dp.newState.val === 9) {
                                              PinTast = dp.newState.val;
                                              PinEingabe();
                                          }  
                                          if (dp.newState.val === 'E') {
                                              PinPruef();
                                          }      
                                          if (dp.newState.val === 'R') {
                                              PinReset();  
                                          }      
                                      });
                                      
                                      function PinEingabe () {
                                          PinTemp = (PinTemp + PinTast);
                                          PinAnz = (PinAnz + '*');
                                          setState('javascript.0.alarm.Pin.Disable.PinAnz', PinAnz);
                                          PinLae = (PinLae +1) ;
                                      }
                                      
                                      function unscharf(){
                                          setState('javascript.0.alarm.in.disable', true);
                                          setState('javascript.0.alarm.Pin.Disable.VisKeyPad', false);
                                           if(logging) log('Deaktivierung der Alarmanlage durch Pineingabe erfolgreich');
                                      ///////////////////////////////////////////////////// Hier musst du dann deinen Türöffner auf machen reinschreiben    
                                      }
                                      
                                      function PinPruef() {
                                          if (PinTemp == PinSoll) {
                                              if(logging) log('PinEingabe Disable erfolgreich');
                                              unscharf();
                                      
                                              setTimeout(function() {
                                      
                                                  PinReset();
                                              }, 10 * 1000);
                                      
                                          } else {
                                              if(logging) log('Pin Eingabe Disable falscher Pin');
                                              setState('javascript.0.alarm.Pin.Disable.PinFehler', true);
                                              PinReset();
                                          }
                                      }    
                                      
                                      function PinReset() {
                                              PinLae=0;
                                              PinAnz="";
                                              PinTemp="";
                                              setState('javascript.0.alarm.Pin.Disable.PinAnz', PinAnz);
                                      }
                                      

                                      Script 2 für Alarm in stop

                                      // -----------------------------------------------------------------------------
                                      // allgemeine Variablen
                                      // -----------------------------------------------------------------------------
                                      var logging = true;                                                        // Logging on/off
                                      var instanz = 'javascript.0';  instanz = instanz + '.Alarm';                     // 
                                      
                                      var pfad0 =     'alarm.Pin.Stop.';                        // Pfad innerhalb der Instanz 
                                      
                                      // -----------------------------------------------------------------------------
                                      // Variablen für Pin-Abfrage
                                      // -----------------------------------------------------------------------------
                                      var PinTast = "";                   // Inhalt der Eingabe
                                      var PinTemp ="";                    // Puffer für eingegebe Ziffern
                                      var PinLae = 0;                     // Pin-Länge bei Eingabe
                                      
                                      var PinState = false ;              // Eingabestatus - Eingabe beginnt nach Taste '#' und wird mit Taste '#' abgeschlossen
                                      var PinFehl =false;                 // Statusflag für fehlerhafte Eingabe
                                      var PinAnz = "";                    // Angezeiger 'Displaytext' z.B. ****
                                      
                                      var PinSoll = 1111;                 // Pin die zur Deaktivierung der Alarmanlage benötigt wird
                                      
                                      // -----------------------------------------------------------------------------
                                      // Objekte
                                      // -----------------------------------------------------------------------------
                                      
                                      // Objekte für Pin-Eingabe
                                      createState(pfad0 + 'PinSelect', "" , {name: 'Pin-Eingabe'});
                                      createState(pfad0 + 'Pin', '0000' ,  {name: 'Pin'});
                                      createState(pfad0 + 'PinFehler', false ,  {name: 'Pin-Fehler'});
                                      createState(pfad0 + 'PinAnz', '' ,  {name: 'Pin-Anzeige'});
                                      createState(pfad0 + 'VisKeyPad', '' ,  {name: 'State für Vis Keypad Sichtbar'}); //State für Vis Keypad Sichtbar wird von Button in Vis beschrieben und bei unscharf zurück gesetzt
                                      
                                      // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                                      // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                                      // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                                      // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                                      
                                      // #############################################################################
                                      // #                                                                           #
                                      // #  Pin-Abfrage                                                              #
                                      // #                                                                           #
                                      // #############################################################################
                                      
                                      on('javascript.0.alarm.Pin.Stop.PinSelect', function (dp) {
                                          if (dp.newState.val === 0 || dp.newState.val === 1 || dp.newState.val === 2 || dp.newState.val === 3 || dp.newState.val === 4 || dp.newState.val === 5 || dp.newState.val === 6 || dp.newState.val === 7 || dp.newState.val === 8 || dp.newState.val === 9) {
                                              PinTast = dp.newState.val;
                                              PinEingabe();
                                          }  
                                          if (dp.newState.val === 'E') {
                                              PinPruef();
                                          }      
                                          if (dp.newState.val === 'R') {
                                              PinReset();  
                                          }      
                                      });
                                      
                                      function PinEingabe () {
                                          PinTemp = (PinTemp + PinTast);
                                          PinAnz = (PinAnz + '*');
                                          setState('javascript.0.alarm.Pin.Stop.PinAnz', PinAnz);
                                          PinLae = (PinLae +1) ;
                                      }
                                      
                                      function unscharf(){
                                          setState('javascript.0.alarm.in.stop', true);
                                          setState('javascript.0.alarm.Pin.Stop.VisKeyPad', false);
                                           if(logging) log('Stoppen der Alarmanlage durch Pineingabe erfolgreich');
                                      ///////////////////////////////////////////////////// Hier musst du dann deinen Türöffner auf machen reinschreiben    
                                      }
                                      
                                      function PinPruef() {
                                          if (PinTemp == PinSoll) {
                                              if(logging) log('PinEingabe Stop erfolgreich');
                                              unscharf();
                                      
                                              setTimeout(function() {
                                      
                                                  PinReset();
                                              }, 10 * 1000);
                                      
                                          } else {
                                              if(logging) log('Pin Eingabe Stop falsche Pin');
                                              setState('javascript.0.alarm.Pin.Stop.PinFehler', true);
                                              PinReset();
                                          }
                                      }    
                                      
                                      function PinReset() {
                                              PinLae=0;
                                              PinAnz="";
                                              PinTemp="";
                                              setState('javascript.0.alarm.Pin.Stop.PinAnz', PinAnz);
                                      }
                                      

                                      6558_2.png 6558_1.png

                                      1 Reply Last reply Reply Quote 0
                                      • Homer.J.
                                        Homer.J. last edited by

                                        Cool Danke dir funktioniert.

                                        Wünsch dir noch einen schönen Abend

                                        Grüße Steffen

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          Mr.Oz last edited by

                                          Hallo zusammen,

                                          ist mein erster Beitrag aber irgendwann muss man ja anfangen 😄

                                          Bin neu in der ioBroker und Java Welt und lerne noch.

                                          Habe zum Pad eine frage.

                                          Ist es möglich, dass die Angabe der Pins ohne kommunikation mit den Adapter funktioniert? Also im internen "Script"-Reiter in VIS. Also das jeder Button eine variable und das Textfeld füllt und erst bei Bestätigung der PinSelect angesprochen wird mit dem Wert der Variable.

                                          Ich betreibe den ioBroker an einem Raspberry und irgendwie sind die Antwortzeite zwischen Vis -> Js Script -> Vis bei der Eingabe langsam.

                                          Gruß

                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            MartinBr last edited by

                                            Hallo Smartboart,

                                            deine View sieht Klasse aus. Ich bin gerade dabei, mir eine solche Lösung aufzubauen. Irgendwie komme ich da nicht richtig weiter.

                                            Kannst du deine View von der Pin-Eingabe veröffentlichen?

                                            Ich wäre dir sehr dankbar.

                                            Gruß

                                            Martin

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            375
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            25
                                            56
                                            12825
                                            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