Ganz doof gefragt: "Rename" auf eine Gruppe anwenden?

Begonnen von Pfriemler, 26 März 2014, 19:00:39

Vorheriges Thema - Nächstes Thema

Pfriemler

Ich habe keine Ahnung von Perl, aber das kann sich ja im Verlaufe von FHEM ändern.

Gesetzt den Fall, ich habe ein Device CUL_HM_SO_EIN_RATTEN_SCHWANZ mit diversen Buttons dran (_Btn_01)

Die alle am Stück per "attr CUL_HM_SO_EIN_RATTEN_SCHWANZ.* room xy" in einen Raum zu hieven klappt ja prima. Aber kann ich sie auch am Stück umbenennen, so dass der Teil "CUL_HM_SO_EIN_RATTEN_SCHWANZ" z.B. durch "FB12Tasten" ersetzt wird? Oder ist und bleibt da Handarbeit angesagt? (copy & paste hilft ja schon mal)

Schönen Abend noch allseits!
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Puschel74

Hallo,

wie betateilchen schon gesagt hat:
Zitat von: betateilchen am 26 März 2014, 19:14:19
Handarbeit.

ZitatAber kann ich sie auch am Stück umbenennen, so dass der Teil "CUL_HM_SO_EIN_RATTEN_SCHWANZ" z.B. durch "FB12Tasten" ersetzt wird?
Wie soll das gehen (sollte rename wirklich Wildcards können? - ich bin noch nie auf die Idee gekommen das zu versuchen)?

Du hast mehrere Geräte auf die "CUL_HM_SO_EIN_RATTEN_SCHWANZ.*" zutrifft.
Man beachte das .* am Ende.
Das besagt nämlich
. ein beliebiges Zeichen
* beliebig oft
d.h. lang ausgedrückt:
"CUL_HM_SO_EIN_RATTEN_SCHWANZ_Btn_01"
"CUL_HM_SO_EIN_RATTEN_SCHWANZ_Btn_02"
"CUL_HM_SO_EIN_RATTEN_SCHWANZ_Btn_03"
"CUL_HM_SO_EIN_RATTEN_SCHWANZ0"
"CUL_HM_SO_EIN_RATTEN_SCHWANZd"
"CUL_HM_SO_EIN_RATTEN_SCHWANZ_f1pfhg"
...
... (auf die weiteren Möglichkeiten gehe ich nicht ein)

Sprich: Es wird auf alle Fälle ALLE deine "CUL_HM_SO_EIN_RATTEN_SCHWANZ.*" treffen und in "FB12Tasten" umbenennen (versuchen).
Beim ersten klappt das evtl. noch aber spätestens beim zweiten ist Schluss da "FB12Tasten" bereits existiert.

@betateilchen (oder jemand anderer mit Ahnung):
Könnte rename vielleicht Wildcards können?
Ich hab ja mal wieder keine Ahnung  8)
Aber könnte
"CUL_HM_SO_EIN_RATTEN_SCHWANZ_Btn.*"
in z.B.
"FB_Erdgeschoss.*"
umbenannt werden?

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

justme1968

nein. rename kann keine wildcards.

wenn es die könnte ginge es in etwa so:

  rename CUL_HM_SO_EIN_RATTEN_SCHWANZ_(.*) FB12Tasten_$1

aber da rename keine wildcards kann erübrigt sich das. man könnte aber eine kleine perl schleife bauen die das tut:
foreach my $alt (keys %defs) {
  if( $key =~ m/^CUL_HM_SO_EIN_RATTEN_SCHWANZ_(.*)/ ) {
    fhem( "rename $alt FB12Tasten_$1" );
  }
}
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Pfriemler

Zitat von: Puschel74 am 26 März 2014, 19:32:06
Sprich: Es wird auf alle Fälle ALLE deine "CUL_HM_SO_EIN_RATTEN_SCHWANZ.*" treffen und in "FB12Tasten" umbenennen (versuchen).
Beim ersten klappt das evtl. noch aber spätestens beim zweiten ist Schluss da "FB12Tasten" bereits existiert.
Das war mir ja völlig klar.

Zitat
Könnte rename vielleicht Wildcards können? ...
"CUL_HM_SO_EIN_RATTEN_SCHWANZ_Btn.*"
in z.B.
"FB_Erdgeschoss.*"
umbenannt werden?

Das exakt war meine Ausgangsfrage.

CUL_HM_SO_EIN_RATTEN_SCHWANZ war als Platzhalter für ein soeben neu angelerntes HM-Device gedacht, wobei SCHWANZ dann die HM-ID wäre. Ich hätte auch kein Problem damit, die _Btn_xx weiterzuverwenden.

Die Idee mit der Schleife hatte ich auch schon. Der Entwurf wird vorgemerkt, danke. Inzwischen ist die Handarbeit absolviert.

Blöd finde ich übrigens, dass ein rename  nicht auch die DEFs von notify & Co. anpasst. Aber damit kann man leben - so wird mann gezwungen, sich gleich richtige Namen auszudenken und hinterher nicht mehr zu ändern ...

"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

RoBra81

Ist zwar nicht mehr aktuell, aber ich hatte den Fall auch schon und habe es mit Excel erledigt: Ich habe mir alle FHEM-Gerätename ins Excel kopiert und dann eine Verkettungsformel gebaut, die mir x renames mit ; separiert rausgegeben hat, die ich dann nur einmal  im FHEM ausführen musste...