diff --git a/interface/src/framework/ntp/NTPStatusForm.tsx b/interface/src/framework/ntp/NTPStatusForm.tsx
index 22ce282d4..2e0f03957 100644
--- a/interface/src/framework/ntp/NTPStatusForm.tsx
+++ b/interface/src/framework/ntp/NTPStatusForm.tsx
@@ -32,11 +32,14 @@ import { extractErrorMessage, formatDateTime, formatLocalDateTime, useRest } fro
import { AuthenticatedContext } from '../../contexts/authentication';
export const isNtpActive = ({ status }: NTPStatus) => status === NTPSyncStatus.NTP_ACTIVE;
+export const isNtpEnabled = ({ status }: NTPStatus) => status !== NTPSyncStatus.NTP_DISABLED;
export const ntpStatusHighlight = ({ status }: NTPStatus, theme: Theme) => {
switch (status) {
- case NTPSyncStatus.NTP_INACTIVE:
+ case NTPSyncStatus.NTP_DISABLED:
return theme.palette.info.main;
+ case NTPSyncStatus.NTP_INACTIVE:
+ return theme.palette.error.main;
case NTPSyncStatus.NTP_ACTIVE:
return theme.palette.success.main;
default:
@@ -46,6 +49,8 @@ export const ntpStatusHighlight = ({ status }: NTPStatus, theme: Theme) => {
export const ntpStatus = ({ status }: NTPStatus) => {
switch (status) {
+ case NTPSyncStatus.NTP_DISABLED:
+ return 'Disabled';
case NTPSyncStatus.NTP_INACTIVE:
return 'Inactive';
case NTPSyncStatus.NTP_ACTIVE:
@@ -143,7 +148,7 @@ const NTPStatusForm: FC = () => {
- {isNtpActive(data) && (
+ {isNtpEnabled(data) && (
<>
diff --git a/interface/src/types/ntp.ts b/interface/src/types/ntp.ts
index 06c87ef06..e22a9fa59 100644
--- a/interface/src/types/ntp.ts
+++ b/interface/src/types/ntp.ts
@@ -1,6 +1,7 @@
export enum NTPSyncStatus {
- NTP_INACTIVE = 0,
- NTP_ACTIVE = 1
+ NTP_DISABLED = 0,
+ NTP_INACTIVE = 1,
+ NTP_ACTIVE = 2
}
export interface NTPStatus {
diff --git a/lib/framework/NTPSettingsService.cpp b/lib/framework/NTPSettingsService.cpp
index 672f0b496..e4b73bf9f 100644
--- a/lib/framework/NTPSettingsService.cpp
+++ b/lib/framework/NTPSettingsService.cpp
@@ -59,7 +59,7 @@ void NTPSettingsService::configureNTP() {
}
void NTPSettingsService::configureTime(AsyncWebServerRequest * request, JsonVariant & json) {
- if (!sntp_enabled() && json.is()) {
+ if (json.is()) {
struct tm tm = {0};
String timeLocal = json["local_time"];
char * s = strptime(timeLocal.c_str(), "%Y-%m-%dT%H:%M:%S", &tm);
diff --git a/lib/framework/NTPStatus.cpp b/lib/framework/NTPStatus.cpp
index 4f026c77f..9433d6253 100644
--- a/lib/framework/NTPStatus.cpp
+++ b/lib/framework/NTPStatus.cpp
@@ -36,7 +36,7 @@ void NTPStatus::ntpStatus(AsyncWebServerRequest * request) {
time_t now = time(nullptr);
// only provide enabled/disabled status for now
- root["status"] = sntp_enabled() && emsesp::EMSESP::system_.ntp_connected() ? 1 : 0;
+ root["status"] = sntp_enabled() ? emsesp::EMSESP::system_.ntp_connected() ? 2 : 1 : 0;
// the current time in UTC
root["utc_time"] = toUTCTimeString(gmtime(&now));