OH3, Shelly 2.5 Grenzwertüberschreitung der Leistungsaufnahme soll Aktion auslösen
Verfasst: 3. Aug 2021 00:04
OH3.
Anwendungsfall:
Nach dem jüngsten Hochwasser habe ich eine Tauchpumpe in einem Sickerschacht installiert.
Die Pumpe schaltet sich über einen Schwimmerschalter ein, sobald der Pegel ansteigt.
Ich möchte gerne benachrichtigt werden, wenn dieser Fall eintritt. Da an der Stelle, von der aus die Pumpe mit Strom versorgt wird, keine Verbindung zum KNX-Bus besteht, habe ich sie über einen Shelly 2.5 angeschlossen, der dauerhaft eingeschaltet ist.
Plan:
Die Shelly-Firmware bietet zwar keine Möglichkeit, bei Über-/Unterschreitung eines Schwellwertes eine Nachricht zu versenden, aber sie kann immerhin den Strom messen, der über das Relais fliesst.
Ich dachte mir, ich lege ein Item "Leistungsaufnahme" an, das ich mit dem Channel "meter2#currentWatts" des Shelly2.5-Things verbinde und lasse eine Rule bei jeder Veränderung des Wertes triggern.
Die Rule müsste den aktuellen Wert mit dem Schwellwert vergleichen und sich den vorherigen Wert merken, um zu unterscheiden, ob die Schwelle von unten oder von oben überquert wurde. Wenn der vorherige Wert unter und der aktuelle Wert über der Schwelle liegt, soll bspw. eine Mail versendet uind eine Status-LED im Haus aktiviert werden.
Wenn der vorherige Wert bereits über der Schwelle lag, braucht nicht getan werden.
Wenn der vorherige Wert über und der aktuelle Wert unter der Schwelle liegt, kann eine Mail zur Entwarnung versendet und die Status-LED wieder abgeschaltet werden.
Für die Benachrichtigung per Mail wäre vermutlich auch ein Timer sinnvoll, der den Fall abfängt, dass sich die Pumpe in kürzerer Zeit mehrfach ein- und ausschaltet.
Problem:
Ich habe noch keinen rechten Plan.
Kann mir jemand auf die Sprünge helfen, wie ich den meter2#currentWatts-Channel syntaktisch richtig auswerte?
Mit Timern habe ich bis auf eine Timer, der innerhalb einer Rule einfach vor dem nächsten Befehl eine Zeit abwartet, noch keine Erfahrung. Was ist sinnvoller?
- Die Rule von der Veränderung der gemessenen Leistung triggern lassen und ja nachdem, ob sich die Lage verändert hat, den Timer starten oder weiterlaufen lassen.
- Die Rule zyklisch ausführen und überprüfen lassen, ob sich die Lage verändert hat.
In beiden Fällen wird so wie ich das verstehe, jeweils eine neue Instanz der selben Rule gestartet. Kann die neue Instanz der Rule auf die Variablen zugreifen, in denen die vorherige Instanz die ermittelten Zustände gespeichert hat? Oder muss ich ein Hilfsitem anlegen, in dem die aktuelle Instanz der Rule den aktuellen Wert zum Abruf durch die Folgeinstanz ablegt?
Besten Dank für Rat und herzliche Grüße
Michael
Anwendungsfall:
Nach dem jüngsten Hochwasser habe ich eine Tauchpumpe in einem Sickerschacht installiert.
Die Pumpe schaltet sich über einen Schwimmerschalter ein, sobald der Pegel ansteigt.
Ich möchte gerne benachrichtigt werden, wenn dieser Fall eintritt. Da an der Stelle, von der aus die Pumpe mit Strom versorgt wird, keine Verbindung zum KNX-Bus besteht, habe ich sie über einen Shelly 2.5 angeschlossen, der dauerhaft eingeschaltet ist.
Plan:
Die Shelly-Firmware bietet zwar keine Möglichkeit, bei Über-/Unterschreitung eines Schwellwertes eine Nachricht zu versenden, aber sie kann immerhin den Strom messen, der über das Relais fliesst.
Ich dachte mir, ich lege ein Item "Leistungsaufnahme" an, das ich mit dem Channel "meter2#currentWatts" des Shelly2.5-Things verbinde und lasse eine Rule bei jeder Veränderung des Wertes triggern.
Die Rule müsste den aktuellen Wert mit dem Schwellwert vergleichen und sich den vorherigen Wert merken, um zu unterscheiden, ob die Schwelle von unten oder von oben überquert wurde. Wenn der vorherige Wert unter und der aktuelle Wert über der Schwelle liegt, soll bspw. eine Mail versendet uind eine Status-LED im Haus aktiviert werden.
Wenn der vorherige Wert bereits über der Schwelle lag, braucht nicht getan werden.
Wenn der vorherige Wert über und der aktuelle Wert unter der Schwelle liegt, kann eine Mail zur Entwarnung versendet und die Status-LED wieder abgeschaltet werden.
Für die Benachrichtigung per Mail wäre vermutlich auch ein Timer sinnvoll, der den Fall abfängt, dass sich die Pumpe in kürzerer Zeit mehrfach ein- und ausschaltet.
Problem:
Ich habe noch keinen rechten Plan.
Kann mir jemand auf die Sprünge helfen, wie ich den meter2#currentWatts-Channel syntaktisch richtig auswerte?
Mit Timern habe ich bis auf eine Timer, der innerhalb einer Rule einfach vor dem nächsten Befehl eine Zeit abwartet, noch keine Erfahrung. Was ist sinnvoller?
- Die Rule von der Veränderung der gemessenen Leistung triggern lassen und ja nachdem, ob sich die Lage verändert hat, den Timer starten oder weiterlaufen lassen.
- Die Rule zyklisch ausführen und überprüfen lassen, ob sich die Lage verändert hat.
In beiden Fällen wird so wie ich das verstehe, jeweils eine neue Instanz der selben Rule gestartet. Kann die neue Instanz der Rule auf die Variablen zugreifen, in denen die vorherige Instanz die ermittelten Zustände gespeichert hat? Oder muss ich ein Hilfsitem anlegen, in dem die aktuelle Instanz der Rule den aktuellen Wert zum Abruf durch die Folgeinstanz ablegt?
Besten Dank für Rat und herzliche Grüße
Michael