FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: mi.ke am 29 Oktober 2016, 14:20:38

Titel: (Lösung) Nur der kleinste Wert aus verschiendenen Readings verwenden
Beitrag von: mi.ke am 29 Oktober 2016, 14:20:38
Moin,

ich möchte aus verschiedenen Readings den kleinsten Wert ermitteln und dann weiterverarbeiten.

Kann mir jemand dazu einen Ansatz geben, wie man das machen kann?

Danke schon mal im voraus

Cheers
mi.ke
Titel: Antw:(Frage) Nur der kleinste Wert aus verschiendenen Readings verwenden
Beitrag von: igami am 29 Oktober 2016, 17:06:09
Guck mal in der Commandref in Abschnitt utils
Titel: Antw:(Frage) Nur der kleinste Wert aus verschiendenen Readings verwenden
Beitrag von: mi.ke am 30 Oktober 2016, 02:29:39

Klasse ! ! !

Vielen Dank, das kannte ich echt noch nicht.
Titel: Antw:(Lösung) Nur der kleinste Wert aus verschiendenen Readings verwenden
Beitrag von: igami am 30 Oktober 2016, 07:33:53
Würdest du dann bitte auch mittelen was du nun gemacht hast?
Titel: Antw:(Lösung) Nur der kleinste Wert aus verschiendenen Readings verwenden
Beitrag von: mi.ke am 30 Oktober 2016, 10:42:35
Klar . . .

Das war die Frage:
Zitat von: mi.ke am 29 Oktober 2016, 14:20:38
ich möchte aus verschiedenen Readings den kleinsten Wert ermitteln und dann weiterverarbeiten.

Wie vorgeschlagen, hab ich mir die http://fhem.de/commandref_DE.html#Utils angeschaut.

Dort findet man minNum()

so hab ich's umgesetzt:AntiBHD:on {
my $C = (ReadingsNum("AntiBHD","C",'0')-1);
my $M = (ReadingsNum("AntiBHD","M",'0')-0.5);
my $H = (ReadingsNum("AntiBHD","H",'0')-0.5);
my $L = (ReadingsNum("AntiBHD","L",'0')-0.5);

my $Days2go = minNum($C,$M*2,$H*2,$L*2);
fhem ("setreading AntiBHD Days2go $Days2go");
fhem ("setreading AntiBHD . . .


Was soll das?

Jeden Tag nutze ich ein $C und jeweils ein halbes $M $H und $L.
Bei jeder Nutzung wird diese per Smartwatch bestätigt und die verbrauchte Menge abgezogen und bestimmt, wieviele Tage der Vorrat noch reicht.
Wenn die verbleibenden Tage < x sind bekomme ich eine Push-Nachtricht um nachzubestellen.

Nochmals Danke für den Tip

Cheers
mi.ke