Ausführung eines Events verhindern

Hinweis zur Nutzung von Skripten (für Nutzer)

Die Verwendung von Skripten erfolgt ausdrücklich auf eigene Gefahr. Weder Shelly noch die jeweiligen Autoren oder Entwickler der Skripte übernehmen irgendeine Form der Haftung für mögliche Schäden, Fehlfunktionen, Datenverluste oder anderweitige Beeinträchtigungen, die durch die Nutzung dieser Skripte entstehen könnten. Bitte stellen Sie vor dem Einsatz sicher, dass Sie den Quellcode verstehen und sich der möglichen Auswirkungen bewusst sind. Die Skripte werden ohne Gewähr bereitgestellt und unterliegen keiner regelmäßigen Wartung oder offiziellen Unterstützung.


Hinweis für Entwickler

Wenn Sie eigene Skripte bereitstellen, achten Sie bitte darauf, eine klare Beschreibung, eventuelle Einschränkungen und Sicherheitsaspekte zu dokumentieren. Beachten Sie zudem, dass Nutzer Ihre Skripte grundsätzlich auf eigenes Risiko verwenden. Eine Haftung für Schäden ist ausgeschlossen, sofern diese nicht vorsätzlich oder grob fahrlässig verursacht wurden oder gesetzlich anderweitig geregelt ist.

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.

  • Kontext:

    Mein SMA Sunny Home Manager steuert verschiedene Geräte über Shellys. Diese sollen möglichst viel mit SolarStrom laufen. In gewissen Fällen muss dies jedoch einfach übersteuert werden können (z.B. Trockner trotzdem einschalten, weil die Raumfeuchte einen Schwellwert übersteigt oder per Knopfdruck trotzdem den Geschirrspüler starten). Über den Sunny Manager lässt sich so etwas nicht realisieren. Wenn ich nun per Shelly App oder über den Taster Eingang den Shelly übersteuere, so wird dies durch den Home Manager erkannt und er sendet unmittelbar einen Event info":{"component":"switch:0","id":0,"event":"toggle","state":false} und schaltet gleich wieder aus.

    Lösungsansatz:

    Ich schalte den Shelly per Knopfdruck oder Szene ein und überwache dann mit einer Funktion den Stromverbrauch, prüfe ob das Gerät gerade läuft (die Variable active wird gesetzt) und lasse nicht zu, dass ausgeschaltet wird, bis das Gerät wieder aus ist. Der Eventhandler sieht so aus:

    Frage:

    Wie kann ich verhindern, dass der Event parallel trotzdem ausgeführt wird. Ansonsten schaltet der Event das Relais aus und ich schalte es mit dem Eventhandler gleich wieder ein, was unschön ist. Kann der Event irgendwie gedroppt werden oder kann der event.info.state auf true umgeschrieben werden?

  • Hallo @Highcooley,

    Events sind lediglich Benachrichtigungen für bereits eingetretene Ereignisse (Shelly-Notifications). Es ist daher nicht möglich, Events zu droppen, bzw. würde sowas auch keinen großen Nutzen bringen.

    Stattdessen kannst du den Eingang auf 'detached' stellen und deine Schaltlogik vollständig über ein Skript realisieren.

  • Danke @De kat

    Detached mode gibt es aber nur für den physischen SW Eingang. Oder gibt es eine Möglichkeit HTTP calls, oder wie auch immer SMA den Schaltvorgang remote auslöst, ebenfalls detached zu verarbeiten?

  • Kann dein SMA Sunny Home Manager auch eine URL senden, anstatt eines Shelly Schaltbefehls?

    Also nicht

    Bedingung erfüllt -> schalte Shelly ein

    sondern

    Bedingung erfüllt -> rufe URL http://192.168.178.33/script/1/switch?on auf.

    Dann könnte man das mit einem HTTP-Endpoint lösen.

    @De kat Du weißt, worauf ich hinaus will?

    Eingang auf 'detached' stellen und deine Schaltlogik vollständig über ein Skript realisieren