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.
    • D
      denjo last edited by

      so habe es jetzt hin bekommen, wie stelle ich jetzt ein das der ein gerät an oder aus schaltet bei richtiger Code eingabe und wo stelleich den Code ein???

      ich schätze mal dort irgendwie, muss wo jetzt 1111 steht zb der pin von mir rein? und wo muss das objekt rein was er deaktivieren soll? und wie verknüpfe ich das mit dem Code widket??
      3445_mghjv.png

      1 Reply Last reply Reply Quote 0
      • D
        denjo last edited by

        also sitze jetzt die ganze zeit davor aber bekomme es nicht hin, ändert sich irgendwo der wert wenn ich drauf rum drücke oder wie steuer ich ein gerät damit???

        1 Reply Last reply Reply Quote 0
        • D
          denjo last edited by

          ich habs verstanden dankeeee

          1 Reply Last reply Reply Quote 0
          • A
            ahfreezer last edited by

            Hallo zusammen,

            ich habe auch noch eine Frage zum hier vorgestellten tollen Skript.

            1.) Wofür wird der State "Pin" erstellt? Ich konnte im Skript nirgendswo eine Zeile finde, die auf diesen Datenpunkt verweist.

            *EDIT = Nr. 1 hat sich erledigt. Ich vermute mal, dass man in der Variable den eigentlich PIN auslagern soll damit dieser nicht im Skript steht.

            Habe ich mal so gemacht und die PIN dann per getState in die Variable geladen

            2.) Im Testskript wurde als Pin "1111" gewählt. Bei mir lässt es das Skript nicht zu zwei gleiche Zahlen hintereinander zu schreiben. Erfasse ich als PIN z.b. "1234" reagiert das Skript wie gewünscht. Habt ihr dieses Phänomen auch?

            Skript habe ich aus dem letzten Codeschnippsel Smartboart genommen und lediglich den Datenknoten Alarm in Alarmobjekte geändert.

            ! ````
            ! // -----------------------------------------------------------------------------
            // allgemeine Variablen
            // -----------------------------------------------------------------------------
            var logging = true; // Logging on/off
            var instanz = 'javascript.0'; instanz = instanz + '.Alarmobjekte'; //
            ! var pfad0 = 'Alarmobjekte.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.Alarmobjekte.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.Alarmobjekte.Pin.Disable.PinAnz', PinAnz);
            PinLae = (PinLae +1) ;
            }
            ! function unscharf(){
            setState('javascript.0.Alarmobjekte.in.disable', true);
            setState('javascript.0.Alarmobjekte.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.Alarmobjekte.Pin.Disable.PinFehler', true);
            PinReset();
            }
            }
            ! function PinReset() {
            PinLae=0;
            PinAnz="";
            PinTemp="";
            setState('javascript.0.alarm.Pin.Disable.PinAnz', PinAnz);
            }

            1 Reply Last reply Reply Quote 0
            • A
              ahfreezer last edited by

              OK, hab's selbst gelöst.

              Das Skript wird bei gleichem Wert schlicht weg nicht neu getriggert. Daher kommt die Zahl nie an.

               setState('javascript.0.Alarmobjekte.Pin.Disable.PinSelect', '11'); 
              

              Ich setze nach jeder Zahl das Feld auf eine zweistellige Zahl. Damit stell ich sicher, dass beim nächsten Drücken

              der Wert auf jeden Fall gezogen wird.

              Oder habt ihr bessere Ideen/Erklärungen.

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

                Change any Dann wird auch bei gleichen Zahlen getriggert

                Gesendet von meinem CLT-L09 mit Tapatalk

                1 Reply Last reply Reply Quote 0
                • I
                  ifled88 last edited by

                  @smartboart:

                  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>" /> ` ~~@smartboart

                  Würdest du dein View incl widget auch hergeben :-)?

                  oder gar dein Projekt? :mrgreen:~~

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

                    Hallo, nein das kann ich leider nicht… Bei exportieren werden sämtliche persönliche Daten Passwörter IP zugangsdaten Pins und vieles mehr mitgenommen...eben alles was in den widgets hinterlegt ist... Das zu filtern ist zu viel Aufwand... Dafür habe ich keine Zeit... Und mit den Daten gebe ich nix raus... Sorry

                    Gesendet von meinem CLT-L09 mit Tapatalk

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

                      @smartboart:

                      Hallo, nein das kann ich leider nicht… Bei exportieren werden sämtliche persönliche Daten Passwörter IP zugangsdaten Pins und vieles mehr mitgenommen...eben alles was in den widgets hinterlegt ist... Das zu filtern ist zu viel Aufwand... Dafür habe ich keine Zeit... Und mit den Daten gebe ich nix raus... Sorry

                      Gesendet von meinem CLT-L09 mit Tapatalk `

                      Und der anonymisierte Export funktioniert nicht?

                      1 Reply Last reply Reply Quote 0
                      • C
                        ChrisXY @ifled88 last edited by

                        @delfser said in Pincode Eingabe Alarmanlage:

                        @smartboart:

                        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>" /> ` ~~@smartboart

                        Würdest du dein View incl widget auch hergeben :-)?

                        oder gar dein Projekt? :mrgreen:~~

                        hui das schaut echt schön aus dein VIS 🙂 Also da hätte ich auch Intresse dran. Aber beim Thema VIS bin ich noch nicht ganz angekommen. Bin aktuell noch mit Blockly sachen zu gange 😉

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

                          Hi,
                          hier nochmal das Widget.

                          Grüße

                          Alarm_Pincode.txt

                          1 Reply Last reply Reply Quote 0
                          • S
                            sectorchan last edited by

                            Wie ist denn die Alarmausgabe bei euch realisiert?
                            Gibts auch was mit mit SIM Karte und sms verschicken?

                            T S CKMartens 3 Replies Last reply Reply Quote 0
                            • T
                              tempestas @sectorchan last edited by

                              @sectorchan

                              Telegram und bei Aktivierung "laut" Alarm auch auf Sonos

                              1 Reply Last reply Reply Quote 0
                              • K
                                KabaKoenig last edited by

                                Danke für alle die an diesem Projekt gearbeitet haben.
                                Ich hätte noch eine Frage zur Pin-Eingabe, ist es möglich das man mehrere Codes abfragt?
                                Und natürlich hallo an alle ich bin voll dabei mich einzuarbeiten.
                                Liebe Grüße
                                Timo

                                1 Reply Last reply Reply Quote 0
                                • S
                                  smarti2015 @sectorchan last edited by

                                  @sectorchan
                                  Normale Benachrichtigungen und Statusmeldungen lasse ich mir per Telegram zuschicken.

                                  Für die Alarmanlage und andere sehr wichtige Infos nutze ich Pushover.
                                  Bei Pushover kann man sich schön den Dark Mode einstellen und wenn man die Benachrichtigung auf "Priorität hoch" stellt, erscheinen die ganze dringenden Benachrichtigungen, wie z.B eine Fenster wurde grad geöffnet bei scharfer Alarmanlage, rot hinterlegt.

                                  Zusätzlich kannst du bei Pushover dir noch einen kurze oder auch langen eindringlichen Benachrichtigungston hinterlegen, was jetzt bei einem Auslösen der Alarmanlage super ist.
                                  Also ich finde es mit Pushover für die Alarmanlage perfekt.

                                  1 Reply Last reply Reply Quote 0
                                  • CKMartens
                                    CKMartens @sectorchan last edited by

                                    @sectorchan ginge auch mit Asterisk eine gesprochene Nachricht an eine Rufnummer zu schicken.

                                    Danny 0 1 Reply Last reply Reply Quote 0
                                    • Danny 0
                                      Danny 0 @CKMartens last edited by

                                      Hi,

                                      danke für den Quellcode. Ich habe ihn noch etwas erweitert.
                                      Neue Funktion:

                                      1. Auswahl Zwischen Pin aus der Variablen oder Quellcode
                                      2. Vorschau in der Vis von der eingegebenen Zahl, die dann aber wieder verschwindet nach ein paar Millisekunden
                                      3. Reaktion auf Taste "#" und "-" anstelle von "R" und "E"
                                      4. Nachricht in der VIS wenn der Pin Richtig oder Falsch war
                                      // -----------------------------------------------------------------------------
                                      // 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 PinShowLastState = true ;       // Zeigt die letzte eingegeben Zahl in der Variable VisKeyPad an z.B. ***4 diese Verschwindet automatisch nach einer gewissen zeit
                                      var PinShowLastStateDelay = 400 ;   // Zeit in ms (Millisekunden) die die letzte eingebene Zahl angezeigt wird
                                      
                                      var PinSoll = getState(pfad0 + 'Pin').val;         // Pin die zur Deaktivierung der Alarmanlage benötigt wird
                                      // var PinSoll = String("1111");         // Pin die zur Deaktivierung der Alarmanlage benötigt wird
                                      
                                      var PinUnlockMsg = "unlock"         // Text der in PinAnz zu sehen ist wenn der Pin i.O. eingegeben wurde
                                      var PinFailureMsg = "failure"         // Text der in PinAnz zu sehen ist wenn der Pin i.O. eingegeben wurde
                                       
                                      // -----------------------------------------------------------------------------
                                      // Objekte
                                      // -----------------------------------------------------------------------------
                                       
                                      // Objekte für Pin-Eingabe
                                      createState(pfad0 + 'disable', false ,  {name: 'Alarm abschalten'});
                                      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({id: 'javascript.0.alarm.Pin.PinSelect', change: "any"}, function (dp) {
                                          if (dp.state.val === 0 || dp.state.val === 1 || dp.state.val === 2 || dp.state.val === 3 || dp.state.val === 4 || dp.state.val === 5 || dp.state.val === 6 || dp.state.val === 7 || dp.state.val === 8 || dp.state.val === 9) {
                                              PinTast = dp.state.val;
                                              PinEingabe();
                                          }  
                                          if (dp.state.val === '#') {
                                              PinPruef();
                                          }      
                                          if (dp.state.val === '-') {
                                              PinReset();  
                                          }      
                                      });
                                       
                                      function PinEingabe () {
                                          PinTemp = (String(PinTemp) + String(PinTast));
                                          setState('javascript.0.alarm.Pin.VisKeyPad', PinAnz + PinTast);
                                          PinAnz = String(PinAnz + '*');
                                          // setState('javascript.0.alarm.Pin.PinAnz', PinAnz);
                                          timeout = setTimeout(async function () {setState('javascript.0.alarm.Pin.VisKeyPad', PinAnz); }, PinShowLastStateDelay);              
                                          PinLae = (PinLae +1) ;
                                      }
                                       
                                      function unscharf(){
                                          setState('javascript.0.alarm.Pin.PinAnzStat',1);
                                          setState('javascript.0.alarm.Pin.disable', true);
                                          setState('javascript.0.alarm.Pin.VisKeyPad', PinUnlockMsg);
                                          timeout_unscharf = setTimeout(async function () {setState('javascript.0.alarm.Pin.VisKeyPad', ""); }, 2000);
                                          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();
                                              // Resette den Pin nach 2 Sekunden
                                              setTimeout(function() {
                                                  PinReset();
                                              }, 2 * 1000);
                                          } else {
                                              if(logging) log('PinEingabe Fehler');
                                              PinAnzStat = 2;
                                              setState('javascript.0.alarm.Pin.PinAnzStat', 2);
                                              setState('javascript.0.alarm.Pin.PinFehler', true);
                                              setState('javascript.0.alarm.Pin.disable', false);
                                              setState('javascript.0.alarm.Pin.VisKeyPad', PinFailureMsg);
                                              PinReset();
                                          }
                                      }    
                                       
                                      function PinReset() {
                                              if (PinTemp == PinSoll) {
                                                  setState('javascript.0.alarm.Pin.VisKeyPad', "");
                                              } else {
                                                  timeout_pinpruef = setTimeout(async function () {setState('javascript.0.alarm.Pin.VisKeyPad', ""); }, 1000);
                                              }
                                              PinLae=0;
                                              PinAnzStat=2;
                                              PinAnz="";
                                              PinTemp="";
                                              setState('javascript.0.alarm.Pin.PinAnzStat', 2);
                                              setState('javascript.0.alarm.Pin.PinAnz', PinAnz);
                                      }
                                      

                                      was noch kommt ... Maximale Falscheingabe des PIN, melde Objekt wenn zu oft falsch eingegeben wurde

                                      VG

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      586
                                      Online

                                      32.0k
                                      Users

                                      80.5k
                                      Topics

                                      1.3m
                                      Posts

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