[gelöst] Userreadings abhängig von value

Begonnen von Nighthawk, 26 März 2023, 11:07:58

Vorheriges Thema - Nächstes Thema

Nighthawk

Hallo zusammen,

ich versuche nun seit einiger Zeit userreadings zu erstellen die abhängig von Value gesetzt werden.

folgendes funktioniert zwar grundsätzlich:
A {if (ReadingsNum($name,"wert",0) > 10) {ReadingsNum($name,"wert",0)}},
B {if (ReadingsNum($name,"wert",0) > 3 && ReadingsNum($name,"wert",0) < 6) {ReadingsNum($name,"wert",0)}},
C {if (ReadingsNum($name,"wert",0) > 5 && ReadingsNum($name,"wert",0) < 11) {ReadingsNum($name,"wert",0)}},
D {if (ReadingsNum($name,"wert",0) < 3) {ReadingsNum($name,"wert",0)}}

es wird aber immer der vorher gesetzte wert auf NULL gesetzt und auch entsprechend in der DB eingetragen.
Also ist z.B. das Reading A mit 12 gestezt, wird beim nächsten Durchlauf bei jedem Wert < 11 das passende Reading gesetzt, gleichzeitig aber auch das Reading A zurückgesetzt und in der DB wird Value NULL eingetragen.

Wie bekomme ich es hin dass immer nur das Zutreffende Reading gesetzt wird und die anderen nicht verändert werden?

betateilchen

Ob das, was Du da vorhast, wirklich Sinn ergibt, kann ich mir nur schwer vorstellen, aber beispielswesie so kannst Du die Aufgabenstellung lösen:

attr test userReadings A {ReadingsNum($name,"wert",0) > 10 ? ReadingsNum($name,"wert",0) : undef},\
B {ReadingsNum($name,"wert",0) > 3 && ReadingsNum($name,"wert",0) < 6 ? ReadingsNum($name,"wert",0) : undef},\
C {ReadingsNum($name,"wert",0) > 5 && ReadingsNum($name,"wert",0) < 11 ? ReadingsNum($name,"wert",0) : undef},\
D {ReadingsNum($name,"wert",0) < 3 ?  ReadingsNum($name,"wert",0) : undef}
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Nighthawk

Hey Betateilchen, das ist genau das was ich gesucht habe. Wieder etwas gelernt!

Danke!