From 03b62ccd3a94f44f44d7e283c78386e1735720f9 Mon Sep 17 00:00:00 2001 From: hexenmeister Date: Sat, 6 Dec 2014 22:12:50 +0000 Subject: [PATCH] SYSMON: read cpu temp on FritzBox git-svn-id: https://svn.fhem.de/fhem/trunk@7151 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/42_SYSMON.pm | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/fhem/FHEM/42_SYSMON.pm b/fhem/FHEM/42_SYSMON.pm index a93ce9bf6..618200f64 100644 --- a/fhem/FHEM/42_SYSMON.pm +++ b/fhem/FHEM/42_SYSMON.pm @@ -30,7 +30,7 @@ package main; use strict; use warnings; -my $VERSION = "1.9.4.5"; +my $VERSION = "1.9.4.6"; use constant { PERL_VERSION => "perl_version", @@ -174,7 +174,7 @@ SYSMON_updateCurrentReadingsMap($) { $rMap->{"cpu_freq"} = "CPU frequency"; $rMap->{"cpu1_freq"} = "CPU frequency (second core)"; } - if(SYSMON_isCPUTempRPi($hash) || SYSMON_isCPUTempBBB($hash)) { + if(SYSMON_isCPUTempRPi($hash) || SYSMON_isCPUTempBBB($hash) || SYSMON_isCPUTempFB($hash)) { #$rMap->{+CPU_TEMP} = "CPU Temperatur"; #$rMap->{"cpu_temp_avg"} = "Durchschnittliche CPU Temperatur"; $rMap->{+CPU_TEMP} = "CPU temperature"; @@ -752,6 +752,9 @@ SYSMON_obtainParameters($$) if (SYSMON_isCPUTempBBB($hash)) { $map = SYSMON_getCPUTemp_BBB($hash, $map); } + if (SYSMON_isCPUTempFB($hash)) { + $map = SYSMON_getCPUTemp_FB($hash, $map); + } if(SYSMON_isCPUFreqRPiBBB($hash)) { $map = SYSMON_getCPUFreq($hash, $map); } @@ -1110,6 +1113,27 @@ SYSMON_getCPUTemp_BBB($$) return $map; } +#------------------------------------------------------------------------------ +# leifert CPU Temperature (FritzBox) +#------------------------------------------------------------------------------ +sub +SYSMON_getCPUTemp_FB($$) +{ + + my ($hash, $map) = @_; + my $val = SYSMON_execute($hash, "ctlmgr_ctl r cpu status/StatTemperature"); + + if($val=~m/,(\d+)$/) { + my $fval = $1; + my $val_txt = sprintf("%.2f", $fval); + $map->{+CPU_TEMP}="$val_txt"; + my $t_avg = sprintf( "%.1f", (3 * ReadingsVal($hash->{NAME},CPU_TEMP_AVG,$val_txt) + $val_txt ) / 4 ); + $map->{+CPU_TEMP_AVG}="$t_avg"; + } + + return $map; +} + #------------------------------------------------------------------------------ # leifert CPU Frequenz (Raspberry Pi, BeagleBone Black, Cubietruck, etc.) #------------------------------------------------------------------------------ @@ -2449,6 +2473,12 @@ SYSMON_isCPUFreqRPiBBB($) { return $sys_cpu_freq_rpi_bbb; } +# DUMMY +sub SYSMON_isCPUTempFB($) { + my ($hash) = @_; + return SYSMON_isFB($hash); +} + my $sys_cpu1_freq = undef; sub SYSMON_isCPU1Freq($) {