¿Cuál es la mejor práctica para garantizar que un dispositivo IoT se haya actualizado correctamente?
¿Qué debe hacer para probar las actualizaciones de OTA y autenticar dispositivos? Dando un paso más allá, ¿cómo puede monitorear / administrar las versiones de software (actualizaciones) de una flota de dispositivos IoT?
testing
authentication
over-the-air-updates
Noam Hacker
fuente
fuente
Respuestas:
Tengo un software (Windows Server, un poco diferente a 'cosas' pero el principal es el mismo) que llama cada 24 horas; envía varios metadatos sobre sí mismo:
El servicio web analiza los datos e inserta (o actualiza si el cliente tiene una fila existente) una fila en una base de datos.
De esta forma, los nuevos clientes se agregan automáticamente a la base de datos, los clientes existentes actualizan su marca de tiempo "visto por última vez" y siempre tenemos su última versión de software. Puedo ejecutar consultas DB que me dicen qué clientes están en versiones anteriores y / o qué clientes no han llamado por un tiempo.
También implementamos una actualización automática (piense en la actualización OTA) recientemente y debido a que este es un proceso crítico, implementamos una telemetría específica para esto, que registra:
Esto nos permite determinar si ciertos aspectos de la actualización automática están fallando y, en muchos casos, nos permite llamar al cliente a menudo antes de que noten que algo está mal.
La gran diferencia con las 'cosas' es que normalmente tiene limitaciones de memoria, por lo que para realizar una actualización OTA
xxx Kb
de firmware necesitaxxx Kb * 2
memoria disponible (firmware existente + memoria suficiente para almacenar nuevo firmware antes de comenzar la actualización real del firmware)fuente
thing
yo probablemente un flash de LED o algo para alertar al usuario (suponiendo que desea que el usuario 'permitir' la actualización) y luego tenerlos 'pulsación larga' un botón para empezar ...Podría, por ejemplo, hacer una solicitud cada X semanas / días / horas ... a un servidor con el número de versión actual del software. Luego podrá usar análisis para ver el porcentaje actual y la cantidad de dispositivos actualizados.
fuente
Se trata de una política de sincronización inteligente
Necesita una política de sincronización inteligente que funcione en conjunto con su enfoque de implementación de su actualización. El momento más obvio en el que el dispositivo IoT debe sincronizar su versión es directamente después de la actualización . El resto de la programación de sincronización depende en gran medida del tipo de dispositivo.
¿Está siempre encendido y conectado a través de una conexión por cable donde una sola sincronización no cuesta (mucho) tiene sentido sincronizar periódicamente para mantener sus datos sobre el dispositivo actual.
Si el dispositivo está en algún lugar donde todo es costoso porque está utilizando costosas conexiones satelitales, el programa de sincronización tiene que adaptarse a esa circunstancia.
Verificación de la sincronización
En un dispositivo suficientemente avanzado (lea un rango de precios o un área de operación que lo justifique) cada dispositivo podría estar equipado con un certificado de cliente que permita una verificación de autenticidad de la sincronización.
De todos modos, con los dispositivos de los clientes finales , siempre tendrá dispositivos que no se verán en el radar debido a baterías agotadas, que el dispositivo se caiga o simplemente que el cliente cambie su contraseña inalámbrica y no informe al dispositivo IoT. Es posible que no tengan que hacer nada con su actualización, incluso si se unen en el tiempo.
fuente