Individuelle Taster Aktionen

Die Verwendung von Skripten liegt im eigenen Ermessen des Benutzers. Unterstützung für Skripte wird vom Autor des Skripts bereitgestellt.

VPN/Proxy erkannt

Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.

  • Mit diesem Skript können individuelle Tastenaktionen erstellt werden.

    Mit "pushTime:" kann man Aktionen für lange Tastendrücke und mit "multiPush:" Aktionen für mehrere Tastendrücke erstellt werden.

    Man kann/muss den Aktionen eigene Namen geben, für "openWindow" könnte das in etwa so aussehen openWindow: {pushTime: 7, shellyCall: ['Switch.Toggle', {id: 0}]},.

    Es können sowohl pushTime- als auch multiPush-Aktionen kombiniert werden, sowie mehrere benutzerdefinierte Aktionen parallel erstellt werden, bis zu 40 Aktionen in einem Skript.

    Beispiel: pushTime: 15, pushTime: 5, pushTime: 10. Abhängig von der Dauer des Tastendrucks 15, 10 oder 5 Sekunden wird der entsprechende "shellyCall:" ausgeführt.

    Alle Aktionen beziehen sich auf den unter "cid" definierten Input/Button. Wer custom Button-Aktionen für mehrere lokale Inputs/Tasten erstellen will, kann das Script einfach mehrmals in verschiedenen Script Slots ausführen.

    Der "shellyCall:" Parameter benötigt ein Array [ ], in das man alles so eintragen kann, wie man es von einem Shelly.call() gewohnt ist.

    Shelly.call(), Callback Funktionen und userData werden ebenfalls unterstützt.

    Ich hoffe, ihr habt viel Spaß damit.

    Wenn ihr nen Fehler entdeckt oder einfach nur euer Feedback teilen möchtet , könnt ihr mir das jederzeit hier im Thread mitteilen.

    Update: 27.10.2023

    - Callback Beispiele hinzugefügt.

    - Debug Output neu formatiert.

    - Dekats Toolbox auf v1.7-Alpha angehoben.

    - Blink Funktion in die Toolbox eingebaut.

    MitBlink(BlinkCount,BlinkDelay,Call);kann man nun in Callbacks sehr einfach ein Bestätigungs-Blinken einbauen, alsoBlink(5,0.1,['Switch.Toggle',{id:0}]);würde 5 mal schnell Blinken.

    Das Skript fällt unter die, Apache License Version 2.0, January 2004, siehe Link für mehr Infos: https://github.com/ALLTERCO/shell…ob/main/LICENSE

    Vorschau:

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    19 Mal editiert, zuletzt von _[Deleted]_ (8. Dezember 2023 um 19:57) aus folgendem Grund: Neues Format für die ErrorChek call Answer, Fehler Ausgabe.

  • Da ich gefragt wurde, wie man mehrere Calls auf eine Aktion legt, stelle ich nun hier zwei Callback-Beispiele dafür bereit.

    Außerdem nutze ich in den Beispielen ein optionales Passwort in der URL sowie die neuen Blink() Funktion für ein Quittierungs-Blinken.

    Wenn man unter "let PW" sein Locales Gen1 oder Gen2 PW hinterlegt, ist seit FW 1.0.2, auch eine Remote-Steuerung mit Passwort möglich.

    Im Beispiel, unter Config, angelegte Aktionen:

    - über 2 Sekunden langer Push = Anschalten mit Auto off nach 15min sowie einmal langsam Quittierungs-Blinken,

    - über 5 Sekunden langer Push = Zentral Aus mit schnellen doppelten Quittierungs-Blinken:

    - 5 kurze Push = Zentral An mit schnellen doppelten Quittierungs-Blinken:

    - 1 kurzer Push = An / Aus

    Es wären auch Rolladen-, RGB-, Dimmer-Szenen oder andere offline/lokale Szenen mit mehreren Shellys möglich. ;)

    9 Mal editiert, zuletzt von _[Deleted]_ (27. Oktober 2023 um 21:09)

  • ostfriese

    Blink() ist in der Toolbox direkt unter Efilter angelegt, im Grunde ist Blink() ein sehr kompakter Intervall Call, ich habe die Toolbox relativ weit ans Ende gepackt.

    Ein Intervall Call ist für alle möglichen Sachen gut und Blink benötigt meine, Call() und Str() Funktionen, da hat es sich angeboten es direkt in die Toolbox zu packen.

    (Alle Funktionen in der Toolbox sind komprimiert)

    Code
    function Blink(bc,dl,c,st){//Call Blink funktion, bc=blinkCount, dl=blinkDelay, c=call->as_arry->[methode,parameter], st=startCount
        try{
            if(tH8) Timer.clear(tH8); tH8= 0; if(!Str(st)) st= 0;
            if(st < bc*2){st++;}else{st=0; return;}
            if(!tH8) tH8 = Timer.set(1000*dl,false,function(){Call(c[0],c[1],function(){tH8=0; Blink(bc,dl,c,st);},c[3],c[4]);});
            }catch(e){print('Error: Blink(), ',e);}}

    2 Mal editiert, zuletzt von _[Deleted]_ (28. Oktober 2023 um 00:12)

  • Blink Anwendungsbeispiel::

    MitBlink(BlinkCount,BlinkDelay,Call);kann man nun in Callbacks sehr einfach ein Bestätigungs-Blinken einbauen, alsoBlink(5,0.1,['Switch.Toggle',{id:0}]);würde 5 mal schnell das Relay 0 Blinken lassen.

  • Dieses Thema enthält 2 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind.