Moin Moin,
ich strukturiere gerade meinen Gerätepark in FHEM um und benenne alle Devices nach einem festen Schema neu.
Leider benennt "rename" nur das Hauptgerät um, nicht jedoch:
- Die Channels
- DOIFs/Notifies/Watchdogs in denen diese Geräte verwendet werden
- Diagramme, die diese Geräte (bzw. Logfiles) benutzen
Für die Channels habe ich in 99MyUtils einige Zeilen perl, die das mit erledigen. Aber für die DOIFs und Diagramme fällt mir nix gescheites ein - daher erstmal meine Frage: ist das eigentlich Absicht so oder wurde rename nicht um die neuen Funktionen erweitert?
Danke, -MN
Für channels (HM) gibt es extra set deviceRename
Für die Benutzung in DOIF etc könntest du über die cfg mit einem Editor gehen, aber dabei solltest du aufpassen und wissen was du tust. Gleiches für Logfiles etc.
Fällt mir grep, xargs, sed ein. Bemühe mal google. Hab hab ich schon ein paar mal verwendet, um in allen cfgs Teile zu ersetzen. Grad aber nix parat, weil unterwegs
Gesendet von meinem SM-J510FN mit Tapatalk
Moin,
ich verwende
system("perl -p -i -e 's/$oldname/$newname/g' /opt/fhem/tempList.cfg") if -f "/opt/fhem/tempList.cfg";
um die TempList.cfg zu aktualisieren.
Allerdings sind das alles Workarounds. Sollte der rename-Befehl selbst nicht alle Referenzen vom alten Namen mit dem neuen Namen ersetzen (also auch in DOIFs, Notifies, tempList.cfg, Diagrammen usw)?
Dann würde das nämlich auch mit der ConfigDB funktionieren. Oder kennt jemand eine SQL-Anweisung für sqlite, in der ich entsprechend suchen und ersetzen kann...?
Danke, -MN