Tester le succès des mises à jour Over the Air [fermé]

10

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?

Noam Hacker
la source
1
C'est trop large, comme votre autre question. Et cela dépendra beaucoup du type d'appareil et du mode de déploiement.
Gilles 'SO- arrête d'être méchant'
1
Quand vous dites "flotte", voulez-vous dire une flotte de véhicules? Si tel est le cas, je présume que la communication se fait par SMS (chiffré), ou HTTPS sur GPRS, ou par satellite d'événements, en utilisant quelque chose comme un modem SkyWave. si vous pouvez modifier votre question pour clarifier, je suis sûr qu'elle sera rouverte.
Mawg dit de réintégrer Monica

Réponses:

10

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:

  • nom du client (ou identifiant unique)
  • une version de logiciel
  • horodatage de l'appel / de la demande
  • type / identifiant du produit

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:

  • Version actuelle.
  • Version à mettre à jour.
  • Qui / quand autorisé (si l'acceptation du client est requise).
  • Horodatages et codes d'état pour chacune des étapes principales.

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 Kbdu firmware, vous avez besoin xxx Kb * 2de mémoire disponible (firmware existant + mémoire suffisante pour stocker un nouveau firmware avant de commencer la mise à jour réelle du firmware)

KennetRunner
la source
1
Merci d'avoir partagé. L'utilisation de la mémoire est un point important à souligner. Comment procédez-vous pour l'autorisation et l'acceptation du client, le cas échéant? Avez-vous besoin d'un mot de passe pour accepter une mise à jour?
Noam Hacker
2
C'est un cas d'utilisation différent (car il s'agit de Windows Server), mais nous avons une interface utilisateur qui affiche une alerte lorsque la mise à jour OTA a été téléchargée - l'alerte demande au client s'il souhaite mettre à jour (et inclut des liens vers les notes de publication, etc.). Sur un, thingje 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 ...
KennetRunner
5

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.

WayToDoor
la source
1
Est-ce que cela tient compte des appareils qui ont été maçonnés ou qui n'ont pas pu terminer une mise à jour (peut-être bloqué dans un redémarrage, un téléchargement, un cycle de plantage?)
Sean Houlihane
1
D'une certaine manière, oui. Si vous avez 100 appareils le jour 1, vous appuyez sur la mise à jour le jour 2 et le jour 3, vous n'avez que 25 appareils sur l'analyse, cela signifie que quelque chose s'est mal passé
WayToDoor
1
c'est intéressant. existe-t-il un moyen de différencier les types de défaillances?
Noam Hacker
1
diviser la mise à jour en étapes distinctes (par exemple ajouter de nouvelles valeurs de configuration , gps redémarrage , id appareil ensemble , firmware écrasement , etc.) chacun ayant un démarrage .. Envoyer call « à domicile » et complété avec le statut xx maison SENT d'appel. De cette façon, vous pouvez dire (à peu près) où il a échoué et (espérons-le) quel était le code d'état.
KennetRunner
4

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.

Helmar
la source
Je ne pense pas que cela donne une solution à la question du PO.
WayToDoor
@WayToDoor mon premier paragraphe conseille de synchroniser directement après la mise à jour. Cela donne les informations si la nouvelle version a été atteinte avec succès. Les contre-mesures possibles si cela n'a pas été le cas sont beaucoup trop larges (et non demandées). Le reste de ma réponse concerne la surveillance des versions sur le terrain. Quelle question ai-je manquée?
Helmar