Mises à jour du firmware (OTA)
Mises à jour du firmware par vagues, avec des contrôles entre elles
Téléversez un paquet signé et affectez-le ; chaque appareil le télécharge, le vérifie et l’installe de lui-même. Les déploiements partent par vagues, et une vague qui échoue à son contrôle met le déploiement en pause avant qu’une image défectueuse n’atteigne le reste de la flotte.
Fonctionnement
De la version à la flotte
1
Enregistrer une clé de signature
Le firmware est signé dans votre propre chaîne de publication. Hermetry ne conserve que les clés publiques, et seuls les propriétaires les enregistrent ou les révoquent.
2
Téléverser le paquet
Votre navigateur calcule le SHA-256 pendant le téléversement du fichier ; Hermetry vérifie celui-ci ainsi que la signature. Le titre du paquet doit correspondre au modèle de l’appareil.
3
Affecter le paquet
À un profil d’appareil, à un groupe fixe d’appareils ou à un seul appareil. L’affectation la plus spécifique l’emporte.
4
Déployer
Par vagues, en nombre ou en pourcentage, avec des contrôles de succès et d’échec et un temps d’attente entre les vagues. Mettez en pause, reprenez ou annulez à tout moment.
Plan par défaut
Le déploiement par défaut
Utilisé lorsque vous ne définissez pas vos propres vagues. Un déploiement peut comporter jusqu’à 20 vagues, chacune avec sa propre taille, son temps d’attente et ses contrôles.
| Vague | Appareils | Temps d’attente avant la vague suivante | Contrôle |
|---|---|---|---|
| 1 | 1 % des appareils, au moins 1 et au plus 10, appareils en ligne en premier | 30 minutes | Au moins 90 % mis à jour, au plus 5 % en échec |
| 2 | 10 % | 30 minutes | Au moins 90 % mis à jour, au plus 5 % en échec |
| 3 | 50 % | 15 minutes | Au moins 90 % mis à jour, au plus 5 % en échec |
| 4 | Le reste | — | Au moins 90 % mis à jour, au plus 5 % en échec |
Garde-fous
Conçu pour arrêter tôt une image défectueuse
Signatures vérifiées deux fois
Hermetry vérifie la signature au téléversement, et l’appareil doit refuser une image dont la signature ne se vérifie pas, même si la somme de contrôle correspond.
Contrôles de compatibilité
Un paquet peut désigner son profil, ses modèles de matériel et la version la plus ancienne dont il effectue la mise à jour. Un appareil qui ne correspond pas est ignoré, avec la raison indiquée.
Jamais en clair
Le firmware n’est jamais proposé via MQTT non chiffré. L’adresse de téléchargement est valable 15 minutes, régénérée à chaque livraison, et un téléchargement interrompu reprend là où il s’est arrêté.
Liaisons facturées en attente
Par défaut, un appareil sur données mobiles attend que vous autorisiez les téléchargements facturés. Un appareil peut aussi attendre sa propre approbation locale avant d’installer.
Retours en arrière détectés
Si un appareil redémarre sur son ancienne version, sa mise à jour se termine en tant que restaurée, et non comme mise à jour, et vous pouvez la relancer.
Révoquer un paquet
Révoquer un paquet, ou la clé de signature qui l’a vérifié, met fin aux déploiements qui l’utilisent. Un paquet déprécié ne peut plus être affecté.
Côté appareil
Ce que l’appareil reçoit et signale
Les appareils sous licence font cela dès l’installation. Pour votre propre firmware, la documentation OTA décrit chaque étape.
Hermetry écrit fw_title, fw_version, fw_size, fw_checksum, fw_checksum_algorithm, fw_url et fw_sig en tant qu’attributs partagés dans un seul message. Supprimer une affectation les efface.
L’appareil signale fw_state (DOWNLOADING, DOWNLOADED, VERIFIED, UPDATING, UPDATED ou FAILED), fw_progress pendant le téléchargement, et current_fw_title et current_fw_version après chaque connexion. Un appareil qui démarre sur une version autre que la cible signale FAILED avec boot_failed.
Valeurs par défaut et limites
- Paquets jusqu’à 64 MiB par défaut
- Délai de téléchargement de 60 minutes, délai d’installation de 20 minutes, 3 tentatives par appareil, le tout ajustable dans les paramètres OTA
- Historique de mise à jour de chaque appareil conservé pendant 180 jours
- Webhooks :
ota.update.*pour chaque appareil, etota.rollout.*pour les vagues terminées, les pauses, les reprises, la fin et l’annulation
Revenir à une version antérieure
Il n’existe pas de bouton unique qui restaure toute la flotte. Affectez plutôt le paquet antérieur : il se déploie comme tout autre déploiement, avec les mêmes vagues et contrôles. Le fait qu’un appareil accepte une version plus ancienne est décidé par son firmware.
FAQ
Questions sur les mises à jour du firmware
Hermetry signe-t-il notre firmware ?
Non. La signature se fait dans votre chaîne de publication. Hermetry ne conserve que des clés publiques et ne détient jamais de clé privée de signature.
Que se passe-t-il si la connexion est coupée pendant un téléchargement ?
L’appareil demande une nouvelle adresse de téléchargement et reprend à partir de l’endroit où il s’est arrêté, à l’aide d’une requête HTTP range.
Pouvons-nous mettre à jour des appareils sur données mobiles ?
Oui, une fois que vous autorisez les téléchargements sur liaisons facturées dans les paramètres OTA. Jusque-là, un appareil sur une liaison facturée attend.
Qui peut lancer une mise à jour ?
Par défaut, les administrateurs téléversent les paquets, les affectent, modifient les paramètres OTA et relancent les appareils en échec ; les propriétaires gèrent les clés de signature ; les utilisateurs peuvent consulter les paquets et les états de mise à jour.
D’autres systèmes peuvent-ils suivre un déploiement ?
Oui. Les webhooks signalent le début, la réussite ou l’échec de la mise à jour de chaque appareil, ainsi que les vagues, les pauses et la fin de chaque déploiement. Voir webhooks.
Une mise à jour de flotte sur le terrain ?
Parlez-nous de vos appareils et de leur mode de connexion. Nous vous aidons à planifier les vagues et les contrôles du premier déploiement.

