グラフ表示できるようになったので、
Rustで書いたWebsocketのサーバーから送られてくるjsonでグラフを更新する。
jsonは以下のような形
{ "time":2019/01/14 02:50:07, "voltage":102.396, "current":108.74219, "wattage":5.335 }
よって、
var t = []; var v = []; var c = []; var p = []; var maxsize = 100; ..... sock.addEventListener('message', function(e){ var jsonstr = JSON.parse(e.data); if(t.length >= maxsize) { t.push(jsonstr['time']); t.splice(0,1); v.push(jsonstr['voltage']); v.splice(0,1); c.push(jsonstr['current']); c.splice(0,1); p.push(jsonstr['wattage']); p.splice(0,1); } else { t.push(jsonstr['time']); v.push(jsonstr['voltage']); c.push(jsonstr['current']); p.push(jsonstr['wattage']); } vchart.data.label = t; cchart.data.label = t; pchart.data.label = t; vchart.data.datasets[0].data = v; cchart.data.datasets[0].data = c; pchart.data.datasets[0].data = p; vchart.update(); cchart.update(); pchart.update(); });
電力のグラフだけに注目すれば
var pctx; var pchart; pctx = $('#powerChart').get(0).getContext('2d'); ..... const pchartDataSet = { type: 'line', data: { labels: t, datasets: [{ label: 'power', data: p, tension: graph_tension, backgroundColor: 'rgba(0, 0, 125, 0.3)', borderColor: 'blue' }] }, options: { responsive: true, maintainAspectRatio: false, animation:false, scales: { yAxes: [ { ticks: { beginAtZero: true, min: 0, max: 200 } } ] } } }; pchart= new Chart(pctx, pchartDataSet);
こんな感じでcurrentもvoltageも書いた。
パソコン構成は以下で、
物 | 型番 |
CPU | Ryzen5 2600X |
マザボ | Asrock X470 MASTER SLI |
GPU | GF-GTX660-E2GHD/DF/OC(流用) |
メモリ | CMK16GX4M2A2666C16 |
電源 | Corsair CX550M 80PLUS |
ケース | JONSBO U4 |
SSD | MZVPV256HDGL-00000 |
HDD | DT01ACA300 |
グラフから
スリープの時は5Wぐらい。
何もしてない起動時は約80W
シネベンチ(CPU)回して190Wぐらい
でも、CPU自体は
スリープ時(たぶんほぼ0W)
何もしてないとき、2W~3W
シネベンチ(CPU)で90Wか(?)
今後はサーバー側のほうで一ヶ月ごとのcsvファイルでもログしようかと考えている。
Data Visualization with JavaScript
- 作者: Stephen A. Thomas
- 出版社/メーカー: No Starch Press
- 発売日: 2015/03/26
- メディア: ペーパーバック
- この商品を含むブログを見る
ラトックシステム Bluetoothワットチェッカー REX-BTWATTCH1
- 出版社/メーカー: ラトックシステム
- 発売日: 2014/07/17
- メディア: Personal Computers
- この商品を含むブログを見る