jo, passt.
Was kommt in der Konsole wenn du rule1 eingibst?
jo, passt.
Was kommt in der Konsole wenn du rule1 eingibst?
13:37:01 RSL: stat/tasmota_7E9A3F/RESULT = {"Rule1":"OFF","Once":"OFF","StopOnError":"OFF","Length":107,"Free":404,"Rules":"on switch2#state do rule2 %value% endon rule2 on clock#timer=1 do backlog power1 1; rule2 0 endon rule1 1"}
Scheint als wäre die Rule1 OFF
Hab jetzt nochmal Rule1 1 eingegeben, nochmal probieren.
Du hast die Rules falsch eingegeben.
Die Rule2 hängt auch noch mit an der ersten mit dran.
in der Konsole eingeben:
rule1 on switch2#state do rule2 %value% endon ENTER TASTE drücken
rule2 on clock#timer=1 do backlog power1 1; delay 10; power1 0; rule2 0 endon ENTER TASTE drücken
rule1 1 ENTER TASTE drücken
(Rule2 benötigt keinen pulsetime1 10 für den Schaltimpuls)
Bitte überprüfen was in den Rules stehet:
rule1 ENTER TASTE drücken
rule2 ENTER TASTE drücken
Das ist die Ausgabe von Rule1 bzw. Rule2
14:49:01 CMD: rule1
14:49:01 RSL: stat/tasmota_7E9A3F/RESULT = {"Rule1":"ON","Once":"OFF","StopOnError":"OFF","Length":39,"Free":472,"Rules":"on switch2#state do rule2 %value% endon"}
14:49:07 CMD: rule2
14:49:07 RSL: stat/tasmota_7E9A3F/RESULT = {"Rule2":"OFF","Once":"OFF","StopOnError":"OFF","Length":71,"Free":440,"Rules":"on clock#timer=1 do backlog power1 1; delay 30; power1 0; rule2 0 endon"}
Jetzt zeigt mir das Hauptmenü aber immer den Zustand "OFF" am Switch2 an, völlig egal ob der geschlossen oder offen ist. Woran liegt das?
ABER zumindest ein Erfolgserlebnis: Der Schaltimpuls wurde ausgelöst. Muss jetzt nur den Switchmode umdrehen.
Jetzt zeigt mir das Hauptmenü aber immer den Zustand "OFF" am Switch2 an, völlig egal ob der geschlossen oder offen ist. Woran liegt das?
Wenn ich das richtig gelesen habe machst du das experimentell mit Brücken.
Was bedeutet denn geschlossen bei dir? Legst du den GPIO auf 3,3V oder GND?
idealerweise mal in einem 2ten Browser Tab die Konsole beobachten wenn die den GPIO schaltest ob sich der Switchstate ändert.
Richtig, Experimentell mit ner Brücke (ein Taster) auf GND. Hab mal einen Widerstand dazwischen gehängt, das hat nichts geändert.
Bevor die Rules drin waren, wurde es richtig angezeigt
Bevor die Rules drin waren, wurde es richtig angezeigt
Die Rule hat darauf keine Auswirkung. Das virtuelle Relais das angezeigt wird ist ja Power2, das wird ja nirgends verwendet. Wie gesagt, Konsolen output wäre hilfreich
15:15:24 RUL: SWITCH2#STATE performs "rule2 0"
15:15:24 RSL: stat/tasmota_7E9A3F/RESULT = {"Rule2":"OFF","Once":"OFF","StopOnError":"OFF","Length":71,"Free":440,"Rules":"on clock#timer=1 do backlog power1 1; delay 30; power1 0; rule2 0 endon"}
15:15:28 RUL: SWITCH2#STATE performs "rule2 1"
15:15:28 RSL: stat/tasmota_7E9A3F/RESULT = {"Rule2":"ON","Once":"OFF","StopOnError":"OFF","Length":71,"Free":440,"Rules":"on clock#timer=1 do backlog power1 1; delay 30; power1 0; rule2 0 endon"}
15:15:35 RUL: SWITCH2#STATE performs "rule2 0"
15:15:35 RSL: stat/tasmota_7E9A3F/RESULT = {"Rule2":"OFF","Once":"OFF","StopOnError":"OFF","Length":71,"Free":440,"Rules":"on clock#timer=1 do backlog power1 1; delay 30; power1 0; rule2 0 endon"}
15:15:37 RUL: SWITCH2#STATE performs "rule2 1"
15:15:37 RSL: stat/tasmota_7E9A3F/RESULT = {"Rule2":"ON","Once":"OFF","StopOnError":"OFF","Length":71,"Free":440,"Rules":"on clock#timer=1 do backlog power1 1; delay 30; power1 0; rule2 0 endon"}
15:15:44 RSL: tele/tasmota_7E9A3F/STATE = {"Time":"2020-09-22T15:15:44","Uptime":"0T00:40:19","UptimeSec":2419,"Heap":25,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":37,"MqttCount":0,"POWER1":"OFF","POWER2":"OFF","Wifi":{"AP":1,"SSId":"ConnectJACK","BSSId":"34:2C:C4:58:D5:63","Channel":1,"RSSI":34,"Signal":-83,"LinkCount":1,"Downtime":"0T00:00:04"}}
15:15:44 RSL: tele/tasmota_7E9A3F/SENSOR = {"Time
War aber tatsächlich so, dass zuvor der Status des Switch mit ON/OFF angezeigt wurde.
Der switch2#state triggert sauber. Immerhin. Eigentlich sollte dann das Relais2 das Du in den Einstellungen konfiguriert hast auch demenstprechend schalten. Warum das jetzt nicht geht kann ich dir echt nicht sagen sollte nämlich. Sind die GPIO noch so eingestellt wie hier?
Was sagt die Konsole wenn du switchmode2 eingibst?
Aktuell habe ich Switchmode 2
Getestet auch mit Switchmode 0 1 2 - macht keinen Unterschied in der Anzeige
Wenn ich Rule1 0 setze, stimmt die Anzeige wieder.
GuMo.
Hmmmm .... switchmode2 bzw 0 ist an sich richtig. Je nachdem ob öffner oder schließer
Wenn ich Rule1 0 setze, stimmt die Anzeige wieder.
Ehrlich, versteh ich nicht warum der Switch2#state auswertung einfluss auf den Power hat.
Du könntest alternativ auch den power2 auswerten:
rule1 on power2#state do rule2 %value% endon
Aber Vorsicht. Wenn du da den Webbutton betätigst "simulierst" du ein Tor offen/zu unabhängig vom echten Zustand des Reedkontaktes.
Damit wird der Status richtig angezeigt, aber power2#state liefert ja ON, wenn der Türkontakt geschlossen ist und nicht wenn er offen ist, ich brauche es aber invertiert. Den Switch kann ich über Switchmode invertieren, den Power nicht.
Heißt: So löst die Zeitsteuerung aus, wenn das Tor zu ist.
Damit wird der Status richtig angezeigt, aber power2#state liefert ja ON, wenn der Türkontakt geschlossen ist und nicht wenn er offen ist, ich brauche es aber invertiert. Den Switch kann ich über Switchmode invertieren, den Power nicht.
Dann nimm einfach in den Einstellungen Relais2i anstatt Relais2 ... dann ist es invertiert
auch mit Relais2i liefert Power2 mir in der Konsole bei geschlossenem Switch ein ON und kein OFF. Das Relais ist ja nur virtuell und hat vermutlich auf den Power2 keine Auswirkung
Was spricht eigentlich gegen eine Regel in dieser Form?
rule1 on clock#timer=1 AND switch2#state=0 do power1 1 endon
oder kann man in der Regel keine Bedingung mit AND verknüpfen?
oder kann man in der Regel keine Bedingung mit AND verknüpfen?
Standartmäßig nicht:
https://tasmota.github.io/docs/Rules/
siehe Punkt:
ZitatConditional Rules
This feature is not included in precompiled binaries.
Upps ... da war ich zu langsam
oder kann man in der Regel keine Bedingung mit AND verknüpfen?
Standardmäßig geht das nicht.
Aber man kann Tasmota selber mit "USE_EXPRESSION" compilieren, dann ist AND/OR möglich.