[gelöst]Devicenamen per Regex in Array schreiben

Begonnen von frober, 15 November 2022, 18:23:33

Vorheriges Thema - Nächstes Thema

frober

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  ;D

Danke und Grüße
Bernd
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

Der_Tom

Nur am Handy, daher kurz.
Such Mal nach "devspec2array".

Gruss Thomas

TomLee


frober

Zitat von: Der_Tom am 15 November 2022, 18:32:56
Nur am Handy, daher kurz.
Such Mal nach "devspec2array".

Gruss Thomas

Das hatte ich gerade auch schon versucht, mir ist aber nicht ganz klar, wie ich dabei das Regex verwende.

@TomLee danke, so funktioniert es.
Hatte es gerade ähnlich, aber erfolglos versucht. ;-)
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

TomLee

Hey, bin mir immer nicht sicher mit den einfachen und den doppelten Quotes und habs jetzt nicht ganz nachvollzogen, eigentlich sollten einfache reichen.

frober

Zitat von: TomLee am 15 November 2022, 20:22:18
Hey, bin mir immer nicht sicher mit den einfachen und den doppelten Quotes und habs jetzt nicht ganz nachvollzogen, eigentlich sollten einfache reichen.

Kein Problem, ich teste es bei Gelegenheit.
Im Forum wurde auch der * maskiert. Hat bei mir nicht funktioniert...
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

TomLee

Ot

ZitatRaspi 3b mit Raspbian Stretch

Fällt mir das erste mal auf, dein Ernst, ist das so ?

frober

Zitat von: TomLee am 15 November 2022, 20:39:49
Ot

Fällt mir das erste mal auf, dein Ernst, ist das so ?

Du beziehst dich auf Stretch, denke ich.
Leider ja, wollte letzten Winter schon upgraden...To-Do war zu lang...

Hoffe dass es diesen Winter klappt.
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

OdfFhem

Zitat von: TomLee am 15 November 2022, 20:22:18
Hey, bin mir immer nicht sicher mit den einfachen und den doppelten Quotes und habs jetzt nicht ganz nachvollzogen, eigentlich sollten einfache reichen.
Die einfachen reichen, da in der Zeichenkette nichts ersetzt werden muss; die doppelten bräuchte man z.B., wenn man innerhalb der Zeichenkette Variablenwerte verwenden möchte. Man kann je nach Fall aber auch auf die einfachen bzw. doppelten verzichten und verwendet stattdessen deren "(fast) gleichwertigen Ersatz" q bzw. qq ...

TomLee

Ja. Ja, ist mir alles neu ... Die Frage bleibt trotzdem immer, auch mt q und qq