mirror of
https://github.com/UtilitechAS/amsreader-firmware.git
synced 2026-03-22 17:17:48 +00:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
de19de2129 | ||
|
|
1719263de0 | ||
|
|
e70b872c98 |
@@ -22,10 +22,6 @@
|
|||||||
#define CONFIG_NTP_START 872
|
#define CONFIG_NTP_START 872
|
||||||
#define CONFIG_MQTT_START 1004
|
#define CONFIG_MQTT_START 1004
|
||||||
|
|
||||||
#define CONFIG_MQTT_START_86 224
|
|
||||||
#define CONFIG_METER_START_87 784
|
|
||||||
#define CONFIG_ENTSOE_START_90 286
|
|
||||||
#define CONFIG_WIFI_START_91 16
|
|
||||||
#define CONFIG_METER_START_93 224
|
#define CONFIG_METER_START_93 224
|
||||||
|
|
||||||
|
|
||||||
@@ -37,18 +33,6 @@ struct SystemConfig {
|
|||||||
char country[3];
|
char country[3];
|
||||||
}; // 7
|
}; // 7
|
||||||
|
|
||||||
struct WiFiConfig91 {
|
|
||||||
char ssid[32];
|
|
||||||
char psk[64];
|
|
||||||
char ip[15];
|
|
||||||
char gateway[15];
|
|
||||||
char subnet[15];
|
|
||||||
char dns1[15];
|
|
||||||
char dns2[15];
|
|
||||||
char hostname[32];
|
|
||||||
bool mdns;
|
|
||||||
}; // 204
|
|
||||||
|
|
||||||
struct WiFiConfig {
|
struct WiFiConfig {
|
||||||
char ssid[32];
|
char ssid[32];
|
||||||
char psk[64];
|
char psk[64];
|
||||||
@@ -65,18 +49,6 @@ struct WiFiConfig {
|
|||||||
bool autoreboot;
|
bool autoreboot;
|
||||||
}; // 213
|
}; // 213
|
||||||
|
|
||||||
struct MqttConfig86 {
|
|
||||||
char host[128];
|
|
||||||
uint16_t port;
|
|
||||||
char clientId[32];
|
|
||||||
char publishTopic[64];
|
|
||||||
char subscribeTopic[64];
|
|
||||||
char username[64];
|
|
||||||
char password[64];
|
|
||||||
uint8_t payloadFormat;
|
|
||||||
bool ssl;
|
|
||||||
}; // 420
|
|
||||||
|
|
||||||
struct MqttConfig {
|
struct MqttConfig {
|
||||||
char host[128];
|
char host[128];
|
||||||
uint16_t port;
|
uint16_t port;
|
||||||
@@ -110,7 +82,7 @@ struct MeterConfig {
|
|||||||
uint32_t accumulatedMultiplier;
|
uint32_t accumulatedMultiplier;
|
||||||
uint8_t source;
|
uint8_t source;
|
||||||
uint8_t parser;
|
uint8_t parser;
|
||||||
}; // 52
|
}; // 61
|
||||||
|
|
||||||
struct MeterConfig100 {
|
struct MeterConfig100 {
|
||||||
uint32_t baud;
|
uint32_t baud;
|
||||||
@@ -127,7 +99,7 @@ struct MeterConfig100 {
|
|||||||
uint32_t accumulatedMultiplier;
|
uint32_t accumulatedMultiplier;
|
||||||
uint8_t source;
|
uint8_t source;
|
||||||
uint8_t parser;
|
uint8_t parser;
|
||||||
}; // 50
|
}; // 59
|
||||||
|
|
||||||
struct MeterConfig95 {
|
struct MeterConfig95 {
|
||||||
uint32_t baud;
|
uint32_t baud;
|
||||||
@@ -146,16 +118,6 @@ struct MeterConfig95 {
|
|||||||
uint8_t parser;
|
uint8_t parser;
|
||||||
}; // 50
|
}; // 50
|
||||||
|
|
||||||
struct MeterConfig87 {
|
|
||||||
uint8_t type;
|
|
||||||
uint8_t distributionSystem;
|
|
||||||
uint8_t mainFuse;
|
|
||||||
uint8_t productionCapacity;
|
|
||||||
uint8_t encryptionKey[16];
|
|
||||||
uint8_t authenticationKey[16];
|
|
||||||
bool substituteMissing;
|
|
||||||
}; // 37
|
|
||||||
|
|
||||||
struct DebugConfig {
|
struct DebugConfig {
|
||||||
bool telnet;
|
bool telnet;
|
||||||
bool serial;
|
bool serial;
|
||||||
@@ -331,9 +293,6 @@ private:
|
|||||||
uint8_t tempSensorCount = 0;
|
uint8_t tempSensorCount = 0;
|
||||||
TempSensorConfig** tempSensors = NULL;
|
TempSensorConfig** tempSensors = NULL;
|
||||||
|
|
||||||
bool relocateConfig90(); // 2.0.0
|
|
||||||
bool relocateConfig91(); // 2.0.2
|
|
||||||
bool relocateConfig92(); // 2.0.3
|
|
||||||
bool relocateConfig93(); // 2.1.0
|
bool relocateConfig93(); // 2.1.0
|
||||||
bool relocateConfig94(); // 2.1.0
|
bool relocateConfig94(); // 2.1.0
|
||||||
bool relocateConfig95(); // 2.1.4
|
bool relocateConfig95(); // 2.1.4
|
||||||
|
|||||||
@@ -716,30 +716,6 @@ bool AmsConfiguration::hasConfig() {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
switch(configVersion) {
|
switch(configVersion) {
|
||||||
case 90:
|
|
||||||
configVersion = -1; // Prevent loop
|
|
||||||
if(relocateConfig90()) {
|
|
||||||
configVersion = 91;
|
|
||||||
} else {
|
|
||||||
configVersion = 0;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
case 91:
|
|
||||||
configVersion = -1; // Prevent loop
|
|
||||||
if(relocateConfig91()) {
|
|
||||||
configVersion = 92;
|
|
||||||
} else {
|
|
||||||
configVersion = 0;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
case 92:
|
|
||||||
configVersion = -1; // Prevent loop
|
|
||||||
if(relocateConfig92()) {
|
|
||||||
configVersion = 93;
|
|
||||||
} else {
|
|
||||||
configVersion = 0;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
case 93:
|
case 93:
|
||||||
configVersion = -1; // Prevent loop
|
configVersion = -1; // Prevent loop
|
||||||
if(relocateConfig93()) {
|
if(relocateConfig93()) {
|
||||||
@@ -832,61 +808,8 @@ void AmsConfiguration::saveTempSensors() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AmsConfiguration::relocateConfig90() {
|
|
||||||
EntsoeConfig entsoe;
|
|
||||||
EEPROM.begin(EEPROM_SIZE);
|
|
||||||
EEPROM.get(CONFIG_ENTSOE_START_90, entsoe);
|
|
||||||
EEPROM.put(CONFIG_ENTSOE_START, entsoe);
|
|
||||||
EEPROM.put(EEPROM_CONFIG_ADDRESS, 91);
|
|
||||||
bool ret = EEPROM.commit();
|
|
||||||
EEPROM.end();
|
|
||||||
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::relocateConfig92() {
|
|
||||||
WiFiConfig wifi;
|
|
||||||
EEPROM.begin(EEPROM_SIZE);
|
|
||||||
EEPROM.get(CONFIG_WIFI_START, wifi);
|
|
||||||
#if defined(ESP32)
|
|
||||||
wifi.power = 195;
|
|
||||||
#elif defined(ESP8266)
|
|
||||||
wifi.power = 205;
|
|
||||||
#endif
|
|
||||||
EEPROM.put(CONFIG_WIFI_START, wifi);
|
|
||||||
|
|
||||||
EnergyAccountingConfig eac;
|
|
||||||
clearEnergyAccountingConfig(eac);
|
|
||||||
EEPROM.put(CONFIG_ENERGYACCOUNTING_START, eac);
|
|
||||||
|
|
||||||
EEPROM.put(EEPROM_CONFIG_ADDRESS, 93);
|
|
||||||
bool ret = EEPROM.commit();
|
|
||||||
EEPROM.end();
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool AmsConfiguration::relocateConfig93() {
|
bool AmsConfiguration::relocateConfig93() {
|
||||||
MeterConfig meter;
|
MeterConfig95 meter;
|
||||||
EEPROM.begin(EEPROM_SIZE);
|
EEPROM.begin(EEPROM_SIZE);
|
||||||
EEPROM.get(CONFIG_METER_START_93, meter);
|
EEPROM.get(CONFIG_METER_START_93, meter);
|
||||||
meter.wattageMultiplier = 0;
|
meter.wattageMultiplier = 0;
|
||||||
@@ -913,7 +836,7 @@ bool AmsConfiguration::relocateConfig94() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool AmsConfiguration::relocateConfig95() {
|
bool AmsConfiguration::relocateConfig95() {
|
||||||
MeterConfig meter;
|
MeterConfig95 meter;
|
||||||
MeterConfig95 meter95;
|
MeterConfig95 meter95;
|
||||||
EEPROM.begin(EEPROM_SIZE);
|
EEPROM.begin(EEPROM_SIZE);
|
||||||
EEPROM.get(CONFIG_METER_START, meter);
|
EEPROM.get(CONFIG_METER_START, meter);
|
||||||
@@ -934,7 +857,7 @@ bool AmsConfiguration::relocateConfig96() {
|
|||||||
SystemConfig sys;
|
SystemConfig sys;
|
||||||
EEPROM.get(CONFIG_SYSTEM_START, sys);
|
EEPROM.get(CONFIG_SYSTEM_START, sys);
|
||||||
|
|
||||||
MeterConfig meter;
|
MeterConfig100 meter;
|
||||||
EEPROM.get(CONFIG_METER_START, meter);
|
EEPROM.get(CONFIG_METER_START, meter);
|
||||||
meter.source = 1; // Serial
|
meter.source = 1; // Serial
|
||||||
meter.parser = 0; // Auto
|
meter.parser = 0; // Auto
|
||||||
|
|||||||
@@ -122,6 +122,8 @@ DSMRParser *dsmrParser = NULL;
|
|||||||
void setup() {
|
void setup() {
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
|
|
||||||
|
config.hasConfig(); // Need to run this to make sure all configuration have been migrated before we load GPIO config
|
||||||
|
|
||||||
if(!config.getGpioConfig(gpioConfig)) {
|
if(!config.getGpioConfig(gpioConfig)) {
|
||||||
config.clearGpio(gpioConfig);
|
config.clearGpio(gpioConfig);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user