Beiträge von Christian Telekraft

    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!