¿Alguna vez se te corrompió una microSD en pleno proyecto, sin ningún aviso? Es de las fallas más frustrantes del mundo maker: la tarjeta funciona perfecto… hasta que un día simplemente no arranca más. Si montaste tu Home Assistant sobre un Raspberry Pi 5 con una SSD NVMe, tienes una ventaja enorme que la microSD nunca te dio: la SSD te informa su estado de salud en tiempo real mediante SMART. desgaste, temperatura, datos escritos y errores. .

En esta guía vas a instalar un add on gratuito que lleva esos valores directo a Home Assistant y te avisa al celular antes de que la SSD colapse. Al terminar vas a tener un panel con el desgaste de tu disco y una alerta automática funcionando, sin escribir una sola línea de YAML de sensores a mano.

Qué es SMART (y por qué tu microSD nunca lo tuvo)

SMART (Self Monitoring, Analysis and Reporting Technology) es un sistema de autovigilancia que las SSD modernas traen de fábrica. A través del protocolo NVMe, la SSD reporta indicadores como el desgaste (percentage_used), la cantidad de datos ya escritos (TBW), la reserva disponible (available_spare), la temperatura y contadores de error.

Acá está la diferencia técnica que casi nadie explica: una microSD de consumo básicamente no expone valores de salud legibles. Su controlador hace wear leveling interno para repartir la escritura entre celdas, pero no publica esos contadores hacia afuera. no hay un canal estándar tipo SMART que puedas consultar. . Por eso una microSD "muere en silencio": cuando notas el problema, ya es tarde. Una NVMe, en cambio, te deja ver venir el desgaste y reaccionar a tiempo.

Dispositivo NVMe SSD con todos los sensores de salud creados en Home Assistant

Lo que vas a necesitar

  • Raspberry Pi 5 con Home Assistant OS (HAOS) corriendo desde una SSD NVMe (lo normal en un Pi 5 con base M.2). El add on también funciona en servidores HA x86 con NVMe.
  • Una base M.2 HAT que conecte la SSD NVMe al puerto PCIe del Pi 5.
  • El add on oficial "Mosquitto broker", porque los datos de los sensores viajan por MQTT.

Si todavía no pasaste tu Pi 5 de la microSD a NVMe, este proyecto es una razón más para hacerlo: ganas velocidad y esta vigilancia de salud que antes no existía.

Paso 1: Instala el broker MQTT

El add on reporta los valores SMART a Home Assistant vía MQTT, así que primero necesitas un broker. En Home Assistant ve a Ajustes → Complementos (la "tienda de add ons"), busca "Mosquitto broker", instálalo e inícialo. Home Assistant configura la integración MQTT automáticamente después.

Instalar el add on Mosquitto broker en Home Assistant

Paso 2: Agrega el repositorio raspberry.tips

Ahora sumamos el repositorio del add on. En Ajustes → Complementos, arriba a la derecha, entra en ⋮ → Repositorios y pega esta URL:

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

Agregar el repositorio raspberry.tips por URL en Home Assistant

Al agregarlo, aparece en la tienda una nueva sección "raspberry.tips Home Assistant Add ons" con el NVMe SMART Monitor.

El add on NVMe SMART Monitor aparece en la tienda de add ons

Paso 3: Instala y arranca el add on

Abre el NVMe SMART Monitor y haz clic en Instalar. El contenedor se compila localmente (demora 2 a 4 minutos).

Instalar el add on NVMe SMART Monitor; el contenedor se compila localmente

Luego inícialo. Te recomiendo activar "Iniciar al arrancar el sistema" y "Watchdog" para que la vigilancia esté siempre corriendo. Las opciones por defecto (dispositivo /dev/nvme0, intervalo de 300 s, umbrales de alerta) sirven para la mayoría; las encuentras en la pestaña Configuración.

Iniciar el add on con Watchdog y arranque automático activados

Para confirmar que todo funciona, mira la pestaña Registro: deberían aparecer líneas como MQTT broker found, Device detected: … y State published: ….

Registro del add on: broker encontrado, dispositivo detectado y valores publicados

