FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: siggel am 02 Dezember 2019, 17:20:30

Titel: [gelöst] DOIF mit repeatcmd
Beitrag von: siggel am 02 Dezember 2019, 17:20:30
Hallo zusammen,
vermutlich ein Anfängerfehler, ich dachte eigentlich, ich bin genau nach Doku und Beispielen vorgegangen:

Ausgangsbasis ist folgendes Beispiel aus der commandref-Doku zum DOIF:
Zitat
Anwendungsbeispiel: Nach dem Eintreffen des Ereignisses wird die push-Meldung stündlich wiederholt, bis Frost ungleich "on" ist.

define di_push DOIF ([frost] eq "on")(set pushmsg "danger of frost")
attr di_push repeatcmd 3600

Das wollte ich nutzen, um in Analogie eine HUE-Lampe alle 2 Sekunden weiter zu dimmen, bis der Tradifri-Schalter nicht mehr gedrückt ist (2 Sekunden sind mit Absicht erstmal langsam gewählt)


define dimDownLamp DOIF ([Tradfri] eq "3001")(set Lamp dimDown)
attr dimDownLamp repeatcmd 2

Damit das auch mehrfach funktioniert, habe ich auch noch ein do always ergänzt.

Im Ergebnis wird dann aber endlos alle 2 Sekunden runtergedimmt, auch wenn der Knopf längst nicht mehr gedrückt ist (und Tradfri längst auf 3003 steht)

Was habe ich da denn am Beispiel falsch verstanden?

Titel: Antw:DOIF mit repeatcmd
Beitrag von: Damian am 02 Dezember 2019, 23:02:06
Es wird mit repeatcmd der Befehlszweig solange wiederholt, bis der Zustand des Moduls wechselt. Wenn do always setzt, kann der Zustand nur wechseln, wenn du einen weiteren Zweig angibst, z. B. mit DOELSE:

define dimDownLamp DOIF ([Tradfri] eq "3001")(set Lamp dimDown)DOELSE
Titel: Antw:[gelöst] DOIF mit repeatcmd
Beitrag von: siggel am 03 Dezember 2019, 23:19:50
Besten Dank, das hat geholfen
Titel: Antw:[gelöst] DOIF mit repeatcmd
Beitrag von: amenomade am 04 Dezember 2019, 00:50:36
Zur Info
https://forum.fhem.de/index.php?topic=105604.0