Hey,
versuchs doch mal mit Blockly 🙂
Du musst Dir in einer Variable merken ob deine Bedingungen (pro Tag?) das erste mal zugetroffen haben weil du willst das ganze "alle 20 Mins für 8 mins" ja nur einmalig starten. Die Variable musst Du dann wieder zurücksetzen.
Und dann machst Du eine Funktion die Checkt ob die Bedingungen noch erfüllt sind und wenn ja den Aktor einschaltet und direkt danach ein um 8 minuten verzögertes ausschalten.
Das ausschalten des Aktors würde ich dann als Trigger nehmen um die Funktion verzögert um X Minuten wieder zu starten.
Sollte mit ein bissl nachdenken alles machbar sein.
Die Regenwahrscheinlichkeit kannst Du per weatherunderground-Adapter kriegen. Ob 4h weiss ich grad nicht, aber bestimmte Aggregator-Werte gibt es da.
Ingo F