Project: SMART Sniffer
Author: Research compiled March 2026
Purpose: Documents the manufacturer-specific SMART attribute names used in smartctl --json output, informing the ata_name_map in sensor.py.
When smartctl reads a drive's SMART attribute table, it translates raw attribute IDs into human-readable names using its built-in drivedb.h database. The name strings it produces vary significantly between manufacturers — sometimes even between product lines from the same manufacturer. This is a real-world interoperability problem: two drives reporting the same physical measurement (e.g. temperature, wear level) may use entirely different name strings in their JSON output.
SMART Sniffer's sensor.py maps each logical sensor key (e.g. wear_leveling_count) to a list of known attribute name strings. This document records all known variants, their sources, and any gaps still requiring verification.
The table below summarises which manufacturers have been confirmed for each of the five monitored attributes. ✅ = confirmed name known,
| Manufacturer | Temp | Power-On Hours | Reallocated Sectors | Pending Sectors | Uncorrectable Errors | Wear Leveling |
|---|---|---|---|---|---|---|
| Seagate (HDD) | ✅ | ✅ | ✅ | ✅ | ✅ | — |
| Western Digital (HDD) | ✅ | ✅ | ✅ | ✅ | ✅ | — |
| Toshiba (HDD) | ✅ | ✅ | ✅ | ✅ | ✅ | — |
| HGST / Hitachi (HDD) | ✅ | ✅ | ✅ | ✅ | ✅ | — |
| Samsung (SSD) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Intel (SSD) | ✅ | ✅ | ✅ | ✅ | — | ✅ |
| Crucial / Micron | ✅ | ✅ | ✅ | ✅ | — | ✅ |
| Kingston | ✅ | ✅ | ✅ | ✅ | — | ✅ |
| SanDisk / WD (SSD) | ✅ | ✅ | ✅ | ✅ | — | ✅ |
| SK Hynix (SSD) | ✅ | ✅ | ✅ | ✅ | — | |
| NVMe (all) | ✅ | ✅ | — | — | ✅ (media_errors) | ✅ (% used) |
Logical key: temperature
Unit: °C
ATA attribute IDs typically used: 190, 194
| Name String | Manufacturers / Notes |
|---|---|
Temperature_Celsius |
Most HDDs: Seagate, WD, Toshiba, HGST, Hitachi (ID 194) |
Temperature_Internal |
Some Intel SSDs (ID 194) |
Airflow_Temperature_Cel |
Samsung SSDs (ID 190), some Intel SSDs (also ID 190) |
HDA_Temperature |
Older Hitachi and HGST HDDs (ID 194) |
Drive_Temperature |
Some generic and OEM drives |
NVMe path: nvme_smart_health_information_log.temperature
Note: Samsung SSDs report temperature on ID 190 (
Airflow_Temperature_Cel) rather than the more common ID 194. ID 190 measures the airflow temperature near the controller, which is functionally the same reading for monitoring purposes.
Logical key: power_on_hours
Unit: hours
ATA attribute ID: 9
| Name String | Manufacturers / Notes |
|---|---|
Power_On_Hours |
Most manufacturers — highly standardised |
Power_On_Hours_and_Msec |
Some Western Digital drives |
Power_On_Time |
Some older drives, generic OEM firmware |
NVMe path: nvme_smart_health_information_log.power_on_hours
Note:
Power_On_Hours_and_Msecencodes both hours and milliseconds in the raw value.smartctlextracts only the hours component in theraw.valuefield, so the mapping works correctly without special-casing.
Logical key: reallocated_sector_count
ATA attribute ID: 5
Applicability: ATA/SATA only (not NVMe)
| Name String | Manufacturers / Notes |
|---|---|
Reallocated_Sector_Ct |
Virtually all manufacturers — one of the most standardised SMART attributes |
Note: This is the most consistent attribute name across the entire SMART ecosystem. The short form
_Ct(not_Count) is the standard insmartctl's drivedb. There are no known meaningful variants in active use.
Logical key: current_pending_sector_count
ATA attribute ID: 197
Applicability: ATA/SATA only (not NVMe)
| Name String | Manufacturers / Notes |
|---|---|
Current_Pending_Sector |
Most manufacturers (Seagate, Toshiba, HGST, Samsung) |
Current_Pending_Sector_Ct |
Some Western Digital and HGST variants |
Total_Pending_Sectors |
Some Micron and Crucial SSDs |
Note: A non-zero value here means sectors the drive has identified as potentially unreadable and is waiting to reallocate. Elevated counts warrant monitoring and imminent backup.
Logical key: reported_uncorrectable_errors
ATA attribute IDs used: 187 (uncorrectable errors count), 198 (offline uncorrectable)
Applicability: ATA/SATA primarily; NVMe uses media_errors
| Name String | Manufacturers / Notes |
|---|---|
Offline_Uncorrectable |
Most HDDs: Seagate, WD, Toshiba, HGST (ID 198) |
Reported_Uncorrect |
Some Seagate and WD variants |
Uncorrectable_Error_Cnt |
Samsung SSDs (ID 187) — semantically equivalent |
Total_Offl_Uncorrectabl |
Some Hitachi and HGST HDDs |
NVMe path: nvme_smart_health_information_log.media_errors
Note: IDs 187 and 198 measure slightly different things (ECC errors vs. offline surface scan errors), but both indicate unrecoverable data integrity issues and are treated as equivalent for alerting purposes. A healthy drive should show
0for all variants.
Logical key: wear_leveling_count
Unit: % used (0% = new, 100% = fully worn -- normalized from ATA's inverted scale)
Applicability: SSDs only (ATA/SATA); NVMe uses a dedicated field
| Name String | Manufacturers / Notes |
|---|---|
Wear_Leveling_Count |
Samsung SSDs (ID 177) — 870 EVO, 860, 860 EVO, 850 Pro/EVO, etc. Reports remaining erase cycles (higher = newer) |
Wear_Range_Delta |
Some Samsung SSD variants |
Media_Wearout_Indicator |
Intel SSDs (ID 233), some WD/SanDisk SSDs. 100 = new, 0 = worn out |
SSD_Life_Left |
Intel 520, 530 series; some Kingston SSDs (ID 231) |
Remaining_Lifetime_Perc |
Kingston SSDs (ID 231) |
Percent_Lifetime_Remain |
Crucial/Micron SSDs (ID 202) |
Perc_Rated_Life_Remain |
Some Micron enterprise SSD variants |
Percent_Life_Remaining |
Some SanDisk SSDs |
Drive_Life_Protection_Stat |
Some WD Blue SSDs (ID 230) |
NVMe path: nvme_smart_health_information_log.percentage_used (0% = new, 100% = fully worn)
ATA wear normalization (v0.5.6+): ATA drives report the normalized VALUE column as "percentage of life remaining" (100 = new, 0 = worn). SMART Sniffer inverts this to "percentage used" (0 = new, 100 = worn) for consistency with NVMe
percentage_usedsemantics. The raw value is vendor-specific (erase cycles, write counts, etc.) and is not used.TODO: SK Hynix SSDs are believed to use ID 177 for wear leveling (same as Samsung), but the exact attribute name string in
smartctl's drivedb has not been confirmed. Verification needed viasmartctl -aoutput on an SK Hynix drive.
NVMe drives use a completely different data structure: nvme_smart_health_information_log (a flat dict) rather than the ATA attribute table. The mappings are:
| Logical Key | NVMe JSON Field | Notes |
|---|---|---|
temperature |
temperature |
Always present |
power_on_hours |
power_on_hours |
Always present |
wear_leveling_count |
percentage_used |
0 = new, 100 = fully worn (inverted vs. some ATA SSDs) |
reported_uncorrectable_errors |
media_errors |
Cumulative unrecoverable media errors |
reallocated_sector_count |
N/A | Not applicable to NVMe — entity not created |
current_pending_sector_count |
N/A | Not applicable to NVMe — entity not created |
- smartmontools drivedb.h — Primary source for attribute ID-to-name mappings: https://github.com/smartmontools/smartmontools/blob/master/smartmontools/drivedb.h
- Backblaze Hard Drive Stats — Real-world validation of attribute names across drive populations: https://www.backblaze.com/b2/hard-drive-test-data.html
- Kingston SSD SMART Attribute Reference — Internal document referenced in community forums; confirms
SSD_Life_LeftandRemaining_Lifetime_Percfor ID 231 - Samsung SSD datasheet notes — ID 177 (
Wear_Leveling_Count) semantics confirmed via Samsung 870 EVO product documentation - Intel SSD product spec sheets — ID 233 (
Media_Wearout_Indicator) and ID 231 (SSD_Life_Left) confirmed for Intel 520/530 series - smartctl community reports (SmallNetBuilder, TrueNAS forums, r/DataHoarder) — Supplemental validation for less common variants
- Direct observation — Samsung 870 EVO 500GB, Samsung 860 EVO 1TB on Proxmox test system (March 2026)
- SK Hynix wear leveling: Attribute ID 177 is expected but the exact name string in
smartctloutput has not been confirmed. A samplesmartctl -a /dev/sdXfrom an SK Hynix SSD is needed. - SAS/SCSI drives: Not covered. These use an entirely different SMART data structure in
smartctlJSON output — a futuresensor.pyextension will be needed. - Western Digital Blue/Green SSDs: Some models report via the ATA attribute table differently than WD Black/Red HDDs.
Drive_Life_Protection_Stat(ID 230) is confirmed for WD Blue SSDs but coverage is not exhaustive. - Seagate Barracuda SSDs: Seagate's SSD lineup uses attribute names inherited from their HDD firmware team — confirmation that all HDD names listed here apply equally to their SSDs is pending.