Hallo zusammen,
nun brauche ich auch einmal Unterstützung

Meine Rolladen werden mittels Shelly 2.5 und MQTT gesteuert, bzw. Sonnenauf-, bzw. -untergang erfolgt autark durch die Shellys selbst.
Sporadisch kommt es vor, dass ein Rolladen nicht öffnet/schließt.
Dieses möchte ich überwachen und "korrigieren".
Nun habe ich eine erste funktionierende Lösung, die aber bestimmt nicht "regelkonform" ist.
Daher meine Frage:Wie lese ich alle Rolladennamen in ein Array richtig, per Regex ein?
Meine Rolladen, bzw. mein Debuglog:
2022-11-14 22:06:37 MQTT2_Rollo_Bad
2022-11-14 22:06:37 MQTT2_Rollo_Buero
2022-11-14 22:06:38 MQTT2_Rollo_Esszi_Nord
2022-11-14 22:06:38 MQTT2_Rollo_Esszi_West
2022-11-14 22:06:38 MQTT2_Rollo_Kinderzimmer
2022-11-14 22:06:38 MQTT2_Rollo_Kueche_Sued
2022-11-14 22:06:38 MQTT2_Rollo_Kueche_West
2022-11-14 22:06:38 MQTT2_Rollo_Schlafzimmer
2022-11-14 22:06:38 MQTT2_Rollo_WC
2022-11-14 22:06:38 MQTT2_Rollo_Wohnzimmer
und die Funktion, die ich erstellt habe (gibt es "zweimal" für Auf/Zu):
sub RolloZu {
my $debug = 1;
my $log = 'RolloKontrolle.log';
my $rollos = fhem('list MQTT2_Rollo_.*');
my @rollos = split(" ", $rollos);
#my $a = @rollos;
#debuglog("Anzahl: $a" ,'RolloKontrolle.log');
#for my $s (0..$a) {debuglog($t[$s] ,'RolloKontrolle.log')};
for my $Name (@rollos) {
#debuglog($Name, $log) if $debug;
if ($Name ne 'MQTT2_Rollo_Kinderzimmer' && ReadingsNum($Name, 'pct', 100) != 0)
{
debuglog("$Name wird manuell zu gefahren", $log) if $debug;
fhem("set $Name pct 0; defmod at_SS at +00:10 {RolloZu()}");
}
}
return;
}
Aufgerufen werden die Subs über ein at:
defmod at_Rollo_Kontrolle at *00:30 defmod at_SS at {ReadingsVal("Sonnenstand","ss_civil","22:00")} {RolloZu()};; defmod at_SR at {ReadingsVal("Sonnenstand","sr_indoor","08:00")} {RolloAuf()}
Ich fand keine andere Lösung, bzw. wusste nicht wie ich suchen sollte, dann kam mir die Idee mit dem Fhem list

Danke und Grüße
Bernd