Hallo,
ich hätte einen Vorschlag zur Verbesserung, weiß aber nicht ganz genau wohin ich ihn tun soll.
Es wäre schön wenn es möglich wäre ein rename per wildcard durchzuführen (bzw. ein Device mit allen Unterchannels umzubennen)
Als Beispiel:
Ein Heizungsthermostat inklusive seiner 6 Unterchannel umbenennen.
rename HM365678.* Wohnzimmer.Heizung.*
Aktuell benötigte Befehle (7):
rename HM365678 Wohnzimmer.Heizung_links
rename HM365678_Weather Wohnzimmer.Heizung_links_Weather
rename HM365678_Climate Wohnzimmer.Heizung_links_Climate
rename HM365678_WindowRec Wohnzimmer.Heizung_links_WindowRec
rename HM365678_Clima Wohnzimmer.Heizung_links_Clima
rename HM365678_ClimaTeam Wohnzimmer.Heizung_links_ClimaTeam
rename HM365678_remote Wohnzimmer.Heizung_links_remote
Ich habe schon im Forum gesehen das hierfür empfohlen wird die fhem.cfg direkt per Editor zu bearbeiten und search&replace zu nutzen. Dies erscheint mir aber kein guter Weg zu sein.
Danke
Viele Grüße
Volker
Du könntest dir sicher auch eine kleine Perl-sub dafür schreiben.
Die Empfehlung, die Config direkt zu editieren, ist natürlich nicht ernst gemeint ;)
Ist immer die Frage, ob man allemchannel aendern will,.... Meist wohl schon.
Das Remake ist eine fhem Funktion, die kennt keine Struktur. Das geht also nicht.
Wildcards sind nicht mein weg, das müsste man selbst machen.
Es bleibt also nur ein set <device> devicerename <newname>
Zu beachten bleibt, dass notifies oder Register Archivs nicht gewandert werden!
Die culhm Installation sollte komplett bleiben.
Hallo martinp876,
danke für die Antwort, vielleicht ist ein Parameter am rename eine Möglichkeit. Zum Beispiel -r für alle Channels mit umbenennen.
Gibt es aktuell den ein Skript was diese Funktion erfüllt? Zurzeit machen ich es per Editor in der fhem.cfg, find ich nicht gut, habe aber keinen anderen Weg gefunden.
Viele Grüße
Volker
http://forum.fhem.de/index.php/topic,29354.msg221166.html#msg221166 (http://forum.fhem.de/index.php/topic,29354.msg221166.html#msg221166)
Hallo Zusammen,
ich habe jetzt eine Funktion für Myutils geschrieben, die dies Umsetzt.
Viele Grüße
Volker
sub rename_vme($$$){
my ($device,$old,$new) = @_ ;
my @devices = devspec2array($device) ;
foreach $device (@devices){
my $val = $device;
$val =~ s/$old/$new/g;
{Log 1, "Automatic Rename with Subdevices:". $device . " - " . $val};
fhem("rename $device $val");
}
}
Vorschlag:
Alle Renames in einem Texteditor erstellen und mit Semikolon trennen. Das meiste ist dann ja sowieso Copy-And-Paste.
Diese Textdatei dann mit
include <renames.txt>
ausführen.
PS: Wenn man ein sinnvolles Benamsungskonzept für sein Devices hat, sollte man das sowieso nur einmal (z.B. nach einem Autocreate) machen müssen. ;)
Ein deviceRename steht seit morgen zu Verfügung :)
Es sollte alle Kanäle umbenennen. Notifies u.ä. liegen in eigener Verantwortung.
Vielen Dank.
Dann ist das Problem ja jetzt für HM Komponenten erledigt.
Viele Grüße
Volker