Starthilfe für Tasmota

Gast #7316944
Lesenswert?

Einen schönen Sonntag allerseits,

ich habe endlich mal Zeit für meine WLAN Steckdose (Nous A1T). Darauf läuft von Hause aus Tasmota, jetzt in der Version 12.3.1.

Jetzt möchte ich sie so einstellen, dass die angeschlossenen Geräte (Laptop, Monitore etc) vom Netz getrennt werden, wenn der Laptop aus geht (und die Monitore kurz danach auch abschalten).

Im vollen Betrieb zeigt mit die Tasmota-Web-Ansicht einen Stromverbrauch von 0.577A, im Standby der Geräte noch 0.118A an.

Bemerkt habe ich schon, dass der Standby-Wert auch höher liegen kann, was wahrscheinlich daran liegt, dass der Laptop seinen Akku lädt. Aber auch dann sollte ein auswertbarer Unterschied zum vollen Betrieb vorhanden sein.

In der Tasmota Dokumentation habe ich folgendes Beispiel gefunden:

1
Rule1  
2
  ON system#boot DO var1 0 ENDON  
3
  ON ENERGY#Current==0.0 DO if (var1!=0) RuleTimer1 0; var1 0 endif BREAK  
4
  ON ENERGY#Current>=0.1 DO if (var1!=0) RuleTimer1 0; var1 0 endif BREAK  
5
  ON ENERGY#Current<0.1 DO if (var1!=1) RuleTimer1 600; var1 1 endif ENDON  
6
  ON Rules#Timer=1 DO Power1 off ENDON

Link zur Doku

Zunächst habe ich das Menü auf der Weboberfläche abgesucht, nach einer Möglichkeit, dieses Skript einzufügen, gibt es aber wohl nicht.

Gefunden habe ich eine Konsole, welche wie folgt aufrufbar ist:

http://192.168.178.34/cs?

Wenn ich dort den Beispielcode (angepasst) einfüge, bekomme ich folgende Ausgabe zurück:

1
12:04:05.790 CMD: Rule1   ON system#boot DO var1 0 ENDON   ON ENERGY#Current==0.0 DO if (var1!=0) RuleTimer1 0; var1 0 endif BREAK   ON ENERGY#Current>=0.4 DO if (var1!=0) RuleTimer1 0; var1 0 endif BREAK   ON ENERGY#Current<0.4 DO if (var1!=1) RuleTimer1 10; var1 1 endif ENDON   ON Rules#Timer=1 DO Power1 off ENDON
2
12:04:05.817 RUL: Stored uncompressed, would compress from 291 to 144 (-51%)
3
12:04:05.821 RSL: RESULT = {"Rule1":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":291,"Free":220,"Rules":"ON system#boot DO var1 0 ENDON   ON ENERGY#Current==0.0 DO if (var1!=0) RuleTimer1 0; var1 0 endif BREAK   ON ENERGY#Current>=0.4 DO if (var1!=0) RuleTimer1 0; var1 0 endif BREAK   ON ENERGY#Current<0.4 DO if (var1!=1) RuleTimer1 10; var1 1 endif ENDON   ON Rules#Timer=1 DO Power1 off ENDON"}}

Dann starte ich Tasmota neu, mache den Laptop aus und warte....
Nix passiert :-(
Über das Telefon kann ich den Stromverbrauch ja auch sehen, liegt bei .221A.

Wo liegt mein Fehler?

Danke und Gruß Kolja

Gast #7316982
Lesenswert?

Nein, hatte ich nicht.
Danke für den Hinweis, jetzt wirft die Konsole aber Fehlermeldungen raus:

1
12:32:43.530 RUL: ENERGY#CURRENT>=0.4 performs "if (var1!=0) RuleTimer1 0; var1 0 endif"
2
12:32:43.536 RSL: RESULT = {"Command":"Unknown"}
#7317402
Lesenswert?

für das Upload musst du immer die *.gz Datei nehmen.

  1. über "Upgrade by web server" die http://ota.tasmota.com/tasmota/release/tasmota-minimal.bin.gz laden und
  2. über "Upgrade by file upload" deine compilierte *.gz Datei

In den meisten Fällen werden die "Conditional Rules" nicht benötigt.

https://forum.creationx.de/lexicon/index.php?entry/51-commands-06-rules/ hier bist du bezüglich Tasmota gut beraten.

Gast #7320906
Lesenswert?

Kolja schrieb:

Muss ich dafür jetzt Tasmota ändern und kompilieren?

Wenn Du if Statements in den Rules verwenden willst, dann ja. Aber das von Dir angegebene Ruleset sollte sich auch entsprechend umschreiben lassen, daß es ohne ifs funktioniert:

ON ENERGY#Current==0.0 DO if (var1!=0) RuleTimer1 0; var1 0 endif BREAK

wird zu

ON ENERGY#Current==0.0 DO event timeout_off=%var1% BREAK

ON ENERGY#Current>=0.1 DO if (var1!=0) RuleTimer1 0; var1 0 endif BREAK

wird zu

ON ENERGY#Current>=0.1 DO event timeout_off=%var1% BREAK

ON ENERGY#Current<0.1 DO if (var1!=1) RuleTimer1 600; var1 1 endif ENDON

wird zu

ON ENERGY#Current<0.1 DO event start_timeout=%var1% ENDON

und anschließend brauchst Du noch die Rules, die auf die Events reagieren, z.B. in Rule2 zusammengefaßt:

RULE2 ON event#timeout_off>0 DO backlog RuleTimer1 0; var1 0 ENDON ON event#start_timeout<1 DO backlog RuleTimer1 600; var1 1 ENDON

Nicht vergessen, die zusätzlichen Rules zu aktivieren: RULE2 1

ON Rules#Timer=1 DO Power1 off ENDON

muß natürlich auch noch am Ende des ersten Rulesets erhalten bleiben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren