From 4d61c1384b2c30aeb886fbb475eb1e31b2f04057 Mon Sep 17 00:00:00 2001 From: hexenmeister Date: Thu, 10 Sep 2015 19:24:18 +0000 Subject: [PATCH] fix: CPUProcStat git-svn-id: https://svn.fhem.de/fhem/trunk@9227 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/42_SYSMON.pm | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/fhem/FHEM/42_SYSMON.pm b/fhem/FHEM/42_SYSMON.pm index 083ce7f66..f5d2985cb 100644 --- a/fhem/FHEM/42_SYSMON.pm +++ b/fhem/FHEM/42_SYSMON.pm @@ -2189,14 +2189,28 @@ SYSMON_getCPUProcStat_intern($$$) # Diff. ausrechnen, falls vorherigen Werte vorhanden sind. my($altCPUuser, $altCPUnice, $altCPUsystem, $altCPUidle, $altCPUiowait, $altCPUirq, $altCPUsoftirq) = split(/\s+/, $lastVal); - my $CPUuser = $neuCPUuser - $altCPUuser; - my $CPUnice = $neuCPUnice - $altCPUnice; - my $CPUsystem = $neuCPUsystem - $altCPUsystem; - my $CPUidle = $neuCPUidle - $altCPUidle; - my $CPUiowait = $neuCPUiowait - $altCPUiowait; - my $CPUirq = $neuCPUirq - $altCPUirq; - my $CPUsoftirq = $neuCPUsoftirq - $altCPUsoftirq; - $map->{$pName."_diff"}=$CPUuser." ".$CPUnice." ".$CPUsystem." ".$CPUidle." ".$CPUiowait." ".$CPUirq." ".$CPUsoftirq; + my ($CPUuser, $CPUnice, $CPUsystem, $CPUidle, $CPUiowait, $CPUirq, $CPUsoftirq); + + if($neuCPUuser < $altCPUuser) { + $CPUuser = $neuCPUuser; + $CPUnice = $neuCPUnice; + $CPUsystem = $neuCPUsystem; + $CPUidle = $neuCPUidle; + $CPUiowait = $neuCPUiowait; + $CPUirq = $neuCPUirq; + $CPUsoftirq = $neuCPUsoftirq; + } + else { + $CPUuser = $neuCPUuser - $altCPUuser; + $CPUnice = $neuCPUnice - $altCPUnice; + $CPUsystem = $neuCPUsystem - $altCPUsystem; + $CPUidle = $neuCPUidle - $altCPUidle; + $CPUiowait = $neuCPUiowait - $altCPUiowait; + $CPUirq = $neuCPUirq - $altCPUirq; + $CPUsoftirq = $neuCPUsoftirq - $altCPUsoftirq; + } + + #$map->{$pName."_diff"}=$CPUuser." ".$CPUnice." ".$CPUsystem." ".$CPUidle." ".$CPUiowait." ".$CPUirq." ".$CPUsoftirq; my $GesammtCPU = $CPUuser + $CPUnice + $CPUsystem + $CPUidle + $CPUiowait + $CPUirq + $CPUsoftirq; my $PercentCPUuser = ($CPUuser / $GesammtCPU) * 100;