Default Attribute setzen

Begonnen von dev0, 11 Oktober 2016, 09:52:53

Vorheriges Thema - Nächstes Thema

dev0

Zitat von: justme1968 am 11 Oktober 2016, 08:22:09
nein. man soll sie ja eben beim modify nicht setzen. das passiert aber wenn man nur $init_done prûft.

Reicht es denn aus auf $init_done && !defined $hash->{OLDDEF} zu prüfen oder gibt es Situationen in denen das auch nicht ausreichend wäre? Bisher hatte ich mit setKeyValue() ein Flag gesetzt, aber der Aufwand ist einfach höher wenn ein Device umbenannt/gelöscht, ... wird.

rudolfkoenig

ZitatReicht es denn aus...
Meiner Ansicht nach ja.

dev0

#2
Dann gehe ich auch mal davon aus, dass man diese default Attribute auch automatisch beim Autocreate setzen kann, ohne mit "Attribute gehören dem Benutzer" in Konflikt zu geraten. Zumindest dann, wenn die Attribute den default Werten des Moduls entsprechen und das Modul ohne diese Attribute normal funktioniert. Richtig?

Wie sieht es aus, wenn ich (als Modulautor) es für sinnvoll erachte, dass z.B. das Atrribut "event-on-change-reading .*" einmalig beim Define gesetzt wird, um (unnötige) Events zu vermeiden. Dann hätte der Anwender die Möglichkeit das Attribut zu löschen und bekommt alle Events. Wenn ich das im Modul abfangen würde, dann hätte der Anwender keine Möglichkeit das zubeeinflussen. Würde das unseren Developer Guidelines entsprechen?

Ich frage so genau nach, weil man dazu die unterschiedlichsten Meinungen im Forum findet.
Ich hoffe aber auch, dass ich jetzt keine ellenlange Diskussion auslöse, da ich davon ausgehe, dass das so ok ist: Kein Anwender wird bevormundet, aber eine (sinnnvolle) Konfiguration wird vorgegeben.

rudolfkoenig

ZitatWie sieht es aus, wenn ich (als Modulautor) es für sinnvoll erachte, dass z.B. das Atrribut "event-on-change-reading .*" einmalig beim Define gesetzt wird, um (unnötige) Events zu vermeiden. Dann hätte der Anwender die Möglichkeit das Attribut zu löschen und bekommt alle Events.

Ich habe mich lange dagegen gewehrt, dass Module Attribute setzen, aber da nicht jeder die Voreinstellung fuer event-on-*, webCmd, etc  selbst bestimmen kann, ist sowas bei der Erst-Definition (so wie oben gezeigt) in manchen Faellen sinnvoll.

Sidey

Ich halte es als praktikabel Attribute einmalig zu definieren.

Aus meiner Sicht, nehmen wir dem Anwender das wälzen der Commandref ab.
Ist ja in etwa so, dass wenn ich ein Programm installieren, dann wird meist auch eine default Konfiguration angelegt. So ist sichtbar, war eingestellt ist.
Als Anwender habe ich dann die Möglichkeit es zu verändern.

Nachträglich sollten wir die Attribute nicht mehr verändern, außer, der Nutzer initiiert es z.B. mit einem Set Befehl oder ähnliches.

Bisher bin ich auch noch nicht dazu gekommen, meine Idee mit dem Setzen eines default Gerätes eines Modules zu experimentieren.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker