32_SYSSTAT.pm: added armbiantemperature attribute (by ebk)

git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@21047 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
justme-1968 2020-01-25 09:57:49 +00:00
parent 6192c8e50b
commit dc63d15b53

View File

@ -41,7 +41,7 @@ SYSSTAT_Initialize($)
$hash->{UndefFn} = "SYSSTAT_Undefine"; $hash->{UndefFn} = "SYSSTAT_Undefine";
$hash->{GetFn} = "SYSSTAT_Get"; $hash->{GetFn} = "SYSSTAT_Get";
$hash->{AttrFn} = "SYSSTAT_Attr"; $hash->{AttrFn} = "SYSSTAT_Attr";
$hash->{AttrList} = "disable:1 disabledForIntervals raspberrycpufreq:1 raspberrytemperature:0,1,2 synologytemperature:0,1,2 stat:1 uptime:1,2 ssh_user "; $hash->{AttrList} = "disable:1 disabledForIntervals raspberrycpufreq:1 raspberrytemperature:0,1,2 synologytemperature:0,1,2 stat:1 uptime:1,2 ssh_user armbiantemperature:0,1,2";
$hash->{AttrList} .= " snmp:1 mibs:textField-long snmpVersion:1,2 snmpCommunity" if( $SYSSTAT_hasSNMP ); $hash->{AttrList} .= " snmp:1 mibs:textField-long snmpVersion:1,2 snmpCommunity" if( $SYSSTAT_hasSNMP );
$hash->{AttrList} .= " filesystems showpercent"; $hash->{AttrList} .= " filesystems showpercent";
$hash->{AttrList} .= " useregex:1" if( $SYSSTAT_hasSysStatistics ); $hash->{AttrList} .= " useregex:1" if( $SYSSTAT_hasSysStatistics );
@ -245,6 +245,7 @@ SYSSTAT_Attr($$$)
sub SYSSTAT_getLoadAVG($); sub SYSSTAT_getLoadAVG($);
sub SYSSTAT_getPiTemp($); sub SYSSTAT_getPiTemp($);
sub SYSSTAT_getArmbianTemp($);
sub SYSSTAT_getUptime($); sub SYSSTAT_getUptime($);
sub sub
SYSSTAT_GetUpdate($) SYSSTAT_GetUpdate($)
@ -360,6 +361,14 @@ SYSSTAT_GetUpdate($)
} }
readingsBulkUpdate($hash,"temperature",$temp); readingsBulkUpdate($hash,"temperature",$temp);
} }
} elsif( AttrVal($name, "armbiantemperature", 0) > 0 ) {
my $temp = SYSSTAT_getArmbianTemp($hash);
if( $temp && $temp > 0 && $temp < 200 ) {
if( AttrVal($name, "armbiantemperature", 0) eq 2 ) {
$temp = sprintf( "%.1f", (3 * ReadingsVal($name,"temperature",$temp) + $temp ) / 4 );
}
readingsBulkUpdate($hash,"temperature",$temp);
}
} }
if( $hash->{USE_SNMP} && defined($hash->{session}) ) { if( $hash->{USE_SNMP} && defined($hash->{session}) ) {
@ -578,6 +587,15 @@ SYSSTAT_getPiTemp($)
return $temp / 1000; return $temp / 1000;
} }
sub sub
SYSSTAT_getArmbianTemp($)
{
my ($hash) = @_;
my $temp = SYSSTAT_readFile($hash,"/etc/armbianmonitor/datasources/soctemp",-1);
return $temp / 1000;
}
sub
SYSSTAT_getSynoTemp($) SYSSTAT_getSynoTemp($)
{ {
my ($hash) = @_; my ($hash) = @_;
@ -851,6 +869,9 @@ SYSSTAT_getStat($)
<li>synologytemperature<br> <li>synologytemperature<br>
If set and > 0 the main temperaure of a synology diskstation is read. requires snmp.<br> If set and > 0 the main temperaure of a synology diskstation is read. requires snmp.<br>
If set to 2 a geometric average over the last 4 values is created.</li> If set to 2 a geometric average over the last 4 values is created.</li>
<li>armbiantemperature<br>
If set and > 0 the armbian based SOC on chip termal sensor is read.<br>
If set to 2 a geometric average over the last 4 values is created.</li>
<li>raspberrycpufreq<br> <li>raspberrycpufreq<br>
If set and > 0 the raspberry pi on chip termal sensor is read.</li> If set and > 0 the raspberry pi on chip termal sensor is read.</li>
<li>uptime<br> <li>uptime<br>
@ -981,6 +1002,9 @@ SYSSTAT_getStat($)
<li>synologytemperature<br> <li>synologytemperature<br>
Wenn gesetzt und > 0 wird die Temperatur einer Synology Diskstation ausgelesen (erfordert snmp).<br> Wenn gesetzt und > 0 wird die Temperatur einer Synology Diskstation ausgelesen (erfordert snmp).<br>
Wenn Wert 2 ist, wird ein geometrischer Durchschnitt der letzten 4 Werte dargestellt.</li> Wenn Wert 2 ist, wird ein geometrischer Durchschnitt der letzten 4 Werte dargestellt.</li>
<li>armbiantemperature<br>
Wenn gesetzt und > 0 wird der Temperatursensor auf Armbian basierten Board ausgelesen.<br>
Wenn Wert 2 ist, wird ein geometrischer Durchschnitt der letzten 4 Werte dargestellt.</li>
<li>raspberrycpufreq<br> <li>raspberrycpufreq<br>
Wenn gesetzt und > 0 wird die Raspberry Pi CPU Frequenz ausgelesen.</li> Wenn gesetzt und > 0 wird die Raspberry Pi CPU Frequenz ausgelesen.</li>
<li>uptime<br> <li>uptime<br>