From eebc125f0dcb976b182db2f26779d4bea5a5fb24 Mon Sep 17 00:00:00 2001
From: Eric Duminil <eric.duminil@gmail.com>
Date: Wed, 9 Feb 2022 12:49:11 +0100
Subject: [PATCH] More mqtt params

---
 ampel-firmware/mqtt.cpp       | 4 +---
 ampel-firmware/mqtt.h         | 4 ----
 ampel-firmware/web_config.cpp | 4 +++-
 ampel-firmware/web_config.h   | 5 +++++
 4 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/ampel-firmware/mqtt.cpp b/ampel-firmware/mqtt.cpp
index e847fc3..0b03cdb 100644
--- a/ampel-firmware/mqtt.cpp
+++ b/ampel-firmware/mqtt.cpp
@@ -15,11 +15,9 @@
 #endif
 
 namespace config {
-  // Values should be defined in config.h
-  uint16_t mqtt_sending_interval = MQTT_SENDING_INTERVAL; // [s]
+  // Values should be defined in config.h or over webconfig
   //INFO: Listen to every CO2 sensor which is connected to the server:
   //  mosquitto_sub -h MQTT_SERVER -t 'CO2sensors/#' -p 443 --capath /etc/ssl/certs/ -u "MQTT_USER" -P "MQTT_PASSWORD" -v
-  const bool allow_mqtt_commands = ALLOW_MQTT_COMMANDS;
   const unsigned long wait_after_fail = 900; // [s] Wait 15 minutes after an MQTT connection fail, before trying again.
 }
 
diff --git a/ampel-firmware/mqtt.h b/ampel-firmware/mqtt.h
index 0e39b09..1d7adde 100644
--- a/ampel-firmware/mqtt.h
+++ b/ampel-firmware/mqtt.h
@@ -8,10 +8,6 @@
 #  define MQTT_ENCRYPTED true // Old config files might not define it, and encryption was on by default.
 #endif
 
-namespace config {
-  extern uint16_t mqtt_sending_interval; // [s]
-}
-
 namespace mqtt {
   extern char last_successful_publish[];
   extern bool connected;
diff --git a/ampel-firmware/web_config.cpp b/ampel-firmware/web_config.cpp
index 74cc8d1..cc05a34 100644
--- a/ampel-firmware/web_config.cpp
+++ b/ampel-firmware/web_config.cpp
@@ -106,7 +106,7 @@ namespace web_config {
       MQTT_SENDING_INTERVAL).min(0).step(1).defaultValue(300).placeholder("[s]").build();
 
   CheckboxTParameter mqttCommandsParam =
-      Builder<CheckboxTParameter>("mqtt_commands").label("MQTT commands").defaultValue(false).build();
+      Builder<CheckboxTParameter>("mqtt_commands").label("MQTT commands").defaultValue(ALLOW_MQTT_COMMANDS).build();
 
   TextTParameter<STRING_LEN> mqttServerParam =
       Builder<TextTParameter<STRING_LEN>>("mqtt_server").label("MQTT Server").defaultValue(MQTT_SERVER).build();
@@ -295,5 +295,7 @@ namespace config {
   char *mqtt_user = web_config::mqttUserParam.value();
   char *mqtt_password = web_config::mqttPasswordParam.value();
   uint16_t &mqtt_port = web_config::mqttPortParam.value();
+  uint16_t &mqtt_sending_interval = web_config::mqttTimestepParam.value();
+  bool &allow_mqtt_commands = web_config::mqttCommandsParam.value();
 
 }
diff --git a/ampel-firmware/web_config.h b/ampel-firmware/web_config.h
index e35bf80..ba4a4ea 100644
--- a/ampel-firmware/web_config.h
+++ b/ampel-firmware/web_config.h
@@ -10,6 +10,8 @@
 #endif
 
 namespace config {
+  //CSV
+  //TODO: Add use_csv
   extern uint16_t &csv_interval; // [s]
 
   // Sensor
@@ -30,10 +32,13 @@ namespace config {
   extern bool &daylight_saving_time; // [true / false]
 
   // MQTT
+  //TODO: Add use_mqtt
   extern char *mqtt_server;
   extern char *mqtt_user;
   extern char *mqtt_password;
   extern uint16_t &mqtt_port;
+  extern uint16_t &mqtt_sending_interval; // [s]
+  extern bool &allow_mqtt_commands; // [true / false]
 }
 
 namespace web_config {
-- 
GitLab