@@ -21,21 +21,42 @@ fetcher {
21
21
my $temp ;
22
22
23
23
# ## find temperature file
24
- my @temp_files = glob ' /proc/acpi/thermal_zone/*/temperature' ;
25
- if (! @temp_files ) {
24
+ my @temp_files ;
25
+ my @temp_files_proc = glob ' /proc/acpi/thermal_zone/*/temperature' ;
26
+ my @temp_files_sys = glob ' /sys/class/thermal/thermal_zone*/temp' ;
27
+
28
+ if (@temp_files_proc ) {
29
+ @temp_files = @temp_files_proc ;
30
+
31
+ if (scalar (@temp_files ) > 1) {
32
+ CloudForecast::Log-> warn (" more then one temp files found. decide to use first file." );
33
+ }
34
+
35
+ $c -> ledge_set(' sysinfo' , [ file => $temp_files [0] ]);
36
+
37
+ open my $tempf , ' <' , $temp_files [0] or die $! ;
38
+ my $line = <$tempf >; # <= "temperature: 57 C"
39
+ close $tempf ;
40
+ ($temp ) = (split (/ \s *:\s */ , $line ))[1] =~ / ([\d .]+)/ ;
41
+ } elsif (@temp_files_sys ) {
42
+ @temp_files = @temp_files_sys ;
43
+
44
+ if (scalar (@temp_files ) > 1) {
45
+ CloudForecast::Log-> warn (" more then one temp files found. decide to use first file." );
46
+ }
47
+
48
+ $c -> ledge_set(' sysinfo' , [ file => $temp_files [0] ]);
49
+
50
+ open my $tempf , ' <' , $temp_files [0] or die $! ;
51
+ my $line = <$tempf >; # <= "69000"
52
+ close $tempf ;
53
+ ($temp ) = $line =~ / ([\d .]+)/ ;
54
+ $temp = $temp / 1000;
55
+ } else {
26
56
CloudForecast::Log-> warn (" cannot find temperature file." );
27
57
return [undef ];
28
- } elsif (scalar (@temp_files ) > 1) {
29
- CloudForecast::Log-> warn (" more then one temp files found. decide to use first file." );
30
58
}
31
59
32
- $c -> ledge_set(' sysinfo' , [ file => $temp_files [0] ]);
33
-
34
- open my $tempf , ' <' , $temp_files [0] or die $! ;
35
- my $line = <$tempf >; # <= "temperature: 57 C"
36
- close $tempf ;
37
- ($temp ) = (split (/ \s *:\s */ , $line ))[1] =~ / ([\d .]+)/ ;
38
-
39
60
return [$temp ];
40
61
};
41
62
0 commit comments