DOIF/Templates: Unterschied zwischen den Versionen

Aus FHEMWiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „An dieser Stelle wird die Nutzung von Templates im DOIF-Modul erklärt. Mit Hilfe von Templates können Lösungen nicht nur für eine Problemstellung, im Folge…“)
 
Keine Bearbeitungszusammenfassung
Zeile 4: Zeile 4:


Ausgangspunkt soll eine einfache Zeitschaltuhr mit jeweils drei Einschalt- und drei Ausschaltzeitpunkten sein.
Ausgangspunkt soll eine einfache Zeitschaltuhr mit jeweils drei Einschalt- und drei Ausschaltzeitpunkten sein.
'''Definition ohne Templates'''


Dazu wird folgende Definition vorgenommen:
Dazu wird folgende Definition vorgenommen:
Zeile 12: Zeile 14:


Hier wurden sowohl Zeiten, als auch das Gerät festgelegt. Möchte man nun eine weitere Zeitschaltuhr definieren, so würde man die Definition kopieren und die festen Angaben der Zeitpunkte und das Gerät abändern. Auf diese Weise lassen sich beliebig viele Modul-Kopien anfertigen, die für sich eigenständig funktionieren. Das Problem fällt allerdings spätestens dann auf, wenn man an der Steuerung etwas ändern möchte, z. B. einen weiteren Zeitpunkt oder eine andere Bedingung zum Ein- oder Ausschalten hinzufügen möchte, die nicht nur ein Szenario betrifft, sondern alle. Dann muss man alle Kopien entsprechen abändern.
Hier wurden sowohl Zeiten, als auch das Gerät festgelegt. Möchte man nun eine weitere Zeitschaltuhr definieren, so würde man die Definition kopieren und die festen Angaben der Zeitpunkte und das Gerät abändern. Auf diese Weise lassen sich beliebig viele Modul-Kopien anfertigen, die für sich eigenständig funktionieren. Das Problem fällt allerdings spätestens dann auf, wenn man an der Steuerung etwas ändern möchte, z. B. einen weiteren Zeitpunkt oder eine andere Bedingung zum Ein- oder Ausschalten hinzufügen möchte, die nicht nur ein Szenario betrifft, sondern alle. Dann muss man alle Kopien entsprechen abändern.
'''Definition mit Templates'''
Ausgehend von der obigen Definition, wird ein Template erstellt. Hiebei werden feste Angaben durch Platzhalter ersetzt.
<syntaxhighlight lang="perl">
</syntaxhighlight>

Version vom 26. Juli 2020, 12:27 Uhr

An dieser Stelle wird die Nutzung von Templates im DOIF-Modul erklärt. Mit Hilfe von Templates können Lösungen nicht nur für eine Problemstellung, im Folgenden Szenario genannt, sondern gleich generisch (allgemein gültig) für mehrere Szenarien erstellt werden.

Die Vorgehensweise dazu wird am Beispiel einer Zeitschaltuhr aufgezeigt.

Ausgangspunkt soll eine einfache Zeitschaltuhr mit jeweils drei Einschalt- und drei Ausschaltzeitpunkten sein.

Definition ohne Templates

Dazu wird folgende Definition vorgenommen:

defmod di_zeitschaltuhr DOIF {if ([10:00] or [12:00] or [16:00]) {fhem_set"lampe on"} elsif ([11:00] or [14:00] or [20:00]) {fhem_set ("lampe off")}}

Hier wurden sowohl Zeiten, als auch das Gerät festgelegt. Möchte man nun eine weitere Zeitschaltuhr definieren, so würde man die Definition kopieren und die festen Angaben der Zeitpunkte und das Gerät abändern. Auf diese Weise lassen sich beliebig viele Modul-Kopien anfertigen, die für sich eigenständig funktionieren. Das Problem fällt allerdings spätestens dann auf, wenn man an der Steuerung etwas ändern möchte, z. B. einen weiteren Zeitpunkt oder eine andere Bedingung zum Ein- oder Ausschalten hinzufügen möchte, die nicht nur ein Szenario betrifft, sondern alle. Dann muss man alle Kopien entsprechen abändern.

Definition mit Templates

Ausgehend von der obigen Definition, wird ein Template erstellt. Hiebei werden feste Angaben durch Platzhalter ersetzt.