Testen des Erfolgs von Over the Air-Updates [geschlossen]

10

Was ist die beste Vorgehensweise, um sicherzustellen, dass ein IoT-Gerät erfolgreich aktualisiert wurde?

Was müssen Sie tun, um OTA-Updates zu testen und Geräte zu authentifizieren? Wie können Sie die Softwareversionen (Updates) einer Flotte von IoT-Geräten überwachen / verwalten?

Noam Hacker
quelle
1
Dies ist zu weit gefasst, wie Ihre andere Frage. Und es hängt stark von der Art des Geräts und der Art der Bereitstellung ab.
Gilles 'SO - hör auf böse zu sein'
1
Wenn Sie "Flotte" sagen, meinen Sie eine Fahrzeugflotte? In diesem Fall gehe ich von einer Kommunikation per (verschlüsselter) SMS oder HTTPS über GPRS oder Ereignissatelliten mit einem SkyWave-Modem aus. Wenn Sie Ihre Frage zur Klärung bearbeiten können, bin ich sicher, dass sie wieder geöffnet wird.
Mawg sagt, Monica

Antworten:

10

Ich habe eine Software (Windows Server - etwas anders als "Dinge", aber der Principal ist derselbe), die alle 24 Stunden anruft - sie sendet verschiedene Metadaten über sich selbst zurück:

  • Kundenname (oder eindeutige ID)
  • Softwareversion
  • Zeitstempel des Anrufs / der Anfrage
  • Produkttyp / ID

Der Webdienst analysiert die Daten und fügt eine Zeile in eine Datenbank ein (oder aktualisiert sie, wenn der Kunde eine vorhandene Zeile hat).

Auf diese Weise werden neue Kunden automatisch zur Datenbank hinzugefügt, bestehende Kunden erhalten ihren "zuletzt gesehenen" Zeitstempel aktualisiert und wir haben immer ihre neueste Softwareversion. Ich kann DB-Abfragen ausführen, die mir mitteilen, welche Kunden ältere Versionen verwenden und / oder welche Kunden eine Weile nicht angerufen haben.

Wir haben kürzlich auch ein automatisches Update (Think OTA Update) implementiert. Da dies ein kritischer Prozess ist, haben wir dafür eine spezielle Telemetrie implementiert - die Folgendes aufzeichnet:

  • Aktuelle Version.
  • Version, auf die aktualisiert werden soll.
  • Wer / wann hat es autorisiert (wenn Kundenakzeptanz erforderlich ist).
  • Zeitstempel und Statuscodes für jeden der Hauptschritte.

Auf diese Weise können wir feststellen, ob bestimmte Aspekte des automatischen Updates fehlschlagen, und in vielen Fällen den Kunden häufig anrufen, bevor er überhaupt bemerkt, dass etwas nicht stimmt.

Der große Unterschied zu "Dingen" besteht darin, dass Sie normalerweise über einen eingeschränkten Speicher verfügen. Um ein OTA-Update der xxx KbFirmware durchzuführen, benötigen Sie xxx Kb * 2Speicher (vorhandene Firmware + ausreichend Speicher, um neue Firmware zu speichern, bevor Sie mit der eigentlichen Firmware-Aktualisierung beginnen).

KennetRunner
quelle
1
danke für das Teilen. Die Speichernutzung ist ein wichtiger Punkt. Wie gehen Sie gegebenenfalls bei der Autorisierung und Kundenakzeptanz vor? Benötigen Sie ein Passwort, um ein Update zu akzeptieren?
Noam Hacker
2
Es ist ein anderer Anwendungsfall (weil es Windows Server ist), aber wir haben eine Benutzeroberfläche, die eine Warnung anzeigt, wenn das OTA-Update heruntergeladen wurde - die Warnung fragt den Kunden, ob er aktualisieren möchte (und enthält Links zu Versionshinweisen usw.). Auf einem thingwürde ich wahrscheinlich eine LED oder etwas blinken lassen, um den Benutzer zu alarmieren (vorausgesetzt, Sie möchten, dass der Benutzer das Update "zulässt") und ihn dann eine Taste "lange drücken" lassen, um es zu starten ...
KennetRunner
5

