FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: MarkusAutomaticus am 24 Oktober 2016, 12:47:29

Titel: angenommen, man hat 31_HUEDevice.pm angepasst und dann kommt ein update
Beitrag von: MarkusAutomaticus am 24 Oktober 2016, 12:47:29
Hallo zusammen,

gestern habe ich meine beiden HUE Dimmer Switches in FHEM integriert.
Wie es im Wiki steht, habe ich dabei auch folgendes angepasst (btw. Die Zeilennummern sind wohl nicht mehr aktuell)

In Zeile 209 (in der aktuellen Versionen n der 31_HUEDevice.pm Zeile 255) muss folgendes geändert werden:
$interval = 60 if( $interval && $interval < 10 );
in:
$interval = 60 if( $interval && $interval < 1 );

Jetzt habe ich per update check festgestellt, dass genau 31_HUEDevice.pm aktualisiert wurde.

Ich vermute, dass wenn ich das update mache, ich meine Anpassung nachziehen muss,
oder ist das update so intelligent die PM-Dateien zu mergen oder zumindest einen Merge anzubieten?

Gruß
Markus
Titel: Antw:angenommen, man hat 31_HUEDevice.pm angepasst und dann kommt ein update
Beitrag von: DeeSPe am 24 Oktober 2016, 12:50:36
Entweder in global attr "exclude_from_update 31_HUEDevice.pm" setzen oder eben bei jedem Update manuell wieder anpassen.

Gruß
Dan
Titel: Antw:angenommen, man hat 31_HUEDevice.pm angepasst und dann kommt ein update
Beitrag von: MarkusAutomaticus am 24 Oktober 2016, 13:09:18
Hallo Dan,

da wäre es doch cool, wenn update vor dem update schaut, ob die upzudatenden Files dem Standard entsprechen und falls nicht, einen patch erzeugt, den es  nach dem update wieder einspielt.

Perl ist doch vom Ursprung her eine Textmanipulierungssprache, da sollte das doch relativ einfach zu implementieren sein, oder?

Ich geb's zu, das ist jetzt etwas überspitzt formuliert und sicher nicht so trivial, aber für einen Perl-Experten sicherlich nicht unlösbar.

Gruß
Markus
Titel: Antw:angenommen, man hat 31_HUEDevice.pm angepasst und dann kommt ein update
Beitrag von: dev0 am 24 Oktober 2016, 18:26:00
Da Du zum vernünftigen Umgang mit dem Perl Framework FHEM sowieso Perlkenntnisse benötigst, würde ich überspitzt vorschlagen, dass Du den Patch selbst entwickelst (dabei Perl lernst), den Patch ausgiebig testest und die Doku anpasst. Mit viel Überzeugungskunst nimmt der Modul Maintainer den Patch dann vielleicht sogar an ;)
Titel: Antw:angenommen, man hat 31_HUEDevice.pm angepasst und dann kommt ein update
Beitrag von: MarkusAutomaticus am 25 Oktober 2016, 09:48:07
Hallo Dev0,

genaugenommen ist das Problem ein zweiteiliges:

1.) Das konkrete Modul HUE 31_HUEDevice.pm wo schon im Wiki steht, dass man um es sinnvoll nutzen zu können, den Timer von 10 auf 1 reduzieren soll.

2.) Eine grundsätzliche Anpassung des FHEM-update-Mechanismus in der von mir vorgeschlagen Art

zu 1.) drängt sich mir die Frage auf, warum die Lösung nicht gleich ins Modul eingebaut wird, anstelle jeden Anwender dieses selbst machen zu lassen.

2.) ist eine schwerwiegende Änderung, bei der einiges bedacht sein will und die sicherlich nicht von einem absoluten Perl-Novizen wie mir geschultert werden kann.

Möglicherweise schätze ich die Notwendigkeit des Ganzen auch falsch ein, weil 31_HUEDevice.pm eine absolute Ausnahme ist und der gemeine FHEM-Anwender normalerweise gar nicht in den sourcen der Module herumeditieren muss?

Gruß
Markus
Titel: Antw:angenommen, man hat 31_HUEDevice.pm angepasst und dann kommt ein update
Beitrag von: marvin78 am 25 Oktober 2016, 09:52:11
Ich verstehe das Problem nicht. Es gibt exclude_from_update für genau diese Fälle. Warum sollte man das unnötig verkomplizieren? Wenn man etwas in den Modulen ändert, ist es doch ein Leichtes, sie auch in exclude_from_update aufzunehmen.

Für Fälle, in denen man eine Änderung zwigend benötigt, aber auch auf updates nicht verzichten möchte, baut man einen Patch oder bittet den Autor (im richtigen Forum - siehe maintainer.txt) um Anpassung, ggf. per neuem Attribut. Was ist daran so schwer?
Titel: Antw:angenommen, man hat 31_HUEDevice.pm angepasst und dann kommt ein update
Beitrag von: MarkusAutomaticus am 25 Oktober 2016, 10:38:04
Zitat von: marvin78 am 25 Oktober 2016, 09:52:11
Ich verstehe das Problem nicht. Es gibt exclude_from_update für genau diese Fälle. Warum sollte man das unnötig verkomplizieren? Wenn man etwas in den Modulen ändert, ist es doch ein Leichtes, sie auch in exclude_from_update aufzunehmen.

Für Fälle, in denen man eine Änderung zwigend benötigt, aber auch auf updates nicht verzichten möchte, baut man einen Patch oder bittet den Autor (im richtigen Forum - siehe maintainer.txt) um Anpassung, ggf. per neuem Attribut. Was ist daran so schwer?

