FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Jewe am 29 April 2019, 23:59:02

Titel: userReadings
Beitrag von: Jewe am 29 April 2019, 23:59:02
Hallo zusammen,

ich versuche im Moment ein userreadings anzulegen. Ich möchte ein reading anlegen in dem ein neuer Status generiert wird.
Ich habe einen Dimmer der den Status off, on und pct 1-99 ausgibt. Für mein FTUI benötige ich aber nur die Sati off und on.
d.h. alles was grösser ist als 0 ist on. das funktioniert soweit auch. Allerdings wird bei 100% dann on ausgegeben.
Ich schweitere nun daran in die formel das mit einzubinden.

so funktioniert es bis auf die 100% bzw on:
userReadings status {ReadingsVal($name, "state", "on") > "0" ? "on" : "off"}
und so benkomme ich dann kein off mehr
userReadings status {ReadingsVal($name, "state", "on") > "0" || "on" ? "on" : "off"}

Jens
Titel: Antw:userReadings
Beitrag von: Wuehler am 30 April 2019, 07:02:25
Moin,

Du kannst das mit dem ? auch ineinander schachteln. Also:
(Wenn on, dann on, sonst ( wenn >0, dann on, sonst off))

VG,
Dirk
Titel: Antw:userReadings
Beitrag von: Jewe am 30 April 2019, 09:05:04
Guten Morgen,

Dankeschön Dirk, so geht es nun :
status {ReadingsVal($name, "state", "on") eq "on" ? "on" : (ReadingsVal($name, "state", "on") > "0" ? "on" : "off")}

Grüssle, Jens
Titel: Antw:userReadings
Beitrag von: DeeSPe am 30 April 2019, 10:52:04
Zitat von: Jewe am 30 April 2019, 09:05:04
Dankeschön Dirk, so geht es nun :
status {ReadingsVal($name, "state", "on") eq "on" ? "on" : (ReadingsVal($name, "state", "on") > "0" ? "on" : "off")}

Oder so:
status {ReadingsVal($name,"state","on") =~ /^on|[1-9][0-9]?$/ ? "on" : "off"}

Gruß
Dan
Titel: Antw:userReadings
Beitrag von: Jewe am 03 Mai 2019, 09:23:46
Zitat von: DeeSPe am 30 April 2019, 10:52:04
Oder so:
status {ReadingsVal($name,"state","on") =~ /^on|[1-9][0-9]?$/ ? "on" : "off"}

Gruß
Dan

Hallo Dan,
dachte erst das brauche ich nicht, da es für mich noch komplizierter aussieht, aber mit Deiner Variante bekommen ich dann keine Perl Warungen bzgl. dass er nicht numerisch sein.

Danke.