Dummy: Unterschied zwischen den Versionen

Aus FHEMWiki
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

Info green.pngEs wird nur auf Devices getriggert, die mit "d_" anfangen. Sollten die dummy Devices anders heißen, muss das entsprechend in der DEF angepasst werden.

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"))}