Geht sowas in der Tasmotaumgebung nicht?
(Hier ist es praktisch unmöglich, auf das "Vollzitat" zu verzichten, weil ein @ nicht ausreicht zu erkennen, auf welchen Beitrag ich mich beziehe.)
Das geht natürlich auch dort - kommt aber auch ein wenig auf die verwendeten Geräte an.
Bei einer SP111 könnte man die Aufgabe, eine Steckdose komplett abzuschalten, wenn das dort angeschlossene Gerät in den Standby-Modus wechselt (hier nehmen wir auch mal 10 W als Marke), zum Beispiel auch auf den folgenden zwei Wegen lösen (und das sind garantiert nicht alle):
- per "Treppenlichtschaltung" - d.h. solange der Verbrauch jenseits von 10 W liegt, wird immer wieder ein "Power ON" ausgeführt, was dann auch einen zusätzlich definierten "PulseTime"-Wert (im Beispiel von 30 Sekunden) jedesmal neu startet
- mit einem "echten Trigger", wenn der Verbrauch den Grenzwert über- bzw. unterschreitet
Für den ersten Ansatz (es sind nur Beispiele) sähe das z.B. folgendermaßen aus:
Code:
1 PulseTime1 130
2 Rule1 0
3 Rule1 4
4 Rule1 ON Energy#Power>10 DO Power ON ENDON
5 Rule1 1
(die Nummern am Beginn der Zeile gehören nicht zum Kommando)
Zeile 1 setzt für Relay1 eine "PulseTime" von 30 Sekunden (die Werte findet man in der Tasmota-Dokumentation), diese sorgt dafür, daß nach einem "Power ON" und dem Verstreichen der angegebenen Zeit automatisch wieder auf "Power OFF" geschaltet wird. Diese Zeit startet auch mit jedem "Power ON" neu und das machen wir uns hier zunutze.
Zeile 2 deaktiviert eine vorhandene Regel mit dem Index 1, Zeile 3 sorgt dafür, daß die Regel bei JEDER Messung, die eine Leistungsaufnahme nach der benutzen Bedingung ergibt, auch abgearbeitet wird (ONCE=OFF). In Zeile 4 wird dann festgelegt, daß eine Verbrauchsmessung, die mehr als 10 W ergibt, ein "Power ON" zur Folge hat - meine SP111 mißt da alle 2 Sekunden, was dann alle 2 Sekunden den PulseTime-Wert neu starten läßt. Zeile 5 aktiviert dann die Regel 1 und von jetzt an wird die Steckdose immer 30 Sekunden, nachdem die Leistungsaufnahme kleiner als 10 W ist, komplett ausgeschaltet ... und das ohne jede weitere "Steuereinheit" und selbst dann, wenn es mal keine WLAN-Verbindung o.ä. geben sollte.
Nachteil hier ist es aber, daß man tatsächlich die automatische Speicherung von Einstellungen deaktivieren sollte und daß einen die ausgeführten Kommandos totquatschen, wenn man sie (z.B. per MQTT) irgendwo protokollieren läßt. Denn die Messung erfolgt eben alle 2 Sekunden, was auch alle 2 Sekunden ein "Power ON" ergibt und da ist ein "retain" für den Status dann tatsächlich recht belastend für den Flash-Speicher, wenn das jedesmal persistiert wird.
Aber es geht ja auch noch anders ... man kann eben auch dafür sorgen, daß eine Regel (bzw. eine Condition darin) nur dann einmalig "feuert", wenn der Grenzwert über- oder unterschritten wird und danach erst wieder erneut, wenn das Limit erneut "passiert" wird. Da die Messungen dieser Steckdosen aber nicht sehr präzise sind und es schon mal vorkommen kann, daß es einen "Ausreißer" bei den Werten gibt, sollte man so einen Trigger nicht direkt zum Anlaß nehmen, der Steckdose den Saft abzudrehen ... also startet man am besten erst mal wieder einen Timer und erst dann, wenn der "abgelaufen" ist und nicht zwischenzeitlich zurückgesetzt wurde, schaltet man wirklich ab.
Das könnte dann z.B. so aussehen:
Code:
1 Rule1 0
2 Rule1 5
3 Rule1 ON Energy#Power<10 DO RuleTimer1 30 ENDON
4 Rule1 + ON Energy#Power>10 DO RuleTimer1 0 ENDON
5 Rule1 + ON Power1#state=1 DO RuleTimer1 30 ENDON
6 Rule2 0
7 Rule2 4
8 Rule2 ON Rules#Timer=1 DO Power1 OFF ENDON
9 Rule2 1
10 Rule1 1
Auch hier werden ggf. schon vorhandene Regeln in Zeile 1 und 6 erst einmal deaktiviert, bevor sie dann (in den Zeilen 3 und 8) neu gesetzt werden. Die Zeilen 4 und 5 fügen (mit dem "+") der angegebenen Regel weitere Bedingungen hinzu - in Zeile 3 wird beim Unterschreiten der 10 W dann ein 30-Sekunden-Timer gestartet und in Zeile 5 wird derselbe Timer gestartet, hier aber beim Einschalten der Steckdose (also beim "Power ON") ... damit soll sichergestellt werden, daß auch wieder ausgeschaltet wird, wenn die Leistungsaufnahme die Grenze von 10 W in keiner Richtung überschreitet, weil z.B. der Verbraucher gar nicht wirklich eingeschaltet wurde, sondern nur die Steckdose.
Denn in Zeile 2 wird für die Regel 1 eben festgelegt (ONCE=ON), daß die Trigger jeweils nur einmalig beim Erreichen der Bedingung auslösen - das ist auch der Grund, warum ich hier mit zwei Regeln (eine mit ONCE=ON und eine mit ONCE=OFF) arbeite, damit der abgelaufene RuleTimer1 auch mehrfach zur Ausführung der Regel (hier die mit dem Index 2) führt. Diese Regel 2 sorgt letztlich nur dafür, daß beim Ablauf von 30 Sekunden (ohne Zurücksetzen des RuleTimer1) dann wieder "Power OFF" ausgeführt wird.
Das Starten des RuleTimer1 (einmal beim Einschalten und einmal beim Senken der Leistungsaufnahme unter 10 W) hatten wir schon ... überschreitet die Leistungsaufnahme jetzt innerhalb der 30 Sekunden, in denen der RuleTimer1 seinen Countdown zählt, die Grenze der 10 W wieder, wird der RuleTimer1 einfach abgebrochen (0 sorgt dafür, daß der nicht weiterzählt und auch kein Event auslöst) und es kommt nicht zum "Power OFF".
Schaltet man jetzt die Steckdose mit diesen Regeln irgendwie ein (egal ob per Kommando oder über den Button), hat man noch 30 Sekunden (cirka) Zeit, um den Verbraucher auch tatsächlich zu starten, wenn der nicht seinerseits direkt einschaltet, sobald die Stromversorgung hergestellt wurde. Zeiten und Verbrauchswerte kann man natürlich nach Lust und Laune variieren - und es ist sogar möglich, von einer Steckdose aus eine andere zu schalten, wenn man statt "Power" z.B. ein "WebSend"-Kommando verwendet. So kann man (eine noch halbwegs überschaubare Anzahl von) Steckdosen auch ohne eine gesonderte Zentrale in Abhängigkeit voneinander betreiben.
Das senkt jetzt bei einer SP111 auch nur den Standby-Verbrauch des angeschlossenen Gerätes, aber es ist garantiert ebenso möglich, die "Master-/Slave-Schaltung" von
@eisbaerin aus #216 über entsprechende Regeln umzusetzen ... bei einer SP211 muß das dann eben auf die passenden Indizes der beiden Relays angepaßt werden. Ich weiß auch nicht, ob die Verbrauchsmessung für beide Steckplätze einzeln möglich ist, aber das wird vom Skript in #216 ja auch nicht ausgewertet (wenn ich das richtig lese).
Im Gegensatz zum Shell-Skript oben kommt das dann direkt auf dem ESP8266 eben auch ohne externe Zentrale oder weitere Komponenten aus (die Meldungen kann man ja trotzdem übertragen lassen, wenn man eine zentrale Steuerung hat) und die potentielle Falle im Skript in #216 (wenn eines der "wget"-Kommandos z.B. wg. WLAN-Problemen mal nicht direkt funktioniert, unterbleibt das Schalten ganz, weil "status" trotzdem gesetzt wird) hat man auch gleich mit entschärft ... die Tasmota-Devices haben schon eine gewisse "Eigenintelligenz" und sind auch autonom zu komplexeren Abläufen fähig.
Man kann die Kommandos für die beiden Beispiele zwar auch jeweils Zeile für Zeile eingeben, ich empfehle hier aber die Benutzung von "Backlog" ... dazu beginnt man einfach die Kommandoeingabe (in der Console) mit dem "Backlog" und führt danach die weiteren Zeilen auf, jeweils durch ein Semikolon vom vorhergehenden Kommando getrennt. Man kann auch die Regeln "auf einen Rutsch" definieren (es braucht also das "+" nicht zwingend), aber "untereinander" ist es m.E. übersichtlicher.
Wie auch immer man es macht ... die Eingaben sähen mit "Backlog" dann so aus:
Code:
Backlog PulseTime1 130; Rule1 0; Rule1 4; Rule1 ON Energy#Power>10 DO Power1 ON ENDON; Rule1 1
Code:
Backlog Rule1 0; Rule1 5; Rule1 ON Energy#Power<10 DO RuleTimer1 30 ENDON; Rule1 + ON Energy#Power>10 DO RuleTimer1 0 ENDON; Rule1 + ON Power1#state=1 DO RuleTimer1 30 ENDON; Rule2 0; Rule2 4; Rule2 ON Rules#Timer=1 DO Power1 OFF ENDON; Rule2 1; Rule1 1
Viel Spaß beim eigenen Experimentieren ... die Dokumentation zur Verwendung dieser "Regeln" (Rules) findet man dann natürlich wieder im Tasmota-Wiki bzw. im GitHub-Repo des Projekts.
Ich habe keine SP211, sonst hätte ich das gleich mal probiert, wie das mit den richtigen Indizes aussehen müßte ... und ich weiß auch keine bessere Beschreibung als "Master/Slave" für das gewünschte Verhalten, auch wenn das politisch nicht mehr korrekt ist - aber "Primary/Secondary" erscheint mir in dem Zusammenhang auch nicht ganz treffend.