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?
testing
authentication
over-the-air-updates
Noam Hacker
quelle
quelle
Antworten:
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:
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:
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 Kb
Firmware durchzuführen, benötigen Siexxx Kb * 2
Speicher (vorhandene Firmware + ausreichend Speicher, um neue Firmware zu speichern, bevor Sie mit der eigentlichen Firmware-Aktualisierung beginnen).quelle
thing
wü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 ...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.
quelle
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.
quelle