Cómo funciona por dentro: el add on lee los valores de salud con nvme smart-log, los convierte a unidades útiles (temperatura en °C, TBW en GB) y los publica por MQTT Discovery. Gracias a eso, Home Assistant reconoce los sensores solo. no configuras nada a mano. .

Cómo interpretar cada sensor

Unos segundos después del arranque, en Ajustes → Dispositivos y servicios aparece un dispositivo nuevo dentro de la integración MQTT, nombrado según el modelo de tu SSD. Estos son los valores clave y cómo leerlos:

Sensor Qué significa / señal de alarma
NVMe Verschleiss. desgaste (percentage_used) La barra de vida útil. 0 % = como nueva, 100 % = fin calculado. Sube lento, a lo largo de años.
NVMe Reserve. reserva (available_spare) Bloques de reserva. Si cae hacia el umbral (a menudo 10 %), toca cambiar el disco.
NVMe geschrieben. datos escritos (TBW) Total de datos escritos, comparable con la endurance (TBW) que declara el fabricante.
NVMe Temperatur. temperatura Temperatura de operación. Sobre 70 °C de forma permanente conviene refrigerar.
NVMe Medienfehler. errores de medio Siempre debería ser 0. Si sube, es una señal de alarma seria.
NVMe Problem Sensor binario: se pone en "On" ante un estado crítico o cuando se cruza un umbral. Ideal para automatizaciones.

Desgaste vs. reserva vs. TBW: tres miradas independientes

Vale la pena entender por qué el add on entrega varios indicadores en vez de uno solo, porque se complementan:

  • percentage_used es una estimación del propio controlador sobre cuánta vida gastaste. Es el número "resumen".
  • available_spare mide algo distinto: los bloques de repuesto que la SSD usa para reemplazar celdas que fallan. Puede desplomarse aunque percentage_used todavía se vea bien. por eso lo vigilas aparte. .
  • TBW (datos escritos) te deja hacer la cuenta tú mismo. Ejemplo real: una Intenso Premium de 250 GB está especificada en 150 TBW. Si tras varias semanas de HAOS 24/7 llevas 56 GB escritos y 0 % de desgaste, proyectando a 20 GB de escritura por día, esa SSD rinde más de 20 años en el papel.

Con percentage_used y TBW tienes dos miradas independientes a la vida útil restante. algo que con una microSD sencillamente no existe. .

¿NVMe muy caliente? Si el sensor de temperatura marca valores altos de forma permanente (referencia: sobre 70 °C), conviene un disipador M.2 pequeño. En la caja del Pi 5 es clave que sea lo más plano posible (del orden de 5 mm), o no cierra la tapa: mide antes el espacio libre sobre la SSD. Para el tamaño 2280 sirve un disipador plano; para SSD más cortas hay versiones 2242 y 2230.

Paso 4: Arma el dashboard con el medidor de desgaste

Ahora hagamos visibles los valores. Abre tu dashboard, ve a Editar → Agregar tarjeta → Manual y pega esta tarjeta. El add on asigna IDs de entity fijas (por ejemplo sensor.nvme_percentage_used), así que el YAML funciona directo por copiar y pegar; si ves IDs distintas, las encuentras en la página del dispositivo:

YAML
type: grid
columns: 2
cards:
  - type: gauge
    entity: sensor.nvme_percentage_used
    name: Verschleiß
    min: 0
    max: 100
    needle: true
    severity: {green: 0, yellow: 70, red: 90}
  - type: gauge
    entity: sensor.nvme_temperature
    name: Temperatur
    min: 20
    max: 80
    needle: true
    severity: {green: 0, yellow: 60, red: 70}
  - type: gauge
    entity: sensor.nvme_available_spare
    name: Reserve
    min: 0
    max: 100
  - type: entity
    entity: sensor.nvme_data_written
    name: Geschrieben (TBW)

Un detalle: los campos name: (Verschleiß = Desgaste, Temperatur = Temperatura, Reserve = Reserva, Geschrieben = Escritos) son solo etiquetas visibles. Puedes cambiarlas al español sin afectar el funcionamiento. lo que nunca debes tocar son las entity:, que son los identificadores reales de los sensores. .

Dashboard de Home Assistant con el gauge de desgaste de la SSD NVMe

