Dummy: Unterschied zwischen den Versionen
Igami (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
(→Beispiele: hinzugefügt) |
||
Zeile 35: | Zeile 35: | ||
Statt in einem dummy können diese Hilfs-Readings auch direkt in der readingsGroup untergebracht werden. Auch die Verwendung mit dem !-Flag in der readingsGroup bietet sich an. | Statt in einem dummy können diese Hilfs-Readings auch direkt in der readingsGroup untergebracht werden. Auch die Verwendung mit dem !-Flag in der readingsGroup bietet sich an. | ||
=== set === | |||
Man kann fhem Kommandos nicht mit Perl vermischen, wenn der Autor des Moduls, in diesem Fall set es nicht vorgesehen hat. | |||
Das Kommando "set <dummy> <value>" verändert den Inhalt von <dummy> auf den Text <value>. | |||
Achtung, falsch!!: | |||
set twilight_condition {ReadingsVal(myTwilight, condition, "99")} | |||
Das dummy twilight_condition wird durch deine Zuweisung vermutlich den Inhalt "{ReadingsVal(myTwilight, condition, "99")}" bekommen. Der PerlCode wird '''nicht''' ausgeführt. | |||
Richtig: | |||
fhem ("set twilight_condition " . ReadingsVal("myTwilight","condition",99)) | |||
Als ganzes notify, bei jedem Temperaturupdate (Aussen) die Vorlauftemperatur neu berechnen und in Heizung_VL_Soll zur Verfügung stellen: | |||
define setVL notify S300TH:temperature.* { fhem("set Heizung_VL_Soll ". calcVL(ReadingsVal("Heizung_Slider","state","0"),"0","0.5","0.7"))} |
Version vom 27. Dezember 2015, 23:44 Uhr
dummy | |
---|---|
Zweck / Funktion | |
Definition von Hilfsobjekten | |
Allgemein | |
Typ | Hilfsmodul |
Details | |
Dokumentation | EN / DE |
Support (Forum) | Automatisierung |
Modulname | 98_dummy.pm |
Ersteller | Rudolf König/rudolfkoenig (Forum /Wiki) |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
Geräte vom Typ dummy können für verschiedene Zwecke genutzt werden, die im folgenden anhand von Beispielen aufgeführt werden.
Zusatzlich zum Device dummy gibt es auch ein gleichnamiges allgemeingültiges Attribut.
Todo: Überarbeiten |
Definition
Siehe commandref.
Attribute
Siehe commandref.
Beispiele
ntfy_setreading
Wird bei einem Dummy mit setList gearbeitet, um mehrere Readings in einem Dummy zu haben, erfolgt bei einer Änderung nur das Setzten des Status nach <reading> <value>. Ein Reading wird dabei nicht angelegt oder aktualisiert. Damit dies doch geschieht, muss ein notify nach folgendem Muster angelegt werden:
define ntfy_setreading notify d_.* { if( ($EVENT ~~ / /) and ($EVENT !~ /: /) ) {fhem("setreading $NAME $EVENT")} }
d_label
Für readingsGroups kann es hilfreich sein, Überschriften aus einem Reading zu bekommen. So können sie beispielsweise mit valueColumns bearbeitet werden und Sonderzeichen wie : oder Leerzeichen ( ) müssen nicht umständlich eingefügt werden.
define d_label dummy
Durch das ntfy_setreading können Labels nun einfach über einen set Befehl erstellt werden:
set d_label HHMM (HH:MM)
Damit wird ein Reading HHMM erzeugt mit dem Wert (HH:MM).
Statt in einem dummy können diese Hilfs-Readings auch direkt in der readingsGroup untergebracht werden. Auch die Verwendung mit dem !-Flag in der readingsGroup bietet sich an.
set
Man kann fhem Kommandos nicht mit Perl vermischen, wenn der Autor des Moduls, in diesem Fall set es nicht vorgesehen hat. Das Kommando "set <dummy> <value>" verändert den Inhalt von <dummy> auf den Text <value>.
Achtung, falsch!!:
set twilight_condition {ReadingsVal(myTwilight, condition, "99")}
Das dummy twilight_condition wird durch deine Zuweisung vermutlich den Inhalt "{ReadingsVal(myTwilight, condition, "99")}" bekommen. Der PerlCode wird nicht ausgeführt.
Richtig:
fhem ("set twilight_condition " . ReadingsVal("myTwilight","condition",99))
Als ganzes notify, bei jedem Temperaturupdate (Aussen) die Vorlauftemperatur neu berechnen und in Heizung_VL_Soll zur Verfügung stellen:
define setVL notify S300TH:temperature.* { fhem("set Heizung_VL_Soll ". calcVL(ReadingsVal("Heizung_Slider","state","0"),"0","0.5","0.7"))}