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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • 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

      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

                                  784
                                  Online

                                  31.7k
                                  Users

                                  79.9k
                                  Topics

                                  1.3m
                                  Posts

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