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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
| { itemId: 'thermal', colspan: 2, printBar: false, title: gettext('温度'), textField: 'sensors_json', renderer: function(value) { value = value.replace(/temp([0-9]{1,})_input/g,'input'); if (value.indexOf("coretemp-isa") != -1 ) { value = value.replace(/coretemp-isa-(.{4})/g,'coretemp-isa'); value = value.replace(/nct6798-isa-(.{4})/g,'nct6798-isa'); value = JSON.parse(value); try {var cpu_Intel = 'CPU: ' + value['coretemp-isa']['Package id 0']['input'].toFixed(1) + '°C';} catch(e) {var cpu_Intel = '';} try {var acpi = ' || 主板: ' + value['acpitz-acpi-0']['temp1']['input'].toFixed(1) + '°C';} catch(e) {var acpi = '';} try {var pch = ' || 南桥: ' + value['pch_cometlake-virtual-0']['temp1']['input'].toFixed(1) + '°C';} catch(e) {var pch = '';} try {var pci0 = ' || 网卡: ' + value['nct6798-isa']['PECI Agent 0']['input'].toFixed(1) + '°C';} catch(e) {var pci0 = '';} if (cpu_Intel.length > 0 && pch.length + acpi.length + pci0.length > 0) { return `${cpu_Intel}${acpi}${pch}${pci0}`; } else if (cpu_Intel.length > 0) { try {var cpu0 = ' || 核心 0 : ' + value['coretemp-isa']['Core 0']['input'].toFixed(1) + '°C';} catch(e) {var cpu0 = '';} try {var cpu1 = ' | 核心 1 : ' + value['coretemp-isa']['Core 1']['input'].toFixed(1) + '°C';} catch(e) {var cpu1 = '';} try {var cpu2 = ' | 核心 2 : ' + value['coretemp-isa']['Core 2']['input'].toFixed(1) + '°C';} catch(e) {var cpu2 = '';} try {var cpu3 = ' | 核心 3 : ' + value['coretemp-isa']['Core 3']['input'].toFixed(1) + '°C';} catch(e) {var cpu3 = '';} try {var cpu4 = ' | 核心 4 : ' + value['coretemp-isa']['Core 4']['input'].toFixed(1) + '°C';} catch(e) {var cpu4 = '';} try {var cpu5 = ' | 核心 5 : ' + value['coretemp-isa']['Core 5']['input'].toFixed(1) + '°C';} catch(e) {var cpu5 = '';} try {var cpu6 = ' | 核心 6 : ' + value['coretemp-isa']['Core 6']['input'].toFixed(1) + '°C';} catch(e) {var cpu6 = '';} try {var cpu7 = ' | 核心 7 : ' + value['coretemp-isa']['Core 7']['input'].toFixed(1) + '°C';} catch(e) {var cpu7 = '';} return `${cpu_Intel}${cpu0}${cpu1}${cpu2}${cpu3}${cpu4}${cpu5}${cpu6}${cpu7}`; } } else if (value.indexOf("amdgpu-pci") != -1 ) { value = value.replace(/k10temp-pci-(.{4})/g,'k10temp-pci'); value = value.replace(/zenpower-pci-(.{4})/g,'zenpower-pci'); value = value.replace(/amdgpu-pci-(.{4})/g,'amdgpu-pci'); value = JSON.parse(value); try {var cpu_amd_k10 = 'CPU: ' + value['k10temp-pci']['Tctl']['input'].toFixed(1) + '°C';} catch(e) {var cpu_amd_k10 = '';} try {var cpu_amd_zen = 'CPU: ' + value['zenpower-pci']['Tctl']['input'].toFixed(1) + '°C';} catch(e) {var cpu_amd_zen = '';} try {var amdgpu = ' | GPU: ' + value['amdgpu-pci']['edge']['input'].toFixed(1) + '°C';} catch(e) {var amdgpu = '';} return `${cpu_amd_k10}${cpu_amd_zen}${amdgpu}`; } else { return `提示: CPU 及 主板 温度读取异常`; } } }, { itemId: 'nvme_ssd', colspan: 2, printBar: false, title: gettext('NVME'), textField: 'smartctl_nvme_json', renderer: function(value) { value = JSON.parse(value); if (value['model_name']) { try {var model_name = value['model_name'];} catch(e) {var model_name = '';} try {var percentage_used = ' | 使用寿命: ' + value['nvme_smart_health_information_log']['percentage_used'].toFixed(0) + '% ';} catch(e) {var percentage_used = '';} try {var data_units_read = value['nvme_smart_health_information_log']['data_units_read']*512/1024/1024/1024;var data_units_read = '(读: ' + data_units_read.toFixed(2) + 'TB, ';} catch(e) {var data_units_read = '';} try {var data_units_written = value['nvme_smart_health_information_log']['data_units_written']*512/1024/1024/1024;var data_units_written = '写: ' + data_units_written.toFixed(2) + 'TB)';} catch(e) {var data_units_written = '';} try {var power_on_time = ' | 通电: ' + value['power_on_time']['hours'].toFixed(0) + '小时';} catch(e) {var power_on_time = '';} try {var temperature = ' | 温度: ' + value['temperature']['current'].toFixed(1) + '°C';} catch(e) {var temperature = '';} return `${model_name}${percentage_used}${data_units_read}${data_units_written}${power_on_time}${temperature}`; } else { return `提示: 未安装硬盘或已直通硬盘控制器`; } } }, { itemId: 'SATA_sda', colspan: 2, printBar: false, title: gettext('SATA_sda'), textField: 'smartctl_sda_json', renderer: function(value) { if (value.indexOf("Device is in STANDBY mode") != -1 ) { return `提示: 磁盘休眠中`; } else if (value.indexOf("No such device") != -1 ) { return `提示: 未安装硬盘或已直通硬盘控制器`; } else { value = JSON.parse(value); try {var model_name = value['model_name'];} catch(e) {var model_name = '';} try {var user_capacity = value['user_capacity']['bytes']/1024/1024/1024;var user_capacity = ' | 容量: ' + user_capacity.toFixed(2) + ' GB';} catch(e) {var user_capacity = '';} try {var power_on_time = ' | 已通电: ' + value['power_on_time']['hours'].toFixed(0) + ' 小时';} catch(e) {var power_on_time = '';} try {var error_count = value['ata_smart_error_log']['summary']['count'].toFixed(0);if (error_count != 0){error_count = ' | 磁盘错误: ' + error_count;} else {var error_count = '';} } catch(e) {var error_count = '';} try {var self_count = value['ata_smart_self_test_log']['standard']['error_count_total'].toFixed(0);if (self_count != 0){self_count = ' | 自检错误: ' + self_count;} else {var self_count = '';} } catch(e) {var self_count = '';} try {var temperature = ' | 温度: ' + value['temperature']['current'].toFixed(1) + '°C';} catch(e) {var temperature = '';} return `${model_name}${user_capacity}${power_on_time}${error_count}${self_count}${temperature}`; } } }, { itemId: 'SATA_sdb', colspan: 2, printBar: false, title: gettext('SATA_sdb'), textField: 'smartctl_sdb_json', renderer: function(value) { if (value.indexOf("Device is in STANDBY mode") != -1 ) { return `提示: 磁盘休眠中`; } else if (value.indexOf("No such device") != -1 ) { return `提示: 未安装硬盘或已直通硬盘控制器`; } else { value = JSON.parse(value); try {var model_name = value['model_name'];} catch(e) {var model_name = '';} try {var user_capacity = value['user_capacity']['bytes']/1024/1024/1024;var user_capacity = ' | 容量: ' + user_capacity.toFixed(2) + ' GB';} catch(e) {var user_capacity = '';} try {var power_on_time = ' | 已通电: ' + value['power_on_time']['hours'].toFixed(0) + ' 小时';} catch(e) {var power_on_time = '';} try {var error_count = value['ata_smart_error_log']['summary']['count'].toFixed(0);if (error_count != 0){error_count = ' | 磁盘错误: ' + error_count;} else {var error_count = '';} } catch(e) {var error_count = '';} try {var self_count = value['ata_smart_self_test_log']['standard']['error_count_total'].toFixed(0);if (self_count != 0){self_count = ' | 自检错误: ' + self_count;} else {var self_count = '';} } catch(e) {var self_count = '';} try {var temperature = ' | 温度: ' + value['temperature']['current'].toFixed(1) + '°C';} catch(e) {var temperature = '';} return `${model_name}${user_capacity}${power_on_time}${error_count}${self_count}${temperature}`; } } }, { itemId: 'MHz', colspan: 2, printBar: false, title: gettext('CPU频率'), textField: 'cpusensors', renderer:function(value){ var f0 = value.match(/CPU MHz.*?([\d]+)/)[1]; var f1 = value.match(/CPU min MHz.*?([\d]+)/)[1]; var f2 = value.match(/CPU max MHz.*?([\d]+)/)[1]; return `实时: ${f0} MHz || 最小: ${f1} MHz | 最大: ${f2} MHz ` } },
|