2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-02-01 01:09:47 +00:00

feature: new reading: cpu_core_count

feature: Allows to suppress reading certain information.


git-svn-id: https://svn.fhem.de/fhem/trunk@8371 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
hexenmeister 2015-04-04 17:27:53 +00:00
parent 9135361f36
commit e1c4ebafa5

View File

@ -37,7 +37,7 @@ use Data::Dumper;
my $missingModulRemote; my $missingModulRemote;
eval "use Net::Telnet;1" or $missingModulRemote .= "Net::Telnet "; eval "use Net::Telnet;1" or $missingModulRemote .= "Net::Telnet ";
my $VERSION = "2.1.4"; my $VERSION = "2.1.5";
use constant { use constant {
PERL_VERSION => "perl_version", PERL_VERSION => "perl_version",
@ -51,7 +51,8 @@ use constant {
}; };
use constant { use constant {
CPU_FREQ => "cpu_freq", CPU_CORE_CNT => "cpu_core_count",
CPU_FREQ => "cpu_freq",
CPU0_FREQ => "cpu0_freq", CPU0_FREQ => "cpu0_freq",
CPU1_FREQ => "cpu1_freq", CPU1_FREQ => "cpu1_freq",
CPU2_FREQ => "cpu2_freq", CPU2_FREQ => "cpu2_freq",
@ -128,6 +129,7 @@ SYSMON_Initialize($)
"telnet-time-out ". "telnet-time-out ".
"user-fn2 user-fn ". "user-fn2 user-fn ".
"telnet-prompt-regx telnet-login-prompt-regx ". "telnet-prompt-regx telnet-login-prompt-regx ".
"exclude ".
$readingFnAttributes; $readingFnAttributes;
} }
### attr NAME user-defined osUpdates:1440:Aktualisierungen:cat ./updates.txt [,<readingsName>:<Interval_Minutes>:<Comment>:<Cmd>] ### attr NAME user-defined osUpdates:1440:Aktualisierungen:cat ./updates.txt [,<readingsName>:<Interval_Minutes>:<Comment>:<Cmd>]
@ -268,6 +270,8 @@ SYSMON_updateCurrentReadingsMap($) {
} }
} }
$rMap->{+CPU_CORE_CNT} = "Number of CPU cores";
if(SYSMON_isSysPowerAc($hash)) { if(SYSMON_isSysPowerAc($hash)) {
#$rMap->{"power_ac_online"} = "AC-Versorgung Status"; #$rMap->{"power_ac_online"} = "AC-Versorgung Status";
#$rMap->{"power_ac_present"} = "AC-Versorgung vorhanden"; #$rMap->{"power_ac_present"} = "AC-Versorgung vorhanden";
@ -763,8 +767,13 @@ SYSMON_Attr($$$)
my $orig = AttrVal($name, $attrName, ""); my $orig = AttrVal($name, $attrName, "");
if( $orig ne $attrVal ) { if( $orig ne $attrVal ) {
if( $cmd eq "set" ) {# set, del if( $cmd eq "set" ) {# set, del
if($attrName eq "exclude") {
my @elist = split(/,\s*/, trim($attrVal));
my %ehash = map { $_ => 1 } @elist;
$hash->{helper}->{excludes}=\%ehash;
}
if($attrName eq "disable") if($attrName eq "disable")
{ {
@ -784,6 +793,10 @@ SYSMON_Attr($$$)
#return $attrName ." set to ". $attrVal; #return $attrName ." set to ". $attrVal;
return undef; return undef;
} elsif( $cmd eq "del" ) {
if($attrName eq "exclude") {
$hash->{helper}->{excludes}=undef;
}
} }
} }
return; return;
@ -1097,6 +1110,9 @@ SYSMON_obtainParameters_intern($$)
if($m1 gt 0) { # Nur wenn > 0 if($m1 gt 0) { # Nur wenn > 0
# M1: cpu_freq, cpu_temp, cpu_temp_avg, loadavg, procstat, iostat # M1: cpu_freq, cpu_temp, cpu_temp_avg, loadavg, procstat, iostat
if($refresh_all || ($ref % $m1) eq 0) { if($refresh_all || ($ref % $m1) eq 0) {
$map = SYSMON_getCPUCoreNum($hash, $map);
#Log 3, "SYSMON -----------> DEBUG: read CPU-Temp"; #Log 3, "SYSMON -----------> DEBUG: read CPU-Temp";
if(SYSMON_isCPUTempRPi($hash)) { # Rasp if(SYSMON_isCPUTempRPi($hash)) { # Rasp
$map = SYSMON_getCPUTemp_RPi($hash, $map); $map = SYSMON_getCPUTemp_RPi($hash, $map);
@ -1367,6 +1383,8 @@ SYSMON_getUserDefined($$$$)
my ($hash, $map, $uName, $uCmd) = @_; my ($hash, $map, $uName, $uCmd) = @_;
SYSMON_Log($hash, 5, "Name=[$uName] Cmd=[$uCmd]"); SYSMON_Log($hash, 5, "Name=[$uName] Cmd=[$uCmd]");
if($hash->{helper}->{excludes}{'user-defined'}) {return $map;}
my @out_arr = SYSMON_execute($hash, $uCmd); my @out_arr = SYSMON_execute($hash, $uCmd);
my $out_str = ""; my $out_str = "";
@ -1388,6 +1406,9 @@ SYSMON_getUserDefined($$$$)
sub SYSMON_getUserDefinedFn($$$@) { sub SYSMON_getUserDefinedFn($$$@) {
my($hash, $map, $fnName, @readings) = @_; my($hash, $map, $fnName, @readings) = @_;
#SYSMON_Log($hash, 3, ">>>>>>>>>>>>>>>>>>>>> exclude: ".Dumper($hash->{helper}->{excludes}));
if($hash->{helper}->{excludes}{'user-defined'}) {return $map;}
SYSMON_Log($hash, 5, "call User-Function: [$fnName]"); SYSMON_Log($hash, 5, "call User-Function: [$fnName]");
if(defined $fnName) { if(defined $fnName) {
no strict "refs"; no strict "refs";
@ -1425,8 +1446,7 @@ sub SYSMON_getUserDefinedFn($$$@) {
#my $sys_cpu_core_num = undef; #my $sys_cpu_core_num = undef;
sub sub
SYSMON_getCPUCoreNum($) SYSMON_getCPUCoreNum_intern($) {
{
my ($hash) = @_; my ($hash) = @_;
return $hash->{helper}{sys_cpu_core_num} if $hash->{helper}{sys_cpu_core_num}; return $hash->{helper}{sys_cpu_core_num} if $hash->{helper}{sys_cpu_core_num};
@ -1449,6 +1469,19 @@ SYSMON_getCPUCoreNum($)
return $hash->{helper}{sys_cpu_core_num}; return $hash->{helper}{sys_cpu_core_num};
} }
#------------------------------------------------------------------------------
# leifert Anzahl CPU Kerne
#------------------------------------------------------------------------------
sub SYSMON_getCPUCoreNum($$) {
my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'cpucount'}) {return $map;}
my $cpuCoreCnt = SYSMON_getCPUCoreNum_intern($hash);
$map->{+CPU_CORE_CNT}=$cpuCoreCnt;
return $map;
}
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# leifert Zeit seit dem Systemstart # leifert Zeit seit dem Systemstart
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
@ -1457,13 +1490,15 @@ SYSMON_getUptime($$)
{ {
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'uptime'}) {return $map;}
#my $uptime_str = qx(cat /proc/uptime ); #my $uptime_str = qx(cat /proc/uptime );
my $uptime_str = SYSMON_execute($hash, "cat /proc/uptime"); my $uptime_str = SYSMON_execute($hash, "cat /proc/uptime");
if(defined($uptime_str)) { if(defined($uptime_str)) {
my ($uptime, $idle) = split(/\s+/, trim($uptime_str)); my ($uptime, $idle) = split(/\s+/, trim($uptime_str));
if(defined($uptime) && int($uptime)!=0) { if(defined($uptime) && int($uptime)!=0) {
# Anzahl Cores beruecksichtigen # Anzahl Cores beruecksichtigen
my $core_num = SYSMON_getCPUCoreNum($hash); my $core_num = SYSMON_getCPUCoreNum_intern($hash);
my $idle_percent = $idle/($uptime*$core_num)*100; my $idle_percent = $idle/($uptime*$core_num)*100;
$map->{+UPTIME}=sprintf("%d",$uptime); $map->{+UPTIME}=sprintf("%d",$uptime);
@ -1486,6 +1521,8 @@ sub
SYSMON_getUptime2($$) SYSMON_getUptime2($$)
{ {
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'uptime'}) {return $map;}
#TODO #TODO
my $uptime = SYSMON_execute($hash,"uptime"); my $uptime = SYSMON_execute($hash,"uptime");
@ -1539,6 +1576,8 @@ sub
SYSMON_getFHEMUptime($$) SYSMON_getFHEMUptime($$)
{ {
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'fhemuptime'}) {return $map;}
#if(defined ($hash->{DEF_TIME})) { #if(defined ($hash->{DEF_TIME})) {
if(defined($fhem_started)) { if(defined($fhem_started)) {
@ -1558,6 +1597,8 @@ sub
SYSMON_getLoadAvg($$) SYSMON_getLoadAvg($$)
{ {
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'loadavg'}) {return $map;}
my $la_str = SYSMON_execute($hash, "cat /proc/loadavg"); my $la_str = SYSMON_execute($hash, "cat /proc/loadavg");
if(defined($la_str)) { if(defined($la_str)) {
@ -1577,10 +1618,11 @@ SYSMON_getLoadAvg($$)
# leifert CPU Temperature (Raspberry Pi) # leifert CPU Temperature (Raspberry Pi)
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub sub
SYSMON_getCPUTemp_RPi($$) SYSMON_getCPUTemp_RPi($$) {
{
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'cputemp'}) {return $map;}
my $val = SYSMON_execute($hash, "cat /sys/class/thermal/thermal_zone0/temp 2>&1"); my $val = SYSMON_execute($hash, "cat /sys/class/thermal/thermal_zone0/temp 2>&1");
$val = int($val); $val = int($val);
if($val>1000) { # Manche Systeme scheinen die Daten verschieden zu skalieren (z.B. utilite)... if($val>1000) { # Manche Systeme scheinen die Daten verschieden zu skalieren (z.B. utilite)...
@ -1597,9 +1639,11 @@ SYSMON_getCPUTemp_RPi($$)
# leifert CPU Temperature (BeagleBone Black) # leifert CPU Temperature (BeagleBone Black)
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub sub
SYSMON_getCPUTemp_BBB($$) SYSMON_getCPUTemp_BBB($$) {
{
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'cputemp'}) {return $map;}
my $val = SYSMON_execute($hash, "cat /sys/class/hwmon/hwmon0/device/temp1_input 2>&1"); my $val = SYSMON_execute($hash, "cat /sys/class/hwmon/hwmon0/device/temp1_input 2>&1");
$val = int($val); $val = int($val);
my $val_txt = sprintf("%.2f", $val/1000); my $val_txt = sprintf("%.2f", $val/1000);
@ -1616,9 +1660,11 @@ SYSMON_getCPUTemp_BBB($$)
# leifert CPU Temperature (mehrere Kerne eines ?) # leifert CPU Temperature (mehrere Kerne eines ?)
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub sub
SYSMON_getCPUTemp_X($$;$) SYSMON_getCPUTemp_X($$;$) {
{
my ($hash, $map, $cpuNum) = @_; my ($hash, $map, $cpuNum) = @_;
if($hash->{helper}->{excludes}{'cputemp'}) {return $map;}
$cpuNum = 0 unless defined $cpuNum; $cpuNum = 0 unless defined $cpuNum;
my $val = SYSMON_execute($hash, "cat /sys/class/hwmon/hwmon0/device/hwmon/hwmon0/temp".($cpuNum+1)."_input 2>&1"); my $val = SYSMON_execute($hash, "cat /sys/class/hwmon/hwmon0/device/hwmon/hwmon0/temp".($cpuNum+1)."_input 2>&1");
@ -1634,10 +1680,11 @@ SYSMON_getCPUTemp_X($$;$)
# leifert CPU Temperature (FritzBox) # leifert CPU Temperature (FritzBox)
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub sub
SYSMON_getCPUTemp_FB($$) SYSMON_getCPUTemp_FB($$) {
{
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'cputemp'}) {return $map;}
my $val = SYSMON_execute($hash, "ctlmgr_ctl r cpu status/StatTemperature"); my $val = SYSMON_execute($hash, "ctlmgr_ctl r cpu status/StatTemperature");
if(defined($val)) { if(defined($val)) {
if($val=~m/(\d+),/) { if($val=~m/(\d+),/) {
@ -1655,9 +1702,11 @@ SYSMON_getCPUTemp_FB($$)
# leifert CPU Frequenz (Raspberry Pi, BeagleBone Black, Cubietruck, etc.) # leifert CPU Frequenz (Raspberry Pi, BeagleBone Black, Cubietruck, etc.)
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub sub
SYSMON_getCPUFreq($$;$) SYSMON_getCPUFreq($$;$) {
{
my ($hash, $map, $cpuNum) = @_; my ($hash, $map, $cpuNum) = @_;
if($hash->{helper}->{excludes}{'cpufreq'}) {return $map;}
$cpuNum = 0 unless defined $cpuNum; $cpuNum = 0 unless defined $cpuNum;
my $val = SYSMON_execute($hash, "cat /sys/devices/system/cpu/cpu".$cpuNum."/cpufreq/scaling_cur_freq 2>&1"); my $val = SYSMON_execute($hash, "cat /sys/devices/system/cpu/cpu".$cpuNum."/cpufreq/scaling_cur_freq 2>&1");
$val = int($val); $val = int($val);
@ -1690,9 +1739,11 @@ SYSMON_getCPUFreq($$;$)
# leifert CPU Speed in BogoMIPS # leifert CPU Speed in BogoMIPS
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub sub
SYSMON_getCPUBogoMIPS($$) SYSMON_getCPUBogoMIPS($$) {
{
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'bogomips'}) {return $map;}
my $old_val = ReadingsVal($hash->{NAME},CPU_BOGOMIPS,undef); my $old_val = ReadingsVal($hash->{NAME},CPU_BOGOMIPS,undef);
# nur einmalig ermitteln (wird sich ja nicht aendern # nur einmalig ermitteln (wird sich ja nicht aendern
if(!defined $old_val) { if(!defined $old_val) {
@ -1803,9 +1854,11 @@ SYSMON_getCPUBogoMIPS($$)
# this partition. # this partition.
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub sub
SYSMON_getDiskStat($$) SYSMON_getDiskStat($$) {
{
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'diskstat'}) {return $map;}
my @values = SYSMON_execute($hash, "cat /proc/diskstats"); my @values = SYSMON_execute($hash, "cat /proc/diskstats");
for my $entry (@values){ for my $entry (@values){
@ -1903,9 +1956,11 @@ SYSMON_getDiskStat_intern($$$)
# ProzCPUuser = (CPUuser / GesammtCPU) * 100 # ProzCPUuser = (CPUuser / GesammtCPU) * 100
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub sub
SYSMON_getCPUProcStat($$) SYSMON_getCPUProcStat($$) {
{
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'cpustat'}) {return $map;}
my @values = SYSMON_execute($hash, "cat /proc/stat"); my @values = SYSMON_execute($hash, "cat /proc/stat");
for my $entry (@values){ for my $entry (@values){
@ -1967,9 +2022,10 @@ SYSMON_getCPUProcStat_intern($$$)
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Liefert Werte fuer RAM und SWAP (Gesamt, Verwendet, Frei). # Liefert Werte fuer RAM und SWAP (Gesamt, Verwendet, Frei).
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub SYSMON_getRamAndSwap($$) sub SYSMON_getRamAndSwap($$) {
{
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'ramswap'}) {return $map;}
#my @speicher = qx(free -m); #my @speicher = qx(free -m);
my @speicher = SYSMON_execute($hash, "free"); my @speicher = SYSMON_execute($hash, "free");
@ -2061,10 +2117,11 @@ sub SYSMON_isLinux()
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Liefert Werte fuer RAM und SWAP (Gesamt, Verwendet, Frei). # Liefert Werte fuer RAM und SWAP (Gesamt, Verwendet, Frei).
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub SYSMON_getRamAndSwapOSX($$) sub SYSMON_getRamAndSwapOSX($$) {
{
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'ramswap'}) {return $map;}
my $debug = 0; # Nur zum Testen! my $debug = 0; # Nur zum Testen!
#my @speicher = qx(free -m); #my @speicher = qx(free -m);
@ -2267,10 +2324,11 @@ sub SYSMON_fmtStorageAmount_($) {
# Liefert Fuellstand fuer das angegebene Dateisystem (z.B. '/dev/root', '/dev/sda1' (USB stick)). # Liefert Fuellstand fuer das angegebene Dateisystem (z.B. '/dev/root', '/dev/sda1' (USB stick)).
# Eingabeparameter: HASH; MAP; FS-Bezeichnung # Eingabeparameter: HASH; MAP; FS-Bezeichnung
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub SYSMON_getFileSystemInfo ($$$) sub SYSMON_getFileSystemInfo ($$$) {
{
my ($hash, $map, $fs) = @_; my ($hash, $map, $fs) = @_;
if($hash->{helper}->{excludes}{'filesystem'}) {return $map;}
SYSMON_Log($hash, 5, "get $fs"); SYSMON_Log($hash, 5, "get $fs");
# Neue Syntax: benannte Filesystems: <name>:<definition> # Neue Syntax: benannte Filesystems: <name>:<definition>
@ -2366,9 +2424,11 @@ sub SYSMON_getFileSystemInfo ($$$)
# Liefert Netztwerkinformationen # Liefert Netztwerkinformationen
# Parameter: HASH; MAP; DEVICE (eth0 or wlan0) # Parameter: HASH; MAP; DEVICE (eth0 or wlan0)
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub SYSMON_getNetworkInfo ($$$) sub SYSMON_getNetworkInfo ($$$) {
{
my ($hash, $map, $device) = @_; my ($hash, $map, $device) = @_;
if($hash->{helper}->{excludes}{'network'}) {return $map;}
SYSMON_Log($hash, 5, "get $device"); SYSMON_Log($hash, 5, "get $device");
my($nName, $nDef) = split(/:/, $device); my($nName, $nDef) = split(/:/, $device);
if(!defined $nDef) { if(!defined $nDef) {
@ -2549,10 +2609,11 @@ sub SYSMON_getNetworkInfo ($$$)
# Liefert Informationen, ob WLAN an oder aus ist (nur FritzBox) # Liefert Informationen, ob WLAN an oder aus ist (nur FritzBox)
# Parameter: HASH; MAP # Parameter: HASH; MAP
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub SYSMON_getFBWLANState($$) sub SYSMON_getFBWLANState($$) {
{
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'network'}) {return $map;}
#SYSMON_Log($hash, 5, ""); #SYSMON_Log($hash, 5, "");
$map->{+FB_WLAN_STATE}=SYSMON_acquireInfo_intern($hash, "ctlmgr_ctl r wlan settings/ap_enabled",1); $map->{+FB_WLAN_STATE}=SYSMON_acquireInfo_intern($hash, "ctlmgr_ctl r wlan settings/ap_enabled",1);
@ -2564,10 +2625,11 @@ sub SYSMON_getFBWLANState($$)
# Liefert Informationen, ob WLAN-Gastzugang an oder aus ist (nur FritzBox) # Liefert Informationen, ob WLAN-Gastzugang an oder aus ist (nur FritzBox)
# Parameter: HASH; MAP # Parameter: HASH; MAP
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub SYSMON_getFBWLANGuestState($$) sub SYSMON_getFBWLANGuestState($$) {
{
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'network'}) {return $map;}
#SYSMON_Log($hash, 5, ""); #SYSMON_Log($hash, 5, "");
$map->{+FB_WLAN_GUEST_STATE}=SYSMON_acquireInfo_intern($hash, "ctlmgr_ctl r wlan settings/guest_ap_enabled",1); $map->{+FB_WLAN_GUEST_STATE}=SYSMON_acquireInfo_intern($hash, "ctlmgr_ctl r wlan settings/guest_ap_enabled",1);
@ -2579,10 +2641,11 @@ sub SYSMON_getFBWLANGuestState($$)
# Liefert IP Adresse im Internet (nur FritzBox) # Liefert IP Adresse im Internet (nur FritzBox)
# Parameter: HASH; MAP # Parameter: HASH; MAP
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub SYSMON_getFBInetIP($$) sub SYSMON_getFBInetIP($$) {
{
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'network'}) {return $map;}
$map->{+FB_INET_IP}=SYSMON_acquireInfo_intern($hash, "ctlmgr_ctl r dslstatistic status/ifacestat0/ipaddr"); $map->{+FB_INET_IP}=SYSMON_acquireInfo_intern($hash, "ctlmgr_ctl r dslstatistic status/ifacestat0/ipaddr");
return $map; return $map;
@ -2592,10 +2655,11 @@ sub SYSMON_getFBInetIP($$)
# Liefert Status Internet-Verbindung (nur FritzBox) # Liefert Status Internet-Verbindung (nur FritzBox)
# Parameter: HASH; MAP # Parameter: HASH; MAP
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub SYSMON_getFBInetConnectionState($$) sub SYSMON_getFBInetConnectionState($$) {
{
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'network'}) {return $map;}
$map->{+FB_INET_STATE}=SYSMON_acquireInfo_intern($hash, "ctlmgr_ctl r dslstatistic status/ifacestat0/connection_status"); $map->{+FB_INET_STATE}=SYSMON_acquireInfo_intern($hash, "ctlmgr_ctl r dslstatistic status/ifacestat0/connection_status");
return $map; return $map;
@ -2605,10 +2669,11 @@ sub SYSMON_getFBInetConnectionState($$)
# Liefert Status Klingelsperre (nur FritzBox) # Liefert Status Klingelsperre (nur FritzBox)
# Parameter: HASH; MAP # Parameter: HASH; MAP
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub SYSMON_getFBNightTimeControl($$) sub SYSMON_getFBNightTimeControl($$) {
{
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'fbnightctrl'}) {return $map;}
$map->{+FB_N_TIME_CTRL}=SYSMON_acquireInfo_intern($hash, "ctlmgr_ctl r box settings/night_time_control_enabled",1); $map->{+FB_N_TIME_CTRL}=SYSMON_acquireInfo_intern($hash, "ctlmgr_ctl r box settings/night_time_control_enabled",1);
return $map; return $map;
@ -2618,10 +2683,11 @@ sub SYSMON_getFBNightTimeControl($$)
# Liefert Anzahl der nicht abgehoerten Nachrichten auf dem Anrufbeantworter (nur FritzBox) # Liefert Anzahl der nicht abgehoerten Nachrichten auf dem Anrufbeantworter (nur FritzBox)
# Parameter: HASH; MAP # Parameter: HASH; MAP
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub SYSMON_getFBNumNewMessages($$) sub SYSMON_getFBNumNewMessages($$) {
{
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'fbnewmessages'}) {return $map;}
$map->{+FB_NUM_NEW_MESSAGES}=SYSMON_acquireInfo_intern($hash, "ctlmgr_ctl r tam status/NumNewMessages"); $map->{+FB_NUM_NEW_MESSAGES}=SYSMON_acquireInfo_intern($hash, "ctlmgr_ctl r tam status/NumNewMessages");
return $map; return $map;
@ -2631,10 +2697,11 @@ sub SYSMON_getFBNumNewMessages($$)
# Liefert DECT-Temperatur einer FritzBox. # Liefert DECT-Temperatur einer FritzBox.
# Parameter: HASH; MAP # Parameter: HASH; MAP
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub SYSMON_getFBDECTTemp($$) sub SYSMON_getFBDECTTemp($$) {
{
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'fbdecttemp'}) {return $map;}
$map->{+FB_DECT_TEMP}=SYSMON_acquireInfo_intern($hash, "ctlmgr_ctl r dect status/Temperature"); $map->{+FB_DECT_TEMP}=SYSMON_acquireInfo_intern($hash, "ctlmgr_ctl r dect status/Temperature");
return $map; return $map;
@ -2645,8 +2712,7 @@ sub SYSMON_getFBDECTTemp($$)
# Parameter: HASH # Parameter: HASH
# Return Hash mit Devices # Return Hash mit Devices
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub SYSMON_getFBLanDeviceList($) sub SYSMON_getFBLanDeviceList($) {
{
my ($hash) = @_; my ($hash) = @_;
if(!SYSMON_isFB($hash)) { if(!SYSMON_isFB($hash)) {
@ -2750,10 +2816,11 @@ sub SYSMON_acquireInfo_intern($$;$)
return $ret; return $ret;
} }
sub SYSMON_FBVersionInfo($$) sub SYSMON_FBVersionInfo($$) {
{
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'fbversion'}) {return $map;}
my $data = SYSMON_execute($hash, "/etc/version --version --date"); my $data = SYSMON_execute($hash, "/etc/version --version --date");
my($v, $d, $t) = split(/\s+/, $data); my($v, $d, $t) = split(/\s+/, $data);
@ -2784,6 +2851,8 @@ sub SYSMON_FBVersionInfo($$)
sub SYSMON_getFBStreamRate($$) { sub SYSMON_getFBStreamRate($$) {
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'fbdsl'}) {return $map;}
my $ds_rate = SYSMON_execute($hash, "ctlmgr_ctl r sar status/dsl_ds_rate"); my $ds_rate = SYSMON_execute($hash, "ctlmgr_ctl r sar status/dsl_ds_rate");
unless($ds_rate) { unless($ds_rate) {
return SYSMON_getFBStreamRate2($hash, $map); return SYSMON_getFBStreamRate2($hash, $map);
@ -2801,6 +2870,8 @@ sub SYSMON_getFBStreamRate($$) {
sub SYSMON_getFBStreamRate2($$) { sub SYSMON_getFBStreamRate2($$) {
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'fbdsl'}) {return $map;}
my $ds_rate = SYSMON_execute($hash, "ctlmgr_ctl r dslstatglobal status/in"); my $ds_rate = SYSMON_execute($hash, "ctlmgr_ctl r dslstatglobal status/in");
my $us_rate = SYSMON_execute($hash, "ctlmgr_ctl r dslstatglobal status/out"); my $us_rate = SYSMON_execute($hash, "ctlmgr_ctl r dslstatglobal status/out");
@ -2829,6 +2900,8 @@ sub SYSMON_sec2Dauer($){
sub SYSMON_getFBSyncTime($$) { sub SYSMON_getFBSyncTime($$) {
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'fbdsl'}) {return $map;}
my $data = SYSMON_execute($hash, "ctlmgr_ctl r sar status/modem_ShowtimeSecs"); my $data = SYSMON_execute($hash, "ctlmgr_ctl r sar status/modem_ShowtimeSecs");
unless($data) { unless($data) {
return SYSMON_getFBSyncTime2($hash, $map); return SYSMON_getFBSyncTime2($hash, $map);
@ -2846,6 +2919,8 @@ sub SYSMON_getFBSyncTime($$) {
sub SYSMON_getFBSyncTime2($$) { sub SYSMON_getFBSyncTime2($$) {
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'fbdsl'}) {return $map;}
my $data = SYSMON_execute($hash, "ctlmgr_ctl r dslstatistic status/ifacestat0/connect_time"); my $data = SYSMON_execute($hash, "ctlmgr_ctl r dslstatistic status/ifacestat0/connect_time");
if(defined($data) && $data ne "") { if(defined($data) && $data ne "") {
@ -2859,6 +2934,8 @@ sub SYSMON_getFBSyncTime2($$) {
sub SYSMON_getFBCRCFEC($$) { sub SYSMON_getFBCRCFEC($$) {
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'fbdsl'}) {return $map;}
my $ds_crc = SYSMON_execute($hash, "ctlmgr_ctl r sar status/ds_crc_per15min"); my $ds_crc = SYSMON_execute($hash, "ctlmgr_ctl r sar status/ds_crc_per15min");
my $us_crc = SYSMON_execute($hash, "ctlmgr_ctl r sar status/us_crc_per15min"); my $us_crc = SYSMON_execute($hash, "ctlmgr_ctl r sar status/us_crc_per15min");
@ -3279,10 +3356,12 @@ SYSMON_isNetStatClass($$) {
return $hash->{helper}{'net_'.$nName.'_stat_class'}; return $hash->{helper}{'net_'.$nName.'_stat_class'};
} }
sub SYSMON_PowerAcInfo($$) sub SYSMON_PowerAcInfo($$) {
{
#online, present, current_now (/1000 =>mA), voltage_now (/1000000 => V) #online, present, current_now (/1000 =>mA), voltage_now (/1000000 => V)
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'powerinfo'}) {return $map;}
my $type="ac"; my $type="ac";
my $base = "cat /sys/class/power_supply/".$type."/"; my $base = "cat /sys/class/power_supply/".$type."/";
@ -3302,10 +3381,12 @@ sub SYSMON_PowerAcInfo($$)
return $map; return $map;
} }
sub SYSMON_PowerUsbInfo($$) sub SYSMON_PowerUsbInfo($$) {
{
#online, present, current_now (/1000 =>mA), voltage_now (/1000000 => V) #online, present, current_now (/1000 =>mA), voltage_now (/1000000 => V)
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'powerinfo'}) {return $map;}
my $type="usb"; my $type="usb";
my $base = "cat /sys/class/power_supply/".$type."/"; my $base = "cat /sys/class/power_supply/".$type."/";
@ -3326,10 +3407,12 @@ sub SYSMON_PowerUsbInfo($$)
return $map; return $map;
} }
sub SYSMON_PowerBatInfo($$) sub SYSMON_PowerBatInfo($$) {
{
#online, present, current_now (/1000 =>mA), voltage_now (/1000000 => V) #online, present, current_now (/1000 =>mA), voltage_now (/1000000 => V)
my ($hash, $map) = @_; my ($hash, $map) = @_;
if($hash->{helper}->{excludes}{'powerinfo'}) {return $map;}
my $type="battery"; my $type="battery";
my $base = "cat /sys/class/power_supply/".$type."/"; my $base = "cat /sys/class/power_supply/".$type."/";
@ -3906,6 +3989,9 @@ If one (or more) of the multiplier is set to zero, the corresponding readings is
<b>Readings:</b> <b>Readings:</b>
<br><br> <br><br>
<ul> <ul>
<li>cpu_core_count<br>
CPU core count
</li>
<li>cpu_bogomips<br> <li>cpu_bogomips<br>
CPU Speed: BogoMIPS CPU Speed: BogoMIPS
</li> </li>
@ -4272,6 +4358,13 @@ If one (or more) of the multiplier is set to zero, the corresponding readings is
RegExp to detect login and command line prompt. (Only for access via Telnet.) RegExp to detect login and command line prompt. (Only for access via Telnet.)
</li> </li>
<br> <br>
<li>exclude<br>
Allows to suppress reading certain information. <br>
supported values: user-defined (s. user-defined und user-fn), cpucount, uptime, fhemuptime,
loadavg, cputemp, cpufreq, bogomips, diskstat, cpustat, ramswap, filesystem, network,
fbwlan, fbnightctrl, fbnewmessages, fbdecttemp, fbversion, fbdsl, powerinfo
</li>
<br>
</ul><br> </ul><br>
<b>Plots:</b><br><br> <b>Plots:</b><br><br>
@ -4495,6 +4588,9 @@ If one (or more) of the multiplier is set to zero, the corresponding readings is
<b>Readings:</b> <b>Readings:</b>
<br><br> <br><br>
<ul> <ul>
<li>cpu_core_count<br>
Anzahl der CPU Kerne
</li>
<li>cpu_bogomips<br> <li>cpu_bogomips<br>
CPU Speed: BogoMIPS CPU Speed: BogoMIPS
</li> </li>
@ -4875,6 +4971,13 @@ If one (or more) of the multiplier is set to zero, the corresponding readings is
RegExp zur Erkennung von Login- und Kommandozeile-Prompt. (Nur f&uuml;r Zugriffe &uuml;ber Telnet relevant.) RegExp zur Erkennung von Login- und Kommandozeile-Prompt. (Nur f&uuml;r Zugriffe &uuml;ber Telnet relevant.)
</li> </li>
<br> <br>
<li>exclude<br>
Erlaubt das Abfragen bestimmten Informationen zu unterbinden. <br>
Mögliche Werte: user-defined (s. user-defined und user-fn), cpucount, uptime, fhemuptime,
loadavg, cputemp, cpufreq, bogomips, diskstat, cpustat, ramswap, filesystem, network,
fbwlan, fbnightctrl, fbnewmessages, fbdecttemp, fbversion, fbdsl, powerinfo
</li>
<br>
</ul><br> </ul><br>
<b>Plots:</b><br><br> <b>Plots:</b><br><br>