Nouveau : le pare-feu IA surveille chaque module et explique chaque incident en termes simples. Découvrez comment ça marche

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.

VagueAppareilsTemps d’attente avant la vague suivanteContrôle
11 % des appareils, au moins 1 et au plus 10, appareils en ligne en premier30 minutesAu moins 90 % mis à jour, au plus 5 % en échec
210 %30 minutesAu moins 90 % mis à jour, au plus 5 % en échec
350 %15 minutesAu moins 90 % mis à jour, au plus 5 % en échec
4Le reste—Au moins 90 % mis à jour, au plus 5 % en échec
Une vague se clôture lorsqu’aucun de ses appareils n’est encore en attente, ou au bout de 4 heures. Les échecs au-delà de la limite mettent immédiatement le déploiement en pause. Les appareils d’une vague ultérieure ne reçoivent rien tant que leur vague n’a pas commencé.

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, et ota.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.