Implementierung eines Doppelklick-Szenarios mit Shelly Plus 2 PM für Rollosteuerung

  • Hallo liebe Shelly-Community,

    ich arbeite derzeit an einem Projekt, bei dem ich meinen Shelly Plus 2 PM dazu bringen möchte, eine spezielle Aktion bei einem doppelten Tastendruck auszuführen.

    Mein Ziel ist es, die Rollos mit einem einfachen Tastendruck vollständig zu schließen oder zu öffnen, aber bei einem doppelten Tastendruck sollen sie nur zu 50% geschlossen werden.

    Ich habe bereits versucht, ein Skript zu erstellen, das diese Funktionalität umsetzt, indem es die Eingänge überwacht und entsprechend reagiert, wenn ein doppelter Tastendruck erkannt wird. Da ich jedoch neu in der Programmierung von Shelly-Geräten bin, bin ich mir nicht sicher, ob mein Ansatz korrekt ist oder ob es effizientere Methoden gibt.

    Ich würde mich sehr über eure Expertise und Ratschläge freuen, insbesondere bezüglich der Optimierung des folgenden Codes oder Vorschläge für einen besseren Ansatz. Hier ist, was ich bisher habe:

    import time

    import requests

    # Konfiguration

    TASTER_2_STATUS_URL = "http://<shelly-ip>/status" # URL, um den Status von Taster 2 zu überprüfen

    ROLLO_CONTROL_URL = "http://<shelly-ip>/roller/0" # URL, um das Rollo zu steuern

    CHECK_INTERVAL = 0.1 # Überprüfungsintervall in Sekunden

    DOUBLE_CLICK_THRESHOLD = 0.5 # Zeit in Sekunden, die als Doppelklick gilt

    last_press_time = 0

    while True:

    response = requests.get(TASTER_2_STATUS_URL).json()

    taster_2_pressed = response['inputs'][1]['input'] # Angenommener Pfad, prüfen Sie die tatsächliche Antwort

    if taster_2_pressed:

    current_time = time.time()

    if (current_time - last_press_time) <= DOUBLE_CLICK_THRESHOLD:

    # Doppelklick erkannt, Rollo auf 50% setzen

    requests.post(ROLLO_CONTROL_URL, json={"go_to_pos": 50})

    time.sleep(1) # Kurze Pause, um kontinuierliche Doppelklick-Erkennung zu vermeiden

    last_press_time = current_time

    time.sleep(CHECK_INTERVAL)


    Bitte beachtet , dass dies ein grundlegendes Konzept ist und ich die genauen API-Endpunkte und Datenformate gemäß der Shelly-Dokumentation nicht kenne. Jede Hilfe oder Anleitung, wie ich dies verbessern kann oder ob es einen besseren Ansatz gibt, wäre sehr willkommen.

    Vielen Dank im Voraus für die Unterstützung!

  • Wilkommen im Forum 🤗

    Kann dir nicht helfen bei dem Script 😉 aber

    Ist das auch der Shelly 2PM der deinen Rollladen steuert? Also im Cover Mode?

    Wenn ja 🤗 glaube dann gibt es die Tast-Kombi nicht

    Wenn es ein anderer ist (Relais Mode) dann geht es auch mit HTTP Request

    Shelly’s: 2x 1, 10x 1PM , 4x 2.5, 3x i3, 10x Plus 1PM, 22x Plug S, 11x UNI, 2x 1L mit PIR, 8x AddOn mit Temp/DHT22, 3x RGBW2, 2x Plus i4, 5x Plus 1, 4x Plus 2PM, 4x EM, 2x 3EM, 1x TRV, 3x Plus AddOn, 1x Pro 3EM, 2x BLU, 5xPlusPMmini, 1xPlus1PMmini, 4xPlusUNI

    Fritz!Box5690pro, 3x FRITZ!Repeater6000, 6x Fritz!Dect200

    HomeAssistant auf RaspberryPi5(8GB) mit NVMe, HomeAssistant auf Synology DS1019+, Backup HomeAssistant auf RaspberryPi4B(4GB)

    DHT21 (AM2301) oder (AM2320) für unter 0 Grad