FHEM Forum

FHEM => Sonstiges => Thema gestartet von: bjoernh am 09 April 2015, 22:47:14

Titel: Umbenennung von Modulen
Beitrag von: bjoernh am 09 April 2015, 22:47:14
Hallo Zusammen,

Rudi hat mich gebeten mein Anliegen zur Diskussion zu stellen:

Folgendes:
Ich habe mein Modul 14_CUL_TCM97001.pm inzwischen erweitert, so dass verschiedene Sender empfangen werdenden können.
Mir und auch anderen gefällt der Name nun nicht so richtig. Da es ja ein universelles Modul geworden ist.
Wie geht man nun am einfachsten vor (ohne das System zu brechen)'das Modul umzubenennen?
Einfach umbenennen ist ja nicht so gut, da dann das Alte ebenso bei den Anwendern existiert.
Des weiteren fehlen ja dann die bereits empfangenen Daten.

Habt Ihr eine Idee wie man so etwas am einfachsten lösen könnte?

Ich könnte mir folgendes Vorstellen:
- Fhem update um eine art Blacklist funktion erweitern, so dass überfällige/alte Module beim Update gelöscht werden.
- Im neuen Modul dafür sorgen, dass das alte Modul gelöscht wird (ist wohl nicht so schön)

Habt Ihr eine Idee für so ein vorgehen?

Gruß
Björn
Titel: Antw:Umbenennung von Modulen
Beitrag von: LuckyDay am 09 April 2015, 23:44:34
was unschön ist, wenn nach update nichts mehr geht, war bei dem ECMD Modul letzes Jahr der Fall :( ,

Blacklist , bzw den User quälen, dass er seine Config anpacken muß für das neue Modul (wenn er Zeit hat), aber solange das alte in Betrieb bleibt.
da wäre ich ein Freund davon :)
Titel: Antw:Umbenennung von Modulen
Beitrag von: Wuppi68 am 10 April 2015, 00:26:47
altes Modul auf Neues kopieren :-)

in dem alten Modul eine Meldung beim Starten ins Log schreiben, Reading mit Verweis auf das Neue Modul einrichten; Ins Log schreiben, welcher Befehl in die Kommandozeile eingespielt werden muss :-)
Titel: Antw:Umbenennung von Modulen
Beitrag von: rudolfkoenig am 10 April 2015, 09:42:33
Mir bescheid geben, und ich fuege ein "MOV FHEM/modulname.pm unused" in controls_fhem.txt ein.
unused kann man als Muelleimer betrachten, geleert werden soll aber nur vom Benutzer.

Dieser Teil von update.pm wird noch ueberarbeitet: falls update.pm neue Features bekommt, dann wird z.Zt. diese Funktion erst beim naechsten update Aufruf wirksam (was zu spaet ist, da manche ein update nur einmal im Jahr oder seltener aufrufen), das will ich zum naechsten fhem-Start verlagern. Weiterhin will ich nicht alle DIR/MOV Befehle bei jedem update ausfuehren, sondern nur die benoetigten. Und ich Traeume davon, von fhem.de nur ein Paket statt vielen Einzeldateien herunterzuladen, habe allerdings noch keinen guten Plan.
Titel: Antw:Umbenennung von Modulen
Beitrag von: TeeVau am 10 April 2015, 09:50:22
Es gibt doch so eine notice  Funktion, oder? Die habe ich nur einmal benutzen müssen, als sie vorgeführt wurde. Kann man die Informationen nicht dort unterbringen, diese Meldungen mussten doch Manuel per Befehl akzeptiert werden.

Ich fand sonst die Idee, die für das XBMC modul mal angerissen wurde. modul mit neuem Namen anlegen und nur noch daran arbeiten. Die alte Version bleibt für eine gewisse Zeit erhalten und irgendwann aus FHEM rausgenommen.
Titel: Antw:Umbenennung von Modulen
Beitrag von: rudolfkoenig am 10 April 2015, 09:55:14
Was ich dabei vergessen habe: Definition bisheriger Geraete geht dabei verloren, es sei denn man passt es vorher manuell an. Alternativ erweitern wir update.pm mit einem Befehl in der Art
ZitatMODULERENAME CUL_TCM97001 CUL_433MISC
Die restliche Konvertierung von Parametern / Attributen muss das Modul selbst vornehmen.
Die vom XBMC angerissene Loesung gefaellt mir uebrigens am besten: wenig Automatismus was schiefgehen kann.

Notice gibts (noch), gefaellt mir aber nicht so: es eroeffnet einen weiteren Kommunikationskanal zwischen Entwickler und Anwender.
Titel: Antw:Umbenennung von Modulen
Beitrag von: bjoernh am 10 April 2015, 10:00:45
Zitat von: rudolfkoenig am 10 April 2015, 09:42:33
Weiterhin will ich nicht alle DIR/MOV Befehle bei jedem update ausfuehren, sondern nur die benoetigten.
Aber dies ließe sich doch damit lösen indem es eine Liste mit solchen relevanten moves/renames gibt. Ausgeführt wird dann der move nur wenn die alte Datei existiert. Ich denke nicht, dass das dann so viel Performance kostet.
OK, die Liste wird natürlich theoretisch ewig lang, aber praktisch kommt das ja nicht so oft vor.