#1164 closed defect (invalid)
Incorrect value in SMART attribute 190 when using JSON output
Reported by: | Christian Turri | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | smartctl | Version: | 7.0 |
Keywords: | Cc: |
Description
Hi, I am using the new -j option to output the smartctl data as JSON and I noticed that the parameter 190 (Airflow_Temperature_Cel) raw value is incorrect when the output is JSON. If I ran this:
smartctl -a /dev/ada0
I get
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 190 Airflow_Temperature_Cel 0x0022 058 043 045 Old_age Always In_the_past 42 (Min/Max 23/42 #102)
but I run it with the -j option I get this:
{ "id": 190, "name": "Airflow_Temperature_Cel", "value": 58, "worst": 43, "thresh": 45, "when_failed": "past", "flags": { "value": 34, "string": "-O---K ", "prefailure": false, "updated_online": true, "performance": false, "error_rate": false, "event_count": false, "auto_keep": true }, "raw": { "value": 438792814634, "string": "42 (Min/Max 23/42 #102)" }
The raw value being 438792814634 but the expected raw value is 42. I am running version 7.1 svn_revision 4891. Thanks
Change History (4)
comment:1 by , 6 years ago
comment:2 by , 6 years ago
Thanks for the quick reply. I guess the issue is that the non JSON output is a bit inconsistent with a the JSON output as the raw column in the regular output is not really a raw column but the string interpretation. Thanks for the info, will switch to the standardized values as I don't really the raw values.
comment:3 by , 6 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
comment:4 by , 6 years ago
Milestone: | undecided |
---|
This is as expected. The field
ata_smart_attributes.table[i].raw.value
is the 48-bit raw value as returned by the drive. It is vendor specific and may encode more than one value (438792814634 = 0x00662a17002a):If there is a real need to read the current temperature from this specific attribute, use
value & 0xff
.Otherwise it is recommended to use JSON field
temperature.current
instead. This also evaluates standardized ATA/SATA temperature sources (SCT Status, Device Statistics) and also works for SCSI/SAS and NVMe devices.Same applies to
power_on_time.hours
(instead of attribute 9) andpower_cycle_count
(instead of attribute 12).PS: Hint for future tickets: please don't set a milestone.