Autocreate.pm Dezentralisiert

Begonnen von rudolfkoenig, 15 November 2013, 19:37:42

Vorheriges Thema - Nächstes Thema

rudolfkoenig

Ich habe angefangen die Konfiguration (%flogpar) aus autocreate.pm auszulagern, damit jedes Modul diese Dienste ohne Aenderungen von autocreate.pm spezifizieren kann. D.h. dass man im Initialize des eigenen Moduls ein AutoCreate Eintrag anlegen kann, wenn man .gplot Dateinamen, FileLog Filter oder anzulegende Attribute fuer bestimmte Geraete spezifizieren will, in folgenden Form:
  $hash->{AutoCreate}=
        { "FBDECT.*" => {
             GPLOT => "power4:Power,",
             FILTER => "%NAME:power\\x3a.*",
             ATTR => "event-min-interval:power:120" } };


FBDECT.* referenziert den beim UNDEFINED Event spezifizierten Geraetenamen, darueber kann man mehrere Sorten von Einstellungen/Attribute/etc angeben.

Ich habe das fuer meine Module (FBDECT/CUL_EM/CUL_WS/CUL_TX/KS300/HMS/FHT) durchgefuehrt, RFXTRX, USB-WDE und CUL_HM muesste noch nachgezogen werden. Meldet euch, wenn Ihr das erledigt habt, dann kann ich das aus %flogpar in autocreate.pm entfernen. Die in Modul spezifizierten Daten haben Vorrang, beide Eintraege koennen also auch parallel existieren.

Gruss,
  Rudi

justme1968

hallo rudi,

drei vorschläge/fragen/anmerkungen:

- wie wäre es den mechanismus für default attribute so zu erweitern das er auch für devices greift die von hand angelegt werden?

- wie wäre es wenn man beim define gleich attribute mit angeben kann? das wäre z.b. für verbose sinnvoll um es in der DefFn schon zu verwenden.

- es wäre glaube ich besser die attribute mit CommandAttr zu setzen statt den hash direkt zu füllen weil sonst das modul nichts davon mit bekommt weil die AttrFn nicht aufgerufen wird und keine aktionen triggern kann. wie z.b. bei setzen von debug ein log file auf machen oder eine lib entsprechen initialisieren oder bei setzen eines product code das zugehörige device file zu laden. userReadings lassen sich sonst auch nicht setzen weil die zugehörige initialisierung nicht aufgerufen wird.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

1. Bin dagegen, da ich keine Loesung habe fuer den Fall, dass man diese Attribute nicht oder anders anlegen will.
2. Weiss nicht, wie du dir das vorstellst. Btw. fuer fhem.cfg gibt es das Kommando setdefaultattr (obwohl ich das eigentlich abschaffen will :)
3. Klar, habs gerade geaendert und eingecheckt.

Off-Topic: Koenntest Du bitte http://forum.fhem.de/index.php/topic,16579.new.html#new anschauen?

justme1968

2. ich dachte an etwas das direkt nach dem define angegeben werden kann. wie z.b 'define [verbose=5 room=abc] test dummy' wobei die [] wirklich hingeschrieben sind.

1. z.b. mit einem [*nodefault]

3. danke


das usb autocreate schaue ich mir an. dazu muss aber mindestens ein sketch noch angepasst werden (ec3000) weil der allergisch reagiert wenn man etwas schickt was er nicht erwartet.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Ich bin noch skeptisch, da ich die Vorteile nicht sehe, aber Featuritis vermeiden will.

justme1968

genau die antwort hab ich erwartet :)

es ist halt schade das den einem mechanismus zum setzen der attribute bei autocreate gibt und trozdem jedes modul mehr oder weniger noch mal code für  default attribute haben muss wenn es nicht über autocreate geht.

aber eigentlich geht es mir primär  darum verbose setzen zu können so das es initial im define schon nutzbar ist.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968