Universal KeyPad für Webfront

Sorry, hatte falsch kopiert:(:confused:

Super Script, danke dafür!

Ich habs mir ein bisschen angepasst:

  • Passwort-Feld, damit nur die Punkte/Sternchen zu sehen sind
  • Passwort-Feld zur direkten Eingabe gesperrt, damit man die Buttons vom Keypad verwenden muss.
  • 10 Sekunden nach letzter Eingabe wird das Feld gelöscht

Falls Interesse besteht, kann ichs gerne hochladen.

lg,
Christian.

Hallo.

Immer her damit.

Sent from my iPhone using Tapatalk

Und bei Bedarf baue ich es in den Exporter ein.

na gut g

Datei: webfront/user/keyboard/js/keyboard.js

$(function(){    var $write = $('#write'),
        shift = false,
        capslock = false;
        


    // Function um Parameter aus der URi zu holen
    function get_url_param( name )
    {
        name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");


        var regexS = "[\\?&]"+name+"=([^&#]*)";
        var regex = new RegExp( regexS );
        var results = regex.exec( window.location.href );


        if ( results == null )
            return "";
        else
            return results[1];
    }


    // Parameter ipsValue aus URi lesen
    ipsValue = get_url_param('ipsValue');


    var anon = function() 
    {
        $write.val("Werner");
    }
    


    
    $('#keyboard li').click(function(){
        var $this = $(this),
            character = $this.val(); // If it's a lowercase letter, nothing happens to this variable
        
        // Shift keys
        if ($this.hasClass('left-shift') || $this.hasClass('right-shift')) {
            $('.letter').toggleClass('uppercase');
            $('.symbol span').toggle();
            
            shift = (shift === true) ? false : true;
            capslock = false;
            return false;
        }
        
        // Caps lock
        if ($this.hasClass('capslock')) {
            $('.letter').toggleClass('uppercase');
            capslock = true;
            return false;
        }
        
        // Delete
        if ($this.hasClass('delete')) {
            var html = $write.val();
            
            $write.val(html.substr(0, html.length - 1));
            return false;
        }
        
        // Special characters
        if ($this.hasClass('symbol')) character = $('span:visible', $this).html();
        if ($this.hasClass('space')) character = ' ';
        if ($this.hasClass('tab')) character = "	";
        if ($this.hasClass('return')) character = "
";
        
        // Uppercase letter
        if ($this.hasClass('uppercase')) character = character.toUpperCase();
        
        // Remove shift once a key is clicked.
        if (shift === true) {
            $('.symbol span').toggle();
            if (capslock === false) $('.letter').toggleClass('uppercase');
            
            shift = false;
        }
    
        // Senden
        if ($this.hasClass('senden')) {
            var html = $write.val();
            
                        xhReq = new XMLHttpRequest;
                        xhReq.open("POST","keyboard-receive.php",true);
                        xhReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                        action = "value=" + $write.val();
                        action += "&ipsValue=" + ipsValue;
                        xhReq.send(action);
                        // Eingabefeld der Tastatur löschen
                        $write.val(html.substr(0, html.length - html.length));


                        skipThis = false;
                        
            return false;
        }


    
        // Add the character
        $write.val($write.val() + character);
    
        var timerid;    
        $write.change(function(e){
            var value = $(this).val();
            if($(this).data("lastval")!= value){
                $(this).data("lastval",value);
                


                clearTimeout(timerid);
                timerid = setTimeout(function() {


                    //change action
                    $write.val("");   


                },10000);


            };
        }).change();
            
    });
});

Datei: webfront/user/keyboard/index.html

hier wurde nur die Zeile

    <textarea id="write" rows="1" cols="4"></textarea>

mit dieser hier ausgetauscht:

    <input type="password" id="write" readonly></input>

Hallo Leute,

habe zum Testen den KeyPad auf meinen Banana Pi installiert.
Leider kommen meine Eingaben in die Variable nicht an :frowning:
SSL ist nicht aktiviert.

Muss man den Script an Linux irgendwie anpassen?

Gruß

Funktioniert das KeyPad unter IPS 4 noch ?

unter IPS4 hab ichs nicht zum laufen bekommen.
scheint wie sewo geschrieben hat was mit dem senden des Keypads was zu tun zu haben. Jedenfalls kommt nix an. Bin leider nicht schlau genug um das Problem zu lösen.
Evtl kann ja wgreipl was dazu sagen.

Hi,

Script von POST auf GET Umstellen :slight_smile:

Hier die Anleitung
https://www.symcon.de/forum/threads/27160-POST-requests

Gruß

Danke, auch an Thorsten.

Am Wochenende mal getestet!

Klappt!

Dank Werner und Thorsten gestern erst mal das Keypad ausprobiert… was soll ich sagen … läuft super ! Danke euch

Hallo,

Danke an alle für das Gute keypad.
Nach langen Test funktioniert jetzt alles.

Danke
Thomas

Also bei mir läuft das Keypad auch mit SSL! Ich habe lediglich in der index.html beim einbinden von jQuery das http: entfernt. Dadurch wird jQuery bei https ebenfalls per https geladen und bei http eben mit http. Funktioniert einwandfrei. Hier noch die Zeile aus der index.html

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

So ich hab das Teil heute auch mal ausprobiert und wenn man alle Anpassungen macht (also Umstellung von POST auf GET) funzt es wunderbar!

Vielen Dank für das tolle KeyPad ! Funktioniert super ! Endlich kann ich meine Alarmanlagenfunktionen schützen und sinnvoll einsetzen.

Hi, erstmal danke für das KEY-Pad!! …hab es eingebunden und es läuft fast prima. :smiley:
Intern an meinem Wandtablet bei der Eingangstür (http) läuft es.
Aber in der iOS App, mit der ich über (https) auf die Symcon gehe, kommt leider nichts - eeeeehhhh scharrzzeee bildschiiiirmmm… :eek::stuck_out_tongue:

Aus dem Post #34

Also bei mir läuft das Keypad auch mit SSL! Ich habe lediglich in der index.html beim einbinden von jQuery das http: entfernt. Dadurch wird jQuery bei https ebenfalls per https geladen und bei http eben mit http. Funktioniert einwandfrei. Hier noch die Zeile aus der index.html

Und aus dem Post#25

Datei: webfront/user/keyboard/index.html

…hab auch jetzt den RasPi neugestartet - aber funktionieren will es leider trotzdem nicht… :confused:

EDIT: Es geht aber!!! - Über alle möglichen Browser geht es! - nur in der Symcon APP geht es nicht!

Hallo,

ich habe den Artikel sehr interesiert gelesen, da ich genau so ein Keypad für die Eingabe des Zählerstandes des Gaszählers gebrauchen könnte.
Leider fehlt mir der Ansatz wie ich das Skript einbinde.

Was ich schon gemacht habe ist:

  • ein Skript angelegt
  • in das Skript den PHP Code rein kopiert
  • eine Variable angelegt, in der der Wert dann gespeichert werden soll

Wenn ich das Skript im ausführe bekomme ich folgenden Fehler:


Parse error:  syntax error, unexpected '(', expecting variable (T_VARIABLE) or '$' in /var/lib/symcon/scripts/37004.ips.php on line 3

Ich denke ich mache etwas grundsätzliches falsch…

Über einen Tipp wäre ich sehr dankbar.

Gruß
Christian

Das Skript im ersten Beitrag enthält in Zeile 3 keine runde Klammer, sondern einen Kommentar… also von welchem Skript stammt diese Meldung?

Abend,
Danke an Alle für die Infos. Habe es mit Müh und Not hinbekommen, das ich mit dem Keypad meine Alarmanlage scharf (nach 30 Sek.) und unscharf (sofort) schalten kann…
lg