FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Rampler am 27 August 2021, 10:48:38

Titel: Wiederholung eines Commands
Beitrag von: Rampler am 27 August 2021, 10:48:38
Hallo DOIF Spezialisten,
ich möchte bei eintreffen eines Ereignisses immer wieder mit zeitlichen Versatz (20 sekunden) das gleiche Kommando absetzen, bis ein anderes Ereignis kommt. Das Ereigniss kommt nur einmal.

In der Vergangenheit habe ich das über einen Timer (defmod timer at +*00:00:20 set Soundausgabe playTone 1,1)  gelöst, welchen ich im DOIF dann aktiviert (set timer active) bzw. deaktiviert habe. Meine Hoffnung ist nun das ich das direkt im DOIF machen kann, und keinen zusätzlichen Timer mehr benötige.
Hat jemand eine Idee ?

VG Klaus


Titel: Antw:Wiederholung eines Commands
Beitrag von: rabehd am 27 August 2021, 11:00:59
Wie wäre es damit?
ZitatWiederholungen der Ausführung von Kommandos werden pro Befehlsfolge über das Attribut repeatcmd definiert.
Erläuterungen und Beispiele in der Hilfe
Titel: Antw:Wiederholung eines Commands
Beitrag von: Rampler am 27 August 2021, 11:11:37
Danke, das Leben kann so einfach sein.
Keine Ahnung, warum ich das damals über einen Timer gelöst habe
Titel: Antw:Wiederholung eines Commands
Beitrag von: Rampler am 27 August 2021, 11:38:04
Sorry, muss nochmal stören.
Das repeatcmd unterstützt leider keine Subcommands (kommas, ähnlich wait):

([PR.button:1_press] eq "1" and [FL.EG.gong.mp3.muteswitch] eq "off") 
(setreading FL.EG.dummyanzeige.led08 PR.button red)
((set FL.EG.gong.mp3 playTone 47,47))

wait ,60:,60:,...
repeatcmd ,20:.....
Ich kann also nur repaetcmd 20:... angeben, dadurch durchläuft er aber wieder beide Kommandos, also wieder mit wait.
Ich möchte aber nur das zweite Kommand unendlich ausführen ..
Titel: Antw:Wiederholung eines Commands
Beitrag von: Rampler am 27 August 2021, 12:02:15
Ich glaube das funktioniert so nicht.
Repeatcmd lässt keine Definition auf Subcommand Ebene zu. Es wird also immer der jeweilige Kommandzweig komplett durchlaufen auch mit den Waits...

Titel: Antw:Wiederholung eines Commands
Beitrag von: rabehd am 27 August 2021, 15:01:06
ZitatIch möchte aber nur das zweite Kommand unendlich ausführen ..
Dann das DOIF anderes aufbauen oder ein "IF" in den Zweig einfügen.
Das Du nur einen Teil des Zweiges ausführen willst, sehe ich in Deinem Text nicht.
Titel: Antw:Wiederholung eines Commands
Beitrag von: Damian am 27 August 2021, 16:32:15
Zitat von: Rampler am 27 August 2021, 12:02:15
Repeatcmd lässt keine Definition auf Subcommand Ebene zu. Es wird also immer der jeweilige Kommandzweig komplett durchlaufen auch mit den Waits...

Das ist auch gut so. Es handelt sich um eine unendliche Wiederholung und eine sequentielle Abarbeitung. Würde der erste Teil eines Zweiges unendlich oft wiederholt werden, dann würde der zweite Teil nie ausgeführt werden. 
Titel: Antw:Wiederholung eines Commands
Beitrag von: Rampler am 28 August 2021, 16:39:54
Hallo Damian,
guckst Du hier ....
https://forum.fhem.de/index.php/topic,48788.0.html (https://forum.fhem.de/index.php/topic,48788.0.html)