From c860e02f3ce99ada43f470146aa2949a029a90a7 Mon Sep 17 00:00:00 2001
From: Eric Duminil <eric.duminil@gmail.com>
Date: Wed, 9 Feb 2022 11:09:57 +0100
Subject: [PATCH] Adding NTP param

---
 ampel-firmware/ampel-firmware.ino | 2 +-
 ampel-firmware/led_effects.cpp    | 2 +-
 ampel-firmware/ntp.cpp            | 4 +++-
 ampel-firmware/web_config.cpp     | 8 ++++++--
 ampel-firmware/web_config.h       | 3 +++
 5 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/ampel-firmware/ampel-firmware.ino b/ampel-firmware/ampel-firmware.ino
index 07dda7f..dd9b0cc 100644
--- a/ampel-firmware/ampel-firmware.ino
+++ b/ampel-firmware/ampel-firmware.ino
@@ -75,6 +75,7 @@ void setup() {
     Serial.print(F("WiFi - Connected! IP address: "));
     IPAddress address = WiFi.localIP();
     snprintf(wifi::local_ip, sizeof(wifi::local_ip), "%d.%d.%d.%d", address[0], address[1], address[2], address[3]);
+    Serial.println(wifi::local_ip);
 
     ntp::initialize();
 
@@ -82,7 +83,6 @@ void setup() {
     mqtt::initialize(ampel.sensorId);
 #  endif
 
-    Serial.println(wifi::local_ip);
     Serial.print(F("You can access this sensor via http://"));
     Serial.print(ampel.sensorId);
     Serial.print(F(".local (might be unstable) or http://"));
diff --git a/ampel-firmware/led_effects.cpp b/ampel-firmware/led_effects.cpp
index a5e977a..d414ba5 100644
--- a/ampel-firmware/led_effects.cpp
+++ b/ampel-firmware/led_effects.cpp
@@ -30,7 +30,7 @@ const int NEOPIXELS_PIN = 5;
 const int NEOPIXELS_PIN = 23;
 #endif
 
-// config::led_count is not yet known
+// config::led_count is not yet known, will be set later.
 Adafruit_NeoPixel pixels(0, NEOPIXELS_PIN, NEO_GRB + NEO_KHZ800);
 
 namespace led_effects {
diff --git a/ampel-firmware/ntp.cpp b/ampel-firmware/ntp.cpp
index 468a00b..2cdb4e1 100644
--- a/ampel-firmware/ntp.cpp
+++ b/ampel-firmware/ntp.cpp
@@ -1,11 +1,11 @@
 #include "ntp.h"
 #include "sensor_console.h"
 #include "config.h"
+#include "web_config.h"
 #include <WiFiUdp.h> // required for NTP
 #include "src/lib/NTPClient/NTPClient.h" // NTP
 
 namespace config {
-  const char *ntp_server = NTP_SERVER;
   const long utc_offset_in_seconds = UTC_OFFSET_IN_SECONDS; // UTC+1
 }
 
@@ -18,6 +18,8 @@ namespace ntp {
   void setLocalTime(int32_t unix_seconds);
 
   void initialize() {
+    Serial.print("NTP - Trying to connect to : ");
+    Serial.println(config::ntp_server);
     timeClient.begin();
     sensor_console::defineIntCommand("set_time", ntp::setLocalTime, F("1618829570 (Sets time to the given UNIX time)"));
   }
diff --git a/ampel-firmware/web_config.cpp b/ampel-firmware/web_config.cpp
index 0bfbc5d..95dbf69 100644
--- a/ampel-firmware/web_config.cpp
+++ b/ampel-firmware/web_config.cpp
@@ -118,7 +118,7 @@ namespace web_config {
       Builder<TextTParameter<STRING_LEN>>("mqtt_user").label("MQTT User").defaultValue(MQTT_USER).build();
 
   //TODO: Show the number of * for password?
-  PasswordTParameter<STRING_LEN> mqttPasswordParam = Builder<PasswordTParameter< STRING_LEN>>("mqtt_password").label(
+  PasswordTParameter<STRING_LEN> mqttPasswordParam = Builder<PasswordTParameter<STRING_LEN>>("mqtt_password").label(
       "MQTT password").defaultValue(MQTT_PASSWORD).build();
 
   /**
@@ -127,7 +127,7 @@ namespace web_config {
 
   ParameterGroup timeParams = ParameterGroup("NTP", "Time server");
   TextTParameter<STRING_LEN> ntpParam =
-      Builder<TextTParameter< STRING_LEN>>("ntp_server").label("NTP Server").defaultValue(NTP_SERVER).build();
+      Builder<TextTParameter<STRING_LEN>>("ntp_server").label("NTP Server").defaultValue(NTP_SERVER).build();
   IntTParameter<int16_t> timeOffsetParam = Builder<IntTParameter<int16_t>>("timezone").label("Timezone").defaultValue(
       (UTC_OFFSET_IN_SECONDS) / 3600).min(-23).max(23).step(1).placeholder("[h]").build();
   CheckboxTParameter dstParam =
@@ -280,7 +280,11 @@ namespace config {
   bool &auto_calibrate_sensor = web_config::autoCalibrateParam.value(); // [true / false]
   float &temperature_offset = web_config::temperatureOffsetParam.value(); // [K] Sign isn't relevant.
 
+  // LEDs
   uint8_t &max_brightness = web_config::maxBrightnessParam.value();
   uint8_t &min_brightness = web_config::minBrightnessParam.value();
   uint16_t &led_count = web_config::ledCountParam.value();
+
+  char *ntp_server = web_config::ntpParam.value();
+  int16_t &time_zone = web_config::timeOffsetParam.value();
 }
diff --git a/ampel-firmware/web_config.h b/ampel-firmware/web_config.h
index 6c777e7..376e99d 100644
--- a/ampel-firmware/web_config.h
+++ b/ampel-firmware/web_config.h
@@ -23,6 +23,9 @@ namespace config {
   extern uint8_t &max_brightness;
   extern uint8_t &min_brightness;
   extern uint16_t &led_count;
+
+  extern char *ntp_server;
+  extern int16_t &time_zone;
 }
 
 namespace web_config {
-- 
GitLab