template

Aus FHEMWiki
Version vom 19. März 2017, 01:02 Uhr von KernSani (Diskussion | Beiträge) (Wiki EIntrag für "template" Befehl erstellt)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)


template
Zweck / Funktion
Einfaches Erstellen gleichartiger Devices
Allgemein
Typ Befehl
Details
Dokumentation EN / DE
Support (Forum) Sonstiges
Modulname 98_template.pm
Ersteller Dr. Boris Neubert (Forum)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

Der template Befehl vereinfacht das Erstellen gleichartiger Devices in FHEM. Ein Template File besteht im Grunde aus FHEM Befehlen, in die Platzhalter eingefügt werden. Beim Aufruf des template Befehles werden die Platzhalter durch konkrete Werte ersetzt. Damit lassen sich sehr schnell ähnliche Devices (oder Kombinationen von Devices) erstellen oder ändern. Ein template file könnte z.B. die Definition eines Dummies inkl. mehrerer sich auf den Dummy beziehenden notifies und at's enthalten. Durch wiederholte Ausführung des templates lassen sich so schnell Devices und ihre Verarbeitungslogik erstellen.

Template File erstellen

Template Files werden ausserhalb FHEM erstellt und dann auf FHEM Server (in einem Unterverzeichnis von fhem) abgelegt. Nutzer von configdb müssen das file zunächst importieren, Derzeit (März 2017) können template files noch nicht über "Edit Files" in FHEM direkt bearbeitet werden. Über einen Workaround ist dies jedoch möglich. Dateien, die in /FHEM abgelegt sind und Endungen wie z.B. .holiday oder .layout haben, werden unter "Edit Files" angezeigt und können in FHEM bearbeitet werden. Das template file kann mittels

template show <templateFile>

angezeigt werden

Template File mit Inhalt füllen

Das Template besteht aus FHEM Befehlen mit Plathaltern, die bei der Ausführung des template Befehls durch konkrete Werte ersetzt werden. Ein template könnte beispielsweise folgendermaßen definiert werden.

# my Template File ./FHEM/tmpl_example.layout
define %name% dummy 
define di_%name% doif ([%name]) (set %device" on)
attr di_%name do always

Template ausführen

Bei Ausführung des Templates werden die FHEM Befehle des template files abgearbeitet. In oben definiertem Beispiel würde also ein

template ./FHEM/tmpl_example.layout name=myDummy

dazu führen, dass ein Dummy inkl. zugehörigem DOIF angelegt würde.