Die Diskussion ist losgegangen, weil 1wire "model" als "internal" speichert,
FS20 als Attribut, und wir fanden das irgendwie nicht richtig.
Vorschlag, nach etwas Nachdenken:
- beim FS20 bleibt, wie es ist, also model als Attribut, was Auswirkung auf die
moeglichen set Befehle hat.
- 1wire setzt nach define das model Attribut, laesst aber eine Aenderung nicht
zu, oder wenn doch, dann muss sich dementsprechend verhalten, es macht ja
evtl. Sinn es zu aendern. Was machbar ist, entscheidet der Modul-Author.
Damit ist "model" immer ein Attribut.
> Begruendungen:
> - define-Parameter sind elementar fuer den Betrieb des Geraetes und
> koennen nicht sinnvoll zur Programmlaufzeit geaendert werden (z.B.
> Hauskode bei X10, FHTId bei FHT80b)
Aber wenn ich z.Bsp mein FHT/X10 austausche, dann will ich es doch nicht
loeschen...
> - Aus den define-Parametern werden bei der Initialisierung des Geraets
> weitere Helper und Internals abgeleitet und gespeichert. Eine
> nachtraegliche Aenderung zieht Aenderungen der Helper und Internals nach
> sich mit ggf. schwer durchschaubaren Nebeneffekten (z.B. corr1..corr4
> bei EM, rainadjustment bei KS300)
Es stimmt, dass ein modify in so einem Fall wahrscheinlich nicht perfekt
ist, da es z.Bsp. die alten logfiles nicht durchackern wird. Mit delete/define
wird der Benutzer nicht erwarten koennen, dass fhem die Logfiles modifiziert.
Ich finde modify sollte trotzdem bleiben, und in diesem Fall eine Warnung
zurueckgeben.
Idee 2 und 3 finde ich eigentlich gut, aber danach muesste
attr my_at disabled
doch zu Definition gehoeren. Und "skip_next" auch.
Es faellt mir z.Zt keine gute Alternative ein.