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
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
ja, ich meinte include
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.