diff --git a/fhem/FHEM/42_SYSMON.pm b/fhem/FHEM/42_SYSMON.pm index 462a150e6..1b0ecb346 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.3.7"; +my $VERSION = "1.3.8"; use constant { DATE => "date", @@ -1185,19 +1185,53 @@ sub SYSMON_getNetworkInfo ($$$) #------------------------------------------------------------------------------ sub SYSMON_ShowValuesHTML ($;@) { - my ($name, @data) = @_; + my ($name, @data) = @_; + return SYSMON_ShowValuesFmt($name, 1, @data); +} + +#------------------------------------------------------------------------------ +# Systemparameter im Textformat ausgeben +# Parameter: Name des SYSMON-Geraetes (muss existieren), dessen Daten zur Anzeige gebracht werden sollen. +# (optional) Liste der anzuzeigenden Werte (ReadingName[:Comment:[Postfix]],...) +# Beispiel: define sysv weblink htmlCode {SYSMON_ShowValuesText('sysmon', ('date:Datum', 'cpu_temp:CPU Temperatur: °C', 'cpu_freq:CPU Frequenz: MHz'))} +#------------------------------------------------------------------------------ +sub SYSMON_ShowValuesText ($;@) +{ + my ($name, @data) = @_; + return SYSMON_ShowValuesFmt($name, 0, @data); +} + +#------------------------------------------------------------------------------ +# Systemparameter formatiert ausgeben +# Parameter: +# Format: 0 = Text, 1 = HTML +# Name des SYSMON-Geraetes (muss existieren), dessen Daten zur Anzeige gebracht werden sollen. +# (optional) Liste der anzuzeigenden Werte (ReadingName[:Comment:[Postfix]],...) +#------------------------------------------------------------------------------ +sub SYSMON_ShowValuesFmt ($$;@) +{ + my ($name, $format, @data) = @_; + + if($format != 0 && $format != 1) { + return "unknown output format\r\n"; + } + my $hash = $main::defs{$name}; SYSMON_updateCurrentReadingsMap($hash); #Log 3, "SYSMON $>name, @data<"; my @dataDescription = @data; if(scalar(@data)<=0) { # Array mit anzuzeigenden Parametern (Prefix, Name (in Map), Postfix) + my $deg = "°"; + if($format == 1) { + $deg = "°"; + } @dataDescription = (DATE, - CPU_TEMP.":".$cur_readings_map->{+CPU_TEMP}.":"." °C", - CPU_FREQ.":".$cur_readings_map->{+CPU_FREQ}.":"." MHz", + CPU_TEMP.":".$cur_readings_map->{+CPU_TEMP}.": ".$deg."C", + CPU_FREQ.":".$cur_readings_map->{+CPU_FREQ}.": "."MHz", CPU_BOGOMIPS, UPTIME_TEXT, FHEMUPTIME_TEXT, LOADAVG, RAM, SWAP); - + # network-interfaces my $networks = AttrVal($name, "network-interfaces", undef); if(defined $networks) { @@ -1234,8 +1268,15 @@ sub SYSMON_ShowValuesHTML ($;@) my $div_class=""; - my $htmlcode = "
".$rComment.": | ".$rVal.$rPostfix." |
".$rComment.": | ".$rVal.$rPostfix." |
".$nComment.": | ".$nVal." |
File System: ".$1." | ".$map->{$aName}." |
File System: ".$1." | ".$map->{$aName}." |
".$fComment.": | ".$fVal." |
define sysv1 weblink htmlCode {SYSMON_ShowValuesHTML('sysmon')}
define sysv2 weblink htmlCode {SYSMON_ShowValuesHTML('sysmon', ('date:Datum', 'cpu_temp:CPU Temperatur: °C', 'cpu_freq:CPU Frequenz: MHz'))}
define sysv1 weblink htmlCode {SYSMON_ShowValuesHTML('sysmon')}
define sysv2 weblink htmlCode {SYSMON_ShowValuesHTML('sysmon', ('date:Datum', 'cpu_temp:CPU Temperatur: °C', 'cpu_freq:CPU Frequenz: MHz'))}