Beiträge von Highcooley

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.

    Wenn man einen Shelly 3EM in den Sunny Home Manager einbindet, sind die Messeinheit und das Relais zwei separate Geräte. Warum das technisch so ist, ist unklar. Auf alle Fälle führt das dazu, dass man den 3EM nur separat entweder als Messeinheit oder als Schalter für Verbraucher verwenden kann, da SMA nicht zulässt, dass man mit einem Gerät den Verbraucher misst und diesen mit einem anderen Gerät schaltet. Trotzdem kann ich die Messeinheit als Messen und Schalten einrichten, nur dass der Event Shelly-seitig nicht verarbeitet wird. Die Frage ist nun, ob es irgendwie möglich ist, den Schalt-Event ohne Scripting (kann der 3EM ja nicht) an das Relais weiterzuleiten.

    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?