So sieht mein DOIF aktuell aus:
(["BotID:msgPeerId"] and ([?BotID:msgText] eq "Komme NICHT"))
(set id_[$DEVICE:msgPeerId] [$DEVICE:msgText], setreading id_[$DEVICE:msgPeerId] Status 1,
setreading Gesamtstaerke KommeNicht {(my $d = ReadingsVal("$device","msgPeerId","");ReadingsNum("id_".$d,"Status",1) + ReadingsNum("Gesamtstaerke","KommeNicht",0))},
define loeschen_[$DEVICE:msgPeerId] at +00:30:00 set id_[$DEVICE:msgPeerId] Status 2;; setreading id_[$DEVICE:msgPeerId] Status 0)
DOELSEIF
(["BotID:msgPeerId"] and ([?BotID:msgText] eq "Komme"))
(set id_[$DEVICE:msgPeerId] [$DEVICE:msgText], setreading id_[$DEVICE:msgPeerId] Status 1,
setreading Gesamtstaerke Komme {(my $d = ReadingsVal("$device","msgPeerId","");ReadingsNum("id_".$d,"Status",1) + ReadingsNum("Gesamtstaerke","Komme",0))},
define loeschen_[$DEVICE:msgPeerId] at +00:30:00 set id_[$DEVICE:msgPeerId] Status 2;; setreading id_[$DEVICE:msgPeerId] Status 0)
Also das funktioniert soweit. Was ich nicht hinbekomme, ist die Abfrage, ob die id_xyz schonmal gedrückt hat. Aktuell kann man immer wieder auf "Komme" drücken und das Reading wird fleißig hochgezählt. Das soll natürlich nicht sein.
Gruss
Dennis