UserReadings: Unterschied zwischen den Versionen
Jophb (Diskussion | Beiträge) K (→Beispiele) |
Jophb (Diskussion | Beiträge) K (Link CommandRef eingefügt) |
||
Zeile 47: | Zeile 47: | ||
== Links == | == Links == | ||
* | * {{Link2CmdRef|Lang=de|Anker=userReadings}} - userReadings | ||
[[Kategorie:Attribut (allgemeingültig)]] | [[Kategorie:Attribut (allgemeingültig)]] |
Version vom 4. Februar 2018, 00:08 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
- commandref/userReadings - userReadings