diff --git a/src/AmsConfiguration.cpp b/src/AmsConfiguration.cpp index 716266f0..7f41b14c 100644 --- a/src/AmsConfiguration.cpp +++ b/src/AmsConfiguration.cpp @@ -555,22 +555,6 @@ bool AmsConfiguration::hasConfig() { configVersion = 0; return false; } - case 88: - configVersion = -1; // Prevent loop - if(relocateConfig88()) { - configVersion = 89; - } else { - configVersion = 0; - return false; - } - case 89: - configVersion = -1; // Prevent loop - if(relocateConfig89()) { - configVersion = 90; - } else { - configVersion = 0; - return false; - } case 90: configVersion = -1; // Prevent loop if(relocateConfig90()) { @@ -579,6 +563,14 @@ bool AmsConfiguration::hasConfig() { configVersion = 0; return false; } + case 91: + configVersion = -1; // Prevent loop + if(relocateConfig91()) { + configVersion = 92; + } else { + configVersion = 0; + return false; + } case EEPROM_CHECK_SUM: return true; default: @@ -785,60 +777,6 @@ bool AmsConfiguration::relocateConfig87() { return ret; } -bool AmsConfiguration::relocateConfig88() { - GpioConfig88 gpio88; - EEPROM.begin(EEPROM_SIZE); - EEPROM.get(CONFIG_GPIO_START_88, gpio88); - - GpioConfig gpio { - gpio88.hanPin, - gpio88.apPin, - gpio88.ledPin, - gpio88.ledInverted, - gpio88.ledPinRed, - gpio88.ledPinGreen, - gpio88.ledPinBlue, - gpio88.ledRgbInverted, - gpio88.tempSensorPin, - gpio88.tempAnalogSensorPin, - gpio88.vccPin, - gpio88.vccOffset, - gpio88.vccMultiplier, - gpio88.vccBootLimit, - 0, - 0 - }; - EEPROM.put(CONFIG_GPIO_START, gpio); - EEPROM.put(EEPROM_CONFIG_ADDRESS, 89); - bool ret = EEPROM.commit(); - EEPROM.end(); - return ret; -} - -bool AmsConfiguration::relocateConfig89() { - EntsoeConfig89 entose89; - EEPROM.begin(EEPROM_SIZE); - EEPROM.get(CONFIG_ENTSOE_START_89, entose89); - - uint32_t multiplier = entose89.multiplier; - - EntsoeConfig entsoe = { - 0x0, - 0x0, - 0x0, - multiplier - }; - strcpy(entsoe.token, entose89.token); - strcpy(entsoe.area, entose89.area); - strcpy(entsoe.currency, entose89.currency); - - EEPROM.put(CONFIG_ENTSOE_START, entsoe); - EEPROM.put(EEPROM_CONFIG_ADDRESS, 90); - bool ret = EEPROM.commit(); - EEPROM.end(); - return ret; -} - bool AmsConfiguration::relocateConfig90() { EntsoeConfig entsoe; EEPROM.begin(EEPROM_SIZE); @@ -850,6 +788,27 @@ bool AmsConfiguration::relocateConfig90() { return ret; } +bool AmsConfiguration::relocateConfig91() { + WiFiConfig91 wifi91; + WiFiConfig wifi; + EEPROM.begin(EEPROM_SIZE); + EEPROM.get(CONFIG_WIFI_START_91, wifi91); + strcpy(wifi.ssid, wifi91.ssid); + strcpy(wifi.psk, wifi91.psk); + strcpy(wifi.ip, wifi91.ip); + strcpy(wifi.gateway, wifi91.gateway); + strcpy(wifi.subnet, wifi91.subnet); + strcpy(wifi.dns1, wifi91.dns1); + strcpy(wifi.dns2, wifi91.dns2); + strcpy(wifi.hostname, wifi91.hostname); + wifi.mdns = wifi91.mdns; + EEPROM.put(CONFIG_WIFI_START, wifi); + EEPROM.put(EEPROM_CONFIG_ADDRESS, 92); + bool ret = EEPROM.commit(); + EEPROM.end(); + return ret; +} + bool AmsConfiguration::save() { EEPROM.begin(EEPROM_SIZE); EEPROM.put(EEPROM_CONFIG_ADDRESS, EEPROM_CHECK_SUM); diff --git a/src/AmsConfiguration.h b/src/AmsConfiguration.h index a02f89b7..192eca3c 100644 --- a/src/AmsConfiguration.h +++ b/src/AmsConfiguration.h @@ -4,15 +4,15 @@ #include "Arduino.h" #define EEPROM_SIZE 1024*3 -#define EEPROM_CHECK_SUM 91 // Used to check if config is stored. Change if structure changes +#define EEPROM_CHECK_SUM 92 // Used to check if config is stored. Change if structure changes #define EEPROM_CONFIG_ADDRESS 0 #define EEPROM_TEMP_CONFIG_ADDRESS 2048 #define CONFIG_SYSTEM_START 8 -#define CONFIG_WIFI_START 16 #define CONFIG_METER_START 224 #define CONFIG_GPIO_START 266 #define CONFIG_ENTSOE_START 290 +#define CONFIG_WIFI_START 360 #define CONFIG_WEB_START 648 #define CONFIG_DEBUG_START 824 #define CONFIG_DOMOTICZ_START 856 @@ -21,16 +21,15 @@ #define CONFIG_MQTT_START_86 224 #define CONFIG_METER_START_87 784 -#define CONFIG_GPIO_START_88 832 -#define CONFIG_ENTSOE_START_89 944 #define CONFIG_ENTSOE_START_90 286 +#define CONFIG_WIFI_START_91 16 struct SystemConfig { uint8_t boardType; }; // 1 -struct WiFiConfig { +struct WiFiConfig91 { char ssid[32]; char psk[64]; char ip[15]; @@ -42,6 +41,18 @@ struct WiFiConfig { bool mdns; }; // 204 +struct WiFiConfig { + char ssid[32]; + char psk[64]; + char ip[16]; + char gateway[16]; + char subnet[16]; + char dns1[16]; + char dns2[16]; + char hostname[32]; + bool mdns; +}; // 209 + struct MqttConfig86 { char host[128]; uint16_t port; @@ -118,23 +129,6 @@ struct GpioConfig { uint16_t vccResistorVcc; }; // 20 -struct GpioConfig88 { - uint8_t hanPin; - uint8_t apPin; - uint8_t ledPin; - bool ledInverted; - uint8_t ledPinRed; - uint8_t ledPinGreen; - uint8_t ledPinBlue; - bool ledRgbInverted; - uint8_t tempSensorPin; - uint8_t tempAnalogSensorPin; - uint8_t vccPin; - int16_t vccOffset; - uint16_t vccMultiplier; - uint8_t vccBootLimit; -}; // 16 - struct DomoticzConfig { uint16_t elidx; uint16_t vl1idx; @@ -151,13 +145,6 @@ struct NtpConfig { char server[64]; }; // 70 -struct EntsoeConfig89 { - char token[37]; - char area[17]; - char currency[4]; - uint16_t multiplier; -}; // 60 - struct EntsoeConfig { char token[37]; char area[17]; @@ -324,9 +311,8 @@ private: bool loadConfig83(int address); bool relocateConfig86(); bool relocateConfig87(); - bool relocateConfig88(); // dev 1.6 - bool relocateConfig89(); // dev 1.6 bool relocateConfig90(); // 2.0.0 + bool relocateConfig91(); // 2.0.2 int readString(int pAddress, char* pString[]); int readInt(int pAddress, int *pValue);