Paso 5: Crea la alerta automática

Acá está lo bueno: que Home Assistant te avise solo apenas algo ande mal. Para eso usamos el sensor Problem. Ve a Ajustes → Automatizaciones y escenas → Crear automatización → Editar en YAML y pega:

YAML
alias: NVMe-SSD Warnung
triggers:
  - trigger: state
    entity_id: binary_sensor.nvme_problem
    to: "on"
actions:
  - action: notify.notify
    data:
      title: "⚠️ NVMe-SSD-Warnung"
      message: >-
        Die NVMe meldet ein Problem – Verschleiß {{ states('sensor.nvme_percentage_used') }} %,
        Temp {{ states('sensor.nvme_temperature') }} °C, Reserve {{ states('sensor.nvme_available_spare') }} %.
mode: single

Igual que antes, title: y message: son texto que puedes traducir al español sin romper nada. Lo que queda intocable son las plantillas {{ states('sensor.nvme_percentage_used') }}, porque referencian entidades reales.

Crear la automatización de alerta en Home Assistant usando el sensor Problem

Desde ahora recibes una notificación push al celular apenas tu SSD entre en estado crítico. mucho antes de que arriesgues perder datos. .

Límites honestos

  • SMART no es una bola de cristal: ve venir sobre todo el desgaste paulatino (reserva, TBW, percentage_used). Una falla electrónica repentina no siempre se puede predecir. el respaldo sigue siendo obligatorio. .
  • Las SSD DRAM less económicas a veces no reportan todos los campos (por ejemplo power_on_hours queda en 0). Es normal, no es un defecto.
  • Las microSD de consumo prácticamente no ofrecen SMART legible; justamente por eso la NVMe es tan superior para un servidor que corre 24/7.

Variantes y mejoras

Cuando ya tengas la base andando, puedes llevar el proyecto más lejos:

  • Alerta por Telegram, no solo push local. Reemplaza notify.notify por tu servicio de Telegram (notify.telegram) en la automatización, e incluye el modelo del disco y el porcentaje de desgaste en el mensaje. Así te enteras aunque estés fuera de la red local.
  • Panel Lovelace dedicado a la salud del sistema. Crea una vista aparte que junte los gauges de la SSD con la temperatura de la CPU del Pi 5 y el uso de RAM. De un vistazo ves la salud completa del servidor que sostiene tu domótica.
  • Historial de largo plazo con InfluxDB + Grafana. Envía percentage_used y TBW a InfluxDB y grafícalos en Grafana. Con meses de datos puedes extrapolar la fecha estimada de reemplazo en vez de esperar el umbral.
  • Varios discos a la vez. Si tienes más de una unidad NVMe (por ejemplo en un servidor x86), levanta una instancia del add on por dispositivo (/dev/nvme0, /dev/nvme1) y agrupa todo en el mismo dashboard.

Personalización para Chile

Nota honesta de disponibilidad: al día de hoy, el Raspberry Pi 5, las SSD NVMe M.2 y las bases M.2 HAT no forman parte del catálogo de MechatronicStore, así que este proyecto no lleva enlaces de producto directos. preferimos no ofrecerte un "equivalente" que en realidad no sirve para este montaje. .

Un par de advertencias útiles al comprar en Chile:

  • No sustituyas el Pi 5 por un Pi 4 para este tutorial: el Pi 4 no tiene el carril PCIe que la base M.2 HAT necesita para la NVMe. Son plataformas distintas.
  • La microSD no reemplaza a la NVMe acá: es exactamente el componente que estamos dejando atrás (justo porque no expone SMART).
  • Al elegir el disipador M.2, fíjate en la altura: en la caja del Pi 5 debe ser plano (≈5 mm) y del largo correcto (2280, 2242 o 2230 según tu SSD).

Como referencia de presupuesto, un set típico (Pi 5, SSD NVMe de ~250 GB, base M.2 HAT y disipador) ronda los $140.000 CLP según importador y tienda. En MechatronicStore sí encuentras placas Raspberry Pi y accesorios de refrigeración para armar el resto de tu setup.

Recursos

Versión chilena, inspirada en el tutorial de Philipp Schweizer (raspberry.tips), reescrita con contexto local.