Factory reset feature (#114)
Implemented factory-reset feature Extract factory settings into separate ini file Hide reset/factory reset from guest user Co-authored-by: kasedy <kasedy@gmail.com>
This commit is contained in:
		@@ -3,18 +3,11 @@
 | 
			
		||||
 | 
			
		||||
#include <HttpEndpoint.h>
 | 
			
		||||
#include <FSPersistence.h>
 | 
			
		||||
#include <ESPUtils.h>
 | 
			
		||||
 | 
			
		||||
#define LIGHT_BROKER_SETTINGS_FILE "/config/brokerSettings.json"
 | 
			
		||||
#define LIGHT_BROKER_SETTINGS_PATH "/rest/brokerSettings"
 | 
			
		||||
 | 
			
		||||
static String defaultDeviceValue(String prefix = "") {
 | 
			
		||||
#ifdef ESP32
 | 
			
		||||
  return prefix + String((unsigned long)ESP.getEfuseMac(), HEX);
 | 
			
		||||
#elif defined(ESP8266)
 | 
			
		||||
  return prefix + String(ESP.getChipId(), HEX);
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class LightMqttSettings {
 | 
			
		||||
 public:
 | 
			
		||||
  String mqttPath;
 | 
			
		||||
@@ -28,9 +21,9 @@ class LightMqttSettings {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static void deserialize(JsonObject& root, LightMqttSettings& settings) {
 | 
			
		||||
    settings.mqttPath = root["mqtt_path"] | defaultDeviceValue("homeassistant/light/");
 | 
			
		||||
    settings.name = root["name"] | defaultDeviceValue("light-");
 | 
			
		||||
    settings.uniqueId = root["unique_id"] | defaultDeviceValue("light-");
 | 
			
		||||
    settings.mqttPath = root["mqtt_path"] | ESPUtils::defaultDeviceValue("homeassistant/light/");
 | 
			
		||||
    settings.name = root["name"] | ESPUtils::defaultDeviceValue("light-");
 | 
			
		||||
    settings.uniqueId = root["unique_id"] | ESPUtils::defaultDeviceValue("light-");
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -70,4 +70,4 @@ void LightStateService::registerConfig() {
 | 
			
		||||
  _mqttClient->publish(configTopic.c_str(), 0, false, payload.c_str());
 | 
			
		||||
 | 
			
		||||
  _mqttPubSub.configureTopics(stateTopic, setTopic);
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user