Sie können beispielsweise alle X Wochen / Tage / Stunden eine Anfrage an einen Server mit der aktuellen Versionsnummer der Software stellen. Anschließend können Sie mithilfe von Analysen den aktuellen Prozentsatz und die Anzahl der aktualisierten Geräte anzeigen.

WayToDoor
quelle
1
Gilt dieses Konto für Geräte, die gemauert wurden oder ein Update nicht abschließen konnten (möglicherweise stecken sie in einem Neustart, Download, Absturzzyklus fest?)
Sean Houlihane
1
In gewisser Weise ja. Wenn Sie am ersten Tag 100 Geräte haben, am
zweiten
1
das ist interessant. Gibt es eine Möglichkeit, zwischen Arten von Fehlern zu unterscheiden?
Noam Hacker
1
teilen Sie die Aktualisierung nach unten in diskreten Schritten (zB fügen Sie neue Konfigurationswerte , reboot gps , Set Geräte - ID , überschreiben Firmware , usw.) mit jeweils einem mit Start .. Anruf Senden ‚ zu Hause‘ und ein mit dem Status xx abgeschlossen Anruf nach Hause geschickt. Auf diese Weise können Sie (ungefähr) feststellen, wo es fehlgeschlagen ist und (hoffentlich) wie der Statuscode lautete.
KennetRunner
4

Es geht um eine intelligente Synchronisierungsrichtlinie

Sie benötigen eine intelligente Synchronisierungsrichtlinie, die mit Ihrem Roll-out-Ansatz für Ihr Update zusammenarbeitet. Der naheliegendste Zeitpunkt, an dem das IoT-Gerät seine Version synchronisieren sollte, ist direkt nach dem Update . Der Rest des Synchronisierungsplans hängt stark vom Gerätetyp ab.

Ist es immer eingeschaltet und über eine Kabelverbindung verbunden, bei der eine einzelne Synchronisierung nicht (viel) kostet, ist es sinnvoll, die Synchronisierung regelmäßig durchzuführen, um Ihre Daten über das Gerät auf dem neuesten Stand zu halten.

Wenn sich das Gerät an einem Ort befindet, an dem jedes Bit teuer ist, weil Sie teure Satellitenverbindungen verwenden, muss der Synchronisierungsplan diesen Umständen Rechnung tragen.

Überprüfung der Synchronisation

In einem ausreichend fortgeschrittenen Gerät (lesen Sie eine Preisspanne oder einen Betriebsbereich, der dies rechtfertigt) könnte jedes Gerät mit einem Client-Zertifikat ausgestattet sein, das eine Authentizitätsprüfung der Synchronisation ermöglicht.

Auf jeden Fall werden bei Endkundengeräten Geräte immer vom Radar fallen, weil die Batterien leer sind, das Gerät nicht mehr verwendet wird oder der Kunde einfach sein drahtloses Passwort ändert und das IoT-Gerät nicht informiert. Diese müssen möglicherweise nichts mit Ihrem Update zu tun haben, auch wenn sie zeitlich zusammenfallen.

Helmar
quelle
Ich denke nicht, dass dies eine Lösung für die Frage des OP gibt.
WayToDoor
@WayToDoor In meinem ersten Absatz wird empfohlen, die Synchronisierung direkt nach dem Update durchzuführen. Das gibt die Information, ob die neue Version erfolgreich erreicht wurde. Mögliche Gegenmaßnahmen, wenn dies nicht der Fall war, sind viel zu weit gefasst (und werden nicht verlangt). Der Rest meiner Antwort befasst sich mit der Überwachung der Versionen vor Ort. Welche Frage habe ich vermisst?
Helmar