Qual é a melhor prática para garantir que um dispositivo IoT tenha sido atualizado com sucesso?
O que você precisa fazer para testar as atualizações do OTA e autenticar dispositivos? Indo um passo adiante, como você pode monitorar / gerenciar as versões de software (atualizações) de uma frota de dispositivos IoT?
testing
authentication
over-the-air-updates
Noam Hacker
fonte
fonte
Respostas:
Eu tenho um software (Windows Server - um pouco diferente de 'coisas', mas o principal é o mesmo) que liga a cada 24 horas - ele envia vários metadados sobre si:
O serviço da Web analisa os dados e insere (ou atualiza se o cliente tiver uma linha existente) uma linha em um banco de dados.
Dessa forma, novos clientes são adicionados automaticamente ao banco de dados, os clientes existentes atualizam o carimbo de data / hora da última vez que visualizamos e sempre temos a versão mais recente do software. Posso executar consultas de banco de dados que me informam quais clientes estão em versões mais antigas e / ou quais clientes não ligaram por um tempo.
Também implementamos uma atualização automática (pense na atualização OTA) recentemente e, por ser um processo crítico, implementamos telemetria específica para isso - que registra:
Isso nos permite determinar se certos aspectos da atualização automática estão falhando e, em muitos casos, permite ligar para o cliente com frequência antes mesmo de perceber que algo está errado.
A grande diferença com 'coisas' é que você normalmente tem memória limitada; portanto, para fazer uma atualização OTA
xxx Kb
do firmware, você precisaxxx Kb * 2
de memória disponível (firmware existente + memória suficiente para armazenar o novo firmware antes de iniciar a atualização real do firmware)fonte
thing
eu provavelmente piscaria um LED ou algo assim para alertar o usuário (supondo que você desejasse que o usuário 'permitisse' a atualização) e, em seguida, pressionasse um botão para iniciá-lo ...Você pode, por exemplo, fazer uma solicitação a cada X semanas / dias / horas ... para um servidor com o número da versão atual do software. Depois, você poderá usar o analytics para ver a porcentagem e o número atuais de dispositivos atualizados.
fonte
É uma política de sincronização inteligente
Você precisa de uma política de sincronização inteligente que funcione em conjunto com a abordagem de implementação da atualização. O momento mais óbvio em que o dispositivo IoT deve sincronizar sua versão é diretamente após a atualização . O restante do cronograma de sincronização é altamente dependente do tipo de dispositivo.
Está sempre ligado e conectado via conexão a cabo, onde uma única sincronização não custa (muito), faz sentido sincronizar periodicamente para manter seus dados atualizados sobre o dispositivo.
Se o dispositivo estiver em algum lugar onde tudo é caro, porque você está usando conexões via satélite caras, a programação de sincronização deve acomodar essa circunstância.
Verificação da sincronização
Em um dispositivo suficientemente avançado (leia uma faixa de preço ou área de operação que o justifique), cada dispositivo pode ser equipado com um certificado de cliente que permita uma verificação de autenticidade da sincronização.
De qualquer forma, com dispositivos do cliente final, você sempre terá os dispositivos caídos do radar devido a pilhas esgotadas, o dispositivo ficando fora de uso ou simplesmente o cliente alterando sua senha sem fio e não informando o dispositivo IoT. Talvez eles não precisem fazer nada com a sua atualização, mesmo que caiam juntos no tempo.
fonte