Actualizaciones de firmware (OTA)
Actualizaciones de firmware por oleadas, con puertas de control entre ellas
Sube un paquete firmado y asígnalo; cada dispositivo lo descarga, lo verifica e instala por sí mismo. Los despliegues se envían por oleadas, y una oleada que no supera su puerta de control pausa el despliegue antes de que una imagen defectuosa llegue al resto de la flota.
Cómo funciona
De la publicación a la flota
1
Registra una clave de firma
El firmware se firma en tu propio pipeline de publicación. Hermetry solo guarda claves públicas, y solo los propietarios las registran o revocan.
2
Sube el paquete
Tu navegador calcula el SHA-256 mientras el archivo se sube; Hermetry comprueba el hash y la firma. El título del paquete debe coincidir con el modelo del dispositivo.
3
Asígnalo
A un perfil de dispositivo, a un grupo fijo de dispositivos o a un solo dispositivo. Gana la asignación más específica.
4
Despliega
En oleadas por número o porcentaje, con puertas de control de éxito y de fallo y un tiempo de espera entre oleadas. Pausa, reanuda o aborta en cualquier momento.
Plan por defecto
El despliegue por defecto
Se usa cuando no defines tus propias oleadas. Un despliegue puede tener hasta 20 oleadas, cada una con su propio tamaño, tiempo de espera y puertas de control.
| Oleada | Dispositivos | Espera antes de la siguiente oleada | Puerta de control |
|---|---|---|---|
| 1 | 1 % de los dispositivos, como mínimo 1 y como máximo 10, primero los dispositivos en línea | 30 minutos | Al menos el 90 % actualizados, como máximo el 5 % con fallo |
| 2 | 10 % | 30 minutos | Al menos el 90 % actualizados, como máximo el 5 % con fallo |
| 3 | 50 % | 15 minutos | Al menos el 90 % actualizados, como máximo el 5 % con fallo |
| 4 | El resto | — | Al menos el 90 % actualizados, como máximo el 5 % con fallo |
Salvaguardas
Diseñado para que una imagen defectuosa se detenga pronto
Firmas comprobadas dos veces
Hermetry verifica la firma al subir el paquete, y el dispositivo debe rechazar una imagen cuya firma no sea válida, incluso si la suma de comprobación coincide.
Comprobaciones de compatibilidad
Un paquete puede indicar su perfil, sus modelos de hardware y la versión más antigua desde la que actualiza. Un dispositivo que no encaja se omite, indicando el motivo.
Nunca en claro
El firmware nunca se ofrece por MQTT sin cifrar. La dirección de descarga es válida durante 15 minutos, se genera de nuevo para cada entrega, y una descarga interrumpida se reanuda donde se quedó.
Los enlaces medidos esperan
Por defecto, un dispositivo con datos móviles espera hasta que permitas las descargas medidas. Un dispositivo también puede esperar su propia aprobación local antes de instalar.
Retrocesos detectados
Si un dispositivo arranca de nuevo con su versión anterior, su actualización termina como revertida, no como actualizada, y puedes reintentarla.
Revoca un paquete
Revocar un paquete, o la clave de firma que lo verificó, termina los despliegues que lo usan. Un paquete obsoleto no admite nuevas asignaciones.
Lado del dispositivo
Lo que recibe y reporta el dispositivo
Los dispositivos con licencia hacen esto de forma nativa. Para tu propio firmware, la documentación de OTA describe cada paso.
Hermetry escribe fw_title, fw_version, fw_size, fw_checksum, fw_checksum_algorithm, fw_url y fw_sig como atributos compartidos en un solo mensaje. Quitar una asignación los elimina.
El dispositivo reporta fw_state (DOWNLOADING, DOWNLOADED, VERIFIED, UPDATING, UPDATED o FAILED), fw_progress mientras descarga, y current_fw_title y current_fw_version tras cada conexión. Un dispositivo que arranca con una versión distinta de la objetivo reporta FAILED con boot_failed.
Valores por defecto y límites
- Paquetes de hasta 64 MiB por defecto
- Tiempo límite de descarga de 60 minutos, tiempo límite de instalación de 20 minutos, 3 intentos por dispositivo, todo ajustable en la configuración de OTA
- El historial de actualizaciones de cada dispositivo se conserva durante 180 días
- Webhooks:
ota.update.*para cada dispositivo, yota.rollout.*para las oleadas completadas, pausas, reanudaciones, finalización y aborto
Volver a una versión anterior
No hay un botón único que revierta toda la flota. Asigna el paquete anterior en su lugar: se envía como cualquier otro despliegue, con las mismas oleadas y puertas de control. Si un dispositivo acepta una versión más antigua lo decide su firmware.
Preguntas frecuentes
Preguntas sobre actualizaciones de firmware
¿Hermetry firma nuestro firmware?
No. La firma se realiza en tu pipeline de publicación. Hermetry solo guarda claves públicas y nunca tiene una clave privada de firma.
¿Qué pasa si se corta la conexión durante una descarga?
El dispositivo solicita una dirección de descarga nueva y reanuda desde donde se quedó, con una petición HTTP de rango.
¿Podemos actualizar dispositivos con datos móviles?
Sí, una vez que permitas las descargas en enlaces medidos en la configuración de OTA. Hasta entonces, un dispositivo en un enlace medido espera.
¿Quién puede iniciar una actualización?
Por defecto, los administradores suben paquetes, los asignan, cambian la configuración de OTA y reintentan los dispositivos con fallo; los propietarios gestionan las claves de firma; los usuarios pueden ver paquetes y estados de actualización.
¿Pueden otros sistemas seguir un despliegue?
Sí. Los webhooks informan del inicio, el éxito o el fallo de la actualización de cada dispositivo, y de las oleadas, pausas y finalización de cada despliegue. Consulta webhooks.
¿Actualizas una flota en campo?
Cuéntanos sobre tus dispositivos y cómo se conectan. Te ayudamos a planificar las oleadas y puertas de control del primer despliegue.

