From e4c1e5ab192e249bef7738481881906058f557fc Mon Sep 17 00:00:00 2001 From: Mathieu Carbou Date: Mon, 22 May 2023 00:12:59 +0200 Subject: [PATCH] Avoid duplicate publish of config_version when config is updated --- src/app_config.cpp | 9 ++++++++- src/app_config.h | 1 + src/mqtt.cpp | 8 +++++--- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/app_config.cpp b/src/app_config.cpp index 15620d21..22701f71 100644 --- a/src/app_config.cpp +++ b/src/app_config.cpp @@ -31,7 +31,9 @@ #define FACTORY_OFFSET CONFIG_SIZE #define FACTORY_SIZE 1024 -uint32_t config_ver = 1; +#define INITIAL_CONFIG_VERSION 1 + +uint32_t config_ver = INITIAL_CONFIG_VERSION; // Wifi Network Strings String esid; @@ -261,6 +263,11 @@ config_version() { return config_ver; } +uint32_t +initial_config_version() { + return INITIAL_CONFIG_VERSION; +} + void increment_config() { config_ver++; diff --git a/src/app_config.h b/src/app_config.h index 7b4e1fe1..c9ab2d35 100644 --- a/src/app_config.h +++ b/src/app_config.h @@ -222,6 +222,7 @@ inline EvseState config_default_state() extern String ohm; extern uint32_t config_version(); +extern uint32_t initial_config_version(); // ------------------------------------------------------------------- // Load saved settings diff --git a/src/mqtt.cpp b/src/mqtt.cpp index 83e0ccd5..8d8c01b3 100644 --- a/src/mqtt.cpp +++ b/src/mqtt.cpp @@ -519,9 +519,11 @@ mqtt_publish_config() { config_serialize(doc, true, false, true); mqtt_publish_json(doc, "/config"); - String fulltopic = mqtt_topic + "/config_version"; - String payload = String(config_version()); - mqttclient.publish(fulltopic, payload, true); + if(config_version() == initial_config_version()) { + String fulltopic = mqtt_topic + "/config_version"; + String payload = String(config_version()); + mqttclient.publish(fulltopic, payload, true); + } return true; }