Sto scrivendo alcuni software di raccolta dati (in python) che trasmetteranno i dati al cloud. Sto includendo un timestamp (utilizzando il modulo datetime standard incluso in python) nel record di dati in modo che l'orario sia documentato nel cloud datastore. Verrà eseguito su un dispositivo Linux incorporato.
Sono tra alcune idee architettoniche su come gestire il fuso orario dei dispositivi e la precisione dei timestamp.
I miei pensieri sono che userò un server NTP per ottenere l'ora UTC per la distribuzione linux che fornirà un tempo preciso per tutte le applicazioni in esecuzione sul dispositivo. Tuttavia non sono sicuro di cosa dovrei impostare il fuso orario sul dispositivo stesso.
La mia preoccupazione è che se imposto il fuso orario sull'ora locale e capita di essere sbagliato, allora non solo l'ora locale sarà errata, ma quando la mia applicazione otterrà l'ora UTC dall'ora del sistema sarà anche errata, anche se è stato precedentemente negoziato dal server NTP. Il fuso orario può essere impostato in modo errato da chiunque installi il dispositivo. Potrei mitigarlo includendo un modulo GPS nel dispositivo che può negoziare il tempo GPS per configurare l'ora del sistema, ma questo sembra un hardware aggiuntivo che non sarebbe necessario.
L'altra idea sarebbe quella di impostare il fuso orario di tutti i dispositivi su UTC e non cambiare in base alla posizione del dispositivo. Quindi posso essere sicuro che i timestamp UTC che invio al cloud siano precisi, ma perdo informazioni sull'ora locale a meno che non invii anche informazioni sulla posizione al database cloud.
Non sono sicuro che esista un metodo preferito per impostare l'ora del sistema su dispositivi IoT come questo, ma vorrei qualche consiglio.