UserReading nur schreiben wenn Value nicht Leer

Begonnen von mkraus81, 10 Mai 2024, 16:40:47

Vorheriges Thema - Nächstes Thema

mkraus81

Hi,

ich bin vermutlich gerade mal wieder zu doof...
Ich möchte ein UserReading haben... habe es folgendermaßen definiert

Wasserverbrauch {sprintf("%.4f",ReadingsVal("watermeter","value","???"))}
aktuell habe ich das Problem, dass value auch mal "leer" ist...
was muss ich einstellen, damit er im UserReading "Wasserverbrauch" nur was ändert, wenn Value != Leer ist?
bzw... vielleicht auch hilfreich... wenn Value = "LEER" dann den Wert vom Reading "pre" zu verwenden (wenn dieser auch ungleich leer/0 ist)

betateilchen

#1
Erstens fehlt da ein vernünftiger Trigger und zweitens ist diese Frage schon mehrfach im Forum beantwortet.

{my $v=ReadingsNum('watermeter','value',-1,4); return ($v>=0)?$v:undef}
Anstatt undef kannst Du auch irgendwas anderes zurückgeben, wenn Du dafür einen sinnvollen Wert hast.
undef sorgt einfach dafür, dass das userReading überhaupt nicht verändert wird.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

mkraus81

danke, ich habe wohl mit den falschen Suchbegriffen gesucht