forked from MRsagi/cockpit-temperature-plugin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtemperature.js
84 lines (77 loc) · 3.07 KB
/
temperature.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
window.onload = function () {
resize_canvas()
var chart = new SmoothieChart({tooltip:true, millisPerPixel: 500, maxValue: 100, minValue: 0, scaleSmoothing: 0.1, grid: { fillStyle: '#ffffff', millisPerLine: 0, verticalSections: 4, sharpLines: true}, labels: { fillStyle: '#000000', fontSize: 12, precision: 0 }, timestampFormatter: SmoothieChart.timeFormatter }),
canvas = document.getElementById('smoothie-chart'),
series = [];
stokes = [{lineWidth: 3.5, strokeStyle: '#ff0000',fillStyle:'rgba(255,0,0,0.08)'},
{lineWidth: 3.5, strokeStyle: '#008800',fillStyle:'rgba(0,136,0,0.08)'},
{lineWidth: 3.5, strokeStyle: '#0000ff',fillStyle:'rgba(0,0,255,0.08)'}];
function run_init () {
var i = 0;
var proc = cockpit.spawn(["sensors"]);
proc.done(function(data){
pts = data.match(/temp[1-9]:[\t ]+[+]*[0-9\.]+/g);
if (pts) {
for (i = 0; i < pts.length; i++) {
series[i] = new TimeSeries();
chart.addTimeSeries(series[i], stokes[i%stokes.length]);
}
}
});
proc = cockpit.spawn(["vcgencmd", "measure_temp"]);
proc.done(function(data){
pt = parseFloat(data.match(/temp[=]([0-9\.]+)/)[1]);
if (pt) {
series[i] = new TimeSeries();
chart.addTimeSeries(series[i], stokes[i%stokes.length]);
}
});
cockpit.file("/etc/armbianmonitor/datasources/soctemp").read()
.done(function(data, tag){
if (data) {
pt = parseFloat(data.match(/([0-9]+)/)[1]) / 1000;
if (pt) {
series[i] = new TimeSeries();
chart.addTimeSeries(series[i], stokes[i%stokes.length]);
}
}
});
};
run_init();
chart.streamTo(canvas, 5000);
function run_proc(series) {
var i = 0;
var now = new Date().getTime();
var proc = cockpit.spawn(["sensors"]);
proc.done(function(data){
pts = data.match(/temp[1-9]:[\t ]+[+]*[0-9\.]+/g);
if (pts) {
for (i = 0; i < pts.length; i++) {
pt = parseFloat(pts[i].match(/temp[1-9]:[\t ]+[+]*([0-9\.]+)/)[1]);
series[i].append(now, pt);
}
}
});
var proc = cockpit.spawn(["vcgencmd", "measure_temp"]);
proc.done(function(data){
pt = parseFloat(data.match(/temp[=]([0-9\.]+)/)[1]);
if (pt) {
series[i].append(now, pt);
}
});
cockpit.file("/etc/armbianmonitor/datasources/soctemp").read()
.done(function(data, tag){
if (data) {
pt = parseFloat(data.match(/([0-9]+)/)[1]) / 1000;
if (pt) {
series[i].append(now, pt);
}
}
});
};
//run_proc(series)
setInterval(function () { run_proc(series) }, 5000);
}
function resize_canvas() {
document.getElementById("smoothie-chart").width = window.innerWidth - 50;
}