diff --git a/pve-mod-gui-temp.sh b/pve-mod-gui-temp.sh index bbcc266..abbaad4 100644 --- a/pve-mod-gui-temp.sh +++ b/pve-mod-gui-temp.sh @@ -96,11 +96,27 @@ function install_mod { textField: 'thermalstate',\n\ renderer: function(value){\n\ let objValue = JSON.parse(value);\n\ - let core0 = objValue[\"coretemp-isa-0000\"][\"Core 0\"][\"temp2_input\"];\n\ - let core1 = objValue[\"coretemp-isa-0000\"][\"Core 1\"][\"temp3_input\"];\n\ - let core2 = objValue[\"coretemp-isa-0000\"][\"Core 2\"][\"temp4_input\"];\n\ - let core3 = objValue[\"coretemp-isa-0000\"][\"Core 3\"][\"temp5_input\"];\n\ - return \`Core 0: \$\{core0\} C | Core 1: \$\{core1\} C | Core 2: \$\{core2\} C | Core 3: \$\{core3\} C\`\n\ + const address = \"coretemp-isa-0000\";\n\ + if(objValue.hasOwnProperty(address)) \{\n\ + const items = objValue[address],\n\ + itemPrefix = \"Core \",\n\ + coreKeys = Object.keys(items).filter(item => \{\n\ + return String(item).startsWith(itemPrefix);\n\ + \}),\n\ + tempInputOffset = 2; // see tempN_input for \"Core 0\"\n\ +\n\ + let temps = [];\n\ + coreKeys.forEach((coreKey, index) => \{\n\ + try \{\n\ + let temp = items[itemPrefix + index][\`temp\$\{tempInputOffset + index\}_input\`];\n\ + temps.push(\`Core \$\{index\}: \$\{temp\} C\`);\n\ + \} catch(e) \{ /*_*/ \}\n\ + });\n\ +\n\ + const cols = 4,\n\ + result = temps.map((strTemp, index, arr) => { return strTemp + (index + 1 < arr.length ? ((index + 1) % cols === 0 ? '
' : ' | ') : '')});\n\ + return result.join('');\n\ + \}\n\ }\n\ },\n\ {\n\ @@ -112,9 +128,23 @@ function install_mod { textField: 'thermalstate2',\n\ renderer: function(value){\n\ let objValue = JSON.parse(value);\n\ - let temp0 = objValue[\"nvme-pci-0100\"][\"Composite\"][\"temp1_input\"];\n\ - return \`NVME: \$\{temp0\} C\`\n\ - }\n\ + const addressPrefix = \"nvme-pci-\",\n\ + nvmeKeys = Object.keys(objValue).filter(item => \{ return String(item).startsWith(addressPrefix); \}),\n\ + sensorName = \"Composite\",\n\ + tempInputNo = 1;\n\ +\n\ + let temps = [];\n\ + nvmeKeys.forEach((nvmeKey, index) => \{\n\ + try \{\n\ + let temp = objValue[nvmeKey][sensorName][\`temp\$\{tempInputNo\}_input\`]\n\ + temps.push(\`Drive \$\{index\}: \$\{temp\} C\`);\n\ + \} catch(e) \{ /*_*/ \}\n\ + \});\n\ +\n\ + const cols = 4,\n\ + result = temps.map((strTemp, index, arr) => \{ return strTemp + (index + 1 < arr.length ? ((index + 1) % cols === 0 ? '
' : ' | ') : '')\});\n\ + return result.join('');\n\ + \}\n\ }, }" $pvemanagerlib echo "Added new item to the items array in $pvemanagerlib"