Hallo!
Ups. Wenigstens einen Fehler endlich gefunden.
Ich muss mich unbedingt mehr an die RAW-Definition gewöhnen.

DOIF DOIF subs {
kann natürlich nicht funktionieren.
Zum Rest...
Ich habe zwei Test-Devices. Einen Dummy mit einem Slider zum testen:
defmod du_Sonnensensor_Test dummy
attr du_Sonnensensor_Test readingList state DiffTemp Temp2
attr du_Sonnensensor_Test room Rolläden
attr du_Sonnensensor_Test setList state:on,off DiffTemp:slider,7,0.5,70,1 Temp2:slider,7,0.5,70,1
attr du_Sonnensensor_Test webCmd state:DiffTemp:Temp2
attr du_Sonnensensor_Test webCmdLabel state\
:DiffTemp\
:Temp2
setstate du_Sonnensensor_Test 2022-06-30 15:48:28 DiffTemp 12.5
Und mein DOIF zum testen:
defmod du_test_Sonne2 DOIF subs {\
if ($::init_done) { ## Bei Änderung der Definition werden alle erfoderlichen Readings erstellt und vorbelegt\
fhem("deletereading $SELF State_.*");; ## alle Readings des Moduls löschen\
set_State("init_done");; ## Status setzen\
} \
}\
\
DEF TPL_RolloAutomatik ({\
if (\
[du_Sonnensensor_Test:DiffTemp] < 20\
and [$SELF:State_$1] ne "cmd1"\
)\
{\
if (ReadingsAge('$SELF','$1_Alter',999999) > 10){\
set_State ("cmd1");;\
set_Reading("State_$1","cmd1", 1);;\
}\
}\
elsif (\
[du_Sonnensensor_Test:DiffTemp] > 20\
and [$SELF:State_$1] ne "cmd2"\
)\
{\
set_State ("cmd2");;\
set_Reading("State_$1","cmd2", 1);;\
}\
})\
\
TPL_RolloAutomatik(MeinDevice)\
TPL_RolloAutomatik(MeinDevice2)
attr du_test_Sonne2 room Rolläden
Bei einer Temperaturänderung auf kleiner oder größer 20 erwarte ich eigentlich, das die Readings
State_MeinDevice
State_MeinDevice2
gleichmäßig sich verändern.
Die Bedingung
and [$SELF:State_$1] ne "cmd1"
soll dabei verhindern, dass in dem Beispiel die readings bei jeder Änderung der Temperatur erneut gesetzt werden. (Gleiches verhalten wie beim "FHEM DOIF" ohne "Do Always")
Vielleicht ist es heute auch einfach wieder zu warm

Danke für die Geduld mit mir!
Gruß
Bismosa