Als positiv denkender Mensch gehe ich immer davon aus, dass Updates etwas Positives sind.
I.d.R. beinhalten Updates Bugfixes und/oder neue Features.

Warum soll ich mich dieser Vorteile berauben, indem ich ein Modul in dem ich eine "10" in eine "1" geändert habe,
von vorneherein grundsätzlich ausschließe?

Natürlich fällt das alles nicht in die Kategorie "Problem". Klar kann man das Modul exkludieren oder nach jedem Update den Editor anwerfen und dieselbe Änderung immer und immer wieder nachziehen.

Aber beides widerspricht dem, was ich elegante Vorgehensweise nennen würde.

Und immer wenn es unelegant wird, juckt es mich in den Fingern, eine Änderung herbeiführen zu wollen.
Eine kleine Unart von mir, weiter nichts.

Gruß
Markus
Titel: Antw:angenommen, man hat 31_HUEDevice.pm angepasst und dann kommt ein update
Beitrag von: Markus M. am 27 Oktober 2016, 17:38:11
FHEM in seinem Arbeitsverzeichnis per SVN auschecken und nur noch per SVN Update aktualisieren, dann bleiben die eigenen Änderungen erhalten.
Titel: Antw:angenommen, man hat 31_HUEDevice.pm angepasst und dann kommt ein update
Beitrag von: DeeSPe am 27 Oktober 2016, 18:34:22
Zitat von: Markus M. am 27 Oktober 2016, 17:38:11
FHEM in seinem Arbeitsverzeichnis per SVN auschecken und nur noch per SVN Update aktualisieren, dann bleiben die eigenen Änderungen erhalten.

Das ist dann im Endeffekt das Selbe wie exclude_from_update denn er wird dann keine Updates mehr für dieses Modul bekommen.

Gruß
Dan
Titel: Antw:angenommen, man hat 31_HUEDevice.pm angepasst und dann kommt ein update
Beitrag von: MarkusAutomaticus am 28 Oktober 2016, 09:22:27
Hallo zusammen,

irgendwie verstehe ich das Problem nicht.

Anstatt im Wiki jeden einzelnen Anwender, der einen HUE Dimmer verwenden will, im Quelltext von 31_HUEDevice.pm herumeditieren zu lassen,
wäre es da nicht sinnvoller es gleich richtig zu machen und entsprechend einzuchecken?

Entweder ist der eine Wert oder der andere Wert der richtige und wenn diese Stelle im Code auch noch für andere Devices gilt, wo der ursprüngliche Wert sinnvoll ist, dann muss halt im Code eine Sonderbehandlung a la


if (HUEDimmer)
{
   Wert = 1;
}
else
{
  Wert = 10;
}


Durchgeführt werden und fertig ist die Laube.

Oder meinetwegen führt man den Wert in einem Attribut raus,
aber den Benutzer im Quellcode rumpfuschen lassen (bei sich ständig ändernden Zeilennummern, die eigentlich im Wiki nachgeführt werden müssten...), das ist fast so, als müsse der Anwender in Word den Quellcode modifizieren, wenn er die Schriftgröße ändern will  ;)

Gruß
Markus
Titel: Antw:angenommen, man hat 31_HUEDevice.pm angepasst und dann kommt ein update
Beitrag von: dev0 am 28 Oktober 2016, 11:42:35
Zitat von: MarkusAutomaticus am 28 Oktober 2016, 09:22:27
irgendwie verstehe ich das Problem nicht.
Außer Dir hat hier niemand ein Problem, schießlich hast Du den Thread eröffnet.

Ein Modulautor hat festgelegt, dass es nicht sinnvoll ist Werte kleiner X zu erlauben. Wenn Dir das nicht passt (wie anscheindend dem Autor des Wiki Artikels auch), dann kannst Du das ändern, schließlich ist FHEM ein open source Framework, das für Entwickler gedacht ist, nicht für Endanwender, die nur Knöpfchen drücken wollen.

Wenn Du, aus Deiner Sicht, etwas zur Verbessung von FHEM beitragen kannst, dann schreib einen Patch und schlage die Änderung dem Modulautor vor und begründe diese.
Titel: Antw:angenommen, man hat 31_HUEDevice.pm angepasst und dann kommt ein update
Beitrag von: justme1968 am 28 Oktober 2016, 12:18:40
leute... macht doch mal halb lang.

ich war (und bin) der meinung das es nur sehr eingeschränkt sinnvoll ist über das pollende api das es aktuell gibt sensoren anzubinden um sie sehr schnell in fhem auzuwerten. bis vor kurzem gab es den bedarf dafür auch nur bei sehr wenigen anwendern und potentiell gibt es das risiko sich seine installation damit lahm zu legen wenn man das intervall zu kurz wählt.

da es jetzt scheinbar mehr anwender gibt die das nutzen wollen überlege ich mir etwas.

gruss
  andre
Titel: Antw:angenommen, man hat 31_HUEDevice.pm angepasst und dann kommt ein update
Beitrag von: Mickey am 28 Oktober 2016, 12:49:53
Hallo,

ob ich nun 5 Sekunden (wurde bereits auf 5 Sek. in der 31_HUEDevice.pm geändert) warte oder 1 Sekunde ist doch kaum relevant  :o

Und wenn, dann benutze ich exclude_from_update  und der Kas ist gebissen.

Grüße, Michael