Verschiedene Aufgaben zeitlich abarbeiten

Begonnen von rhoffm34, 14 September 2025, 15:28:33

Vorheriges Thema - Nächstes Thema

rhoffm34

Hallo,

ich möchte verschiedene Aufgaben zeitlich nacheinander abbarbeiten. derzeit mache ich das so: 


{
if ([Status_Home] eq "SETnachtruhe" and [Flag_Shutdown_Active] eq "0")
{
fhem("set Flag_Shutdown_Active 1 ");
fhem("set Flag_Xmas off ");
fhem("set IT_wz_Spielkonsole off ");
fhem("set IT_wz_Soundbar off ");
fhem("sleep 1; set HUEDevice7 pct 100 : rgb FFBD21 : transitiontime 120");
fhem("sleep 2; set HUEDevice8 pct 100 : rgb FFBD21 : transitiontime 120");
fhem("sleep 3; set HUEGroup5 rgb FFFFFF : pct 70");
fhem("sleep 5; set HUEGroup8 pct 50 : rgb FFC494 : transitiontime 120");
fhem("sleep 10; set hueBridge1 scene gutenacht ");
#fhem("sleep 10; set HM_Leistung3_WoZiTV_Sw off ");
fhem("sleep 10; set HM_keyMatic lock");
fhem("sleep 20; set HUEDevice31 off : transitiontime 20");
fhem("sleep 24; set HUEDevice28 off : transitiontime 20");
fhem("sleep 28; set HUEDevice30 off : transitiontime 20");
fhem("sleep 33; set HUEGroup8 off : transitiontime 120");
fhem("sleep 35; set Flag_Roll_WohnzimmerRunter on ");
fhem("sleep 60; set HUEDevice8 rgb ED0000 : pct 0 : transitiontime 120 ");
fhem("sleep 65; set HUEGroup5 off : transitiontime 3000");
fhem("sleep 120; set HUEGroup10 off : transitiontime 120");
fhem("sleep 125; set HUEGroup3 off : transitiontime 30");
fhem("sleep 130; set storeKueche scene nacht_off");
fhem("sleep 131; set Status_Hue_Kueche_Scene nacht_off");
fhem("sleep 132; set MQTT2_Steckdose_WoZiTv_AUX off");
fhem("sleep 198; set Status_Home nachtruhe");
fhem("sleep 199; set Flag_Alexa_GuteNacht standby");
fhem("sleep 200; set Flag_Shutdown_Active 0 ");# letzte Aktion
}

}

Grundsätzlich funktioniert das auch. Aber, gibt es eine elegantere Lösung als mein DOIF? Ein fertiges Modul das ich nutzen kann aber noch nicht kenne?

Ralli

Du schreibst was von DOIF, ich kann aber keine DOIF-Definition erkennen.

Wenn du DOIF "richtig" nutzt, dann brauchst du bspw. keine sleep-Anweisungen sondern kannst mehrere in sich geschlossene Anweisungen () in einen Ausführungsteil bringen und über Attribut Verzögerungen der Anweisungen definieren.
Gruß,
Ralli

Proxmox 9 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.83.6.20250824) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

betateilchen

Zitat von: rhoffm34 am 14 September 2025, 15:28:33ich möchte verschiedene Aufgaben zeitlich nacheinander abbarbeiten. derzeit mache ich das so: 

Das kann man schon so machen. Die Frage ist für mich eher, ob die eigentliche Aufgabe in ihrer Formulierung möglichst weit abstrahiert wurde, um sie umzusetzen.

Ob es eine "elegantere" Lösung gibt, lässt sich nicht pauschal beantworten.
Sicher gibt es andere Lösungen, als das mit einem DOIF umzusetzen
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!