Quelle est la meilleure pratique pour garantir la mise à jour réussie d'un appareil IoT?
Que devez-vous faire pour tester les mises à jour OTA et authentifier les appareils? Pour aller plus loin, comment pouvez-vous surveiller / gérer les versions logicielles (mises à jour) d'un parc d'appareils IoT?
testing
authentication
over-the-air-updates
Noam Hacker
la source
la source
Réponses:
J'ai un logiciel (Windows Server - un peu différent des «choses» mais le principal est le même) qui appelle toutes les 24 heures - il renvoie diverses métadonnées sur lui-même:
Le service Web analyse les données et insère (ou met à jour si le client a une ligne existante) une ligne dans une base de données.
De cette façon, les nouveaux clients sont automatiquement ajoutés à la base de données, les clients existants reçoivent leur horodatage «dernière vue» mis à jour et nous avons toujours leur dernière version logicielle. Je peux exécuter des requêtes DB qui me disent quels clients sont sur des versions plus anciennes et / ou quels clients n'ont pas appelé depuis un certain temps.
Nous avons également implémenté une mise à jour automatique (pensez à la mise à jour OTA) récemment et parce que c'est un processus critique, nous avons implémenté une télémétrie spécifique pour cela - qui enregistre:
Cela nous permet de déterminer si certains aspects de la mise à jour automatique échouent et, dans de nombreux cas, nous permet d'appeler le client souvent avant même qu'il ne remarque que quelque chose ne va pas.
La grande différence avec les `` choses '' est que vous êtes généralement limité en mémoire, donc pour faire une mise à jour OTA
xxx Kb
du firmware, vous avez besoinxxx Kb * 2
de mémoire disponible (firmware existant + mémoire suffisante pour stocker un nouveau firmware avant de commencer la mise à jour réelle du firmware)la source
thing
je flasherais probablement une LED ou quelque chose pour alerter l'utilisateur (en supposant que vous voulez que l'utilisateur `` autorise '' la mise à jour), puis lui faire `` appuyer longuement '' sur un bouton pour le démarrer ...Vous pouvez, par exemple, faire une demande toutes les X semaines / jours / heures ... à un serveur avec le numéro de version actuel du logiciel. Vous pourrez ensuite utiliser l'analyse pour voir le pourcentage actuel et le nombre d'appareils mis à jour.
la source
Il s'agit d'une politique de synchronisation intelligente
Vous avez besoin d'une stratégie de synchronisation intelligente qui fonctionne en tandem avec votre approche de déploiement de votre mise à jour. Le moment le plus évident où l'appareil IoT devrait synchroniser sa version est directement après la mise à jour . Le reste du calendrier de synchronisation dépend fortement du type de périphérique.
Est-il toujours allumé et connecté via une connexion câblée où une seule synchronisation ne coûte pas (beaucoup), il est logique de synchroniser assez régulièrement pour garder vos données sur l'appareil à jour.
Si l'appareil se trouve quelque part, chaque bit est coûteux car vous utilisez des connexions satellite coûteuses, le calendrier de synchronisation doit tenir compte de cette circonstance.
Vérification de la synchronisation
Dans un appareil suffisamment avancé (lire une fourchette de prix ou une zone d'opération qui le justifie) chaque appareil pourrait être équipé d'un certificat client permettant un contrôle d'authenticité de la synchronisation.
Quoi qu'il en soit, avec les appareils du client final, vous aurez toujours des appareils qui tombent du radar en raison de piles mourantes, de l'appareil tombant en panne ou simplement du client changeant son mot de passe sans fil et n'informant pas l'appareil IoT. Ceux-ci pourraient ne rien avoir à faire avec votre mise à jour, même s'ils coïncident dans le temps.
la source