NVMe SMART Monitor – automatic NVMe SSD health monitoring for HAOS (Pi 5 & x86)

Hi everyone,

If you’ve moved your Raspberry Pi 5 (or any HAOS box) from an SD card to an NVMe SSD, you know the one thing the SD card never gave you: an early warning. SD cards tend to just die, silently. NVMe SSDs expose their health via SMART – wear, temperature, data written (TBW), spare, media errors – so you can actually see the end coming and swap the drive in time.

I couldn’t find a dead-simple, zero-config way to get those values into Home Assistant on HAOS (where HA Core has no raw access to /dev/nvme0), so I built a small add-on: NVMe SMART Monitor.

What it does

  • Reads the NVMe SMART log on the host and publishes everything via MQTT discovery – the device and sensors appear automatically, no YAML or templating.
  • ~10 sensors: wear (percentage_used), available spare, temperature, data written/read (TBW), power-on hours, power cycles, unsafe shutdowns, media errors – plus a “Problem” binary sensor with configurable thresholds, perfect for a single notification automation.
  • Works with any NVMe SSD (the model is read live from the drive, nothing hardcoded).
  • Multi-arch: aarch64 / amd64 / armv7 – so it also runs on x86 HAOS servers with an NVMe.
  • Lightweight and minimal privileges (device mapping + SYS_RAWIO, no full access). Open source, MIT.

Install (it’s an add-on, so via a repository URL – not HACS)

  1. Install & start the official Mosquitto broker add-on (that’s the transport).
  2. Settings → Apps → ⋮ (top right) → Repositories → add:
    GitHub - raspberry-tips/ha-addon-nvme-smart: Home Assistant add-on: NVMe SSD SMART/health monitoring for Raspberry Pi 5 (HAOS). By raspberry.tips. · GitHub
  3. Install NVMe SMART Monitor, start it – the device + sensors show up under the MQTT integration within a few seconds.

Repo: https://github.com/raspberry-tips/ha-addon-nvme-smart

Full write-up (dashboard card + alert automation, with screenshots): Your SD Card Dies Silently – Monitor NVMe SSD Health in Home Assistant

Feedback, issues and PRs are very welcome – especially SMART logs from drives that report fields differently (cheap DRAM-less ones sometimes skip a field, e.g. power_on_hours stays 0). Hope it saves someone a dead boot drive!

Has its own integration as well. Does not need MQTT.

@tom_l , @smarthome-praxis These are very interesting to me but I have an RPI5 running Raspbian (with a PironMan 5 case with an NVME) also with a QEMU/KVM VM running on that SSD that is HAOS. Would this work within my HAOS instance on this VM as well?

Thank you @tom_l ! Worked for me and I also liked it better than the other thing that requires yet another (Mosquito broker) app.
I had to reboot my Pi5 (not just restart HA), however - only then was my NVMe disk detected.
I already lost my first NVMe three weeks ago. It ran for only 3 years and a couple of months. I wonder if the SMART monitor variables would have indicated a pending death…

Yes. Read the Agent instructions.

Thanks so @tom_l @smarthome-praxis for the idea and guidance, now it’s one of my UI-Minimalist dashboards!

@tom_l @smarthome-praxis @DAB-LABS

It appears there is a bug in the agent as mentioned in this link. @DAB-LABS could you please look into it, or let me know if there is a different way to get it working?

https://github.com/DAB-LABS/smart-sniffer/issues/43

Thank you and please let us/me know

https://community.home-assistant.io/t/how-to-help-us-help-you-or-how-to-ask-a-good-question/114371#p-578066-onesix-should-i-tag-people-22

Will do! Thanks for the heads up! :clinking_beer_mugs:

~ DAB