FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: kh.schmidt am 27 Juli 2015, 07:34:25

Titel: fhem.cfg import von Sensordefinitionen mit Name als Übergabeargument
Beitrag von: kh.schmidt am 27 Juli 2015, 07:34:25
Hallo,

um die fhem.cfg übersichtlich zu halten, habe ich schon den Vorschlag gesehen, die Sensoren per import einzubinden. Der Nachteil von import ist jedoch, dass ich trotzdem für jeden Sensor eine eigene Datei benötige. Ich habe viele gleichartige Sensoren, zB. Rauchmelder, für die ich alle die gleiche Vorlage mit define, attr, mapReading usw. verwenden möchte. Der einzige Unterschied ist der Name des Sensors.

Frage:
gibt es eine Möglichkeit mit solchen Vorlagen zu arbeiten; beim Einbinden der Vorlage soll dann nur der Name des Sensors übergeben werden (wie bei einer Funktion)

KH
Titel: Antw:fhem.cfg import von Sensordefinitionen mit Name als Übergabeargument
Beitrag von: Wuppi68 am 27 Juli 2015, 12:21:09
gibt es so nicht, ist aber relativ einfach zu erledigen ...

- Du erstellt Dir eine z.B. 99_myTemplates.pl

dort kommen dann Deine Templates rein

zb. so ... (keine 1:1 Übernahme möglich)

sub addRauchmelder($$)
{
  my ($name, $id) = @_;
  fhem("define $name ...");
  fhem("attr $name ...");
}


aber ich glaueb es macht keinen Sinn diese jedesmal dynamisch zu generieren - Rauchmelder und anderes fest verbautes Zeugs ändert sich ja so oft ...

Du meinst aber bestimmt include wo Du die einzelnen Definitionen auslagern kannst - macht aber auch keinen Sinn, da FHEM dann keine Kontrolle mehr über die Definitionsreihenfolge im System hat und dadurch gerne unschöne Seiteneffekte auftreten (können)

Mein Tipp: einfach alles im WebFrontend machen - geht deutlich weniger Fehleranfällig :-) und die Finger von der fhem.cfg lassen
Titel: Antw:fhem.cfg import von Sensordefinitionen mit Name als Übergabeargument
Beitrag von: kh.schmidt am 27 Juli 2015, 13:55:13
ja, ich meinte include
Titel: Antw:fhem.cfg import von Sensordefinitionen mit Name als Übergabeargument
Beitrag von: krikan am 27 Juli 2015, 14:06:56
Stimme Wuppi68 zu: Mache es über das WebFrontend und verzichte include. Das könnte Dir eine Menge Arbeit ersparen. http://www.fhemwiki.de/wiki/Konfiguration

Im WebFrontend:
Device-übergreifende Attribute kannst Du mit http://fhem.de/commandref.html#attr und Nutzung der <devspec> (http://fhem.de/commandref.html#devspec) anlegen. Evtl. ist auch http://fhem.de/commandref.html#copy etwas für Deine Zwecke.
Natürlich könntest Du mit Vorsicht auch http://fhem.de/commandref.html#setdefaultattr nutzen. Ich mag es aber nicht.