Eigene Variable mit if-Fromel

Begonnen von outhouse, 04 Oktober 2015, 14:01:46

Vorheriges Thema - Nächstes Thema

outhouse

Hallo

Wie lautet die Formel zur Berechnung einer eigenen Variablen, abhängig vom Inhalt der ersten Variablen?

define n_Stehlampe notify ui_Stehlampe.* {\
my $myval = Value("ui_Stehlampe");;\
my $myzahl = wenn $myval grösser 90 dann 100, wenn $myval grösser 80 dann 85, wenn $myval grösser 70 etc.

Gruss  Chris
Raspberry 4 B mit Raspberry Pi OS und FHEM-Image 6.3 von fhem.de
Cul CC 1101 V4 als CUL_HM
Cul V3.4 + V3.4 als RFR
enocean-pi

viegener

Hallo Chris,
ich nehme an, Du möchtest bestimmte Werte zuordnen, leider ist die Reihe in Deinem beispiel etwas verwirrend.
Als meine Annahme, Du möchtest normalerweise auf x5 (also 15, 25, ..., 75, 85) "runden", ausser zwischen 90 und 100 (hier stattdessen auf 100) und zwischen  0 und 9 (stattdessen auf 0).

Anmerkung: Das habe ich jetzt mal wieder nur theoretisch programmiert, da ich gerade keine perl compiler habe

OK, wenn das die Anforderung ist, so wird der erste Teil rechnerisch erledigt:


# Runden auf x5 Werte -> Achtung für 100 kommt hier 105 heraus
my $myzahl = ( int($myval / 10) * 10 ) + 5;


Den zweiten Teil 90-100 bzw. 0-9 würde ich "klassisch" erledigen


# Spezialfall >=90
my $myzahl = ( $myzahl >= 90 )?100:$myzahl;

# Spezialfall  <10
my $myzahl = ( $myzahl < 10 )?0:$myzahl;


Ich bin sicher das geht kürzer, ist aber so zumindest schnell verständlich wenn man sich später mal wundert...

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können