Zeitverschiebung mit Windows IoT-Kern

7

Das Problem Ich habe 4 Himbeer-Pis in meinem lokalen Netzwerk. Alle 4 Raspberry Pis senden alle 5 Sekunden Nachrichten an einen Azure IoT-Hub.

Das Problem ist, dass ich nach Ablauf der Zeit Authentifizierungsfehler vom IoT-Hub erhalte und meine App dann abstürzt.

Ich habe festgestellt, dass bei Verbindung über ein Netzwerkkabel kein Problem auftritt. Aber Fehler sind bei WiFi viel häufiger. Die Verwendung von WiFi ist der gewünschte Anwendungsfall.

Ich habe auch beobachtet, dass das Aus- und Einschalten nicht Windows IoT auslöst, um die Zeit zu aktualisieren, sondern ein restartTestament.

Meine aktuelle Strategie Ich möchte den gleichen Zeitaktualisierungsmechanismus auslösen, der auf restarteiner kontrollierten Weise abläuft. Ich versuche derzeit, jede Stunde ein Power-Shell-Skript zum erneuten Synchronisieren ausführen zu lassen.

Wo ich Hilfe brauche, versuche ich, den Befehl auszuführen, w32tm /resync /force aber wenn ich das tue, erhalte ich den folgenden Fehler. Sending resync command to local computer The computer did not resync because no time data was available.

Ich habe keine Idee warum. Dies lässt vermuten, dass Windows IoT möglicherweise etwas anderes verwendet, um die aktuelle Uhrzeit abzurufen. Ich habe wirklich keine Ahnung.

Jeder Vorschlag wäre sehr dankbar.

Scott Routley
quelle

Antworten:

1

Der Windows IoT-Hub benötigt nur eine Auflösung von 2 Sekunden, um Authentifizierungsfehler zu vermeiden. Anstatt jede Stunde eine Neusynchronisierung zu erzwingen, müssen Sie nur den w32tm so konfigurieren, dass er dieselben NTP-Server wie Ihre RPis verwendet:

w32tm /config /manualpeerlist:"0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org" /syncfromflags:manual /reliable:yes /update

Beachten Sie das Entfernen von time.windows.com. Hier ist es wichtig, das Flag / update zu übergeben, da sonst die Änderung nicht aktiviert wird. Aus den w32tm-Dokumenten:

Konfigurationsänderungen werden von Windows Time nur verwendet, wenn der Dienst neu gestartet oder der Schalter / update verwendet wird.

Dave Johnson
quelle
0

Diese verdammten Fehlermeldungen. Anstatt zu sagen, dass die Liste keine Server enthält, zu denen eine Verbindung hergestellt werden kann, wird generell keine Zeit zurückgegeben, in der Daten gefunden wurden: D.

Versuchen Sie diesen Befehl mit Ihren Resync / Force-Flags

w32tm /config /syncfromflags:manual /manualpeerlist:"0.windows.time.com 1.pool.ntp.org" /resync /force

Beim Start muss es etwas Ähnliches geben, das NTP-Server versorgt.

Sie können einen beliebigen Zeitserver verwenden, auch einen lokalen NTP-Server, wenn Sie einen einrichten können.

Piotr Kula
quelle