FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: ujaudio am 29 Juni 2019, 12:07:49

Titel: [gelöst] Befehlswiederholung abbrechen
Beitrag von: ujaudio am 29 Juni 2019, 12:07:49
Ich habe folgendes DOIF:

Internals:
   DEF        ([tr_wassermanuell] ne "nein" or [tr_wassersonnenaufgang] ne "nein")  ## bei Bedarf oder vor Sonnenaufgang
  (set tr_Wasserpumpe on-for-timer 60, {MP3laden("005")})  ## soll die Bewässerung 12x 1 Minute laufen
   MODEL      FHEM
   NAME       tr_giessen
   NR         1188
   NTFY_ORDER 50-tr_giessen
   STATE      initialized
   TYPE       DOIF
   READINGS:
     2019-06-29 11:56:33   cmd             0
     2019-06-29 11:56:33   mode            enabled
     2019-06-29 11:56:33   state           initialized
   Regex:
   attr:
     cmdState:
     repeatcmd:
       300
     repeatsame:
       12
     wait:
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'tr_wassermanuell','STATE') ne "nein" or ::InternalDoIf($hash,'tr_wassersonnenaufgang','STATE') ne "nein"
   devices:
     0           tr_wassermanuell tr_wassersonnenaufgang
     all         tr_wassermanuell tr_wassersonnenaufgang
   do:
     0:
       0          set tr_Wasserpumpe on-for-timer 60, {MP3laden("005")}
     1:
   helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   internals:
     0           tr_wassermanuell:STATE tr_wassersonnenaufgang:STATE
     all         tr_wassermanuell:STATE tr_wassersonnenaufgang:STATE
   itimer:
   uiState:
   uiTable:
Attributes:
   repeatcmd  300
   repeatsame 12
   room       Terrasse


Meine Erwartungshaltung:
* wenn die Bedingung > 1Stunde (12 x 300 Sekunden wie mit repeatcmd und repeatsame definiert) erfüllt ist, wird trotzdem nur 12x das Kommando ausgeführt - das funktioniert.
* wenn die Bedingung nicht mehr erfüllt ist, wird auch kein Kommando mehr ausgefüllt - das funktioniert so nicht, es wird dennoch 12x das Kommando ausgeführt.

Ich habe die comandref zu DOIF jetzt schon 2x gelesen, aber wahrscheinlich wieder an der entscheidenden Stelle nichts verstanden. Vielleicht hat jemand einen Hinweis? Danke.
Titel: Antw:Befehlswiederholung abbrechen
Beitrag von: amenomade am 29 Juni 2019, 12:17:26
Mit einem leeren DOELSE am Ende wird der Status sich ändern, wenn die Bedingung nicht mehr wahr ist, und somit sollte die Wiederholung abgebrochen werden.
Titel: Antw:Befehlswiederholung abbrechen
Beitrag von: ujaudio am 29 Juni 2019, 13:51:27
Danke, jetzt funktioniert es!