2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-10 09:16:53 +00:00

feature: added FritzBox informations: DSL rate, DSLAM sync time, count of CRC an FEC.

git-svn-id: https://svn.fhem.de/fhem/trunk@6743 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
hexenmeister 2014-10-11 22:41:59 +00:00
parent 77037e7df8
commit 5d61585a04

View File

@ -30,7 +30,7 @@ package main;
use strict; use strict;
use warnings; use warnings;
my $VERSION = "1.9.3.1"; my $VERSION = "1.9.4.0";
use constant { use constant {
PERL_VERSION => "perl_version", PERL_VERSION => "perl_version",
@ -71,6 +71,11 @@ use constant {
FB_NUM_NEW_MESSAGES => "num_new_messages", FB_NUM_NEW_MESSAGES => "num_new_messages",
FB_FW_VERSION => "fw_version_info", FB_FW_VERSION => "fw_version_info",
FB_DECT_TEMP => "dect_temp", FB_DECT_TEMP => "dect_temp",
FB_DSL_RATE => "dsl_rate",
FB_DSL_SYNCTIME => "dsl_synctime",
FB_DSL_FEC_15 => "dsl_fec_15",
FB_DSL_CRC_15 => "dsl_crc_15",
}; };
use constant FS_PREFIX => "~ "; use constant FS_PREFIX => "~ ";
@ -420,6 +425,12 @@ SYSMON_updateCurrentReadingsMap($) {
$rMap->{+FB_NUM_NEW_MESSAGES} = "new messages"; $rMap->{+FB_NUM_NEW_MESSAGES} = "new messages";
$rMap->{+FB_FW_VERSION} = "firmware info"; $rMap->{+FB_FW_VERSION} = "firmware info";
$rMap->{+FB_DECT_TEMP} = "DECT temperatur"; $rMap->{+FB_DECT_TEMP} = "DECT temperatur";
$rMap->{+FB_DSL_RATE} = "DSL rate",
$rMap->{+FB_DSL_SYNCTIME} = "DSL synctime";
$rMap->{+FB_DSL_FEC_15} = "DSL recoverable errors per 15 minutes"; # forward error correction
$rMap->{+FB_DSL_CRC_15} = "DSL unrecoverable errors per 15 minutes"; # cyclic redundancy check
} }
# User defined # User defined
@ -820,6 +831,13 @@ SYSMON_obtainParameters($$)
$map = SYSMON_getFBNightTimeControl($hash, $map); $map = SYSMON_getFBNightTimeControl($hash, $map);
$map = SYSMON_getFBNumNewMessages($hash, $map); $map = SYSMON_getFBNumNewMessages($hash, $map);
$map = SYSMON_getFBDECTTemp($hash, $map); $map = SYSMON_getFBDECTTemp($hash, $map);
#DSL-Downstream und DSL-Upstream abfragen
$map = SYSMON_getFBStreemRate($hash, $map);
#Sync-Zeit mit Vermittlungsstelle abfragen
$map = SYSMON_getFBSyncTime($hash, $map);
#Uebertragungsfehler abfragen (nicht behebbar und behebbar)
$map = SYSMON_getFBCRCFEC($hash, $map);
} }
} }
} }
@ -1106,7 +1124,7 @@ SYSMON_getCPUFreq($$)
} }
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# leifert CPU Frequenz für 2te CPU (Cubietruck, etc.) # leifert CPU Frequenz fuer 2te CPU (Cubietruck, etc.)
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub sub
SYSMON_getCPU1Freq($$) SYSMON_getCPU1Freq($$)
@ -1463,7 +1481,7 @@ sub SYSMON_getRamAndSwap($$)
} }
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Prüft, ob das Host-System OSX ist (darvin). # Prueft, ob das Host-System OSX ist (darvin).
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub SYSMON_isOSX() sub SYSMON_isOSX()
{ {
@ -1471,7 +1489,7 @@ sub SYSMON_isOSX()
} }
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Prüft, ob das Host-System Linux ist (linux). # Prueft, ob das Host-System Linux ist (linux).
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
sub SYSMON_isLinux() sub SYSMON_isLinux()
{ {
@ -2107,6 +2125,69 @@ sub SYSMON_FBVersionInfo($$)
return $map; return $map;
} }
#DSL-Downstream und DSL-Upstream abfragen
sub SYSMON_getFBStreemRate($$) {
my ($hash, $map) = @_;
my $ds_rate = SYSMON_execute($hash, "ctlmgr_ctl r sar status/dsl_ds_rate");
my $us_rate = SYSMON_execute($hash, "ctlmgr_ctl r sar status/dsl_us_rate");
if($ds_rate ne "" && $us_rate ne "") {
$map->{+FB_DSL_RATE}="down: ".$ds_rate." KBit/s, up: ".$us_rate." KBit/s";
}
return $map;
}
# Ausrechnet aus der Zahl der Sekunden Anzeige in Tagen:Stunden:Minuten:Sekunden.
sub SYSMON_sec2Dauer($){
my ($t) = @_;
my $d = int($t/86400);
my $r = $t-($d*86400);
my $h = int($r/3600);
$r = $r - ($h*3600);
my $m = int($r/60);
my $s = $r - $m*60;
return sprintf("%02d Tage %02d Std. %02d Min. %02d Sec.",$d,$h,$m,$s);
}
#Sync-Zeit mit Vermittlungsstelle abfragen
sub SYSMON_getFBSyncTime($$) {
my ($hash, $map) = @_;
my $data = SYSMON_execute($hash, "ctlmgr_ctl r sar status/modem_ShowtimeSecs");
if($data ne "") {
my $idata = int($data);
$map->{+FB_DSL_SYNCTIME}=SYSMON_sec2Dauer($idata);
}
return $map;
}
#Uebertragungsfehler abfragen (nicht behebbar und behebbar)
sub SYSMON_getFBCRCFEC($$) {
my ($hash, $map) = @_;
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 $ds_fec = SYSMON_execute($hash, "ctlmgr_ctl r sar status/ds_fec_per15min");
my $us_fec = SYSMON_execute($hash, "ctlmgr_ctl r sar status/us_fec_per15min");
if($ds_crc ne "") {
# FB_DSL_CRC_15
$map->{+FB_DSL_CRC_15}="down: ".$ds_crc." up: ".$us_crc;
}
if($ds_fec ne "") {
# FB_DSL_FEC_15
$map->{+FB_DSL_FEC_15}="down: ".$ds_fec." up: ".$us_fec;
}
return $map;
}
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Systemparameter als HTML-Tabelle ausgeben # Systemparameter als HTML-Tabelle ausgeben
# Parameter: Name des SYSMON-Geraetes (muss existieren, kann auch anderer Modul genutzt werden), dessen Daten zur Anzeige gebracht werden sollen. # Parameter: Name des SYSMON-Geraetes (muss existieren, kann auch anderer Modul genutzt werden), dessen Daten zur Anzeige gebracht werden sollen.
@ -2120,7 +2201,7 @@ sub SYSMON_ShowValuesHTML ($;@)
} }
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Systemparameter als HTML-Tabelle ausgeben. Zusätzlich wird eine Ueberschrift ausgegeben. # Systemparameter als HTML-Tabelle ausgeben. Zusaetzlich wird eine Ueberschrift ausgegeben.
# Parameter: Name des SYSMON-Geraetes (muss existieren, kann auch anderer Modul genutzt werden), dessen Daten zur Anzeige gebracht werden sollen. # Parameter: Name des SYSMON-Geraetes (muss existieren, kann auch anderer Modul genutzt werden), dessen Daten zur Anzeige gebracht werden sollen.
# Title: Ueberschrift (Text) # Title: Ueberschrift (Text)
# (optional) Liste der anzuzeigenden Werte (ReadingName[:Comment:[Postfix]],...) # (optional) Liste der anzuzeigenden Werte (ReadingName[:Comment:[Postfix]],...)
@ -2725,6 +2806,23 @@ If one (or more) of the multiplier is set to zero, the corresponding readings is
Information on the installed firmware version: <VersionNum> <creation date> <time> Information on the installed firmware version: <VersionNum> <creation date> <time>
</li> </li>
<br> <br>
<b>DSL Informations (FritzBox)</b>
<li>dsl_rate<br>
Information about the down und up stream rate
</li>
<br>
<li>dsl_synctime<br>
sync time with DSLAM
</li>
<br>
<li>dsl_crc_15<br>
number of uncorrectable errors (CRC) for the last 15 minutes
</li>
<br>
<li>dsl_fec_15<br>
number of correctable errors (FEC) for the last 15 minutes
</li>
<br>
<b>Power Supply Readings</b> <b>Power Supply Readings</b>
<li>power_ac_stat<br> <li>power_ac_stat<br>
status information to the AC socket: present (0|1), online (0|1), voltage, current<br> status information to the AC socket: present (0|1), online (0|1), voltage, current<br>
@ -3260,6 +3358,23 @@ If one (or more) of the multiplier is set to zero, the corresponding readings is
Angaben zu der installierten Firmware-Version: <VersionNr> <Erstelldatum> <Zeit> Angaben zu der installierten Firmware-Version: <VersionNr> <Erstelldatum> <Zeit>
</li> </li>
<br> <br>
<b>DSL Informationen (FritzBox)</b>
<li>dsl_rate<br>
Down/Up Verbindungsgeschwindigkeit
</li>
<br>
<li>dsl_synctime<br>
Sync-Zeit mit Vermittlungsstelle
</li>
<br>
<li>dsl_crc_15<br>
Nicht behebbare &Uuml;bertragungsfehler in den letzten 15 Minuten
</li>
<br>
<li>dsl_fec_15<br>
Behebbare &Uuml;bertragungsfehler in den letzten 15 Minuten
</li>
<br>
<b>Readings zur Stromversorgung</b> <b>Readings zur Stromversorgung</b>
<li>power_ac_stat<br> <li>power_ac_stat<br>
Statusinformation f&uuml;r die AC-Buchse: present (0|1), online (0|1), voltage, current<br> Statusinformation f&uuml;r die AC-Buchse: present (0|1), online (0|1), voltage, current<br>