DOIF: Nächsten Befehl abarbeiten bei erneutem wahrwerden der Bedingung

Begonnen von trs, 21 Juli 2019, 12:06:54

Vorheriges Thema - Nächstes Thema

trs

Hallo,

ich möchte, das ein DOIF beim erstenmal wahrwerden der Bedingung etwas ausführt, und beim erneuten wahrwerden der gleichen Bedingung den nächsten Befehl ausführt, usw. Ich bekommes es aber nicht hin.

Gruss
Thorsten

DasQ

Das müsste wie bei meiner Waschmaschine/trocknerfertig doif über den State gehen.
Einfach and verschachteln wie im meim Beispiel.

defmod DoIfWaescheStatus DOIF ([sonoff_Waschmaschine:ENERGY_Power]          > 3  and [?DoIfWaescheStatus] =~ "cmd_4|initialized")(({Log 3, "Waschmaschinen an"}))\
DOELSEIF ([sonoff_Waschmaschine:ENERGY_Power] > 10 and [?DoIfWaescheStatus] eq "cmd_1")            (({Log 3, "Waschmaschinen läuft"}))\
DOELSEIF ([sonoff_Waschmaschine:ENERGY_Power] < 3  and [?DoIfWaescheStatus] eq "cmd_2")            (({Log 3, "Waschmaschinen ist bald fertig"})) \
DOELSEIF ([sonoff_Waschmaschine:ENERGY_Power] <= 2 and [?DoIfWaescheStatus] eq "cmd_3")            (set telebot message @#Zuhause Waschmaschine: Fertig)
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

trs

Hmm, probier ich aus. Müsste das nicht auch irgendwie mit dem Attribut "repeatsame" gehen?

Gruss
Thorsten

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

trs


amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

trs

defmod Alexa_Hallo DOIF ([XMI_0x00158d0001fa4075:state] eq "motion")\
(set ECHO_G090U50991230BJP speak "Hallo  schön das du da bist") \
DOELSEIF \
([XMI_0x00158d0001fa4075:state] eq "motion" and [?Alexa_Hallo] eq "cmd_1")  \
(set ECHO_G090U50991230BJP speak "Jetzt sind wir beide ganz alleine")\
DOELSEIF \
([XMI_0x00158d0001fa4075:state] eq "motion" and [?Alexa_Hallo] eq "cmd_2")\
(set ECHO_G090U50991230BJP speak "Test")\

attr Alexa_Hallo room Gästebad
attr Alexa_Hallo wait 5

setstate Alexa_Hallo cmd_1
setstate Alexa_Hallo 2019-07-21 18:28:22 Device XMI_0x00158d0001fa4075
setstate Alexa_Hallo 2019-07-21 18:26:24 cmd 1
setstate Alexa_Hallo 2019-07-21 18:26:24 cmd_event XMI_0x00158d0001fa4075
setstate Alexa_Hallo 2019-07-21 18:26:24 cmd_nr 1
setstate Alexa_Hallo 2019-07-21 18:28:22 e_XMI_0x00158d0001fa4075_state no_motion
setstate Alexa_Hallo 2019-07-21 18:23:32 mode enabled
setstate Alexa_Hallo 2019-07-21 18:26:24 state cmd_1
setstate Alexa_Hallo 2019-07-21 18:26:24 wait_timer no timer


Geht nicht... Bleibt bei "cmd_1" stehen

Gruss
Thorsten

DasQ

Naja ich hab schon Attribute dran, aber die tun nichts zur Sache (room, Group, wait usw)

BTW. Fehlt dir ja auch die initial oder letztes cmd abfrage in deiner ersten prüfung
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

trs

Scheint aber bei der ersten Abfrage nicht wichtig zu sein. Die wird ja ausgeführt. Die Zweite aber nicht mehr.

DasQ

defmod Alexa_Hallo DOIF ([XMI_0x00158d0001fa4075:state] eq "motion" and [?Alexa_Hallo] =~ "cmd_3|initialized")\
(set ECHO_G090U50991230BJP speak "Hallo  schön das du da bist") \
DOELSEIF \
([XMI_0x00158d0001fa4075:state] eq "motion" and [?Alexa_Hallo] eq "cmd_1")  \
(set ECHO_G090U50991230BJP speak "Jetzt sind wir beide ganz alleine")\
DOELSEIF \
([XMI_0x00158d0001fa4075:state] eq "motion" and [?Alexa_Hallo] eq "cmd_2")\
(set ECHO_G090U50991230BJP speak "Test")\
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

amenomade

Zitat von: trs am 21 Juli 2019, 18:38:36
Scheint aber bei der ersten Abfrage nicht wichtig zu sein.
Ist es aber doch.
Sonst ist immer wieder die erste Bedingung wahr, wenn "motion" kommt, und da der Zustand schon cmd_1 ist, passiert nichts mehr.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

trs