DOIF führt gleiches cmd mehrfach aus (ohne do always)

Begonnen von holle75, 07 September 2018, 14:06:38

Vorheriges Thema - Nächstes Thema

holle75

Hallo Ihr, folgendes DOIF triggert bei jedem Event von Container_TEMPFEUCHTESENSOR (wenn cmd_1 nicht zutreffend) erneut cmd_3 obwohl schon in cmd_3. Eigentlich sollte doch ein bestehender Zustand (außer man will es) nicht mehrmals ausgeführt werden?

define Waschhaus_PIR13_TRIGGER_DOIF DOIF ([11:00-15:00] and [Container_TEMPFEUCHTESENSOR:humidity] < 65 and [Container_TEMPFEUCHTESENSOR:temperature] > 5) (set Waschhaus_TRIGGER_Luefter on)  \
DOELSEIF (([?Waschhaus_TRIGGER_Luefter] eq "off" or [?$SELF] eq "cmd_2_1") and [Waschhaus_TASTER_03:state] =~ "press") (set Waschhaus_TRIGGER_Luefter on) (set Waschhaus_TRIGGER_Luefter off) \
DOELSE (set Waschhaus_TRIGGER_Luefter off)
attr Waschhaus_PIR13_TRIGGER_DOIF do resetwait
attr Waschhaus_PIR13_TRIGGER_DOIF group System
attr Waschhaus_PIR13_TRIGGER_DOIF wait 0:0,300:15



woran liegt es?

Danke für eure Ideen
H.

Ellert

Die deutschsprachige Befehlsreferenz zu do resetwait schon gelesen? ;)

Seit dem heutigen Update wird die Hilfe bei Auswahl des Attributes angezeigt.

Das Attribut global language muss auf DE gesetzt werden.

holle75

#2
Hallo Ellert,

Zitat von: Ellert am 07 September 2018, 18:09:14
Die deutschsprachige Befehlsreferenz zu do resetwait schon gelesen? ;)

mehrmals ;)

.... aber ich meine, da steht nichts von meinem geschilderten "Problem" .... oder nach dem update bei Auswahl des attr?

... oder verhält sich do resetwait wie do always "nur anders"??!


EDIT: Ah, ok, meine zu verstehen.

Ellert

Ist eigentlich nicht zu überlesen:
ZitatDas Attribut do resetwait impliziert eine beliebige Wiederholung wie do always.

holle75

Naja, nicht zu überlesen stimmt schon, aber dass der Satz

ZitatDas Attribut do resetwait impliziert eine beliebige Wiederholung wie do always

das geschilderte Verhalten beschreibt ist vielleicht zu erraten, aber nicht automatisch en detail in den Auswirkungen zu verstehen ;) ... denn was hat der Reset eines waits logisch automatisch mit do always zu tun? Der Zusammenhang (außer er ist nun halt mal so vorgegeben) ist mir nicht klar.

Weitergedacht würde dann ein

attr Waschhaus_PIR13_TRIGGER_DOIF repeatsame 0:0:1

zum erhofften Ergebnis führen? Davon ausgehend, dass 0 für unbeschränkt steht. Schwierig ....




Ellert

Zitat von: holle75 am 08 September 2018, 01:04:57
... denn was hat der Reset eines waits logisch automatisch mit do always zu tun?
Ein Reset eines wait kann nur dann erforderlich werden, wenn für einen Zweig die wiederholte Ausführung zugelassen wird, wenn die Bedingung unmittelbar nacheinander auslöst, ohne das ein anderer Zweig zwischendurch wahr wurde. Sonst entsteht die Frage nicht, ob wait abgebrochen werden soll, weil die Wiederholung eines Befehls nicht ansteht.
Zitat von: holle75 am 08 September 2018, 01:04:57
... zum erhofften Ergebnis führen?
Was spricht dagegen es auszuprobieren? ;)

holle75

Zitat von: Ellert am 08 September 2018, 09:05:50
Was spricht dagegen es auszuprobieren? ;)

werde ich ;) ..... aber die theoretische Erforschung macht ja erstmal mehr Spaß .... und die (mechanische) Technik dankt es und ich renn nicht mit Laptop aufm Land rum, um 20 Minuten zu warten und dann wieder ins Waschhaus zu springen und zu schauen wie es denn jetzt funktioniert :D

Und ich weiß nicht warum, aber ein Test-DOIF zu basteln um es gemütlich auszuprobieren macht mir irgendwie keine Freude (und funktioniert dann in der Praxis gerne doch nicht ganz so wies soll).

Danke für deine Ausführungen.


Damian

Zitat von: holle75 am 08 September 2018, 09:22:46
werde ich ;) ..... aber die theoretische Erforschung macht ja erstmal mehr Spaß .... und die (mechanische) Technik dankt es und ich renn nicht mit Laptop aufm Land rum, um 20 Minuten zu warten und dann wieder ins Waschhaus zu springen und zu schauen wie es denn jetzt funktioniert :D

Und ich weiß nicht warum, aber ein Test-DOIF zu basteln um es gemütlich auszuprobieren macht mir irgendwie keine Freude (und funktioniert dann in der Praxis gerne doch nicht ganz so wies soll).

Danke für deine Ausführungen.

Ich teste oft mit Dummys und kurzen wait-Zeiten ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

holle75

Zitat von: Damian am 08 September 2018, 12:20:01
Ich teste oft mit Dummys und kurzen wait-Zeiten ;)

:) ... wenn der Lüfter an sich dann auch noch diese Trigger-Nachlaufzeit hat ............................................................................................. kaskadierendes Warten :D