UserReadings: Unterschied zwischen den Versionen
K (Vorlage Link2CmdRef) |
Jophb (Diskussion | Beiträge) K (→Beispiele) |
||
Zeile 31: | Zeile 31: | ||
== Beispiele == | == Beispiele == | ||
=== Integralfunktion - integral === | |||
==== Ausgabe eines Homematic 3-State Fenstersensor als Zahl für Visualisierung mit Icons ==== | |||
attr HM_XXXXXX userReadings Statenum {if(ReadingsVal("HM_XXXXXX","state","") eq "closed") {return 0} elsif (ReadingsVal("HM_XXXXXX","state","") eq "tilted") {return 1} elsif (ReadingsVal("HM_XXXXXX","state","") eq "open") {return 2} else {return -1}} | |||
==== Ausgabe als Moving Average und formatierung mit sprintf ==== | |||
attr HZ_EINSTRAHLUNG_RAW userReadings Einstr_Mean.av {sprintf("%.1f",movingAverage("HZ_EINSTRAHLUNG_RAW","reading",1200))} | |||
==== Umrechnung der Temperatur (durch 10 geteilt) und Einheit [°C] angehängt ==== | |||
attr HZ_EINSTRAHLUNG_T userReadings SolarTemp {ReadingsVal("HZ_EINSTRAHLUNG_T","reading",0)/10 ." °C"} | |||
==== Batterieüberwachung durch Erweiterung mit notify und userReading ==== | |||
[[Batterieüberwachung]] | |||
==== Integralfunktion - integral ==== | |||
Die Verwendung der Integralfunktion bei ''userReadings'' ist ausführlich im Forenbeitrag {{Link2Forum|Topic=26300|Message=193084|LinkText=Integralfunktion bei UserReadings}} erklärt. | Die Verwendung der Integralfunktion bei ''userReadings'' ist ausführlich im Forenbeitrag {{Link2Forum|Topic=26300|Message=193084|LinkText=Integralfunktion bei UserReadings}} erklärt. | ||
Version vom 4. Februar 2018, 00:01 Uhr
An dieser Seite wird momentan noch gearbeitet. |
Über das Attribut userReadings können bei einem Device benutzerdefinierte Readings einschließlich der Anweisungen zum Befüllen derselben festgelegt werden. Das können zum Einen Formatänderungen ("sprintf"), oder aber auch durch die Modifier
- difference
- differential
- integral
- offset
- monotonic
gesteuerte Berechnungen sein.
Syntax
Im April 2016 hat sich die Verarbeitung des Triggers dahingehend geändert, dass die Trigger-Spezifikation jetzt als Regulärer Ausdruck interpretiert wird, damit also z.B. ein avgTemp:temperature
geändert werden muss in avgTemp:temperature.*
.
Siehe commandref/readingFnAttributes.
- Bei Eingabe im Editor-Feld müssen mehrere Befehle mit einem ";" getrennt werden, bei Änderung in der Eingabezeile sind zwei ";" notwendig.
- Die Variable, dessen Wert man im Reading haben möchte, kann man einfach ans Ende stellen[1]
- mehrere UserReadings werden durch Komma getrennt.
myreading {my $v = ReadingsVal($name,"actuation","error")+62;; fhem("set PID desired $v");; $v}, myreading2 {my $v = ReadingsVal($name,"actuation","error")+62;; fhem("set PID2 desired $v");; $v}
Beispiele
Ausgabe eines Homematic 3-State Fenstersensor als Zahl für Visualisierung mit Icons
attr HM_XXXXXX userReadings Statenum {if(ReadingsVal("HM_XXXXXX","state","") eq "closed") {return 0} elsif (ReadingsVal("HM_XXXXXX","state","") eq "tilted") {return 1} elsif (ReadingsVal("HM_XXXXXX","state","") eq "open") {return 2} else {return -1}}
Ausgabe als Moving Average und formatierung mit sprintf
attr HZ_EINSTRAHLUNG_RAW userReadings Einstr_Mean.av {sprintf("%.1f",movingAverage("HZ_EINSTRAHLUNG_RAW","reading",1200))}
Umrechnung der Temperatur (durch 10 geteilt) und Einheit [°C] angehängt
attr HZ_EINSTRAHLUNG_T userReadings SolarTemp {ReadingsVal("HZ_EINSTRAHLUNG_T","reading",0)/10 ." °C"}
Batterieüberwachung durch Erweiterung mit notify und userReading
Integralfunktion - integral
Die Verwendung der Integralfunktion bei userReadings ist ausführlich im Forenbeitrag Integralfunktion bei UserReadings erklärt.
Links
- ..