diff --git a/sysutils/smart/src/opnsense/scripts/OPNsense/Smart/detailed_list.sh b/sysutils/smart/src/opnsense/scripts/OPNsense/Smart/detailed_list.sh index cfcb64891..b4bac7d46 100755 --- a/sysutils/smart/src/opnsense/scripts/OPNsense/Smart/detailed_list.sh +++ b/sysutils/smart/src/opnsense/scripts/OPNsense/Smart/detailed_list.sh @@ -29,15 +29,13 @@ result="" for dev in `ls /dev | grep '^\(ad\|da\|ada\)[0-9]\{1,2\}$'`; do ident=`/usr/sbin/diskinfo -v $dev | grep ident | awk '{print $1}'`; - state=`/usr/local/sbin/smartctl -H $dev | awk -F: ' -/^SMART overall-health self-assessment test result/ {print $2;exit} -/^SMART Health Status/ {print $2;exit}'`; + state=`/usr/local/sbin/smartctl -jH /dev/$dev` if [ -n "$result" ]; then result="$result,"; fi - result="$result{\"device\":\"$dev\",\"ident\":\"$ident\",\"state\":\"$state\"}"; + result="$result{\"device\":\"$dev\",\"ident\":\"$ident\",\"state\":$state}"; done echo "[$result]" diff --git a/sysutils/smart/src/www/widgets/widgets/smart_status.widget.php b/sysutils/smart/src/www/widgets/widgets/smart_status.widget.php index 81f049cbd..6467466e0 100644 --- a/sysutils/smart/src/www/widgets/widgets/smart_status.widget.php +++ b/sysutils/smart/src/www/widgets/widgets/smart_status.widget.php @@ -46,25 +46,18 @@ $devs = json_decode (configd_run ("smart detailed list")); foreach ($devs as $dev) { $dev_state_translated = ""; - switch ($dev->state) { - case "PASSED": - case "OK": + if ($dev->state->smart_status->passed) { $dev_state_translated = gettext('OK'); $color = "success"; - break; - case "": + } else { $dev_state_translated = gettext('Unknown'); $color = "warning"; - break; - default: - $color = "danger"; - break; } ?> device ?> ident ?> -    +