diff --git a/emhttp/plugins/dynamix/include/Helpers.php b/emhttp/plugins/dynamix/include/Helpers.php index 90290ff02..06c5e3a7e 100644 --- a/emhttp/plugins/dynamix/include/Helpers.php +++ b/emhttp/plugins/dynamix/include/Helpers.php @@ -265,35 +265,36 @@ function delete_file(...$file) { array_map('unlink',array_filter($file,'file_exists')); } function getnvmepowerstate($device) { - $array=[] ; - exec("nvme id-ctrl $device |grep -E 'ps |wctemp|cctemp'",$array,$error) ; - foreach ($array as $line){ - $split = explode(":",$line) ; - $check=str_replace(" ","",trim($split[0])); - switch($check){ - case "wctemp": - $return['wctemp'] = $split[1] - 273; - break; - case "cctemp": - $return['cctemp'] = $split[1] - 273; - break; - case "ps0": - case "ps1": - case "ps2": - case "ps3": - case "ps4": - case "ps5": - $power = explode(" ",$split[2]) ; - $return[$check] = $power[0]; - break; - } + if (!exec("which nvme 2>/dev/null")) return; + exec("nvme id-ctrl $device | grep -E 'ps |wctemp|cctemp'",$rows); + foreach ($rows as $row){ + if (!$row) continue; + $split = explode(':',$row); + $check = str_replace(' ','',trim($split[0])); + switch ($check){ + case "wctemp": + $return['wctemp'] = $split[1] - 273; + break; + case "cctemp": + $return['cctemp'] = $split[1] - 273; + break; + case "ps0": + case "ps1": + case "ps2": + case "ps3": + case "ps4": + case "ps5": + $power = explode(' ',$split[2]); + $return[$check] = $power[0]; + break; + } } $powerstate = shell_exec("nvme get-feature $device -f 02"); - $powersplit = explode(":",$powerstate) ; - $powerstate = substr(trim($powersplit[2]), -1) ; - #get-feature:0x02 (Power Management), Current value:0x00000003) - $return["powerstate"] = $powerstate; - $return["powerstatevalue"] = $return['ps'.$return['powerstate']] ; + $powersplit = explode(':',$powerstate); + $powerstate = substr(trim($powersplit[2]),-1); + # get-feature:0x02 (Power Management), Current value:0x00000003) + $return['powerstate'] = $powerstate; + $return['powerstatevalue'] = $return['ps'.$return['powerstate']]; return $return; } ?> diff --git a/emhttp/plugins/dynamix/nchan/device_list b/emhttp/plugins/dynamix/nchan/device_list index cdfd0fadd..46b02bdd2 100755 --- a/emhttp/plugins/dynamix/nchan/device_list +++ b/emhttp/plugins/dynamix/nchan/device_list @@ -276,10 +276,11 @@ function array_online(&$disk, $fstype='') { default: $echo[] = "".device_info($disk,true).""; $echo[] = "".device_desc($disk).""; - if ($disk['transport'] == "nvme") { - $powerstate=getnvmepowerstate("/dev/".$disk['device']); - $powerstatevalue="
PS: ".$powerstate['powerstatevalue']."(".$powerstate['powerstate'].")" ; - } else $powerstatevalue = "" ; + $powerstatevalue = ""; + if (_var($disk,'transport') == 'nvme') { + $powerstate = getnvmepowerstate("/dev/"._var($disk,'device')); + $powerstatevalue = '
'._('PS').': '._var($powerstate,'powerstatevalue','?').'('._var($powerstate,'powerstate','--').')'; + } $echo[] = "".my_temp(_var($disk,'temp','*')).$powerstatevalue.""; $echo[] = "".my_diskio($data[0])."".my_number(_var($disk,'numReads',0)).""; $echo[] = "".my_diskio($data[1])."".my_number(_var($disk,'numWrites',0))."";