All sounds good and progressing quickly
Personally, and this is just my preference and wariness of 'all-things-cloud' - and not intended as a 'design-input' as I'm unlikely to use your code, having already developed similar...
I'd far rather have a system that is totally self-contained, does not rely on Internet connectivity or other businesses computers. Who knows when the Internet goes down, signal lost if it's an RV / cabin / remote deployment. Not to mention any data gathering and monetisation of free cloud-based systems.
I'd also like to think that the frequency of needing to swap ESP devices is less than losing access to 'thingywhatsitcalled.io' or similar.
For my system, I have a spare ESP32 board (pre-loaded with the software) ready for a quick cold-swap in case of failure. The code is written so that data read from non volatile storage will load default values if that data was not found (as may happen with an ESP swap). e.g. like this...
#include <Preferences.h>
Preferences configData;
configData.begin("BMSESP", false);
...
// load stored configuration data from non-volatile storage
AllowOvernightDischarge = configData.getBool("AllowDis", false);
Personally, and this is just my preference and wariness of 'all-things-cloud' - and not intended as a 'design-input' as I'm unlikely to use your code, having already developed similar...
I'd far rather have a system that is totally self-contained, does not rely on Internet connectivity or other businesses computers. Who knows when the Internet goes down, signal lost if it's an RV / cabin / remote deployment. Not to mention any data gathering and monetisation of free cloud-based systems.
I'd also like to think that the frequency of needing to swap ESP devices is less than losing access to 'thingywhatsitcalled.io' or similar.
For my system, I have a spare ESP32 board (pre-loaded with the software) ready for a quick cold-swap in case of failure. The code is written so that data read from non volatile storage will load default values if that data was not found (as may happen with an ESP swap). e.g. like this...
#include <Preferences.h>
Preferences configData;
configData.begin("BMSESP", false);
...
// load stored configuration data from non-volatile storage
AllowOvernightDischarge = configData.getBool("AllowDis", false);